yocto pulseaudio.socketをレシピからenableする

pulseaudioのUnitはUser Unitであるが、yoctoのUser Unitの取り扱いに問題がありboot時に正しく実行されない。 boot時にpulseaudio.socketが実行されるようにするための方法を調査したのでメモ。 systemdのenableの仕掛け まず、「systemctl enable」をした…

raspberrypi2 yocto systemdでpulseaudio

yoctoのpulseaudioをsystemdで動かしてみた。 今回はレシピを作成したりはしないので若干手順は端折っている。 pulseaudioのインストール pulseaudioを追加するためには、local.confに下記を追加する。 DISTRO_FEATURES_append = " pulseaudio pam" IMAGE_IN…

raspberrypi2 yoctoでsystemd

RPi2でpulseaudioを導入しようとしたところ、pulseaudioをサービスとして使用するには、systemdを利用するほうが従来のsysvinitよりも簡単に行えそうだということがわかった。 ただ単に、初期化スクリプトがsystemd用のもののみ用意されていたというだけの事…

UbuntuでpandocからPDFを出力する。

ubuntu14.04でpandocからPDFを出力する。 pandocの導入 markdownとpandocに関しては過去の記事に記載している。 Ubuntu 14.04にpandocを導入するには以下のコマンドを実行する。 $ sudo apt-get install pandoc Ubuntuのバージョンは14.10でも問題ない。 PDF…

PiTFT3.5でQML(Quick2)アプリケーションが実行できない理由

RPi2にPiTFT3.5を実装したyocto環境でQt5を組み込みQt Quick2のQMLアプリケーションを実行してみたところエラーがでて実行できなかった。 その原因を調査したのでメモ。 原因はOpenGL Qt Quick2はOpenGLに依存している Qt Quick2はOpenGLに依存しており、Ope…

PlantUMLをemacsから使用する(puml-mode)

以前からPlantUMLには興味が合ったが、emacsから便利に利用できそうなモードを見つけたので試してみる。 依存パッケージのインストール $ sudo apt-get install graphviz default-jre plantuml.jarのダウンロード puml-modeのデフォルトでは~/plantuml.jarに…

emacs-mozcを使用する

emacsでの日本語入力のデフォルトであるQuailは非常に使いづらいので、 Linux環境のインプットメソッドで入力するようにしていた。 今までは-nwで起動していたため気にならなかったが、それだとGUI環境でemacsを起動した際に、 入力中の文字が図のようになっ…

Ubuntu 15.10でbitbake qemu-nativeエラー

Ubuntu 15.10でcore-image-satoなどを作ろうとすると、qemu-nativeのdo_configureでエラーになる。 DEBUG: Executing python function sysroot_cleansstate DEBUG: Python function sysroot_cleansstate finished DEBUG: Executing shell function autotools…

pandocで「openBinaryFile: does not exist (No such file or directory)」

Ubuntuのバージョンを15.04から15.10にあげたらpandocが下記のエラーをはくようになった。 pandoc: Could not fetch github.css github.css: openBinaryFile: does not exist (No such file or directory) いままでcssファイルを「~/.pandoc」において、これ…

raspberrypi2 yocto2.0(Jethro)

yoctoの時期リリース版では、gccのバージョンが4から5に上がるなど大きな変更が入っている。 それに伴ってバージョンも1.9をスキップするようだ。 gitの方でもJethroの名でブランチが切られ、開発が進んでいる様子。 meta-raspberrypiでも、gcc5でのビルドに…

raspberrypi2 yoctoでPiTFT3.5 (X11編)

以前にyocto + PiTFT3.5でコンソールを動作させたが、今回はcore-image-satoでX11ベースのGUIを動作させたのでメモ。 meta-pitft35-rpiについて 以前作成したmeta-pitft35-rpiをcore-image-satoに対応し、pitft3.5を装着した状態でこのイメージを書き込むと…

minicomでCtrl+A

