読者です 読者をやめる 読者になる 読者になる

raspberrypi3 yoctoでavahi

avahiを使うと、DHCPなどでIPアドレスが一定しない環境でも、hostname.localのように固定的な名前でネットワーク越しにアクセスできるようになる。 avahi自体はzeroconfのLinux向けの実装のことらしい。これが、yocto環境でも使えるということなので、試して…

meta-raspberrypi mortyでcore-image-satoが起動できない時の対処 その2

先日の記事の続き。 vc4graphicsを有効化した状態でこれをcocopar 5 インチIPSハイビジョンLCD ディスプレイで動かそうとすると、画面が真っ黒になった。 調査したところ、cocoparのLCDのようにEDIDを取得できないデバイスの場合KMSの初期化で弾かれてしまい…

yocto /lib/firmware以下へのファイルの追加

通常のレシピによるインストールではrootfsに反映されない 以前は、各レシピでdo_install と FILES_%{PN}で/lib/firmwareにファイルを追加すれば、 問題なくrootfsに反映されていたが、oe-coreにlinux-firmware_git.bbが導入されてから、状況は一変した。 li…

meta-raspberrypi mortyでcore-image-satoが起動できない時の対処

素の状態でbitbake core-image-satoで作成したイメージを起動すると、 真っ黒い画面にマウスカーソルのみが表示されるという状態になる。 シリアルコンソールでログインし、/var/log/Xsession.logを表示したところ下記のようになっていた。 $cat Xsession.lo…

ConnectCore i.MX6UL スターターキット: PiTFT3.5を動かす

ConnectCore i.MX6ULスターターキットの続き その1 その2 その3 その4 その5 PiTFT3.5 PiTFT3.5をccimx6ul starterのラズベリーパイ互換ピンヘッダに実装して動かしてみる。 meta-pitft35-digiの使用 ccimx6ul starterでPiTFT3.5を使用できるようにするため…

ConnectCore i.MX6UL スターターキット: connmanによるWifi設定

ConnectCore i.MX6ULスターターキットの続き その1 その2 その3 その4 ここでは/etc/wpa_supplicant.confや/etc/network/interfacesを直接編集する方法が記載されているが、 YoctoProjectではconnmanが簡単に使用できるため、connmanを使用してWifiを設定す…

ConnectCore i.MX6UL スターターキット:デバイスツリーについて

ConnectCore i.MX6ULスターターキットの続き その1 その2 その3 bitbakeを実行すると、下記のデバイスツリーファイルが生成される。 zImage-imx6ul-ccimx6ulstarter.dtb zImage-imx6ul-ccimx6ulstarter-wb.dtb zImage-imx6ul-ccimx6ulstarter-id129.dtb この…

ConnectCore i.MX6UL スターターキット:マイクロSDカードからLinuxを起動する

ConnectCore i.MX6ULスターターキットの続き その1 その2 パーティション作成 ツールでSDカードのメディアに次のようにパーティションを作成する。 ラベル サイズ フォーマット boot 256M ext4 rootfs 残り全部 ext4 gpartedのインストール Ubuntu16.04では…

ConnectCore i.MX6UL スターターキット:ネットワーク越しにLinuxを起動する

前回の続き。 次のような構成でLinuxを起動する。 コンポーネント 読み込み方法 u-boot NANDフラッシュ(デフォルト) linuxカーネル tftpサーバ デバイスツリー tftpサーバ rootfs NFS tftpサーバ Ubuntu16.04では次のように設定する。 インストール $ sudo a…

ConnectCore i.MX6UL スターターキットで遊ぶ

DIGIのConnectCore i.MX6UL スターターキットをチップワンストップで購入した。 このボードはラズベリーパイシリーズの40ピンのGPIOヘッダと互換のピンヘッダを搭載している。 つまりハードウェアレベルではラズベリーパイのHATやLCDなどのデバイスが使用で…

mortyでPandaboard ES Rev.B3

