2025 年 01 月 29 日
第 6 話:組込み Linux「EMLinux」をアップデートしてみよう
※本記事は、2025 年 1 月 28 日時点の情報です。
はじめに
EMLinux 3.x 系の最新バージョン EMLinux 3.2-202501 が、2025 年 1 月 10 日にリリースされました。
本記事では、これまでの記事で使ってきた EMLinux 3.1-202409 から EMLinux 3.2-202501 にアップデートするための手順を紹介します。
アップデート手順の概要
アップデート手順の概要は以下になります。以下の 3 ステップで、EMLinux のアップデートが行えます。
- EMLinux 3.2-202501.zip を任意のディレクトリに展開する
- EMLinux 3.1-202409 で作成したカスタムレイヤーを EMLinux 3.2-202501 に追加する
- EMLinux 3.2-202501 で EMLinux をビルドする
アップデートの実行
EMLinux のサブスクリプションを既にご契約いただいている方は、サイバートラストのカスタマーポータルから、EMLinux 3.2-202501.zip をダウンロードしてください。
無償評価版で試してみたいという方は、以下の「EMLinux 評価版ダウンロード申し込み」から、EMLinux 3.2-202501.zip を入手してください。
![EMLinux無償評価版ダウンロード申し込み](/blog/img/pi3-yocto-emlinux-02.png)
EMLinux 3.2-202501 を展開したディレクトリに移動してください。本記事では、以下のディレクトリに展開しました。
cd /home/emlinux/EMLinux_3.2-202501/source/emlinux-3.2-202501/
EMLinux 3.1-202409 で作成したレイヤー meta-nginx をコピーします。
cp -a /home/emlinux/EMLinux_3.1-202409/source/emlinux-3.1-202409/\ repos/meta-nginx repos/
リンクファイルを作成してください。
ln -s ../repos/meta-nginx/scripts/add-layer-nginx \ setup-hooks/70-add-layer-custom
EMLinux のビルド用コンテナを起動するため、以下のディレクトリに移動してください。
cd /home/emlinux/EMLinux_3.2-202501/source/emlinux-3.2-202501/\ repos/meta-emlinux/docker
EMLinux のビルド用コンテナを起動してください。
./run.sh
work ディレクトリにて、以下のコマンドを実行してください。
build@e0d34b689d39:~/work$ source setup-emlinux build
上記実行後、build ディレクトリに自動で移動します。
build@e0d34b689d39:~/work/build$
bitbake-layers コマンドで、meta-nginx が追加されていることを確認してください。
build@e0d34b689d39:~/work/build$ bitbake-layers show-layers NOTE: Starting bitbake server... layer path priority ======================================================================================================== core /home/build/work/build/../repos/isar/meta 5 emlinux-private /home/build/work/build/../repos/meta-emlinux-private 13 emlinux /home/build/work/build/../repos/meta-emlinux 12 cip-core /home/build/work/build/../repos/isar-cip-core 6 nginx /home/build/work/build/../repos/meta-nginx 30
もし、meta-nginx が追加されていない場合には、bitbake-layers コマンドを用いて meta-nginx を追加してください。
build@e0d34b689d39:~/work/build$ bitbake-layers add-layer ../repos/meta-nginx
vim コマンドで、conf/local.conf ファイルを開いてください。
build@e0d34b689d39:~/work/build$ vim conf/local.conf
conf/local.conf ファイルの末尾に以下を追記してください。
(前略) MACHINE = "qemu-arm64"
以下のコマンドを実行し、EMLinux のビルドを実行します。
bitbake custom-image
ビルドが完了しましたら、exit コマンドでコンテナからログアウトしてください。
build@37a3c680506c:~/work/build$ exit
アップデートされたことを確認する
build ディレクトリに移動してください。
cd /home/emlinux/EMLinux_3.2-202501/source/emlinux-3.2-202501/build
vim などで、run-vm.sh ファイルを作成し、run-vm.sh を以下のように編集してください。
$ vi run-vm.sh
path=./tmp/deploy/images/qemu-arm64 image=custom-image-emlinux-bookworm-qemu-arm64 qemu-system-aarch64 \ -device virtio-net-device,netdev=net0,mac=52:54:00:12:35:02 \ -netdev user,id=net0,hostfwd=tcp::2280-:80 \ -drive id=disk0,file=$path/$image.ext4,if=none,format=raw \ -device virtio-blk-device,drive=disk0 -show-cursor -device VGA,edid=on \ -device qemu-xhci \ -device usb-tablet \ -device usb-kbd \ -object rng-random,filename=/dev/urandom,id=rng0 \ -device virtio-rng-pci,rng=rng0 \ -nographic \ -machine virt \ -cpu cortex-a57 \ -m 512 \ -serial mon:stdio \ -serial null \ -kernel $path/$image-vmlinux \ -initrd $path/$image-initrd.img \ -append 'root=/dev/vda rw highres=off console=ttyS0 mem=512M ip=dhcp console=ttyAMA0'
run-vm.sh ファイルに実行権限を付与してください。
$ chmod +x run-vm.sh
run-vm.sh を実行し、QEMU で EMLinux を起動してください。
$ ./run-vm.sh
起動完了後、ユーザ名 root、パスワード root でログインしてください。
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x411fd070] [ 0.000000] Linux version 6.1.119-cip33 (isar-users@googlegroups.com) (aarch64-linux-gnu-gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP PREEMPT Thu, 01 Jan 1970 01:00:00 +0000 [ 0.000000] Machine model: linux,dummy-virt (中略) EMLinux 3.2 EMLinux3 ttyAMA0 EMLinux3 login:
uname -r コマンドで kernel のバージョンを確認すると、以下のように 6.1.119-cip33 に更新されていることが分かります。
# EMLinux 3.1-202409 で実行 root@EMLinux3:~# uname -r 6.1.102-cip26 # EMLinux 3.2-202501 で実行 root@EMLinux3:~# uname -r 6.1.119-cip33
また、meta-nginx レイヤーにてインストールした NGINX も正常に起動しています。
root@EMLinux3:~# systemctl status nginx ● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled) Active: active (running) since Wed 2025-01-15 08:11:40 UTC; 1min 47s ago (後略)
さいごに
本記事では EMLinux のアップデート手順についてご紹介しました。
「アップデート手順の概要」にてお伝えしたように、3 ステップで簡単に EMLinux をアップデートすることができます。
EMLinux は年間サブスクリプションを契約されているお客様に向けて、定期的なアップデートを提供しています。お客様の大切な組込み機器のセキュリティ向上のためにも、定期的なアップデートの適用をお勧めいたします。