目次

Firmware build

build script

usage

# ./build_firm_E4xx.sh -h
MA-E4xx series Firmware build script
usage: build_firm_E4xx.sh -k kernel_dir -r rootfs dir [-o firmware_file]


build

root@jetson:/home/kikuchi/work# ./build_firm_E4xx.sh -k ../src/linux-kernel-MAE4xx -r mae4xx_xenial_rootfs -o mae4xx_xenial_v3_0_0testing2.img 
MA-E4xx series Firmware build script
* kernelrelease: 4.4.30
  CHK     include/config/kernel.release
  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
  CHK     include/generated/timeconst.h
  CHK     include/generated/bounds.h
  CHK     include/generated/asm-offsets.h
  CALL    scripts/checksyscalls.sh
  CHK     include/generated/compile.h
  CHK     kernel/config_data.h
  Kernel: arch/arm/boot/Image is ready
  Building modules, stage 2.
  MODPOST 177 modules
  Kernel: arch/arm/boot/Image is ready
  Kernel: arch/arm/boot/zImage is ready
  CHK     include/config/kernel.release
  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
  CHK     include/generated/bounds.h
  CHK     include/generated/timeconst.h
  CHK     include/generated/asm-offsets.h
  CALL    scripts/checksyscalls.sh
  CHK     include/generated/compile.h
  CHK     kernel/config_data.h
  Kernel: arch/arm/boot/Image is ready
  Kernel: arch/arm/boot/Image is ready
  Kernel: arch/arm/boot/zImage is ready
  Kernel: arch/arm/boot/Image is ready
  Kernel: arch/arm/boot/zImage is ready
  Image arch/arm/boot/uImage is ready