今更のPandaBoard ESをmortyで試してみる。 手元にあるのは悪名高きRev.B3。 Rev.B3はElpidaのDDRを搭載しており、タイミングなどの設定が他のリビジョンと異なるため、 Pandaboard ESの他のリビジョンで動作するOSイメージをそのまま使用することができない…

raspberrypi3 meta-raspberrypiでuartコンソール

2017/01/18修正 ラズベリーパイ3にシリアルコンソールでログインしたい。 少し古い情報だと、ラズベリーパイ3はオンボードのBluetoothの影響で、すこし複雑な設定を行う必要があるとなっているが、最近のラズベリーパイ3向けのカーネルでは、config.txtにena…

yocto raspberrypi3でmorty

ちょっと時間が経ってしまったが、yocto 2.2(morty)がリリースされたので、raspberrypi3で動かしてみる。 ベース環境の取得 $ git clone git://git.yoctoproject.org/poky.git -b morty $ cd poky $ git clone git://git.yoctoproject.org/meta-raspberrypi …

yocto meta-raspberrypi3でVC4 graphics driverを試す

このように、RaspbianではVC4のgalliumドライバが使用できていたのだが、 最近、meta-raspberrypiでもこの対応が入ったので試してみる。 local.confにMACHINE_FEATURES += "vc4graphics"の行を追加することで、galliumドライバが有効になり、X11環境からOpen…

raspberrypi3 yoctoでSSD1306 OLEDディスプレイを動かす

アマゾンで安価に入手できるOLEDディスプレイを購入した。 I2Cで、VCC、GND、SCL、SDAの4本のみの結線で使用できる。 制御用のICはSSD1306とのこと。 このデバイスはArduinoなどの電子工作用となっているが、意外とラズベリーパイでの動作報告が見当たらな…

raspberrypi3 yoctoでkernel4.8を試す

インターフェース11月号の記事で、linuxカーネルのバージョン4.8からラズベリーパイ3の64ビットが対応されるという情報があった。 筆者が紹介したカーネルは、Electron752さんが4.5および4.6のカーネルに64ビット対応したものだったので、今回はもともと64ビ…

raspberrypi3 yocto PiTFT3.5を赤く染める(SDKの作成)

先日の記事の最後で、「前回の記事で作成したfirst_window.cのコンパイル結果を実行すると、PiTFT35が赤く染まる」と書いたが、具体的な手順について解説する。 まずはじめに環境を整える必要がある。 PiTFT35の手順でmeta-pitft35-rpiのビルド環境を作成 rp…

raspberrypi3 yoctoでfbcp

PiTFTなどSPI接続のLCDではGPUを使用した描画処理は行えない。 そのためOpenGLESなどのアプリケーションはPiTFTでは使用できない。 しかし、fbcpを使用するとこの問題が解決できる。 fbcpは「Framebuffer Copy」のことで、GPUに描画されているデータをSPI側…

raspberrypi3 yoctoでPiTFT35

以前PiTFT35をyoctoで動作させるためにmeta-pitft35-rpiを作成した^1が、 最近のmeta-raspberrypiでは動作しなくなっていた。 一度、リポジトリの方に問い合わせが来たが、その人がうちのパッチをまとめて(勝手に)meta-raspberrypiにPRを送っていた。 meta-r…

DragonBoard 410cでYocto

DragonBoard 410cを借りることができた。 実はかなり前から借りていたのだが、個人的に忙しく触る時間が作れないでいた。 このボードは、RaspberryPi3よりも前に出回っていて、かつ、Cortext-A53をコアに搭載しており、WifiもBluetoothもオンボード。 借りた…

recipetoolの使い方(yoctoでmjpg-streamer)

raspberrypiにUVCカメラをつけて、HTTPでストリーミングを行いたいと考えた。 mjpg-streamerを使用することにしたが、 mjpg-streamerはレシピ化されていないため、レシピを自作する必要があった。^1 recipetoolの使用 レシピを作成する場合、ゼロから作成す…

raspberrypi2でMPDサーバ その2

