この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
mae3xx_ope:generate_firmware:start [2014/03/19 11:51] admin |
mae3xx_ope:generate_firmware:start [2020/06/18 09:53] (現在) admin |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
+ | ====== 実機上でのファームウェア作成 (obsolete, deleted) ====== | ||
+ | |||
+ | <note warning>**現在この方法は削除されており、利用できません。**</note> | ||
+ | |||
+ | ===== フルファームウェアの作成 ===== | ||
+ | |||
+ | MA-E3xxシリーズでは、NAND Flashメモリベースのファームウェアで起動し、 | ||
+ | |||
+ | * パッケージの追加 | ||
+ | * お客様独自のアプリケーションの追加 | ||
+ | * 設定ファイルのカスタマイズ | ||
+ | |||
+ | 等を行った状態を **"ファームウェア"** として作成することが可能です((v4.0 以降ではサポートしていません))。\\ | ||
+ | ここでは、標準では入れていないFTPサーバを組み込んだファームウェアを作る例を紹介します。\\ | ||
+ | |||
+ | まず、実機にて vsftpd パッケージをインストールします。 | ||
+ | |||
+ | <code> | ||
+ | root@plum:~# apt-get install vsftpd | ||
+ | Reading package lists... Done | ||
+ | Building dependency tree | ||
+ | Reading state information... Done | ||
+ | The following NEW packages will be installed: | ||
+ | vsftpd | ||
+ | 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. | ||
+ | Need to get 100 kB of archives. | ||
+ | After this operation, 302 kB of additional disk space will be used. | ||
+ | Get:1 http://ports.ubuntu.com/ubuntu-ports/ saucy/main vsftpd armhf 3.0.2-1ubuntu2 [100 kB] | ||
+ | Fetched 100 kB in 1s (52.6 kB/s) | ||
+ | Preconfiguring packages ... | ||
+ | Selecting previously unselected package vsftpd. | ||
+ | (Reading database ... 17860 files and directories currently installed.) | ||
+ | Unpacking vsftpd (from .../vsftpd_3.0.2-1ubuntu2_armhf.deb) ... | ||
+ | Processing triggers for ureadahead ... | ||
+ | Setting up vsftpd (3.0.2-1ubuntu2) ... | ||
+ | vsftpd start/running, process 1411 | ||
+ | Processing triggers for ureadahead ... | ||
+ | localepurge: Disk space freed in /usr/share/locale: 0 KiB | ||
+ | localepurge: Disk space freed in /usr/share/man: 0 KiB | ||
+ | |||
+ | Total disk space freed by localepurge: 0 KiB | ||
+ | |||
+ | root@plum:~# | ||
+ | </code> | ||
+ | |||
+ | \\ | ||
+ | |||
+ | "generate_firm" スクリプトを実行すると、ファームウェアのビルドが始まります。\\ | ||
+ | 15分程度かかります。 | ||
+ | |||
+ | <code> | ||
+ | root@plum:~# generate_firm | ||
+ | ## MA-E3xx series firmware generater | ||
+ | * creating new rootfs image... | ||
+ | Parallel mksquashfs: Using 1 processor | ||
+ | Creating 4.0 filesystem on /tmp/.new_firm/rootfs.img, block size 1048576. | ||
+ | [=========================================================================================\] 13339/13339 100% | ||
+ | |||
+ | Exportable Squashfs 4.0 filesystem, xz compressed, data block size 1048576 | ||
+ | compressed data, compressed metadata, compressed fragments, compressed xattrs | ||
+ | duplicates are removed | ||
+ | Filesystem size 55919.81 Kbytes (54.61 Mbytes) | ||
+ | 25.28% of uncompressed filesystem size (221230.86 Kbytes) | ||
+ | Inode table size 166498 bytes (162.60 Kbytes) | ||
+ | 24.13% of uncompressed inode table size (689933 bytes) | ||
+ | Directory table size 161736 bytes (157.95 Kbytes) | ||
+ | 41.84% of uncompressed directory table size (386574 bytes) | ||
+ | Number of duplicate files found 487 | ||
+ | Number of inodes 19004 | ||
+ | Number of files 13329 | ||
+ | Number of fragments 144 | ||
+ | Number of symbolic links 4186 | ||
+ | Number of device nodes 0 | ||
+ | Number of fifo nodes 0 | ||
+ | Number of socket nodes 0 | ||
+ | Number of directories 1489 | ||
+ | Number of ids (unique uids + gids) 20 | ||
+ | Number of uids 9 | ||
+ | root (0) | ||
+ | user1 (1000) | ||
+ | libuuid (100) | ||
+ | ntp (104) | ||
+ | syslog (101) | ||
+ | statd (105) | ||
+ | www-data (33) | ||
+ | debian-inadyn (107) | ||
+ | zabbix (103) | ||
+ | Number of gids 18 | ||
+ | root (0) | ||
+ | dip (30) | ||
+ | shadow (42) | ||
+ | debian-inadyn (108) | ||
+ | user1 (1000) | ||
+ | users (100) | ||
+ | ftp (109) | ||
+ | crontab (102) | ||
+ | mail (8) | ||
+ | utmp (43) | ||
+ | ssh (104) | ||
+ | tty (5) | ||
+ | staff (50) | ||
+ | libuuid (101) | ||
+ | zabbix (105) | ||
+ | nogroup (65534) | ||
+ | ntp (107) | ||
+ | adm (4) | ||
+ | done. | ||
+ | rootfs.img size: 57262080 [bytes] | ||
+ | rootfs mtd size: 83994624 [bytes] | ||
+ | * Kernel module (kmod) image found. | ||
+ | * JRE (opt) image found. | ||
+ | * mtd area of 'kernel' found (/dev/mtdblock3) | ||
+ | * mtd area of 'initramfs' found (/dev/mtdblock5) | ||
+ | * mtd area of 'dtb' found (/dev/mtdblock16) | ||
+ | New firmware file: /tmp/new_firmware.img generated, content is... | ||
+ | Archive: /tmp/new_firmware.img | ||
+ | Length Method Size Cmpr Date Time CRC-32 Name | ||
+ | -------- ------ ------- ---- ---------- ----- -------- ---- | ||
+ | 4257792 Stored 4257792 0% 2014-03-19 12:05 a4427123 kernel.img | ||
+ | 440320 Stored 440320 0% 2014-03-19 12:05 e6eab733 kmod.img | ||
+ | 2193408 Stored 2193408 0% 2014-03-19 12:05 cd57f3c6 initramfs.img | ||
+ | 57262080 Stored 57262080 0% 2014-03-19 12:05 ebd41c20 rootfs.img | ||
+ | 21719040 Stored 21719040 0% 2014-03-19 12:05 0e9b5556 opt.img | ||
+ | 131072 Defl:N 8235 94% 2014-03-19 12:05 f4cebbc9 dtb.img | ||
+ | -------- ------- --- ------- | ||
+ | 86003712 85880875 0% 6 files | ||
+ | root@plum:~# | ||
+ | </code> | ||
+ | |||
+ | \\ | ||
+ | |||
+ | /tmp/new_firmware.img ファイルが作成されました。\\ | ||
+ | 別の機器に適用する場合、ネットワークやUSBメモリなどを使用してコピーしてください。 | ||
+ | |||
+ | できあがった新しいファームウェアを、さっそく適用してみます。 | ||
+ | |||
+ | <code> | ||
+ | root@plum:~# firmup /tmp/new_firmware.img | ||
+ | ### MA-E3xx series firmware update utility (for 2-area firmware). | ||
+ | Updating Area: 0 ... | ||
+ | * image file for kernel found. | ||
+ | writing "kernel" image to /dev/mtdblock2 ... succeeded. | ||
+ | * image file for kmod found. | ||
+ | writing "kmod" image to /dev/mtdblock6 ... succeeded. | ||
+ | * image file for initramfs found. | ||
+ | writing "initramfs" image to /dev/mtdblock4 ... succeeded. | ||
+ | * image file for rootfs found. | ||
+ | writing "rootfs" image to /dev/mtdblock8 ... succeeded. | ||
+ | * opt(JRE) file found. | ||
+ | writing "opt" image to /dev/mtdblock10 ... succeeded. | ||
+ | * DTB file found. | ||
+ | writing "dtb" image to /dev/mtd15 ... succeeded. | ||
+ | * updating default firmware area: 0 | ||
+ | Succeeded. | ||
+ | root@plum:~# | ||
+ | </code> | ||
+ | |||
+ | \\ | ||
+ | |||
+ | 新しいファームウェアで起動してみます。 | ||
+ | |||
+ | <code> | ||
+ | root@plum:~# shutdown -r now | ||
+ | root@plum:~# | ||
+ | Broadcast message from root@plum | ||
+ | (/dev/pts/0) at 12:43 ... | ||
+ | |||
+ | The system is going down for reboot NOW! | ||
+ | </code> | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ログインしてバージョンを確認してみます。\\ | ||
+ | このスクリプトでファームウェアを作成した場合、もとのバージョン名に **"+"** がついたバージョン名となります。 | ||
+ | |||
+ | <code> | ||
+ | * Starting PCSC Lite resource manager pcscd [ OK ] | ||
+ | * Starting NTP server ntpd [ OK ] | ||
+ | * Restoring resolver state... [ OK ] | ||
+ | * Running local boot scripts (/etc/rc.local) [ OK ] | ||
+ | |||
+ | Ubuntu 13.10 plum ttyO0 | ||
+ | |||
+ | plum login: root | ||
+ | Password: | ||
+ | Last login: Wed Mar 19 11:46:31 JST 2014 from 192.168.253.4 on pts/0 | ||
+ | root@plum:~# cat /etc/version | ||
+ | MA-E320 firmware version 1.0.0alpha16+ (Wed Mar 19 11:52:08 JST 2014) | ||
+ | root@plum:~# | ||
+ | </code> | ||
+ | |||
+ | \\ | ||
+ | |||
+ | 追加した vsftpd が動作しているか、確認してみます。 | ||
+ | |||
+ | <code> | ||
+ | root@plum:~# ps ax | ||
+ | PID TTY STAT TIME COMMAND | ||
+ | 1 ? Ss 0:07 /sbin/init | ||
+ | 2 ? S 0:00 [kthreadd] | ||
+ | 3 ? S 0:00 [ksoftirqd/0] | ||
+ | 4 ? S 0:00 [kworker/0:0] | ||
+ | 5 ? S< 0:00 [kworker/0:0H] | ||
+ | 6 ? S 0:00 [kworker/u2:0] | ||
+ | 7 ? S 0:00 [rcuc/0] | ||
+ | 8 ? S 0:00 [rcub/0] | ||
+ | 9 ? S 0:00 [rcu_preempt] | ||
+ | 10 ? S 0:00 [rcu_sched] | ||
+ | 11 ? S 0:00 [rcu_bh] | ||
+ | 12 ? S< 0:00 [khelper] | ||
+ | 13 ? S 0:00 [kdevtmpfs] | ||
+ | 14 ? S< 0:00 [netns] | ||
+ | 15 ? S 0:04 [kworker/0:1] | ||
+ | 16 ? S< 0:00 [writeback] | ||
+ | 17 ? SN 0:00 [ksmd] | ||
+ | 18 ? S< 0:00 [bioset] | ||
+ | 19 ? S< 0:00 [kblockd] | ||
+ | 20 ? S 0:00 [khubd] | ||
+ | 21 ? S< 0:00 [devfreq_wq] | ||
+ | 22 ? S< 0:00 [rpciod] | ||
+ | 31 ? S 0:00 [kswapd0] | ||
+ | 32 ? S 0:00 [fsnotify_mark] | ||
+ | 33 ? S< 0:00 [nfsiod] | ||
+ | 34 ? S< 0:00 [cifsiod] | ||
+ | 35 ? S< 0:00 [crypto] | ||
+ | 64 ? S< 0:00 [OMAP UART0] | ||
+ | 65 ? S< 0:00 [OMAP UART1] | ||
+ | 66 ? S< 0:00 [OMAP UART2] | ||
+ | 67 ? S 0:00 [kapmd] | ||
+ | 68 ? S 0:00 [spi1] | ||
+ | 69 ? S 0:00 [kworker/u2:1] | ||
+ | 72 ? S 0:00 [irq/240-mmc0] | ||
+ | 75 ? S< 0:00 [deferwq] | ||
+ | 76 ? S 0:00 [irq/86-44e0b000] | ||
+ | 77 ? S 0:00 [kworker/u2:2] | ||
+ | 86 ? S 0:00 [kworker/0:2] | ||
+ | 87 ? S 0:00 [ubi_bgt0d] | ||
+ | 146 ? S< 0:00 [kworker/0:1H] | ||
+ | 167 ? S< 0:00 [loop0] | ||
+ | 175 ? S< 0:00 [loop1] | ||
+ | 190 ? S 0:00 [ubifs_bgt0_9] | ||
+ | 303 ? S 0:00 upstart-udev-bridge --daemon | ||
+ | 318 ? Ss 0:00 /lib/systemd/systemd-udevd --daemon | ||
+ | 528 ? Ss 0:00 rpc.idmapd | ||
+ | 534 ? S 0:00 upstart-file-bridge --daemon | ||
+ | 537 ? S 0:00 upstart-socket-bridge --daemon | ||
+ | 539 ? Sl 0:00 rsyslogd -c5 | ||
+ | 561 ? Ss 0:00 rpcbind | ||
+ | 628 ? Ss 0:00 rpc.statd -L | ||
+ | 645 ? Ss 0:00 /usr/sbin/vsftpd <---------------- | ||
+ | 760 ? Ss 0:00 /sbin/dhcpcd-bin -h plum -Y -N -R eth0 | ||
+ | 903 ? Ss 0:00 cron | ||
+ | 907 ? Ss 0:01 /usr/sbin/sshd -D | ||
+ | 985 ? S 0:00 /usr/sbin/dnsmasq -x /var/run/dnsmasq/dnsmasq.pid -u | ||
+ | 1093 ? Ss 0:00 /usr/sbin/fcgiwrap | ||
+ | 1119 ? Ss 0:00 nginx: master process /usr/sbin/nginx | ||
+ | 1121 ? S 0:00 nginx: worker process | ||
+ | 1122 ? S 0:00 nginx: worker process | ||
+ | 1123 ? S 0:00 nginx: worker process | ||
+ | 1124 ? S 0:00 nginx: worker process | ||
+ | 1147 ? Sl 0:00 /usr/sbin/pcscd | ||
+ | 1230 ttyO0 Ss 0:01 /bin/login -- | ||
+ | 1256 ? Ss 0:00 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -c /var/lib/nt | ||
+ | 1276 ttyO0 S 0:01 -bash | ||
+ | 1299 ttyO0 R+ 0:00 ps ax | ||
+ | root@plum:~# | ||
+ | </code> | ||
+ | |||
+ | きちんと、vsftpd が動作していることが確認できました。 | ||
+ | |||
+ | \\ | ||
+ | |||
+ | |||
+ | ===== パッチタイプファームウェアの作成 ===== | ||
+ | |||