====== ファームウェアビルド環境の準備 ======
ファームウェアをビルドするためには、
* 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]