[NXP プロセッサー 初心者ガイド 5] | [NXP プロセッサー 初心者ガイド 7] | ||
NXP プロセッサー 初心者ガイドまとめ | NXP プロセッサー実機検証ガイド まとめ |
もくじ
- 1. はじめに
- 2. Linux のパッケージマネージメントについて
- 3. NXP Yocto Project で deb を有効にする方法
- 4. Debian リポジトリーの設定を /etc/apt/sources.list に追加
- 5. apt コマンドの実行とパッケージを新規に追加
- 6. apt コマンドを使用してパッケージを新規に追加
- 7. 注意事項
1. はじめに
NXP が提供している Yocto Project 組み込み Linux OS のデフォルトのパッケージマネージャーは RPM(Red Hat Package Manager)です。
最新の下記ドキュメントでは deb(Debian Package)もサポートされていることが記載されています。
今回は、deb(Debian Package)を搭載した 組み込み Linux OS を生成する手順と apt コマンドが実行して vim パッケージを新規追加するまでを解説します。
Yocto Project 組み込み Linux OS においてレシピを追加して OS を生成する手順が一般的ですが、既に作成した OS に後からアプリケーション・パッケージを追加したい時に有用な手順です。
参考: i.MX Yocto Project User's Guide (IMXLXYOCTOUG)
5.6.12 Package management
The default package management with Yocto Project is rpm.
The i.MX distro now enables debian as the package management.
This can be easily turned off by adding the PACKAGE_CLASSES set to package_rpm in the local.conf, or creating a custom distro without the debian package feed PACKAGE_CLASSES = "package_deb" .
With the addition of the debian package feed, a sources.list can be added to /etc/apt that links in Debian's package feed.
This allows users to install packages not provided in the image without having to add them to a Yocto image.
Because this package feed is not generated by the i.MX Yocto build process, there is no guarantee each package will work with the right dependencies but it allows simpler tools to be provided.
Software that is complex and has more dependencies on specific versions might have issues with an external package feed.
注記:7. 注意事項 に記載の内容を理解の上、自己責任にてお試しください。
2. Linux のパッケージマネージメントについて
Linux におけるパッケージマネージメントは、主に、RPM(Red Hat Package Manager)と deb(Debian Package)の2つのフォーマットが存在します。
RPM フォーマットは、Red Hat、CentOS、Fedora などの Linux ディストリビューションで使用されます。deb フォーマットは、Ubuntu、Debian などのディストリビューションで使用されます。
Ubuntu ユーザーの場合 apt コマンドでアプリケーション・パッケージを追加している人が多いと思います。
apt コマンドの場合、/etc/apt/sources.list にリポジトリーの情報を設定することで、公開されているサーバーや自作のサーバーからパッケージをダウンロードし、インストールすることができます。
注記:
今回はリポジトリの署名検証を行わない方法でのパッケージアップデートの紹介になります。組み込み製品において署名検証を行わずパッケージをアップデートした場合セキュリティリスクをともなうため、ここで紹介する方法は開発・検証でのご使用に限定してください。
3. NXP Yocto Project で deb を有効にする方法
bitbake コマンドが使用できるまで開発環境を構築します。
下記コンテンツを参考にビルドの設定まで作業を進めてください。
参考:[NXP プロセッサー 初心者ガイド 1] i.MX 系の Linux イメージ作成方法 5-1ビルドの設定
DISTRO=fsl-imx-xwayland MACHINE=imx8mp-lpddr4-evk source imx-setup-release.sh
を実行し、imx-yocto-bsp/build/conf/local.conf が生成されていれば準備完了です。
build/conf/local.conf に下記内容を記載します。デフォルトで既に記載されている場合もあります。
package_rpm を記載すると RPM(Red Hat Package Manager)が実装されます。
PACKAGE_CLASSES = "package_deb"
EXTRA_IMAGE_FEATURES += "package-management"
図1:デフォルトの local.conf ファイル
下記コマンドを実行し、OS イメージを生成します。
指定できるイメージ名は 下記コンテンツの 5-2 を参照ください。
$ bitbake imx-image-full
参考:[NXP プロセッサー 初心者ガイド 1] i.MX 系の Linux イメージ作成方法 5-2. i.MX Yocto Project イメージの選択
Bitbake でエラーが発生した場合は下記をまずはご確認ください。
参考:[NXP プロセッサー初心者ガイド 8] i.MX Yocto Project Bitbake に関する TIPS
4. Debian リポジトリーの設定を /etc/apt/sources.list に追加
Yocto Project のビルドが完了すると、<build directory>/tmp/deploy/images/<board name>/ に *.wic.zst というファイルが生成されます。これが、SD Card 等に格納する *.wic が圧縮されたファイルです。
生成されたイメージファイルを SD Card など Boot Flash に格納して、電源を投入してください。
参考:[NXP プロセッサー 初心者ガイド 1] i.MX 系の Linux イメージ作成方法 6.ビルドされたイメージの書き込み
プロセッサーが起動後 /etc/apt/sources.list を作成していきます。
root@imx8mpevk:~# cd /etc/apt
root@imx8mpevk:/etc/apt# vi sources.list
i を押して編集モードにし、下記をペースト。escを押して :wq! をタイプしてエンターで保存できます。
# See sources.list(5) for more information, especially
# Remember that you can only use http, ftp or file URIs
# CDROMs are managed through the apt-cdrom tool.
deb [allow-insecure=yes trusted=yes] http://cdn.debian.or.jp/debian bookworm main contrib non-free non-free-firmware
deb [allow-insecure=yes trusted=yes] http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
# Uncomment if you want to use Debian stable-updates
#deb http://cdn.debian.or.jp/debian bookworm-updates main contrib non-free non-free-firmware
# Uncomment if you want the apt-get source function to work
#deb-src http://cdn.debian.or.jp/debian bookworm main contrib non-free non-free-firmware
#deb-src http://cdn.debian.or.jp/debian bookworm-updates main contrib non-free non-free-firmware
デフォルトの sources.list 下記 DEBIAN JP Project からダウンロードしています。
参考:Debian JP Project - ミラーサイトについて
注記:
デフォルトの sources.list の場合認証エラーが発生するため [allow-insecure=yes trusted=yes] を付与しています。通常、認証が通るよう認証鍵等の設定が必要ですが今回は検証用の為、割愛しています。
必要に応じて認証鍵等の設定を実行してください。
5. apt コマンドの実行
sudo apt update を実行すると下記のようなログが出力されサーバーから情報を取得できていることが分かります。
root@imx8mpevk:/etc/apt# sudo apt update
Get:1 http://cdn.debian.or.jp/debian bookworm InRelease [151 kB]
Ign:1 http://cdn.debian.or.jp/debian bookworm InRelease
Get:2 http://security.debian.org/debian-security bookworm-security InRelease [48.0 kB]
Ign:2 http://security.debian.org/debian-security bookworm-security InRelease
Fetched 199 kB in 1s (310 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
84 packages can be upgraded. Run 'apt list --upgradable' to see them.
W: GPG error: http://cdn.debian.or.jp/debian bookworm InRelease: gpgv, gpgv2 or gpgv1 required for verification, but neither seems installed
W: GPG error: http://security.debian.org/debian-security bookworm-security InRelease: gpgv, gpgv2 or gpgv1 required for verification, but neither seems installed
ポイント:
[allow-insecure=yes trusted=yes] を付与してもエラーが発生する場合、下記を実行すると改善する可能性があります。
root@imx8mpevk:/etc/apt# sudo apt-get update --allow-insecure-repositories
注記:
sudo apt upgrade を実行すると Yocto Project で実装したパッケージがアップデートされてしまう可能性がある為、実行する際はご注意ください。
6. apt コマンドを使用してパッケージを新規に追加
通常の i.MX Yocto Project 組み込み OS は vim コマンドが実装されておらず vi コマンドが実装されています。
今回は vim を apt コマンドで追加します。下記を実行ください。
root@imx8mpevk:/etc/apt# sudo apt install vim -y
実際に vim を実行するとライブラリーの指定が足りないというエラーが発生します。
root@imx8mpevk:/etc/apt# vim sources.list
vim: error while loading shared libraries: libtinfo.so.6: cannot open shared object file: No such file or directory
下記環境変数を追加します。
aarch64-linux-gnu は libtinfo.so.6 が格納されているフォルダーです。
export LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu
もう一度 vim コマンドを実行するとうまく実行されていることを確認できます。
7. 注意事項
- Yocto Project で作成する OS はレシピでパッケージを追加するのが一般的です。
パッケージマネージメントを使ったパッケージの追加は、各パッケージが正しい依存関係で動作する保証はありません。構成が複雑で、特定のバージョンに依存するソフトウェアなどで、外部パッケージフィードに関する問題が発生する可能性があります。 - 今回はリポジトリの署名検証を行わない方法でのパッケージアップデートの紹介になります。製品において署名検証を行わずパッケージをアップデートした場合セキュリティリスクをともなうため、ここで紹介する方法は開発・検証でのご使用に限定してください
[NXP プロセッサー 初心者ガイド 5] | [NXP プロセッサー 初心者ガイド 7] | ||
NXP プロセッサー 初心者ガイドまとめ | NXP プロセッサー実機検証ガイド まとめ |