みつきんのメモ

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

DEBIX Model Aを動かす

はじめに DEBIX Model Aを購入した。 対応OSにYocto-L5.10.72_2.2.0とあるので買ってみたのだが、ビルド手順が見つからない。 カーネルとu-bootはgithubにある。 u-bootのREADMEに下記の表記が。 これは既存のimx-yocto-bspのレシピを直接編集して、無理やり…

meta-st-stm32mpでの「正しい」wicイメージの作り方

はじめに YoctoProject STM32MP157F-DK2を試すで下記のようなエラーに遭遇した。 | wic.filemap.error: cannot open image file '/home/mickey/yocto/stm32mp15-kirkstone/build/tmp/deploy/images/stm32mp1/st-image-bootfs-poky-stm32mp1.ext4': [errno 2]…

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

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

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

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

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

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

LXDコンテナをホストのネットワークにぶら下げる

はじめに 実験的にコンテナ上にサーバを立てて潰すという作業はよく発生する。 このサーバが、ホストのネットワーク上に単一のマシンとして見えているのが望ましいが 毎度、このあたりの作業が面倒くさい。 ホストにブリッジインターフェースを作成し、それ…

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…

Yocto イメージレシピの調査

はじめに bitbakeでビルド可能なイメージについて調査する。 pokyのmetaレイヤに含まれるものは下記のようになっている。 イメージのレシピ ディレクトリ build-appliance-image_15.0.0.bb recipes-core/images core-image-base.bb recipes-core/images core…

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でダウンロード…

pandocのdockerでEisvogelを使用する

はじめに pandocが提供しているDockerコンテナpandoc/latexをベースにEisvogelを使用できる環境を作成する。 目指すゴールは下記が全て機能すること。 PlantUMLが使用できる Eisvogelを使用してきれいなPDFを出力できる pandoc-crossrefが使用できる [2022/4…

pandoc-crossrefとEisvogelを併用する

はじめに pandoc-crossrefフィルタとEisvogelを併用すると下記のようなエラーが発生する。 Error producing PDF. ! LaTeX Error: Environment lstlisting undefined. See the LaTeX manual or LaTeX Companion for explanation. Type H <return> for immediate help.</return>…

pandoc-crossref + PlantUML

はじめに pandocには図や表、ソースコードを相互参照するための便利な機能として pandoc-crossrefというフィルタある。 PlantUMLで作成した図をpandoc-crossrefで相互参照したい。 以前は PlantUMLの図はテキストで記述するためコードブロックを使用する。 `…

Dockerを使用して比較的新しいpandoc環境を簡単に構築する

pandocは便利で手放せないが、LTSのディストロを使用したりすると、 更新が追いつかなくなる。 自前で環境を作るにも結構手間がかかるため、一度環境を作ってしまうと、 秘伝のタレのように使い続けてしまいがちになる。 そのため、PCを新調したり、OSを入れ…

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

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