2023 年 10 月 27 日
EMLinux 3.0 を Raspberry Pi 3 で動かしてみよう:入門編
目次
- はじめに
- EMLinux 3.0 の入手
- 評価環境の用意
- ビルド環境のセットアップ
- EMLinux 3.0 のビルド
- EMLinux 3.0 を Raspberry Pi 3 で動かす
- さいごに(&お知らせ)
はじめに
EMLinux はサイバートラストが開発・提供している組込み /IoT システム向け Linux とその開発環境を含むサービスです。組込みシステムで求められる高いカスタマイズ性(Yocto Project で使用されている業界標準ビルドシステム BitBake を使用)と、近年必要性が高まっているサイバーセキュリティ対応のための超長期メンテナンスサポートが提供されています。
最新の EMLinux 3.0 では長期サポート対象パッケージの大幅な拡大や SBOM 標準フォーマットへの対応など多くの機能強化が行われています。詳細は下記のページをご覧ください。
本記事では EMLinux 3.0 をビルドし、Raspberry Pi 3 で動かすための手順を紹介します。
EMLinux 3.0 の入手
本記事では、「EMLinux 無償評価版」を使用します。以下のページの「評価版お申込みフォーム」に必要事項を記入してください。
後日、申し込み時に入力いただいたメールアドレスに、ダウンロード URL を記載したメールが届きますので、そちらから EMLinux 3.0 をダウンロードしてください。
なお、本記事では、EMLinux 3.0 202310 版を使用しています(EMLinux は 1 ヶ月周期の定期リリースを行っているので、yyyymm 版のようなバージョンが付いています)。
評価環境の用意
ビルド環境の用意
以下の要件を満たす環境を用意してください。
OS | Docker が動作する Linux |
---|---|
CPU | Intel 64 対応プロセッサまたは AMD64 対応プロセッサ(8 スレッド以上を推奨) |
RAM | 8GB 以上(16GB 以上を強く推奨) |
Disk | 30GB 以上の空き容量 |
その他 | インターネットに接続可能であること |
RAM の容量が少ない場合、メモリ不足によりビルド処理が強制終了されることがあります。十分な RAM を搭載した環境を用意してください。
本記事では OS は Ubuntu Server 20.04.6 LTS を使用しました。
Docker のインストール方法については下記の資料をご参照ください。
以下のようになっていれば Docker がインストールされています(バージョンは異なっていても大丈夫です)。
$ docker -v Docker version 24.0.5, build 24.0.5-0ubuntu1~20.04.1 $ docker compose version Docker Compose version 2.20.2+ds1-0ubuntu1~20.04.1
Raspberry Pi 3 の用意
本記事ではターゲットボード(自分のプログラムを動作させる対象のコンピュータ)として Raspberry Pi 3 Model B V1.2 を使用しました。Raspberry Pi は Amazon、RS オンライン、スイッチサイエンス等で購入可能です。
ビルド環境のセットアップ
この操作は sudo の実行が可能なユーザで行ってください。
ユーザを docker グループに追加
EMLinux 3.0 をビルドするためのユーザを docker グループに追加してください。本記事では emlinux ユーザを作成し docker グループに追加しました。
$ sudo gpasswd -a emlinux docker
Adding user emlinux to group docker
Docker のプロキシサーバの設定を行う
インターネットに接続するためにプロキシサーバーを使用されている場合には、以下を実行してください。例えば、プロキシサーバの FQDN 名が aaa.bbb.co.jp、プロキシサーバのポート番号が 80 の場合、以下のように設定してください。
$ sudo mkdir /etc/systemd/system/docker.service.d
$ sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf <<EOF
[Service]
Environment="HTTP_PROXY=http://aaa.bbb.co.jp:80"
Environment="HTTPS_PROXY=http://aaa.bbb.co.jp:80"
EOF
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
クロスビルドに必要なパッケージのインストール
Intel 64 または AMD64 の環境で Raspberry Pi 3 (arm64) 用の EMLinux 3.0 をビルド(クロスビルド)するために、以下のパッケージをインストールしてください。
$ sudo apt install qemu-user-static
EMLinux 3.0 のビルド
以降の操作は emlinux ユーザで行ってください。
環境変数の設定
インターネットに接続するためにプロキシサーバーを使用されている場合には、以下を実行してください。例えば、プロキシサーバの FQDN 名が aaa.bbb.co.jp、プロキシサーバのポート番号が 80 の場合、以下のように設定してください。
$ export http_proxy=http://aaa.bbb.co.jp:80
$ export https_proxy=http://aaa.bbb.co.jp:80
$ export no_proxy='localhost,127.0.0.1'
ビルド用コンテナの起動
EMLinux_3.0-202310.zip を Linux マシン上の任意の場所に保存してください。本記事では、
/home/emlinux/ に EMLinux_3.0-202310.zip を保存しました。
/home/emlinux/ に保存した EMLinux_3.0-202310.zip を、unzip コマンドで解凍してください。
$ cd /home/emlinux
$ unzip EMLinux_3.0-202310.zip
解凍後、以下のディレクトリに移動してください。
$ cd /home/emlinux/EMLinux_3.0-202310/source
上記、source ディレクトリに保存されている emlinux-3.0-202310.tar.gz ファイルを、tar コマンドで解凍してください。
$ tar xvf emlinux-3.0-202310.tar.gz
解凍後、以下のディレクトリに移動してください。
$ cd /home/emlinux/EMLinux_3.0-202310/source/emlinux-3.0-202310/repos/meta-emlinux/docker
上記 docker ディレクトリ内にある run.sh を実行してください。初回起動時にはコンテナの作成処理が行われます。コンテナ作成処理後、コンテナにログインした状態になります。
$ ./run.sh [+] Running 1/1 ! emlinux3-build Warning 2.5s [+] Building 139.2s (24/24) FINISHED (中略) build@37a3c680506c:~/work$
ビルドの実行
コンテナにログイン後、work ディレクトリに以下のファイルが保存されています。
build@37a3c680506c:~/work$ ls -l total 8 drwxr-xr-x 8 build build 4096 Oct 24 10:56 repos lrwxrwxrwx 1 build build 40 Oct 24 10:56 setup-emlinux -> repos/meta-emlinux/scripts/setup-emlinux drwxr-xr-x 2 build build 4096 Oct 24 10:56 setup-hooks
work ディレクトリにて、以下のコマンドを実行してください。なお、以下のコマンドに指定している buiid はビルド用のディレクトリ名で、任意の名前(例えば build-raspi3)を設定することが可能です。本記事では build を指定しました。
build@37a3c680506c:~/work$ source setup-emlinux build
上記実行後、build ディレクトリに自動で移動します。
build@37a3c680506c:~/work/build$
Raspberry Pi 3 用の EMLinux 3.0 をビルドするために、以下のコマンドを実行してください。
$ echo 'MACHINE = "raspberrypi3bplus-64"' >> conf/local.conf
$ echo 'BBLAYERS += "${TOPDIR}/../repos/isar/meta-isar"' >> conf/bblayers.conf
以下のコマンドを実行し、ビルドを実行します。本記事の環境では、約 20 分でビルドが完了しました。
build@37a3c680506c:~/work/build$ bitbake emlinux-image-base
(中略)
NOTE: Tasks Summary: Attempted 98 tasks of which 0 didn't need to be rerun and all succeeded.
ビルドが完了しましたら、exit コマンドでコンテナからログアウトしてください。
build@37a3c680506c:~/work$ exit
exit
EMLinux 3.0 を Raspberry Pi 3 で動かす
EMLinux 3.0 のイメージファイルが保存されているディレクトリに移動してください。
$ cd /home/emlinux/EMLinux_3.0-202310/source/emlinux-3.0-202310/build/tmp/deploy/images/raspberrypi3bplus-64
以下のファイルが、EMLinux 3.0 のイメージファイルになります。
emlinux-image-base-emlinux-bookworm-raspberrypi3bplus-64.wic
EMLinux 3.0 のイメージファイルを Raspberry Pi 3 の SD カードに書き込みます。
dd if=emlinux-image-base-emlinux-bookworm-raspberrypi3bplus-64.wic of=/dev/sdX bs=4k conv=fsync
Raspberry Pi 3 の電源を入れると、EMLinux 3.0 が起動します。
こちらは、起動時の dmesg の抜粋です。
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034] [ 0.000000] Linux version 6.1.46-cip4+ (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: Raspberry Pi 3 Model B+ (後略)
ログインのプロンプトが表示されましたら、ユーザ名 root、パスワード root でログインしてください。
EMLinux 3.0 EMLinux3 tty1 EMLinux3 login:
さいごに(&お知らせ)
コンテナを用いることで、簡単に EMLinux 3.0 をビルドすることができました。そして Raspberry Pi 3 で動かすことにも成功しました(Raspberry Pi 4 についても近々サポート予定です)。
EMLinux は商用の組込み /IoT 向け Linux 環境として、下記をはじめとする多くの特長を備えています。
- 製品出荷後も発見される OSS の脆弱性を解決するための超長期メンテナンスサポート
- 製品開発時や出荷後の問題解決を支援するテクニカルサポート
- 開発・評価を始めやすい産業分野向けのハードウェア(SoC/ 評価ボード)サポート
- 過去のリリースをビルド可能に維持するためのパッケージミラーリング(保全)サービス
加えて、お客様の要件に応じてコンサルティングからカスタマイズ開発、カスタムメンテナンスサポートなども提供していますので、この機会に EMLinux 3.0 をお客様機器製品の組込み Linux の候補としてご検討いただければ幸いです。
EMLinux 3.0 についてのご質問は、以下のリンクよりお問い合わせください。
また、2023 年 11 月 15 日〜17 日に開催される EdgeTech+ 2023 では、サイバートラストのブース(小間番号
B-R01)にて EMLinux 3.0 をはじめとする各種ソリューションを出展いたします。EMLinux 開発チームのメンバーもブースにいる予定ですので、EdgeTech+ 2023 にお越しの際は、ぜひサイバートラストのブースにもお立ち寄りください。
EdgeTech+ 2023 サイバートラストのブースについて