raspberrypi2+DACでMPDサーバを作成する。 今回は作成済みレイヤの使用方法。 レイヤを作成する方法はこちら 機能(おさらい) windows10で共有しているフォルダから音楽ファイルを参照 MPDサーバで音楽ファイルを再生 SYSTEMDを使用 ネットワーク設定にはco…

raspberrypi2でMPDサーバ

raspberrypi2+DACでMPDサーバを作成する。 今回は作成済みレイヤの使用方法ではなく、レイヤを作成する方法をまとめてみる。 作成済みレイヤの使用方法はこちら 機能 windows10で共有しているフォルダから音楽ファイルを参照 MPDサーバで音楽ファイルを再生 …

raspberrypi3 yocto 64bit kernel

raspberrypi3のCPUのコアはCortex-A53のため、64bitコードを動作させることができる。 しかし、オフィシャルでリリースしているカーネルは現状32bit版のみとなっている。 探してみたところ、すでにraspberrypi3のカーネルをaarch64で動くようにした猛者がい…

raspberrypi3 yocto2.1

やや時間が経ってしまったがyoctoの2.1がリリースされた。 コードネームは「Krogoth」 RPi3で動作を確認してみる。 作業ディレクトリ 今回は「~/work/yocto/rpi」で作業を行う。 また、ソースコードなどダウンロードしたデータを格納するディレクトリを「~/w…

pokyでWindowsの共有フォルダをマウントできない

pokyでWindowsの共有フォルダをマウントできないケースがあった。 同じフォルダをUbuntuマシンからmountすると成功するためWindows側の設定は問題なさそう。 例えば下記のような感じだ。 mount -t cifs -o username=mickey //192.168.21.XX/Music /mnt/music…

raspberrypi3のオンボードのbluetoothをRaspbian以外のOSで使用する方法

poky(yocto)などのRaspbian以外のOSでRPi3のオンボードのbluetoothを使用したいと思うケースは多いと思う。 しかし、現時点(20160329)でこれらのOSではおそらくbluetoothはそのままでは機能しない。 (少なくともmeta-raspberrypiの)カーネルからデバイスが見…

yocto master(20160323時点)でsystemd-networkdでエラー

先日、jethroでsystemd-networkdを有効化する方法を紹介したが、このままmasterに適用しても、systemd-networkdの起動に失敗する。 $ systemctl status systemd-networkd * systemd-networkd.service - Network Service Loaded: loaded (/lib/systemd/system…

raspberrypi3でyocto

技適取得済みのRPi3が入手できた。 箱に技適マークが確認できる。 基板はこんな感じ。 meta-raspberrypiもmasterであればRPi3に対応しているようなので動かしてみる。 作業ディレクトリの作成 作業ディレクトリは~/rpi3とする。 $ mkdir ~/rpi3 && cd ~/rpi3…

yocto(jethro)でsystemd-networkdを有効化する

systemdを組み込んだだけだと、ネットワークインターフェイスが有効化されない。 systemdにはネットワークインターフェイスの設定を行うsystemd-networkdが存在するが、 yoctoのsystemdのレシピではデフォルトでは組み込まれない。 connmanを追加する方法も…

connman バージョン1.30以前の落とし穴

システム起動時にNFSやCIFSでリモートのディレクトリをマウントしたい場合などは 確実にネットワークがオンラインになっている必要がある。 ネットワークがオンラインになる前にマウントを試みても失敗するためだ。 systemdでネットワークインターフェイスが…

connman

systemd環境でも動作するネットワークマネージャとしてconnmanというものがある。 使い方についてはこちらが詳しい。 インストールするにはlocal.confに下記を追加する。 IMAGE_INSTALL_append = " connman" bitbakeしてイメージを焼いたところ、boot時にネ…

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用のもののみ用意されていたというだけの事…

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

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

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…

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を装着した状態でこのイメージを書き込むと…

raspberrypi2 yoctoでPiTFT3.5 (Console編)

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

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のような非力な環境で動かすために、労力を使うメリットを感じなかったため、 特に深追…

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を準備する。 ファイルの作成 必要なディレクトリ…

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 …