2328629_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2328629_ja-JP

2328629_ja-JP

[入門] Yocto Linux BSPのビルド方法 - i.MX FRDMボード編 (日本語ブログ)

*i.MX FRDMボードをベースに、Yocto Linuxのビルド方法を紹介します。

本記事ではFRDM-IMX93をベースに紹介しますが、他のi.MX FRDMボードでも同じ手順でビルドすることができます。

Yocto Linux BSPは、「Linux 6.12.49_2.2.0 (Yocto 5.2 “Walnascar”)」を例に記載しています。

  Q: i.MX FRDMボードとは?

  A: i.MX FRDMボードは、NXPが提供するフル機能のEVKボードに比べて、機能を絞り込み、より低価格かつコンパクトに設計された開発ボードです。基本的な評価やプロトタイプ作成を手軽に行えることを目的としています。


1. 環境&事前準備

1.1. 環境

大項目 小項目 内容 備考
Document -

IMX_YOCTO_PROJECT_USERS_GUIDE.pdf
(主に使用します。BSPをビルドするための手順を記載
)

i.MX Linux® Release Notes 
(サポート機能を一覧で確認できます)

i.MX Porting Guide
(実際に実装する際の注意点のまとめ)

Yocto Linux全般資料のダウンロードはこちら
Hardware FRDMボード 本章では、FRDM-IMX93をベースに説明します
Host PC
Ubuntu環境
・VMWare/Virtual Box等(on Windows)
・Native Linux
のどちらか
推奨:Ubuntu22.04以上
SDカード+リーダライタ 16GB以上のもの推奨  

Hardware

(Option)

MIPI-Camera

(Option)

BSP対応のMIPIカメラ
( i.MX Linux® Release Notes参照)
USBカメラでも代替可(遅延が発生する可能性があります)

Display

(Option)

表示用ディスプレイ  

USB Device

(Option)

USBマウス、USBメモリ  

Headphone

(Option)

3.5mm イヤホン

マイク付きイヤホン(旧iphone付属のイヤホン等)だとベター
Software Yocto環境 Linux BSP
(今回はLinux 6.12.49_2.2.0 (Yocto 5.2 “Walnascar”) を使用)
インストール方法含め、本記事で説明します

1.2. 凡例

コマンド・プロンプトの凡例

=>           u-bootプロンプト
$            BSPがインストールされているLinux PCのプロンプト

2. ホストマシン

Ubuntu 22.04 Desktopを推奨します。 実運用上、ある程度快適なホストマシンのスペックは8スレッド、16GB以上です。 必要なストレージはターゲットとするレシピで変わってきますが、 小さいプロジェクトで50GB、大きなもので500GBほどかかります。

2.1. Yoctoに必要なパッケージ

以下の手順にて必要なパッケージをインストールしてください。

$ sudo apt-get install build-essential chrpath cpio debianutils diffstat file gawk
gcc git iputils-ping libacl1 liblz4-tool locales python3 python3-git python3-
jinja2 python3-pexpect python3-pip python3-subunit socat texinfo unzip wget xzutils zstd efitools curl

注釈 IMX_YOCTO_PROJECT_USERS_GUIDE.pdf に記載されている内容に加えて curl を追記しています。

2.2. スワップファイルの設定
32GBのスワップファイルを設定する場合の例です。

$ sudo fallocate -l 32G /swapfile
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile

注釈 すでに/swapfileが存在する場合は1行目のコマンドがFailします。サイズを変えて設定したい場合は、以下を実行してから再度上のコマンドを実行してください。

$ sudo swapoff /swapfile
$ sudo rm /swapfile

ホストマシンの起動時にスワップファイルを自動的にマウントさせるには、以下の行を/etc/fstabに追加してください。

/swapfile none swap sw 0 0


3. Yocto Linux BSP

nxp.jpのEmbedded Linux for i.MX Applications Processorsから必要なLinux BSPのVersionを選択して、i.MX Yocto Project User's Guideを入手してください。

Yocto User Guide.jpg

i.MX Yocto Project User's Guide (IMXLXYOCTOUG) の「4 Yocto Project Setup」の手順に沿ってイメージを作成します。

この資料は、以下の設定で生成されるイメージを前提として書いています。

 DISTRO = fsl-imx-xwayland
 MACHINE = imx93-11x11-lpddr4x-frdm


3.1. Yocto BSPのセットアップとビルド
ホストマシンのセットアップは 2. ホストマシン を参照ください。

3.1.1. repoユーティリティのインストール

$ mkdir ~/bin
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

3.1.2. repoのPATHを通す
以下の行を$HOME/.bashrcに追加します。

  export PATH=~/bin:$PATH

3.1.3. Gitのセットアップ

$ git config --global user.name "Your Name"
$ git config --global user.email "Your Email"
$ git config --list

3.1.4. Yocto BSPのセットアップ

$ mkdir imx-yocto-bsp
$ cd imx-yocto-bsp
$ repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-walnascar -m imx-6.12.49-2.2.0.xml
$ repo sync

3.1.5. ビルドターゲットの設定、ビルド

$ MACHINE=imx93-11x11-lpddr4x-frdm DISTRO=fsl-imx-xwayland source ./imx-setup-release.sh -b build
$ bitbake imx-image-full

*ここでビルドが終了しますと、Linuxイメージが生成されます。

*生成されたイメージの書き込み方法については、以下ご使用のFRDMボードに合わせたスタート・ガイドのステップ1、2をご参考ください。


