みつきんのメモ

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

yocto

YoctoProject systemdでシステム起動時間計測

はじめに 前回、systemdのサービスを追加して、システム起動時にストレージの最後のパーティションを目一杯まで拡張するようにした。 このサービスはパーティションを拡張するためのシステムの初回起動時だけ実行されればよいのだが、 2回目以降のために、サ…

YoctoProject 最後のパーティションを目一杯まで広げる

はじめに YoctoProjectではwicツールを使用することで、SDなどのストレージに直接書き込めるイメージを作成することができる。 wicイメージを作成する時点では書き込むストレージのサイズがわからないため、基本的には必要最低限のサイズでイメージは作成さ…

YoctoProject RAUCと実機でOTAアップデート

はじめに IoTではよく見かける、遠隔から機器のファームウェア(ここではLinux)をアップデートする仕組みがある。 これらの仕組みはOver-The-Air Update(OTAアップデート)と呼ばれる。 組み込みLinux向けのOTA Updateのためのソフトウェアはいくつかある。Yoc…

YoctoProject STM32MP157F-DK2を試す

はじめに お年玉でSTM32MP157F-DK2を購入した。 この製品、Cortext-A7とM4ヘテロ構成のSoCでスペック的にはあまり強くなさそうなんだけど、 BSPをみると、なんだかコア間の連携のための仕組みが作り込まれててちょっとおもしろそう。 値段も15000〜16000程度…

YoctoProject initramfsでOverlayFS

はじめに YoctoProject ラズベリーパイ4でinitramfsではラスベリーパイ4の実機でinitramfsを試した。ただ、initramfsのシェルにフォールバックするだけだったので、今回は少し実践的な例を示す。 具体的にはYoctoProject kirkstoneでリードオンリーのファイ…

YoctoProject ラズベリーパイ4でinitramfs

はじめに YoctoProjectでinitramfs入門でinitramfsの使用方法を調査した。今回は実機環境でinitramfsを使用してみる。 ターゲットはラズベリーパイ4。使用するブランチはkirkstone。 環境構築 作業環境 $ mkdir -p ~/yocto/rpi-kirkstone $ cd ~/yocto/rpi-k…

YoctoProjectでinitramfs入門

はじめに YoctoProjectで作成するLinuxイメージでもinitramfsを使用することができる。 これまであまりつかってこなかったので入門してみる。 使用するバージョンはkirkstone(4.0)。 環境構築 今回はqemuarm64のターゲットで実験する。 initramfsはカーネル…

YoctoProject langdaleのRust事情

はじめに 以前にyoctoでもRustで、YoctoProjectで作成したLinuxにRustのプログラムを組み込む方法を紹介した。当時はmeta-rustを使用する必要があり、かつSDKでRustのプログラムをビルドすることもできなかった。 この記事が2019年で、あれから数年経ちhonis…

kirkstone以前の環境でOverlayFSを簡単に使う方法を考える

はじめに 前回はkirkstoneでリードオンリーなファイルシステムを作成して、OverlayFSで書き込み可能な領域を追加する方法を紹介した。 kirkstoneではoverlayfs.bbclassやoverlayfs-etc.bbclassを使用することができるが、 それらは以前のバージョンのYoctoPr…

YoctoProject kirkstoneでリードオンリーのファイルシステム

はじめに 2021-03-25 Yocto リードオンリーなルートファイルシステムを構築するでリードオンリーなシステムの構築方法をまとめたが、情報が古くなってきたのでまとめ直す。 ターゲットボードはラズベリーパイ4、使用するYoctoProjectのバージョンはkirkstone…

YoctoProject runqemuした時の制御キー

はじめに QEMUはとても便利だが、Ctrl+aがデフォルトで制御キーに割り当てられているため、 シェル上でカーソルを先頭に移動したい時にいつもイラッとする。 QEMU自体の制御キーの変更の仕方は下記に解説があった。 qemuの制御キーバインド変更 runqemuでの…

bitbakeで作成したパッケージをapt(ただしデバッグ用途に限る)

はじめに 前回dnfについて書いたが、今回はaptについて紹介する。 YoctoProjectではレシピからパッケージを作成しそれらをルートFSにインストールすることでディストリビューションを構築している。 IMAGE_FEATURESにpackage-managementが含まれている場合、…

bitbakeで作成したパッケージをdnf(ただしデバッグ用途に限る)

はじめに 「ただしイケメンに限る」ていで書き始める。 YoctoProjectではレシピからパッケージを作成しそれらをルートFSにインストールすることでディストリビューションを構築している。 IMAGE_FEATURESにpackage-managementが含まれている場合、パッケージ…

YoctoProject 4.1(langdale)をためす

はじめに 2022/10/24付でYoctoProjct 4.1 langdaleがリリースされていたので試す。 ターゲットはラズベリーパイ4 環境を構築する 作業環境 $ mkdir -p ~/yocto/rpi-langdale $ cd ~/yocto/rpi-langdale pokyの取得 $ git clone -b langdale git://git.yoctop…

YoctoProject コンソールでrunqemu

はじめに YoctoProjectではqemuのイメージをビルドした場合、runqemuコマンドで実行することができる。 基本的には、ウィンドウが生成されその中に画面が表示される。 sshなどで接続したりして、qemuの画面表示をコンソールに出力したい場合などの方法を調査…

yocto raspberrypi4でNFSブート

