みつきんのメモ

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

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

YoctoProject RaspberryPi4でnanbieldを試す

はじめに YoctoProject 4.3(nanbield)がリリースされていた。 実機で動かしたほうが楽しいのでRaspberryPi4 Model Bで試してみる。 作業ディレクトリ 作業ディレクトリは~/yocto/rpi-nanbieldとする。 $ mkdir -p ~/yocto/rpi-nanbield $ cd ~/yocto/rpi-nan…

YoctoProject やってはダメな実装の例

はじめに 実際にgithubで公開されているレイヤで見逃せない悪い実装例があったので紹介する。 特定の個人や団体を批判するものではなく、実装、および設計思想に問題があるというための例示であることを強調しておく。 今回取り上げるのはradxaのmeta-rockch…

tmuxを使えるようにする

はじめに Linuxでコンソールの画面を分割したり、切れたセッションに再アタッチしたり便利そうなtmux。 しかし何も設定しないで使用するとマウスホイールでスクロールしなかったり、スクロールバックて文字列をコピペする方法がわからなかったり、 Ubuntuの…

YoctoProject oe-pkgdata-utilを使ってみる

はじめに YoctoProjectではbitbake以外にもツールを提供している。 その1つにoe-pkgdata-utilが存在する。 パッケージ情報が見れそうなことは伺えるがいまいち使い方がわからない。 今回は逆引き形式で使い方を紹介してみる。 前提 oe-pkgdata-utilはbitbake…

YoctoProject Radxa ROCK 4SEを動かしてみる

はじめに 以前から借りっぱなしで放置されているROCK 4SEをYoctoProjectで動かしてみる。 meta-rockchipについて YoctoProjectで管理されているmeta-rockchipはあまりメンテナンスされていないっぽく、新し目のボードはサポートしていないが、 githubでRadxa…

Yocto QEMUのストレージを拡張する(デバイス追加/wic)

はじめに MACHINE="qemuarm64"などでイメージを作成すると、実機を用意しなくてもYoctoProjectを試せるので便利。 ただ、複数のパーティションを使用したり、ストレージを追加したい場合にぱっとやり方がわからない。 手順を調査したのでメモ。 今回は、ディ…

YoctoProject PREMIRRORとown-mirror

はじめに LTSではないバージョンのYoctoProjectなどで開発を始めたり、プロダクトで使用したためバージョンを固定する必要があったりして、SRC_URIで取得するソースコードをミラーしたいケースがあると思う。 また、企業のネットワークなどでは、そもそもイ…

YoctoProject 4.2(mickledore)をラズベリーパイで試す

はじめに 筆者がぼーっと過ごしているうちに、YoctoProject 4.2(mickledore)がリリースされていた。 のみならず、mickledoreは4.2.1として更新されていた。 いい加減試してみる。 環境構築 作業環境 $ mkdir -p ~/yocto/rpi-mickledore $ cd ~/yocto/rpi-mic…

YoctoProject fitImageを試す

はじめに デバイスツリーとカーネルのイメージが通常別々のファイルとして作成され、u-bootなどのブートローダに設定して起動するケースが多い。 ブートに必要なファイルが複数存在すると管理が煩雑になるため、1つのファイルにまとまっている方が扱いやすい…

YoctoProject u-bootのブートスクリプトを使う

はじめに u-bootではシステム起動時に決まった順番で処理を自動実行させるために boot.scrやuEnv.txtなどのブートスクリプトを使用することができる。 extlinux.confではカーネルやデバイスツリー、initramfsなどを任意のものに差し替えることはできるが、 …

YoctoProject u-bootのextlinux.confを使う

はじめに ブートローダにu-bootを使用する場合、カーネルやデバイスツリーを指定するためにextlinux.confを使用することができる。 このファイルをu-bootが見つけると、そこに記述されているカーネルやデバイスツリーを読み込むようになる。 u-bootのコンソ…

秋月の「アレ」をYoctoProjectで遊ぶ(SPIフラッシュ)

はじめに これまでの「アレ」 秋月の「アレ」をYoctoProjectで遊ぶ(u-boot起動まで) 秋月の「アレ」をYoctoProjectで遊ぶ(Linux起動まで) あまり情報がなかったSPIフラッシュを使えるようにしてみる。 SPIフラッシュ シルクを読むと、25Q128JVSQで有ることが…

秋月の「アレ」をYoctoProjectで遊ぶ(Linux起動まで)

はじめに 秋月の「アレ」をYoctoProjectで遊ぶ(u-boot起動まで)の続き。 u-boot起動まで行くがLinuxカーネルが起動しない。 Linuxカーネルのレシピ コケる原因 野生のプロがすでに原因を突き止めてた。 panic のstack dumpを見ていたら、BBBはAM3359, これは…

秋月の「アレ」をYoctoProjectで遊ぶ(u-boot起動まで)

はじめに すべては「ふが」のアイコンでおなじみの某氏からのこんなメッセージから始まった。 本稿の「アレ」とは秋月電子で売っている「無線モジュール付きSoc基板+白色プラスチックケース」という商品のことだ。この時点では購入もしておらず、手を出す気…

YoctoProject kirkstone + RPi4Bでdm-verity環境を試す

はじめに YoctoProject dm-verity環境を試すでYoctoProjectを使用してqemu環境でdm-verityを試した。 今回は実機で使用する際にどの様なことが必要か考えてみる。 ターゲットはラズベリーパイ4 モデルB 使用するブランチはkirkstone 環境構築 作業環境 作業…

YoctoProject dm-verity環境を試す

はじめに 最近はセキュリティ的な需要で、YoctoProjectを使用した環境でもルートFSをdm-veirtyで検証したいという要望を聞くようになった。 meta-securityを使用することで、dm-verityを使用したルートFSの検証を実装することができる。 恐らく、もっとも簡…

YoctoProject ラズパイ4でdocker

はじめに 筆者がDEBIXでぐずぐずやっている間にTLに下記のようなものが流れてきた。 そういえば、yoctoにdockerって含めることはできるのだろうか?docker上でyoctoではなく、yoctoの中にdockerを入れるイメージ。recipe-docker*.bbとかってこと。— ひでみ (…

YoctoProject DEBIX Model Aのカーネルを5.15に対応する

はじめに DEBIX Model AをYoctoProjectで使いやすくするためにmeta-debixを作成した。 YoctoProject DEBIX Model Aを動かす YoctoProject meta-debixをkirkstoneに対応する u-bootとカーネルは、DebixのGitHubリポジトリで公開されているものを使用していた…

YoctoProject meta-debixをkirkstoneに対応する

はじめに YoctoProject DEBIX Model Aを動かすで作成したmeta-debixはhardknottのみに対応しているがkirkstoneなどでも使用したい。 カーネルとu-bootはdebix提供のものに固定してkirkstoneに対応する。 そのためには下記のようなことを行う。 u-boot,kernel…

YoctoProject DEBIX Model Aを動かす

はじめに DEBIX Model Aを動かすではbitbakeで吐き出したイメージを公式の手順を少しアレンジしてDEBIX Model Aを動かした。 今回はbitbake一発でイメージを出力できるようにする。 公式のカーネル、u-bootのリポジトリをそのまま使用するレイヤを作成するた…

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はカーネル…