注釈 他のFRDMボード向けにLinux BSPをビルドしたい場合は、上記コマンドの"MACHINE="の部分を以下の名前に置き換えてください。

  • imx8mp-lpddr4-frdm   (FRDM-IMX8MPLUS)
  • imx91-11x11-lpddr4-frdm   (FRDM-IMX91)
  • imx91-11x11-lpddr4-frdm-imx91s   (FRDM-IMX91S)
  • imx93-11x11-lpddr4x-frdm   (FRDM-IMX93)
  • imx95-15x15-lpddr4x-frdm   (FRDM-IMX95)

注釈 グラフィック機能についても上記コマンドの"DISTRO="の部分にて、ディストリビューションを選択できます。

  • fsl-imx-wayland   (Wayland)
  • fsl-imx-xwayland   (Wayland & X11 *EGLを使用するX11アプリには対応していません)


注釈 imx-setup-release.shスクリプトを使うセットアップは、プロジェクト1つに対して1回のみです。既存のプロジェクトに対して行うと、conf/local.confなどのファイルが新規で生成されるので、これまで設定した内容が失われます。既存プロジェクトを再度使う場合は 3.3.1. 既存のビルド・ディレクトリから作業を再開する を参照ください。

注釈 ホストマシンのスペックによりますが、ビルドには数十時間かかることも想定されます。またストレージも4~500GB消費することも想定してください。

注釈 マルチコア・マルチスレッドでのホストマシンでビルドを行う際、スレッド数に対してメモリが足りない場合にスワップが発生します スレッド数を制限するのは 3.4.2. ビルド時に走るスレッド数を制限する を参照ください。

注釈 Ubuntu22.04の初期状態だとスワップが設定されていないケースがあり、その場合は極端に遅くなったりクラッシュしたりします。スワップファイルの設定は 2.2. スワップファイルの設定 を参照ください。


*ここから先は参考用です。

3.2. ツールチェインのビルド、インストール
クロスコンパイラなどのツールチェインをビルド、インストールすることができます。 ここで生成されるスクリプトを使うことで、クロスコンパイルのときにありがちなインクルードファイルやリンクさせるライブラリが見つからない、といった問題を避けることができます。

3.2.1. ツールチェインのビルド

$ bitbake imx-image-full -c populate_sdk

3.2.2. インストール

$ tmp/deploy/sdk/fsl-imx-xwayland-glibc-x86_64-imx-image-full-armv8a-imx93-11x11-lpddr4x-pf0900-evk-toolchain-6.12-walnascar.sh

ツールチェインの使い方については、ここでは説明しません。


3.3. よく使うYocto bitbakeコマンド、設定

3.3.1. 既存のビルド・ディレクトリから作業を再開する

$ cd /path/to/imx-yocto-bsp
$ source ./setup-environment build

注釈 ここでのパス、ディレクトリは 3.1.4. Yocto BSPのセットアップ 、 3.1.5. ビルドターゲットの設定、ビルド で設定したものです。

以下ではlinux-imxを例として、いくつかのコマンド例を挙げていきます。 "linux-imx"を別のパッケージ名にすれば、そのパッケージ毎に同様のことが可能です。

3.3.2. パッケージの再ビルド

$ bitbake -c compile linux-imx -f
$ bitbake -c install linux-imx
$ bitbake -c deploy linux-imx

注釈 -fを付けない場合と手順がスキップされる可能性があります。

注釈 -c deployがエラーになるパッケージもありますが、ほとんどの場合はdo_deployコマンドが用意されていないだけですので、エラーは無視して構いません。

3.3.3. パッケージを消す
あるパッケージで本来発生しないであろうエラーが発生する場合に、以下のコマンドでパッケージを消してやり直してみるとエラーが解消することがあります。 (ダウンロード時にパッケージが破損したり、ビルドを途中で強制的に終了した場合にゴミデータが残ったりしている場合があるためです。)

$ bitbake -c cleansstate linux-imx

注釈 展開したソースコードごと削除されますので、編集しているファイルなどがある場合はご注意ください。

3.3.4. パッケージの展開
パッケージの展開だけを行い、コンパイルなどはまだやりたくない場合

$ bitbake -c patch linux-imx

3.3.5. configファイルの変更を反映させる
configファイル(arch/arm64/configs/imx_v8_defconfigなど)を変更し、それを反映させたい場合

$ bitbake -c configure linux-imx
$ bitbake -c compile linux-imx -f

3.3.6. linux-imx menuconfigを行う
Linuxカーネルのビルドオプションを変更する場合

$ bitbake -c menuconfig linux-imx

このようなウィンドウが起動するので、必要な変更を加えてSaveします。(十字カーソルキーで対象を選択し、スペースキーで決定)


ビルド時のTIPSについては、以下の記事を併せてご参考ください。


=========================

本投稿の「Comment」欄にコメントをいただいても、現在返信に対応しておりません。
お手数をおかけしますが、お問い合わせの際には「NXPへの技術質問 - 問い合わせ方法 (日本語ブログ)」をご参照ください。
(既に弊社NXP代理店、もしくはNXPとお付き合いのある方は、直接担当者へご質問いただいてもかまいません。)

お手頃な値段で、コンパクトに組み込みLinuxを開始できるFRDM(フリーダム)ボードを用いて、Linux BSPのビルド手順を紹介します。

本記事ではFRDM-IMX93をベースに紹介しますが、他のi.MX FRDMボードでも同じ手順でビルドすることができます。

Yocto Linux BSPは、「Linux 6.12.49_2.2.0 (Yocto 5.0.4)」を例に記載しています。

i.MX ProcessorsSW | Downloads日本語ブログ
タグ(1)
評価なし
バージョン履歴
最終更新日:
‎06-23-2026 02:00 AM
更新者: