yocto
はじめに シリーズもの。 yoctoでコンテナイメージを取り込む(その1) 前回、コンテナを組み込むためのレシピを作成した。 今回は下記の構成でコンテナを組み込む方法を検討する。 コンテナ タイミング podmand pkg_postinst_ontarget コンテナ dockerと比較…
yoctoでコンテナイメージを取り込む(その1) はじめに 前回作成したイメージをbitbakeで作成するイメージに取り込む方法を考える。 理想は、bitbakeした時点でイメージがdockerやpodmanにインポートされた状態になり、 初回起動時のdocker imagesやpodman ima…
はじめに Yocto Projectではmeta-virtualizationでdockerなどのコンテナや仮想化に関する機能を提供している。 dockerを組み込むことは YoctoProject ラズパイ4でdocker で行ったが、コンテナ用イメージ自体を作成することもできるようになっている。 bitbak…
はじめに YoctoでROS2入門シリーズ YoctoでROS2に入門する(その1) YoctoでROS2に入門する(その2) 前回作成したscarthgap+humbleの環境向けに標準SDKを作成してROS2ノードをビルドできるようにする。 全体の流れ ROS2ノードのためのワークスペースなどを作成…
はじめに 前回はkasを使用してビルド環境を構築した。kasが強力なので使いやすい反面、実際に何が行われているか分かりづらく、トラブルシュートやカスタマイズをするための知識が得づらくなっている。 今回はkasを使用せずにビルド環境を構築する。 環境構…
はじめに ロボット制御のソフトウェアを開発するのにROSが有名である。 ROSはLinux上で動くミドルウェアとなっている。なのでYocto Projectでも使える。 Yocto Projectのためにmeta-rosというものが存在する。 環境構築も含めて全く触ったことがなかったので…
はじめに 前回pythonのサンプルプログラムを作成するためにpoetryを使用したが、あまりにも素人過ぎていろいろ雑だったのでもう少し調べる。 環境 Yocto Project VS Code連携機能を試す(C/C++)の環境を使用する。 poetryのプロジェクト poetry poetryはpipで…
はじめに 前回ではVS CodeでC/C++プログラムをデバッグする機能をためした。 今回はPythonのプログラムのデバッグを試してみる。 ベースの環境は前回のものを使用する。 pythonプログラム poetry pythonのパッケージを作成するには自前でsetup.pyなどを書く…
はじめに ScarthgapからVS Codeを使用してプログラムをデバッグする機能が実装された。 この機能を使用すると、VS Codeで実機上のプログラムにブレークポイントを貼ったり変数を見たり、 ソースコードでレベルのデバッグが可能となる。 ユーザーランドのプロ…
はじめに 前前回 Scarthgapのリリースに伴うbitbake-layersの新機能を紹介した。この機能がかなり強力なので具体的な例を示してみる。 今回紹介する機能 Scarthgapで追加された下記のサブコマンドについて紹介する。 save-build-conf save-build-conf このコ…
はじめに 前回 Scarthgapのリリースに伴うbitbake-layersの新機能を紹介した。この機能がかなり強力なので具体的な例を示してみる。 今回紹介する機能 Scarthgapで追加された下記のサブコマンドについて紹介する。 create-layers-setup create-layers-setup …
はじめに 4/30にKirkstoneの次のLTSとなるScarthgap(YP-5.0)がリリースされた。 LangdaleからNanbieldまででレシピのバージョンアップだけでなく、機能の追加などが行われているのでKirkstoneと比較すると結構便利になっている。 大きい点としてはSDKでRust…
はじめに 前回はunix domain socketでローカルPC上でsstate-cacheを共有した。 今回はリモートPCでsstate-cacheを共有してみる。 bitbake-hashservの実行 サーバのIPアドレス リモートPCから接続するためにIPアドレスを決めておく必要がある。 今回は192.168…
はじめに bitbakeではShared State Cache(sstate-cache)という仕組みを持っていて、今回ビルドしたいものが前回ビルドしたものと変更がなければ、成果物をそのまま再利用するようになっている。 手っ取り早い方法は複数のビルドディレクトリのlocal.confで設…
はじめに 下記ではdevtoolについて解説してきた。 YoctoProject devtoolを使ってみる(add編) YoctoProject devtool addでローカルのソースをレシピ化することを考える devtoolでは以下のことができる。 レシピの新規作成 レシピの編集 レシピのアップグレー…
はじめに devtool addはレシピ作成の大半の処理をrecipetool createで行っているが、 どちらのツールもネットワーク越しに公開されているソースコードからレシピを作成することを前提としている。 つまり、ローカルストレージ上にあってネットワーク上で公開…
はじめに YoctoProjecではdevtoolというツールを提供している。 このツールはbitbake環境か拡張SDKの環境で使用することができる。 devtoolには様々なサブコマンドが用意されており、次のようなことができるようになっている。 レシピの新規作成 レシピの編…
はじめに YoctoProjectでストレージに書き込んだイメージの初回起動時にのみ実行される処理を記述する。 実際にはイメージ作成処理のPostProcessを起動時まで遅延させているだけなのだが、 以前に実装した「YoctoProject 最後のパーティションを目一杯まで広…
はじめに YoctoProject 4.3(nanbield)がリリースされていた。 実機で動かしたほうが楽しいのでRaspberryPi4 Model Bで試してみる。 作業ディレクトリ 作業ディレクトリは~/yocto/rpi-nanbieldとする。 $ mkdir -p ~/yocto/rpi-nanbield $ cd ~/yocto/rpi-nan…
はじめに 実際にgithubで公開されているレイヤで見逃せない悪い実装例があったので紹介する。 特定の個人や団体を批判するものではなく、実装、および設計思想に問題があるというための例示であることを強調しておく。 今回取り上げるのはradxaのmeta-rockch…
はじめに YoctoProjectではbitbake以外にもツールを提供している。 その1つにoe-pkgdata-utilが存在する。 パッケージ情報が見れそうなことは伺えるがいまいち使い方がわからない。 今回は逆引き形式で使い方を紹介してみる。 前提 oe-pkgdata-utilはbitbake…
はじめに 以前から借りっぱなしで放置されているROCK 4SEをYoctoProjectで動かしてみる。 meta-rockchipについて YoctoProjectで管理されているmeta-rockchipはあまりメンテナンスされていないっぽく、新し目のボードはサポートしていないが、 githubでRadxa…
はじめに MACHINE="qemuarm64"などでイメージを作成すると、実機を用意しなくてもYoctoProjectを試せるので便利。 ただ、複数のパーティションを使用したり、ストレージを追加したい場合にぱっとやり方がわからない。 手順を調査したのでメモ。 今回は、ディ…
はじめに LTSではないバージョンのYoctoProjectなどで開発を始めたり、プロダクトで使用したためバージョンを固定する必要があったりして、SRC_URIで取得するソースコードをミラーしたいケースがあると思う。 また、企業のネットワークなどでは、そもそもイ…
はじめに 筆者がぼーっと過ごしているうちに、YoctoProject 4.2(mickledore)がリリースされていた。 のみならず、mickledoreは4.2.1として更新されていた。 いい加減試してみる。 環境構築 作業環境 $ mkdir -p ~/yocto/rpi-mickledore $ cd ~/yocto/rpi-mic…
はじめに デバイスツリーとカーネルのイメージが通常別々のファイルとして作成され、u-bootなどのブートローダに設定して起動するケースが多い。 ブートに必要なファイルが複数存在すると管理が煩雑になるため、1つのファイルにまとまっている方が扱いやすい…
はじめに u-bootではシステム起動時に決まった順番で処理を自動実行させるために boot.scrやuEnv.txtなどのブートスクリプトを使用することができる。 extlinux.confではカーネルやデバイスツリー、initramfsなどを任意のものに差し替えることはできるが、 …
はじめに ブートローダにu-bootを使用する場合、カーネルやデバイスツリーを指定するためにextlinux.confを使用することができる。 このファイルをu-bootが見つけると、そこに記述されているカーネルやデバイスツリーを読み込むようになる。 u-bootのコンソ…
はじめに これまでの「アレ」 秋月の「アレ」をYoctoProjectで遊ぶ(u-boot起動まで) 秋月の「アレ」をYoctoProjectで遊ぶ(Linux起動まで) あまり情報がなかったSPIフラッシュを使えるようにしてみる。 SPIフラッシュ シルクを読むと、25Q128JVSQで有ることが…
はじめに 秋月の「アレ」をYoctoProjectで遊ぶ(u-boot起動まで)の続き。 u-boot起動まで行くがLinuxカーネルが起動しない。 Linuxカーネルのレシピ コケる原因 野生のプロがすでに原因を突き止めてた。 panic のstack dumpを見ていたら、BBBはAM3359, これは…