はじめに ラズベリーパイシリーズで、ルートファイルシステムをNFSでマウントする。 以前にyocto raspberrypi3でNFSブートの記事を書いたが、 最近のmeta-raspberrypiでは作法が変わっているので焼き直し。 本稿で説明するのはyoctoの作法ではなくmeta-raspb…

kasを便利に使う

はじめに bitbakeをラップして、操作を簡略化するためのツールとして以前にも何回か取り上げたkas Yocto meta-raspberrypi環境の作成にkasを使ってみる https://mickey-happygolucky.hatenablog.com/entry/2020/11/18/112507 Yocot Project CROPSを拡張してk…

YoctoProject wic入門

はじめに YoctoProjectではbitbakeで生成された成果物をもとに、SDカードなどに直接書き込むことができるディスクイメージを作成するため、 wicというコマンドを提供している。ヘルプにwicは次のようなものだという記載がある。 The 'wic' command generates…

YoctoProject LICHEE RV DOCKを動かす

はじめに SiPEED LICHEE RV DOCKが転がっている。 これにはAllwinner D1が搭載されている。meta-riscvのマシン定義にnezha-allwinner-d1があるので試してみる。 環境を構築する 作業環境 $ mkdir -p ~/work/yocto/nezha-kirkstone $ cd ~/work/yocto/nezha-k…

Yocto Project Kirkstone(4.0) タスクのネットワークアクセス制限の実現方法

はじめに 前回で、Kirkstoneではdo_fetch以外のタスクからは原則ネットワークアクセスができなくなっていることについて調査した。 Release 4.0 (kirkstone)には下記のように記載があり、カーネル機能を使用しているとのことだったが、具体的にどのような機…

Yocto Project Kirkstone(4.0) do_fetch以外でのネットワークアクセスについて

はじめに GW前にYoctoProject 4.0(kirkstone)がリリースされた。 変更点の詳細はRelease 4.0 (kirkstone)を参照。 使ってみようと思っていたら、ツイッターで下記のような情報が流れてきた。 yocto 4.0になってから、cmakeのexternal_projectでダウンロード…

Yocto Honister ラズパイ4でVulkanデモプログラムを動かしてみる

はじめに なんとなく、Raspberry Pi 4 で Vulkan を試すと同様のことをPokyでもやってみた。 使用するのはラズベリーパイ4 動かすデモプログラムはSaschaWillems/Vulkan。これはVulkanのデモとしては有名なものらしい。 run_crops.sh(余談) gistに置いた。 …

Yocot Project CROPSを拡張してkasを使ってみる

はじめに CROPSを使用すると、ホスト環境の差異を気にせずにbitbakeができるようになるので 非常に便利だが、たまにhosttoolsを追加したりCROPSのDockerイメージを拡張したいケースがある。 その際にCROPSの提供物を直接編集することなく、Dockerイメージを…

Yocto Project CROPSでmeta-riscvをビルドしてみる

はじめに "Yocto Project CROPSを使ってみる"を拝見して、、、Fedoraのpodmanでもできました。https://t.co/YGURc1j6hz— nb.o (@Nextremer_nb_o) February 9, 2022 私の記事を参考にして、meta-riscvをビルドしようとしたけどうまくいかないらしかったので試…

Yocto Honister ラズパイ4でTPMエミュレータを使ってみる

はじめに Yocto ProjectでもいくつかのレイヤでTPMをサポートしている。 ラズベリーパイシリーズはTPMモジュールは搭載されておらず、外付けのモジュールを使用するか エミュレータを使用する必要がある。 meta-security配下にあるmeta-tpmではTPMエミュレー…

Yocto Project CROPSでmeta-raspberrypiをビルド

はじめに 前回CROPSを動かしてみた。 CROPSでmeta-raspberrypiをビルドしてみる。今回はラズベリーパイ4を使用する。 run_crops.sh 今回も前回作成したrun_crops.shを使用する。 #!/bin/sh cmd="source /workdir/poky/oe-init-build-env" if [ $# -gt 0 ] ; …

Yocto Project HONISTERの注意点

はじめに 最近やっと時間が取れるようになって(なってない)、HONISTERをいじり始めた。 初っ端から下記のようなエラーが発生して面食らった。 ERROR: Variable DISTRO_FEATURES_append contains an operation using the old override syntax. Please convert…

Yocto Project CROPSを使ってみる

はじめに Yocto Projectではbitbakeを実行するためのDockerコンテナを提供している。 そのコンテナはCROss PlatformS(CROPS)と呼ばれている。CROPSの詳細はSetting Up to Use CROss PlatformS (CROPS)を参照のこと。 使い方 使い方についてのざっくりな説明…

Yocto Zephyrアプリケーションのコンフィグを変更する

はじめに YoctoでビルドするZephyrアプリケーションのコンフィグを設定する方法を調べた。 micro:bitの5x5 LEDを有効化する。 最終的にはmeta-armの修正が必要となった。 作業環境はYocto Zephyrに独自のアプリケーションを追加してみるを使用する。 環境変…

Yocto Zephyrのアプリケーションをqemu + gdbでデバッグ

はじめに Yocto ProjectでビルドしたZephyrのアプリケーション(elf)をqemuとgdbでデバッグしてみる。 環境 下記で作成した環境をベースに作業する Yocto BBC micro:bit V1向けのZephyrを試してみる Yocto Zephyrに独自のアプリケーションを追加してみる gdb-…