* copying kernel image
* copying DeviceTree blob
* remove old kernel modules
* instal kernel modules to /home/kikuchi/work/mae4xx_xenial_rootfs/lib/modules/4.4.30
  INSTALL crypto/authenc.ko
  INSTALL crypto/authencesn.ko
  INSTALL crypto/md4.ko
  INSTALL drivers/block/zram/zram.ko
  INSTALL drivers/mtd/devices/m25p80.ko
  INSTALL drivers/mtd/spi-nor/spi-nor.ko
  INSTALL drivers/usb/phy/phy-msm-qusb.ko
  INSTALL drivers/usb/phy/phy-msm-ssusb-qmp.ko
  INSTALL drivers/usb/serial/cp210x.ko
  INSTALL drivers/usb/serial/ftdi_sio.ko
  INSTALL drivers/usb/serial/qcserial.ko
  INSTALL drivers/usb/usbip/usbip-core.ko
  INSTALL drivers/usb/usbip/usbip-host.ko
  INSTALL drivers/usb/usbip/vhci-hcd.ko
  INSTALL fs/cifs/cifs.ko
  INSTALL fs/fscache/fscache.ko
  INSTALL mm/zsmalloc.ko
  INSTALL net/bridge/netfilter/ebt_802_3.ko
  INSTALL net/bridge/netfilter/ebt_among.ko
  INSTALL net/bridge/netfilter/ebt_arp.ko
  INSTALL net/bridge/netfilter/ebt_arpreply.ko
  INSTALL net/bridge/netfilter/ebt_dnat.ko
  INSTALL net/bridge/netfilter/ebt_ip.ko
  INSTALL net/bridge/netfilter/ebt_ip6.ko
  INSTALL net/bridge/netfilter/ebt_limit.ko
  INSTALL net/bridge/netfilter/ebt_log.ko
  INSTALL net/bridge/netfilter/ebt_mark.ko
  INSTALL net/bridge/netfilter/ebt_mark_m.ko
  INSTALL net/bridge/netfilter/ebt_nflog.ko
  INSTALL net/bridge/netfilter/ebt_pkttype.ko
  INSTALL net/bridge/netfilter/ebt_redirect.ko
  INSTALL net/bridge/netfilter/ebt_snat.ko
  INSTALL net/bridge/netfilter/ebt_stp.ko
  INSTALL net/bridge/netfilter/ebt_vlan.ko
  INSTALL net/bridge/netfilter/ebtable_broute.ko
  INSTALL net/bridge/netfilter/ebtable_filter.ko
  INSTALL net/bridge/netfilter/ebtable_nat.ko
  INSTALL net/bridge/netfilter/nf_log_bridge.ko
  INSTALL net/bridge/netfilter/nft_meta_bridge.ko
  INSTALL net/bridge/netfilter/nft_reject_bridge.ko
  INSTALL net/ipv4/ah4.ko
  INSTALL net/ipv4/esp4.ko
  INSTALL net/ipv4/ip_vti.ko
  INSTALL net/ipv4/ipcomp.ko
  INSTALL net/ipv4/netfilter/arp_tables.ko
  INSTALL net/ipv4/netfilter/arpt_mangle.ko
  INSTALL net/ipv4/netfilter/arptable_filter.ko
  INSTALL net/ipv4/netfilter/ipt_CLUSTERIP.ko
  INSTALL net/ipv4/netfilter/ipt_ECN.ko
  INSTALL net/ipv4/netfilter/ipt_SYNPROXY.ko
  INSTALL net/ipv4/netfilter/ipt_ah.ko
  INSTALL net/ipv4/netfilter/ipt_rpfilter.ko
  INSTALL net/ipv4/netfilter/nf_log_arp.ko
  INSTALL net/ipv4/netfilter/nf_nat_h323.ko
  INSTALL net/ipv4/netfilter/nf_nat_pptp.ko
  INSTALL net/ipv4/netfilter/nf_nat_proto_gre.ko
  INSTALL net/ipv4/netfilter/nf_nat_snmp_basic.ko
  INSTALL net/ipv4/netfilter/nf_tables_arp.ko
  INSTALL net/ipv4/netfilter/nft_dup_ipv4.ko
  INSTALL net/ipv4/xfrm4_mode_beet.ko
  INSTALL net/ipv4/xfrm4_mode_transport.ko
  INSTALL net/ipv4/xfrm4_mode_tunnel.ko
  INSTALL net/ipv4/xfrm4_tunnel.ko
  INSTALL net/ipv6/ah6.ko
  INSTALL net/ipv6/esp6.ko
  INSTALL net/ipv6/ila.ko
  INSTALL net/ipv6/ip6_gre.ko
  INSTALL net/ipv6/ip6_vti.ko
  INSTALL net/ipv6/ipcomp6.ko
  INSTALL net/ipv6/mip6.ko
  INSTALL net/ipv6/netfilter/ip6t_SYNPROXY.ko
  INSTALL net/ipv6/netfilter/ip6t_ah.ko
  INSTALL net/ipv6/netfilter/ip6t_eui64.ko
  INSTALL net/ipv6/netfilter/ip6t_frag.ko
  INSTALL net/ipv6/netfilter/ip6t_hbh.ko
  INSTALL net/ipv6/netfilter/ip6t_ipv6header.ko
  INSTALL net/ipv6/netfilter/ip6t_mh.ko
  INSTALL net/ipv6/netfilter/ip6t_rpfilter.ko
  INSTALL net/ipv6/netfilter/ip6t_rt.ko
  INSTALL net/ipv6/netfilter/ip6table_mangle.ko
  INSTALL net/ipv6/netfilter/ip6table_raw.ko
  INSTALL net/ipv6/netfilter/nf_dup_ipv6.ko
  INSTALL net/ipv6/netfilter/nft_dup_ipv6.ko
  INSTALL net/ipv6/netfilter/nft_masq_ipv6.ko
  INSTALL net/ipv6/netfilter/nft_redir_ipv6.ko
  INSTALL net/ipv6/xfrm6_mode_beet.ko
  INSTALL net/ipv6/xfrm6_mode_ro.ko
  INSTALL net/ipv6/xfrm6_mode_transport.ko
  INSTALL net/ipv6/xfrm6_mode_tunnel.ko
  INSTALL net/ipv6/xfrm6_tunnel.ko
  INSTALL net/l2tp/l2tp_debugfs.ko
  INSTALL net/l2tp/l2tp_eth.ko
  INSTALL net/l2tp/l2tp_ip.ko
  INSTALL net/l2tp/l2tp_ip6.ko
  INSTALL net/netfilter/ipset/ip_set_bitmap_ip.ko
  INSTALL net/netfilter/ipset/ip_set_bitmap_ipmac.ko
  INSTALL net/netfilter/ipset/ip_set_bitmap_port.ko
  INSTALL net/netfilter/ipset/ip_set_hash_ip.ko
  INSTALL net/netfilter/ipset/ip_set_hash_ipmark.ko
  INSTALL net/netfilter/ipset/ip_set_hash_ipport.ko
  INSTALL net/netfilter/ipset/ip_set_hash_ipportip.ko
  INSTALL net/netfilter/ipset/ip_set_hash_ipportnet.ko
  INSTALL net/netfilter/ipset/ip_set_hash_mac.ko
  INSTALL net/netfilter/ipset/ip_set_hash_net.ko
  INSTALL net/netfilter/ipset/ip_set_hash_netiface.ko
  INSTALL net/netfilter/ipset/ip_set_hash_netnet.ko
  INSTALL net/netfilter/ipset/ip_set_hash_netport.ko
  INSTALL net/netfilter/ipset/ip_set_hash_netportnet.ko
  INSTALL net/netfilter/ipset/ip_set_list_set.ko
  INSTALL net/netfilter/ipvs/ip_vs.ko
  INSTALL net/netfilter/nf_conntrack_amanda.ko
  INSTALL net/netfilter/nf_conntrack_broadcast.ko
  INSTALL net/netfilter/nf_conntrack_h323.ko
  INSTALL net/netfilter/nf_conntrack_irc.ko
  INSTALL net/netfilter/nf_conntrack_netbios_ns.ko
  INSTALL net/netfilter/nf_conntrack_pptp.ko
  INSTALL net/netfilter/nf_conntrack_proto_dccp.ko
  INSTALL net/netfilter/nf_conntrack_proto_gre.ko
  INSTALL net/netfilter/nf_conntrack_proto_sctp.ko
  INSTALL net/netfilter/nf_conntrack_proto_udplite.ko
  INSTALL net/netfilter/nf_conntrack_sane.ko
  INSTALL net/netfilter/nf_conntrack_sip.ko
  INSTALL net/netfilter/nf_conntrack_snmp.ko
  INSTALL net/netfilter/nf_conntrack_tftp.ko
  INSTALL net/netfilter/nf_nat_amanda.ko
  INSTALL net/netfilter/nf_nat_irc.ko
  INSTALL net/netfilter/nf_nat_proto_dccp.ko
  INSTALL net/netfilter/nf_nat_proto_sctp.ko
  INSTALL net/netfilter/nf_nat_proto_udplite.ko
  INSTALL net/netfilter/nf_nat_sip.ko
  INSTALL net/netfilter/nf_nat_tftp.ko
  INSTALL net/netfilter/nf_synproxy_core.ko
  INSTALL net/netfilter/nfnetlink_acct.ko
  INSTALL net/netfilter/nfnetlink_cthelper.ko
  INSTALL net/netfilter/nft_queue.ko
  INSTALL net/netfilter/xt_RATEEST.ko
  INSTALL net/netfilter/xt_TCPOPTSTRIP.ko
  INSTALL net/netfilter/xt_TEE.ko
  INSTALL net/netfilter/xt_addrtype.ko
  INSTALL net/netfilter/xt_bpf.ko
  INSTALL net/netfilter/xt_cgroup.ko
  INSTALL net/netfilter/xt_cluster.ko
  INSTALL net/netfilter/xt_comment.ko
  INSTALL net/netfilter/xt_connbytes.ko
  INSTALL net/netfilter/xt_connlabel.ko
  INSTALL net/netfilter/xt_cpu.ko
  INSTALL net/netfilter/xt_dccp.ko
  INSTALL net/netfilter/xt_devgroup.ko
  INSTALL net/netfilter/xt_dscp.ko
  INSTALL net/netfilter/xt_ecn.ko
  INSTALL net/netfilter/xt_esp.ko
  INSTALL net/netfilter/xt_helper.ko
  INSTALL net/netfilter/xt_hl.ko
  INSTALL net/netfilter/xt_id.ko
  INSTALL net/netfilter/xt_ipcomp.ko
  INSTALL net/netfilter/xt_ipvs.ko
  INSTALL net/netfilter/xt_l2tp.ko
  INSTALL net/netfilter/xt_mac.ko
  INSTALL net/netfilter/xt_nfacct.ko
  INSTALL net/netfilter/xt_osf.ko
  INSTALL net/netfilter/xt_owner.ko
  INSTALL net/netfilter/xt_physdev.ko
  INSTALL net/netfilter/xt_pkttype.ko
  INSTALL net/netfilter/xt_policy.ko
  INSTALL net/netfilter/xt_quota.ko
  INSTALL net/netfilter/xt_rateest.ko
  INSTALL net/netfilter/xt_realm.ko
  INSTALL net/netfilter/xt_recent.ko
  INSTALL net/netfilter/xt_sctp.ko
  INSTALL net/netfilter/xt_socket.ko
  INSTALL net/netfilter/xt_time.ko
  INSTALL net/netfilter/xt_u32.ko
  INSTALL net/xfrm/xfrm_ipcomp.ko
  INSTALL sound/core/seq/snd-seq-midi.ko
  INSTALL sound/core/snd-rawmidi.ko
  INSTALL sound/usb/snd-usb-audio.ko
  INSTALL sound/usb/snd-usbmidi-lib.ko
  DEPMOD  4.4.30