Linuxホストでマイコンボードと接続するときに、 シリアルコンソールが必要になる場合がある。 GtkTermやcuなどが思い浮かぶが、私はminicomを使うことが多い。 ただ、このminicom キーバインディングに少しだけ癖があり、Ctrl+Aがminicomのメニュー表示のた…

raspberrypi2 yoctoでPiTFT3.5 (Console編)

以前にAdafruitのイメージで動かしたあと放置気味だったが、yoctoでPiTFT3.5を動作させたのでメモ。 ドライバについて 今回はmeta-pitft35-rpiというレイヤを作成した。 このレイヤはHX8357Dサポートのパッチをmeta-raspberrypiのカーネルへバックポートして…

githubからパッチをダウンロード

githubからpatchをダウンロードする際に悩んだのでメモ。 githubの差分表示 githubでこんな感じで差分を見るページがある。 https://github.com/mickey-happygolucky/meta-qt5-rpi-eglfs/commit/66d5968cc2490adc562510184018f5cfb466d8f8 そして、これをpat…

raspberrypi2 yoctoでPifi DAC+(HifiBerry DAC+互換)

ハイレゾオーディオの波に乗るために、Pifi DAC+ v2.0を購入した。 実際にはAmazon.co.jpで4000円弱で買うことができた。 RPi2でDACオーディオというと、Volumioばかり出てくるが、 それだと面白みがないので、ここでは当然yoctoで利用する。 Pifi DAC+につ…

raspaberrypi2でcore-image-sato

yoctoでGUIを動かすための基本的なイメージであるcore-image-satoだが、 RPiではすんなりビルドが通らなかったことや、X-Windowsが古い、重いなどのイメージがあり、 RPiのような非力な環境で動かすために、労力を使うメリットを感じなかったため、 特に深追…

fstab uid,gid指定でエラー

OS起動時にHDDをマウントする時に、マウントポイントに指定のUID、GIDの所有権を設定したいというケースではまったのでメモ。 googleで調べた mount時にuidやgidを指定したい場合は/etc/fstabに以下のように書く。 /dev/sdb1 /media/data ext4 uid=1000,gid=…

raspberrypi2 yoctoでalsasink(gstreamer1.0)

前回ALSAで音がなった。 aplay以外のコマンドでも音を鳴らしてみたいのでgstreamerのalsasinkで音を試してみる。 作業環境は、引き続き前回のALSAのものを利用する。 GStreamerのバージョン gstreamerには0.10系と1.0系があり、1.0にバージョンを移行しよう…

raspberrypi2 yoctoでASLA

前回にLinuxのサウンドについてざっくりと書いたので、それを踏まえて今回はALSAのみで音を鳴らしてみる。 ファイル取得 ベース環境 ベースの環境はこれを使う。 meta-local 作業用のレイヤとしてmeta-localを準備する。 ファイルの作成 必要なディレクトリ…

ざっくりとALSAとPulseAudioの関係

RPi2で音を鳴らそうと思うが、その前にALSAとPulseAudioの関係について、ざっくりとまとめる。 Linuxのサウンドシステム Linuxのサウンドシステムは複雑でいろいろなものが入り乱れていてわかりづらい。 詳しいことはここに解りやすくまとまった情報があるの…

raspberrypi2でPiTFT3.5 + Raspbian

3.5インチのPiTFTを購入した。 とりあえず火入れの意味も込めて、RPi2+Raspbianで動作を確認した。 出来合いのイメージを焼いただけなのでなんの面白みもないが、実際にRPi2につけた液晶でGUIが動いているのは少し感動する。 タッチパネルまで動作しているの…

raspberrypi2 yoctoでweston(wayland)

yoctoの環境で作成したwestonのイメージがRPi2で動作したのでメモ。 wayland-eglライブラリが存在しない為それを移植するところが非常に大変だった。 https://github.com/albertd/buildroot-rpiの実装をかなり参考にした。 この方には非常に感謝している。 …

yocto QA Issueのあれこれ

