採用情報

お問い合わせ

BLOG

IoT 技術コラム

2023 年 10 月 27 日

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 オンライン、スイッチサイエンス等で購入可能です。

Raspberry Pi 3 Model B V1.2

Raspberry Pi 3 Model B V1.2 の基盤

ビルド環境のセットアップ

この操作は 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 が起動します。

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 についてのご質問は、以下のリンクよりお問い合わせください。

EMLinux 3.0 についてのご質問はこちら

また、2023 年 11 月 15 日〜17 日に開催される EdgeTech+ 2023 では、サイバートラストのブース(小間番号
B-R01)にて EMLinux 3.0 をはじめとする各種ソリューションを出展いたします。EMLinux 開発チームのメンバーもブースにいる予定ですので、EdgeTech+ 2023 にお越しの際は、ぜひサイバートラストのブースにもお立ち寄りください。

EdgeTech+ 2023 サイバートラストのブースについて


本記事に関連するリンク

CentOS 7 延長サポートサービス
デジタルトランスフォーメーションのための電子認証基盤 iTrust
SSL/TLS サーバー証明書 SureServer Prime