[NXP プロセッサー 初心者ガイド 7] | [NXP プロセッサー 初心者ガイド 9] | ||
NXP プロセッサー 初心者ガイドまとめ | NXP プロセッサー実機検証ガイド まとめ |
もくじ
1. はじめに
NXP のプロセッサー i.MX シリーズの 組み込み Linux OS の開発は Yocto Project を使用します。
この記事は Yocto Project で開発する際の TIPS をまとめています。
実際に開発する際の参考にしてください。
TIPS は随時追加していきます。
下記ユーザーガイドとコミュニティー情報も併せてご覧ください。
参考:i.MX Yocto Project User's Guide (IMXLXYOCTOUG)
参考:Yocto Linux BSPのビルド時におけるTIPS集 (nxp.com)
参考:i.MX 8M Plus Yocto Linux ビルド方法 (nxp.com)
2. Yocto Bitbake に関する TIPS
2-1. 開発 PC のリソース不足エラーを回避する方法(使用スレッドの調整)
マルチコア・マルチスレッドでのホストマシンでビルドを行う際、スレッド数に対してメモリが足りない場合にスワップが発生します。Bitbake Error の原因や最悪の場合ターミナルがクラッシュし途中で処理が終わることもあります。
それを避ける為に、local.conf ファイルに BB_NUMBER_THREADS と PARALLEL_MAKE 変数を設定することで同時スレッド数を絞ることができます。
BB_NUMBER_THREADS = '8'
PARALLEL_MAKE = '-j 12'
BB_NUMBER_THREADS:同時に処理するパッケージ数
PARALLEL_MAKE:パッケージのビルドに割り当てるスレッドの数
2-2. buildディレクトリに中間生成物を残さない方法
膨大な中間ファイルが残っていると開発 PC ホストマシンの SSD/HDD の容量をひっ迫してしまう事が多くあります。
それを避ける為に、local.conf ファイルに下記を記載すると中間ファイルを残さずに Bitbake を実施できます。
INHERIT += "rm_work"
2-3. Yocto Bitbake でよく使うコマンド
Yocto Bitbake でよく使うコマンドを下記表にまとめました。
ポイント:
イメージ名は imx-image-full、対象パッケージ名は linux-imx で統一していますので、自由に変えて試してください。
コマンド | 概要・用途 |
bitbake imx-image-full --runall=fetch |
do_fetch だけ実行する。 事前にダウンロードしてから Bitbake を実行できるため、Bitbake 中のダウンロードに関するエラーを回避できる |
bitbake -k imx-image-full |
エラーが発生しても依存関係のない別のパッケージのビルドは継続させる。 1つのエラーで Bitbake 全体が終了しないように出来る為効率的にビルドが可能 |
bitbake -g imx-image-full |
ビルド対象となるパッケージを確認可能。 結果は pn-buildlist ファイルに格納されています。 |
bitbake-layers show-recipes |
プロジェクト内に含まれているレシピを一覧表示します。 |
bitbake -c cleansstate linux-imx |
対象パッケージのビルドで生成されたファイルを削除する 対象パッケージでエラーが発生した場合に一度削除してから再度 Bitbake することができます。 |
bitbake -c clean linux-imx |
対象パッケージに関連するファイルを削除する。 ダウンロードしたソースコードは削除されません。 対象パッケージでエラーが発生した場合に一度削除してから再度 Bitbake することができます。 |
bitbake -c cleanall linux-imx | 対象パッケージに関連するファイルとダウンロードしたソースコードを削除する。 |
bitbake -c fetch linux-imx | 対象パッケージ をフェッチする。 |
bitbake -c compile linux-imx -f bitbake -c install linux-imx bitbake -c deploy linux-imx |
対象パッケージ を再ビルドする。 *-f オプションは、依存関係のキャッシュを強制的にクリアして再ビルドを行います。 |
bitbake -c populate_sdk imx-image-full |
Bitbake する OS 向けの Yocto SDK を生成する。 アプリケーションやカーネルの開発などで使用できます。 |
bitbake -c menuconfig linux-imx |
メニューコンフィグ画面を表示する。 linux-imx は Linux カーネルの設定を変更できます。 |
2-4. 既存のビルド・ディレクトリから作業を再開する
一度ターミナルを閉じた後、再度 Yocto Project 開発環境を構築したい場合、下記コマンドを実行することで再度構築できます。
build は任意の名前の場合もありますので、自由に変更して実行ください。
$ source ./setup-environment build
2-5. No reply from server in 30s が発生した時の対処方法
Bitbake 実行中途中でクラッシュした場合など、"No reply from server in 30s" が発生した場合、うまく Bitbake できなくなっている可能性があります。
その場合、Build フォルダー内にある bitbake.lock を削除することで再度 Bitbake できるようになります。
$ rm build/bitbake.lock
2-6. エラーが発生した場合のファーストステップ
Bitbake を実行すると様々なエラーが発生します。
発生した場合は、エラー文をよく読みエラーの内容から対処方法を検索していく必要があります。
下記に、エラーが発生した際に、試すべきファーストステップをご紹介します。
ポイント:
イメージ名は imx-image-full、対象パッケージ名は linux-imx で統一していますので、自由に変えて試してください。
- エラー対象のパッケージを Clean する。
$ bitbake -c cleansstate linux-imx
または$ bitbake -c clean linux-imx
- エラー対象パッケージだけを Bitbake する。
$ bitbake -c compile linux-imx -f
*-c deployがエラーになる場合、ほとんどの場合はdo_deployコマンドが用意されていないだけですので、エラーは無視しても問題ありません。
$ bitbake -c install linux-imx
$ bitbake -c deploy linux-imx - 同様のエラーが発生しないか確認します。同じエラーが発生する場合、エラー内容をWEBで検索し解決策を調査します。
[NXP プロセッサー 初心者ガイド 7] | [NXP プロセッサー 初心者ガイド 9] | ||
NXP プロセッサー 初心者ガイドまとめ | NXP プロセッサー実機検証ガイド まとめ |