パッケージのbbやbbappendを書いている時にQA Issueでエラーになることがある。 とりあえず解消出来たようなので、今回遭遇したエラーと対処をメモ。 QA Issue: userland rdepends on [package] WARNING: QA Issue: userland rdepends on wayland, but it is…

PNBLACKLISTされたパッケージのビルド

gnome-menus3がDEPENDされているlayerをビルドしようとした時に、以下のエラーが出てハマった。 ERROR: gnome-menus3 was skipped: Recipe is blacklisted: CONFLICT: 24 files are conflicting with 原因 meta-oe/meta-gnome/recipes-gnome/gnome-menus/gno…

raspberrypi2 yocto QtCreatorで開発

前回、yocto向けに開発環境を作成したが、Qtアプリケーションの開発にはQtCreatorを利用したほうが便利。 QtCreatorはQtアプリケーションの開発以外にも高度なデバッグ機能が利用することができる。 RPi2側はQt5が動作する状態になっていればそのまま利用で…

raspberrypi2 yoctoの開発環境の作成

bitbakeでOSイメージを作成してばっかりで、 このOS上で開発する環境を作成していなかった。 このままではyoctoはbitbakeしてOSをSDに書いて終了するものだと思われかねないので、今回はクロスコンパイル環境を作成する。 開発環境の作成方法 yoctoでは開発…

raspberrypi2 RaspiCamでhighgui

前回Qt5+EGLFS環境で動作するOpenCVのHighGuiが動くようになった。 opencv-sampleに収録されているデモアプリケーションの中には 以下のようにカメラを要求するものがある。 This program demonstrated the use of motion templates -- basically using the …

raspberrypi2 Qt5+EGLFSでOpenCVのhighguiを使う

OpenCVのカレントバージョンは2.4系でこれはすでにレシピがある。 作業環境は以前作ったQt5のものをベースに行う。 OpenCVには簡単にウィンドウが扱えるhighguiというモジュールがあり、 そのバックエンドにQtを選択できる。 今回はEGLFSがバックエンドにな…

raspberrypi2 yoctoでQt5 + EGLFS

RPi2でQt5を動かす。 組み込み用途ではQt5はplatformを指定することでX Windows以外の環境でも動かすことができる。 今回はEGLで描画する EGLFS というplatformで動くようにする。 EGLFSについては以下が詳しい。 http://doc.qt.io/qt-5/embedded-linux.html…

raspberrypiでメディアサーバ(完結編)

raspberrypi+yoctoでNAS+メディアサーバを構築した話(その1、その2、その3)の続き。 その際にハマった点や修正方法を記述する。 最終的には採用しなかった修正なども含まれるが、その際は採用しなかった旨を記述する。 なぜyoctoか? yoctoprojectがどういう…

raspberrypi2でyocto

raspberrypi2が手に入ったので火入れ。 でも、yoctoでやりたい。 すでにRPi2対応をしている人がいるようす。 とりあえず、rpi-basic-imageをSDに書き込んで起動するところまで頑張ったのでメモ。 環境構築 ファイルの取得 gitでファイルを取得する。 $ cd ~/…

raspberrypiでメディアサーバ(その3)

raspberrypi+yoctoでNAS+メディアサーバを構築した話(その1、その2)の続き。 その際にハマった点や修正方法を記述する。 最終的には採用しなかった修正なども含まれるが、その際は採用しなかった旨を記述する。 なぜyoctoか? yoctoprojectがどういうもので…

mediatombで「upnp error -203」

mediatombの謎のエラーでハマったのでメモ。 mediatomb起動時に以下のようなログが出て起動に失敗していた。 2015-02-11 16:59:01 INFO: Loading configuration from: /etc/mediatomb/config.xml 2015-02-11 16:59:02 INFO: Checking configuration... 2015-…

可変幅のバイトスワップ

unionに入れてひっくり返したり、マクロでセコセコとシフトしたりするのは よく見かけるけどどれも使いづらいし、バイト長毎に作ったりする必要があったりする。 unionの例 union { struct { uint8_t b4,b3,b2,b1; } b; uint32_t l; }; 使いづらい。 マクロ…

