みつきんのメモ

組み込みエンジニアです。Interface誌で「Yocto Projectではじめる 組み込みLinux開発入門」連載中

2015-01-01から1年間の記事一覧

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でALSA

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

ざっくりとALSAとPulseAudioの関係

(2019/08/30 追記) 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…