====== ファームウェアビルド環境の準備 ====== ファームウェアをビルドするためには、 * Kernel ソース * root filesystem * ビルドスクリプト が必要になりますので、それらを準備します。 \\ ===== ワーキングディレクトリの準備 (任意) ===== ホームディレクトリ直下で作業すると、ファイルやディレクトリが散らばってしまうので、ワーキングディレクトリを作成します。 developer@develop3:~$ mkdir work developer@develop3:~$ cd work/ developer@develop3:~/work$ \\ ===== Kernel ソースの入手 ===== MA-E シリーズ用の Kernel は、[[https://github.com/centurysys/linux-kernel-MAE|centurysys/liunux-kernel-MAE - GitHub]] で公開しています。 [[https://github.com/centurysys/linux-kernel-MAE|{{:mae3xx_devel:prepare_build_env:build_firm_01.png?800|centurysys/liunux-kernel-MAE - GitHub}}]] \\ git でソースを取得しますので、git パッケージを追加します。 developer@develop3:~/work$ sudo apt install git パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: git-man libcurl3-gnutls liberror-perl libnghttp2-14 libpsl5 librtmp1 publicsuffix 提案パッケージ: gettext-base git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-cvs git-mediawiki git-svn 以下のパッケージが新たにインストールされます: git git-man libcurl3-gnutls liberror-perl libnghttp2-14 libpsl5 librtmp1 publicsuffix アップグレード: 0 個、新規インストール: 8 個、削除: 0 個、保留: 0 個。 5,217 kB のアーカイブを取得する必要があります。 この操作後に追加で 35.2 MB のディスク容量が消費されます。 続行しますか? [Y/n] \\ git コマンドで Kernel ソースを取得します。 developer@develop3:~/work$ git clone https://github.com/centurysys/linux-kernel-MAE.git Cloning into 'linux-kernel-MAE'... remote: Enumerating objects: 6550173, done. remote: Total 6550173 (delta 0), reused 0 (delta 0), pack-reused 6550173 Receiving objects: 100% (6550173/6550173), 1.38 GiB | 8.73 MiB/s, done. Resolving deltas: 100% (5542500/5542500), done. Checking out files: 100% (61926/61926), done. developer@develop3:~/work$ \\ branch を確認します。 developer@develop3:~/work$ cd linux-kernel-MAE/ developer@develop3:~/work/linux-kernel-MAE$ git branch * MA-E3xx/linux-WireGuard-4.19.y-20190601 \\ ===== root filesystem の入手 ===== [[https://wiki.centurysys.jp/doku.php?id=download_software:mae3xx:start#ubuntu_1804lts_bionic_beaver_%E3%83%99%E3%83%BC%E3%82%B91|こちら]] からダウンロードします。 developer@develop3:~/work$ ls -l 合計 66876 drwxrwxr-x 27 developer developer 4096 6月 24 03:41 linux-kernel-MAE -rw-rw-r-- 1 developer developer 68472984 6月 24 04:04 mae3xx_rootfs_bionic_v4_2_0.tar.xz <----- v4.2.0 \\ ディレクトリを作って、アーカイブを展開しておきます。 developer@develop3:~/work$ mkdir rootfs developer@develop3:~/work$ cd rootfs/ developer@develop3:~/work/rootfs$ sudo tar axvf ../mae3xx_rootfs_bionic_v4_2_0.tar.xz ... ./dev/tty0 ./dev/rmidi2 ./dev/tty3 ./dev/tty7 ./dev/dsp2 ./dev/audio2 ./dev/null developer@develop3:~/work/rootfs$ \\ 以下のようにファイルシステムのベースが展開されていることを確認します。 developer@develop3:~/work/rootfs$ ls -l 合計 72 drwxr-xr-x 2 root root 4096 6月 11 02:21 bin drwxr-xr-x 2 root root 4096 6月 20 02:24 boot drwxr-xr-x 4 root root 4096 9月 7 2017 dev drwxr-xr-x 87 root root 4096 6月 20 02:14 etc drwxr-xr-x 3 root root 4096 9月 7 2017 home drwxr-xr-x 17 root root 4096 6月 6 04:52 lib drwxr-xr-x 2 root root 4096 9月 7 2017 media drwxr-xr-x 6 root root 4096 12月 13 2017 mnt drwxr-xr-x 3 root root 4096 12月 20 2017 opt drwxr-xr-x 2 root root 4096 4月 12 2016 proc drwx------ 4 root root 4096 6月 20 02:15 root drwxr-xr-x 15 root root 4096 2月 26 01:25 run drwxr-xr-x 2 root root 4096 6月 11 02:21 sbin drwxr-xr-x 2 root root 4096 9月 7 2017 srv drwxr-xr-x 2 root root 4096 2月 5 2016 sys drwxrwxrwt 2 root root 4096 6月 20 02:15 tmp drwxr-xr-x 10 root root 4096 9月 7 2017 usr drwxr-xr-x 12 root root 4096 8月 27 2018 var developer@develop3:~/work/rootfs$ cat etc/version MA-E3xx firmware version 4.2.0 (Thu Jun 20 11:20:42 JST 2019) developer@develop3:~/work/rootfs$ \\ ===== ビルドスクリプトの入手 ===== [[https://wiki.centurysys.jp/doku.php?id=download_software:mae3xx:start#%E3%83%A6%E3%83%BC%E3%83%86%E3%82%A3%E3%83%AA%E3%83%86%E3%82%A3%E3%81%9D%E3%81%AE%E4%BB%96|ここ]] から [[https://wiki.centurysys.jp/lib/exe/fetch.php?media=download_software:mae3xx:build_firm.sh|build_firm.sh]] を入手します。 developer@develop3:~/work$ ls -l 合計 66888 -rw-rw-r-- 1 developer developer 6732 6月 24 04:16 build_firm.sh drwxrwxr-x 27 developer developer 4096 6月 24 03:41 linux-kernel-MAE -rw-rw-r-- 1 developer developer 68472984 6月 24 04:04 mae3xx_rootfs_bionic_v4_2_0.tar.xz drwxr-xr-x 20 root root 4096 6月 17 23:42 rootfs \\ 実行を許可しておきます。 developer@develop3:~/work$ chmod +x build_firm.sh developer@develop3:~/work$ ls -l build_firm.sh -rwxrwxr-x 1 developer developer 6732 6月 24 04:16 build_firm.sh \\ ===== パッケージの追加 ===== 下記が必要になりますので、追加しておきます。 * squashfs-tools * u-boot-tools * bison * flex * libssl-dev * bc * zip * unzip developer@develop3:~/work$ sudo apt install squashfs-tools u-boot-tools bison flex libssl-dev bc zip unzip パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: libfl-dev 提案パッケージ: bison-doc flex-doc libssl-doc 以下のパッケージが新たにインストールされます: bc bison flex libfl-dev libssl-dev squashfs-tools u-boot-tools unzip zip アップグレード: 0 個、新規インストール: 9 個、削除: 0 個、保留: 0 個。 2,822 kB のアーカイブを取得する必要があります。 この操作後に追加で 12.7 MB のディスク容量が消費されます。 続行しますか? [Y/n]