ファームウェアの作成


build_firm.sh スクリプトにより、ファームウェアファイルを作ることができます。
スクリプト本体は、ダウンロード:MA-S1xx シリーズ にあります。

user1@mas1xx-devel:~/work$ ./build_firm.sh 
MA-S1xx series Firmware build script
usage: build_firm.sh -k kernel_dir -r rootfs_dir [-c COMPRESSION] [-o firmware_file]
user1@mas1xx-devel:~/work$ 

引数として、下記を指定します。


実行例は下記のようになります。

user1@mas1xx-devel:~/work$ sudo ./build_firm.sh -k ~/src/linux-kernel -r mas1xx_focal_rootfs -o mas1xx_focal_v5_0_0beta1.img
MA-S1xx series Firmware build script
* use default config
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/kconfig/conf.o
  HOSTCC  scripts/kconfig/confdata.o
  HOSTCC  scripts/kconfig/expr.o
  LEX     scripts/kconfig/lexer.lex.c
  YACC    scripts/kconfig/parser.tab.[ch]
  HOSTCC  scripts/kconfig/lexer.lex.o
  HOSTCC  scripts/kconfig/parser.tab.o
  HOSTCC  scripts/kconfig/preprocess.o
  HOSTCC  scripts/kconfig/symbol.o
  HOSTLD  scripts/kconfig/conf
#
# configuration written to .config
#
* kernelrelease: 5.4.41-linux4sam-2020.04+
scripts/kconfig/conf  --syncconfig Kconfig
  SYSHDR  arch/arm/include/generated/uapi/asm/unistd-common.h
  SYSHDR  arch/arm/include/generated/uapi/asm/unistd-oabi.h
  SYSHDR  arch/arm/include/generated/uapi/asm/unistd-eabi.h
  HOSTCC  scripts/dtc/dtc.o
  HOSTCC  scripts/dtc/flattree.o
  HOSTCC  scripts/dtc/fstree.o
  HOSTCC  scripts/dtc/data.o
  HOSTCC  scripts/dtc/livetree.o
  HOSTCC  scripts/dtc/treesource.o
  HOSTCC  scripts/dtc/srcpos.o
  HOSTCC  scripts/dtc/checks.o
  HOSTCC  scripts/dtc/util.o
  LEX     scripts/dtc/dtc-lexer.lex.c
  YACC    scripts/dtc/dtc-parser.tab.[ch]
  HOSTCC  scripts/dtc/dtc-lexer.lex.o
  HOSTCC  scripts/dtc/dtc-parser.tab.o
... 中略 ...
	mail (8)
	staff (50)
	unknown (112)
	adm (4)
* create initramfs ...
update-initramfs: Generating /boot/initrd.img-5.4.41-linux4sam-2020.04+
  adding: kernel.img (stored 0%)
  adding: kmod.img (stored 0%)
  adding: initramfs.img (stored 0%)
  adding: rootfs.img (stored 0%)
  adding: .config (deflated 77%)
  adding: at91-centurysys-gemini-00.dtb (deflated 76%)
  adding: at91-centurysys-gemini-01.dtb (deflated 76%)
  adding: at91-centurysys-gemini-01.dtbo (deflated 64%)
  adding: at91-centurysys-gemini-02.dtbo (deflated 63%)
* Firmware filename: /home/user1/work/mas1xx_focal_v5_0_0beta1.img
done.
please remove working directory '/home/user1/work/build_1596021499' manually.
user1@mas1xx-devel:~/work$ 


ファームウェアができあがりました。

user1@mas1xx-devel:~/work$ ls -l mas1xx_focal_v5_0_0beta1.img 
-rw-r--r-- 1 root root 87142992  7月 29 11:21 mas1xx_focal_v5_0_0beta1.img


ファームウェアは ZIP ファイル形式になっていますので、unzip コマンドで内容を確認することができます。

user1@mas1xx-devel:~/work$ unzip -l mas1xx_focal_v5_0_0beta1.img
Archive:  mas1xx_focal_v5_0_0beta1.img
  Length      Date    Time    Name
---------  ---------- -----   ----
  4757680  2020-07-29 11:21   kernel.img
  1335296  2020-07-29 11:21   kmod.img
  2456724  2020-07-29 11:21   initramfs.img
 78548992  2020-07-29 11:21   rootfs.img
   109251  2020-07-29 11:21   .config
    33413  2020-07-29 11:21   at91-centurysys-gemini-00.dtb
    33663  2020-07-29 11:21   at91-centurysys-gemini-01.dtb
     1770  2020-07-29 11:21   at91-centurysys-gemini-01.dtbo
     1683  2020-07-29 11:21   at91-centurysys-gemini-02.dtbo
---------                     -------
 87278472                     9 files


1)
省略可: 省略時、カレントディレクトリに “firmware_YYYYMMDD_hhmmss.img” 形式で作成します