任意のビットを任意のビット幅で取得する。

ビットマスクとシフトを組み合わせて実現してみたのでメモ。 組み込みで何かする場合や、PCでもハードウェアからのデータなどビットでパッキングされたデータを扱う場合に欲しくなる。 マクロの例 普段はマクロで実現したりする。 #define GET_4BITS(v, s) (…

バイナリ列をstd::ifstreamで読み込む。

バイナリのみのデータをstd::ifstreamで読み込む時にはまったのでメモ。 # 意外とというか忘れている。。。 バイナリデータの読み込み(失敗) 例えば32bitのデータが連続している下記のようなデータがある。 test.dat 12345678 00112233 44556677 8899aabb cc…

autotoolsでmake check

テストを実行させるときにmake checkで行うという慣習があるらしく 今さらだがautotoolsでそれを組み込む方法を試してみたのでメモ。 ディレクトリ構成 . ├── Makefile.am ├── configure.ac ├── src │ └ foo.h └── test ├── Makefile.am └── foo_test.cpp sr…

boost program optionsを使ってみた。

まずはチュートリアルを読む。 基本的な使い方 基本的な使い方は以下のようになる。 オプションを定義。"help,h"は「--helpと-h」の意味。 argc, argvをパースして定義したオプションと関連付けし、variable_mapを生成。 variable_mapに、定義したオプション…

raspberrypiでメディアサーバ(その2)

raspberrypi+yoctoでNAS+メディアサーバを構築した話の続き。 その際にハマった点や修正方法を記述する。 最終的には採用しなかった修正なども含まれるが、その際は採用しなかった旨を記述する。 なぜyoctoか? yoctoprojectがどういうものであるか?などに…

Ubuntu 14.04でGLFW3.1

試してみたところ、少し引っかかったのでメモ。 下準備 ここにしたがって下記をインストール。 $ sudo apt-get xorg-dev $ sudo apt-get install glu1-meas-dev インストール $ git clone https://github.com/glfw/glfw.git $ mkdir build $ cd build/ $ cma…

raspberrypiでメディアサーバ(その1)

raspberrypi+yoctoでNAS+メディアサーバを構築した話。 その際にハマった点や修正方法を記述する。 最終的には採用しなかった修正なども含まれるが、その際は採用しなかった旨を記述する。 なぜyoctoか? yoctoprojectがどういうものであるか?などについて…

関数の入り口出口でデバッグログ

関数の入り口と出口でログ出力したいが、 1関数につき必ず2行以上ログのコードを入れる必要がある。 また、途中で抜けた場合など、ケアが難しいケースがある。 boost::scope_exit boost::scope_exitを利用する。 #include <boost/scope_exit.hpp> #define FUNC_IN_OUT_LOG \ std:</boost/scope_exit.hpp>…

markdown記法

現在はemacsのoutline-modeを利用して plain textでメモをまとめているが、blogなどに上げるときに 体裁を整えるのが手間となっている。 markdown記法を使えば、plain textからhtmlなどのマークアップに 簡単に変換できる。 emacsにもmarkdown-mode.elが存在…

mozcで単語登録

意外とぱっと出てこない /usr/lib/mozc/mozc_tool --mode=dictionary_tool 参考 http://sai2s.seesaa.net/article/398560849.html

wget でCRLF -> LF

いろんな方法があると思うが、とりあえずこれで実現できたのでメモ。 wget http://pastebin.com/raw.php?i=LBVNiRXa -O- | tr -d '\r' >somefile

Ubuntu 12.04でのkernelソース

ubuntu 12.04でカーネルのソースが欲しくなった。現在のカーネルのバージョンを調べる $uname -r 3.11.0-19-generic apt-cacheでパッケージを探してみる。 $ apt-cache search linux-source linux-source - Linux kernel source with Ubuntu patches linux-s…