total 108
lrwxrwxrwx 1 root root    37 Sep 22 10:31 build -> /home/kikuchi/src/linux-kernel-MAE4xx
drwxr-xr-x 8 root root  4096 Sep 22 10:31 kernel
-rw-r--r-- 1 root root   194 Sep 22 10:31 modules.alias
-rw-r--r-- 1 root root   259 Sep 22 10:31 modules.alias.bin
-rw-r--r-- 1 root root 16128 Sep 22 10:31 modules.builtin
-rw-r--r-- 1 root root 19272 Sep 22 10:31 modules.builtin.bin
-rw-r--r-- 1 root root  8170 Sep 22 10:31 modules.dep
-rw-r--r-- 1 root root 14779 Sep 22 10:31 modules.dep.bin
-rw-r--r-- 1 root root    52 Sep 22 10:31 modules.devname
-rw-r--r-- 1 root root  6713 Sep 22 10:31 modules.order
-rw-r--r-- 1 root root   131 Sep 22 10:31 modules.softdep
-rw-r--r-- 1 root root  7603 Sep 22 10:31 modules.symbols
-rw-r--r-- 1 root root  8987 Sep 22 10:31 modules.symbols.bin
lrwxrwxrwx 1 root root    37 Sep 22 10:31 source -> /home/kikuchi/src/linux-kernel-MAE4xx
Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on /home/kikuchi/work/build_1506043849/kmod.sqfs, block size 131072.
[==============================================================================================/] 191/191 100%

