| 対象機種 | ☑ AG10 ☑ AG20 ☑ AR10 ☑ AR20 ☐ AC10 ☐ AC15 ☐ AC25 ☑ AX11 ☑ AX21 ☑ AX30 ☐ AB11 ☐ AB12 |
| ファームウェアバージョン | N/A |
質問
amnimoデバイスのLinuxカーネルのビルドはできますか?
回答
一部のamnimoデバイス(Ubuntu系)では可能です。これらのデバイスはLinuxカーネルを採用しており、アプリケーションの開発内容に応じて、カーネルの設定(カーネルコンフィグレーション)を変更することが可能です。
特定の機能を利用するために、カーネルオプションを有効化または無効化することが可能です。
以下の手順に従って、開発環境の構築およびソースコードの取得を行い、必要なカーネルオプションを設定してご利用ください。
▌ 1. 開発環境の構築
環境構築は実機もしくは仮想環境で行います。Linuxカーネルのビルドに必要な依存関係と開発ツールを、aptサーバーから更新・インストールする操作します。
$ sudo apt update 8
$ sudo apt -y build-dep linux-image-generic 8
$ sudo apt -y install flex bison libncurses-dev libelf-dev libssl-dev dwarves 8▌ 2.カーネルソースコードの取得と展開
実機環境の場合
aptコマンドを利用し、aptサーバーからLinuxカーネルのソースコードを取得します。
gateway
$ apt source linux-image 8
|
仮想環境の場合
aptサーバーのURLから直接Linuxカーネルのソースコードを取得します。具体的には下記URLから参照できる、linux-*.dscファイルと、linux-*.orig.tar.gz、linux-*.diff.gzファイルをダウンロードします。
https://{アカウント名}:{パスワード}@package.amnimo.com/amnimo/pool/main/l/以下の例はバージョン2.6.2の場合です。(アカウント名、パスワードは別途記載が必要です。)
host
$ wget https://package.amnimo.com/amnimo/pool/main/l/linux-5.10.83-cip1-00925-g23eba26b0521/linux-5.10.83-cip1-00925-g23eba26b0521_5.10.83-cip1-00925-g23eba26b0521-1.dsc
$ wget https://package.amnimo.com/amnimo/pool/main/l/linux-5.10.83-cip1-00925-g23eba26b0521/linux-5.10.83-cip1-00925-g23eba26b0521_5.10.83-cip1-00925-g23eba26b0521-1.diff.gz
$ wget https://package.amnimo.com/amnimo/pool/main/l/linux-5.10.83-cip1-00925-g23eba26b0521/linux-5.10.83-cip1-00925-g23eba26b0521_5.10.83-cip1-00925-g23eba26b0521.orig.tar.gz
$ dpkg-source -x linux-5.10.83-cip1-00925-g23eba26b0521_5.10.83-cip1-00925-g23eba26b0521-1.dsc
|
▌ 3.カーネルコンフィグレーションの変更
2で取得したソースディレクトリに移動してください。(以下はバージョン2.6.2の例です。)
$ cd linux-5.10.83-cip1-00925-g23eba26b0521-5.10.83-cip1-00925-g23eba26b0521 8Linuxカーネルのビルドシステムにおいて、エッジゲートウェイの初期設定ファイル(amnimo_defconfig)を使って .config ファイルを生成します。
$ make amnimo_defconfig 8下記コマンドでカーネルオプションメニューを開いて必要なオプションを変更します。
$ make menuconfig 8
▌ 4.カーネルのコンパイル
Linuxカーネルのビルドプロセスにおいて、特定の成果物(カーネル本体のバイナリイメージ,デバイスツリー, カーネルモジュール)を並列でビルドします。
$ make Image dtbs modules -j2 8| コマンドパラメータ | 意味 |
| Image | カーネル本体(バイナリイメージ)をビルドします。 |
| dtbs | デバイスツリーをビルドします。 |
| modules | カーネルモジュールをビルドします。 |
| -j2 | 並列ビルド数(2並列ビルド) |
$ sudo dd if=/dev/zero of=/media/ssd/swapfile bs=1M count=2048
$ sudo chmod 600 /media/ssd/swapfile
$ sudo mkswap /media/ssd/swapfile
$ sudo swapon /media/ssd/swapfile
$ free -h
total used free shared buff/cache available
Mem: 1.9Gi 144Mi 58Mi 3.0Mi 1.7Gi 1.7Gi
Swap: 2.0Gi 0B 2.0Gi
|
▌ 5.インストール方法
実機の場合、以下のコマンドでインストール後、機器を再起動します。
gateway
$ sudo make install modules_install 8
$ sudo reboot 8
▌ 6.パッケージの作成
以下のコマンドでカーネルやその関連ファイルを Ubuntu 系で利用できる .deb パッケージを生成します。
$ make bindeb-pkg -j2 KBUILD_IMAGE=arch/arm64/boot/Image 8
| コマンドパラメータ | 意味 |
| bindeb-pkg |
Ubuntuパッケージを生成するターゲット クリーンビルドを要求せず、すでにビルド済みの成果物をそのままパッケージ化できます。 |
| -j2 | 並列ビルド数(2並列ビルド) |
| KBUILD_IMAGE=arch/arm64/boot/Image | カーネルイメージのパスを指定(arm64向けのImageファイル) |
|
🚨 警告:ユーザー側で実装したカーネルコンフィグレーションについては amnimo の動作保証対象外です。利用される場合はお客様ご自身の責任にて実施してください。
コメント
0件のコメント
サインインしてコメントを残してください。