はじめに シリーズ物 Yocto Project Wrynoseでpoky-tinyを試す 環境構築 作業ディレクトリ ~/yocto/wrynoseを作業ディレクトリとする。 $ mkdir -p ~/yocto/wrynose $ cd ~/yocto/wrynose bitbakeリポジトリの取得 bitbake-setupを実行するためにbitbakeのリ…
はじめに bitbake-setupの環境では"MACHINE"や"DISTRO"などの一部の設定にOE_FRAGMENTSが使用されるようになった。 今回はその動作を調べてみる。 bitbake-config-build OE_FRAGMENTSの設定を変更するにはbitbake-config-buildコマンドを使用する。 サブコマ…
はじめに 講師をしているとルートFSのフットプリントの削減方法についてよく聞かれる。 DISTRO_FEATURESやMACHINE_FEATURESの見直しをおすすめすることが多いが、core-image-minimalだともともと小さいのでそこまで劇的に変化しない。 DISTROをpoky-tinyにす…
はじめに シリーズ物 Yocto Project bitbake-setup環境でMilk-V Duo Sを移植 その1 Yocto Project bitbake-setup環境でMilk-V Duo Sを移植 その2 Yocto Project bitbake-setup環境でMilk-V Duo Sを移植 その3 今回カーネルを構築する。 環境構築 カーネルは…
はじめに 未開封のmicro:bit v2が出てきたのでmeta-zephyrで動かす。 micro:bit v2はマシン定義が無いのでその辺も調べる。 シリーズもの Yocto Project Wrynoseでmeta-zephyrを試す 作業環境 前回の環境をベースに作業する。 BitBake環境の設定 作業場所へ…
はじめに Yocto Project 6.0でmeta-zephyrを試してみる。 QEMUでhelloworldのサンプルを動かす。 環境構築 作業ディレクトリ ~/yocto/wrynoseを作業ディレクトリとする。 $ mkdir ~/yocto/wrynose $ cd ~/yocto/wrynose bitbakeリポジトリの取得 bitbake-set…
はじめに OE-Coreではイメージのテストを実行する機能がある。 イメージのテストはQEMUもしくは実機を使用して実行される。 具体的には下記のようなコマンドでテストが実行される。 $ bitbake core-image-minimal -c testimage これをYocto Project 6.0(Wryn…
はじめに シリーズ物 Yocto Project bitbake-setup環境でMilk-V Duo Sを移植 その1 Yocto Project bitbake-setup環境でMilk-V Duo Sを移植 その2 今回はu-bootを構築する。 環境構築 u-bootは現状のmeta-riscv(YP5.3)のものをベースに作業する。 devtool mod…
はじめに シリーズ物 Yocto Project bitbake-setup環境でMilk-V Duo Sを移植 その1 今回は最初のブートローダのであるFSBLを移植する。 YP5.1(styhead)以降ではmilkv-duosのマシン定義も削除され、レシピの内容もMilk-V Duo向けにハードコードされるようにな…
はじめに 前回までYP5.0(scarthgap)のmeta-riscvにあるカーネルにMilk-V Duo S向けのデバイスツリーやdefconfigを移植してきた。 基本的にはmeta-riscvのlinux-milk-duo-devのレシピをベースにしているためベンダ固有のドライバなどが移植済みの古いカーネル…
はじめに Milk-V DUOシリーズ Yocto Project Milk-V DUO Sを動かす Milk-V DUO S Buildroot SDK V2を調べる ここまでの調査で、Scarthgapのmeta-riscvの環境に、Buildroot SDK V2に含まれているMilk-V DUO S向けのデバイスツリーを移植するのがてがたそうだ…
はじめに 前回 Scarthgapのmeta-riscvでMilk-V DUO Sをブートしたが、 Milk-V DUO向けの設定をそのまま使っていてハードウェアの最適化などは行われたいない状態だとわかった。 ちゃんとしたポーティングを行うためにオフィシャルなBSP環境であるBuildroot S…
はじめに Milk-V DUO Sを買って放置していた。 scarthgapのmeta-riscvではmilkv-duosのMACHINEが定義されているので動作を確認してみる。 ハードウェアへの最適化などが行われていないようで、 ブートができるだけで本格的に使用することはできないと思われ…
はじめに 以下の続き YoctoProject bitbake-setupを試す YoctoProject bitbake-setupの基本 YoctoProject bitbake-setup環境でmeta-raspberrypi bitbake-setupが参照するGeneric Configurationの内容を調べる。 Generic Configuration Setupを作成するために…
はじめに 以下の続き YoctoProject bitbake-setupを試す YoctoProject bitbake-setupの基本 bitbake-setupを使用した環境で、サードパーティのレイヤを追加する手順を試す。 今回はmeta-raspberrypiを使用する。 環境構築 作業ディレクトリ ~/yocto/poky-bs…
はじめに YoctoProject bitbake-setupを試すの続き。 bitbake-setupを理解する上で必要となる基本的な要素について調べる。 基本構造 bitbake-setupで管理されるワークスペースは以下の様な構造になっている。 Top Directory ├── Site Configuration File ├─…
はじめに Yocto Project Pokyリポジトリのmasterブランチの更新停止でPokyリポジトリのmasterブランチの更新が停止された後のPokyのセットアップ手順のうち下記について試す。 b) use the new bitbake-setup https://docs.yoctoproject.org/bitbake/dev/bitb…
はじめに Yocto Project Pokyリポジトリのmasterブランチの更新停止でPokyリポジトリのmasterブランチの更新が停止された後のPokyのセットアップ手順のうち下記について試す。 a) switch to individual clones of bitbake, openembedded-core, meta-yocto an…
はじめに 今までYocto ProjectのリファレンスビルドシステムであるPokyのリリースに使用されていた Pokyリポジトリのmasterブランチの更新が停止された。 The poky repository master branch is no longer being updated. You can either: a) switch to indi…
はじめに Yocto Project 4.1(Langdale)からSDK_TOOLCHAIN_LANGSが追加され、 標準SDKにRustやGoのツールチェーンを含むことができるようになった。 執筆時点ではGoについては少し?問題があるので紹介する。 標準SDKへのGoの追加 作成手順 local.confに以下の…
はじめに 前回システムログの不揮発化の方法を調査した。 Yocto Project 5.1(Styhead)の「Removed variables」によると、VOLATILE_LOG_DIR変数は削除され、代わりにFILESYSTEM_PERMS_TABLESを使用しろとなっている。 VOLATILE_LOG_DIR: FILESYSTEM_PERMS_TAB…
はじめに Yocto ProjectでビルドしたPokyのデフォルトではシステムログを保存する/var/logがtmpfs上に作成されるようになっているため、 ターゲットの電源をOFFすると揮発して(削除されて)しまう。 システムログを保持したい場合は不揮発化(non-volatilize)…
はじめに Yocto Projectが使用するBitBakeのレシピ名とパッケージ名について。 混同しがちだけど、知らないとエラーにハマるので整理する。 BitBakeのターゲット 筆者が担当する講座やYocto Projectの解説記事では以下のように説明する。 BitBakeが処理する…
はじめに オープンソースでは要求に応じて、ソースコードを開示する必要がある。 Yocto ProjectではBitBakeで作成されたOSイメージに含まれるすべてのOSSライセンスのパッケージについて ソースコードをアーカイブする機能としてアーカイバを提供している。 …
はじめに ラズベリーパイ3、4などの無線機能付きの機種ではデフォルトではデバッグシリアルが無効化されている。 これは2種類あるUARTのうちPL011をBluetooth制御に割り当てるようになっているため。 ラズベリーパイ4に関してはUART2〜5としてPL011が追加さ…
はじめに Yocto ProjectでビルドしたQEMUはrunqemuで起動できるが、 デフォルトではカーネルからの起動シーケンスが実行される。 u-bootやGRUBなどのブートローダから起動シーケンスを実行できるのでこれを試す。 環境構築 scarthgapを使用する。 作業環境 $…
はじめに ぼやぼやしているうちにYocto Projectも5.2がリリーズ済みとなり、5.1はサポート終了していた。 しかし、Migration notes for 5.1 (styhead)を見ると、do_unpackでのWORKDIRの扱いが変更されたため、これまでの一部のレシピについて互換性がなくな…
ルートFSのサイズが小さいLinuxでは、OSの起動時にRAM上にすべてのファイルを展開することで、 ストレージデバイスに全くアクセスしないシステム構成を捕ることができる。 これはKnoppixやPuppy Linuxなど古くから存在する手法である。下記にRAM上での動作が…
はじめに Yocto ProjectでKakipの野良ビルドを諦めた話(その1) Kakipというボードが一部で話題となっている。 Yocto Projectで野良ビルドすることを目指して作業を開始したが、meta-renesasをビルドするだけで力尽きた。 今回はその続き。 Kakipの起動に必要…
はじめに Kakipというボードが一部で話題となっている。 開発開始当初はYocto ProjectベースでBSPが提供される予定だったが、途中でUbuntuにシフトチェンジしたとのこと。 どうでもいいが筆者は「Yocto Linux」という呼称を認めない。Yocto ProjectはLinuxを…