Exportable Squashfs 4.0 filesystem, xz compressed, data block size 131072
	compressed data, compressed metadata, compressed fragments, compressed xattrs
	duplicates are removed
Filesystem size 583.32 Kbytes (0.57 Mbytes)
	25.36% of uncompressed filesystem size (2299.76 Kbytes)
Inode table size 1578 bytes (1.54 Kbytes)
	22.14% of uncompressed inode table size (7126 bytes)
Directory table size 2198 bytes (2.15 Kbytes)
	43.49% of uncompressed directory table size (5054 bytes)
Number of duplicate files found 0
Number of inodes 222
Number of files 188
Number of fragments 16
Number of symbolic links  0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 34
Number of ids (unique uids + gids) 1
Number of uids 1
	root (0)
Number of gids 1
	root (0)
Parallel mksquashfs: Using 2 processors
Creating 4.0 filesystem on /home/kikuchi/work/build_1506043849/rootfs.img, block size 262144.
[==========================================================================================-] 14390/14390 100%

Exportable Squashfs 4.0 filesystem, xz compressed, data block size 262144
	compressed data, compressed metadata, compressed fragments, compressed xattrs
	duplicates are removed
Filesystem size 68160.20 Kbytes (66.56 Mbytes)
	29.07% of uncompressed filesystem size (234482.63 Kbytes)
Inode table size 164542 bytes (160.69 Kbytes)
	24.82% of uncompressed inode table size (662961 bytes)
Directory table size 170398 bytes (166.40 Kbytes)
	41.54% of uncompressed directory table size (410216 bytes)
Number of duplicate files found 861
Number of inodes 19501
Number of files 14066
Number of fragments 518
Number of symbolic links  3545
Number of device nodes 80
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 1810
Number of ids (unique uids + gids) 23
Number of uids 7
	root (0)
	daemon (1)
	ubuntu (1000)
	rtkit (108)
	saned (109)
	www-data (33)
	usbmux (104)
Number of gids 20
	root (0)
	video (44)
	audio (29)
	tty (5)
	kmem (15)
	disk (6)
	daemon (1)
	dip (30)
	shadow (42)
	mail (8)
	ubuntu (1000)
	messagebus (108)
	nogroup (65534)
	utmp (43)
	fuse (107)
	lpadmin (110)
	scanner (111)
	staff (50)
	avahi-autoipd (112)
	adm (4)
* create initramfs ...
update-initramfs: Generating /boot/initrd.img-4.4.30
  adding: kernel.img (stored 0%)
  adding: kmod.img (stored 0%)
  adding: initramfs.img (stored 0%)
  adding: rootfs.img (stored 0%)
  adding: dtb.img (deflated 75%)
  adding: .config (deflated 77%)
* Firmware filename: /home/kikuchi/work/mae4xx_xenial_v3_0_0testing2.img
done.
please remove working directory '/home/kikuchi/work/build_1506043849' manually.
root@jetson:/home/kikuchi/work#


firmware 構造

ZIP archive になっています (MA-E3xx と同じ)。

root@jetson:/home/kikuchi/work# unzip -l mae4xx_xenial_v3_0_0testing2.img
Archive:  mae4xx_xenial_v3_0_0testing2.img
  Length      Date    Time    Name
---------  ---------- -----   ----
  3659232  2017-09-22 10:31   kernel.img
   604160  2017-09-22 10:31   kmod.img
  2834808  2017-09-22 10:32   initramfs.img
 69799936  2017-09-22 10:32   rootfs.img
    27536  2017-09-22 10:31   dtb.img
   100137  2017-09-22 10:31   .config
---------                     -------
 77025809                     6 files
root@jetson:/home/kikuchi/work#