目次

PC上で root filesystem を変更する(QEMU使用)

アップデート用ファームウェアの作成(クロス) の手順でファームウェアを作成することはできますが、
パッケージの追加・削除 については “apt-get” コマンドを実行する必要があります。
実機で NFSやSDカード、USBメモリなどを root filesystem として起動し、作業を行なってもよいのですが、
環境の準備に手間がかかりますので、ここではPC上で作業する方法を紹介します。


ターゲット root filesystem の準備

ターゲットの root filesystem は、ダウンロード:MA-E3xxシリーズ からダウンロードして
展開しておきます。

user1@lubuntu-vpc:~/work$ ls -l
合計 55464
-rw-r--r--  1 user1 user1 56777748  3月 31 10:39 MAE320_rootfs_base_rc1.tar.xz
-rwxr-xr--  1 user1 user1     4680  3月 26 16:05 build_firm.sh
drwxr-xr-x 20 root  root      4096  3月  4 16:32 mae320_rootfs  <---- ここに展開した
user1@lubuntu-vpc:~/work$ 
user1@lubuntu-vpc:~/work$ ls -l mae320_rootfs/
合計 72
drwxr-xr-x  2 root root 4096  3月 11 09:44 bin
drwxr-xr-x  2 root root 4096  3月 31 10:44 boot
drwxr-xr-x  2 root root 4096  3月 31 10:43 dev
drwxr-xr-x 80 root root 4096  3月 31 10:35 etc
drwxr-xr-x  3 root root 4096  2月 18 14:22 home
drwxr-xr-x 16 root root 4096  3月  6 10:04 lib
drwxr-xr-x  2 root root 4096  2月 17 12:55 media
drwxr-xr-x  6 root root 4096  3月  7 12:13 mnt
drwxr-xr-x  2 root root 4096  3月 10 16:25 opt
drwxr-xr-x  2 root root 4096 10月 14 05:42 proc
drwx------  5 root root 4096  3月 25 16:47 root
drwxr-xr-x  2 root root 4096  2月 17 12:59 run
drwxr-xr-x  2 root root 4096  3月 26 13:57 sbin
drwxr-xr-x  2 root root 4096  2月 17 12:55 srv
drwxr-xr-x  2 root root 4096  6月  5  2013 sys
drwxrwxrwt  5 root root 4096  3月 31 11:46 tmp
drwxr-xr-x 10 root root 4096  2月 17 12:55 usr
drwxr-xr-x 11 root root 4096  2月 17 12:55 var
user1@lubuntu-vpc:~/work$


chroot スクリプトの準備

このファイルをダウンロードしておきます。

filename stat sha1sum info
chroot_arm.sh2014/03/31 12:16 611 B5140784dd478dc194180e3a6ec454d78b302f7b5


ターゲット root filesystem へ chroot

下記の通り、ターゲット root filesystem のパスを指定して実行します。

user1@lubuntu-vpc:~/work$ sudo ./chroot_arm.sh mae320_rootfs/
[sudo] password for user1: 
root@lubuntu-vpc:/#

とくに変化はないように見えます。
uname コマンドで確認してみます。

root@lubuntu-vpc:/# uname -a
Linux lubuntu-vpc 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 armv7l armv7l armv7l GNU/Linux
root@lubuntu-vpc:/#

machine/processor/hardware-platform が “armv7l” となっており、ARM環境になっていることがわかります。


ターゲット root filesystem 上での作業

apt-get コマンドが動作するか、確認してみます。

root@lubuntu-vpc:/# apt-get update  
0% [Working]qemu: Unsupported syscall: 374
Ign http://ports.ubuntu.com saucy InRelease        
Ign http://ports.ubuntu.com saucy-updates InRelease
Ign http://ports.ubuntu.com saucy-security InRelease
Hit http://ports.ubuntu.com saucy Release.gpg
Hit http://ports.ubuntu.com saucy-updates Release.gpg
Hit http://ports.ubuntu.com saucy-security Release.gpg
Hit http://ports.ubuntu.com saucy Release
Hit http://ports.ubuntu.com saucy-updates Release
Hit http://ports.ubuntu.com saucy-security Release
Hit http://ports.ubuntu.com saucy/main armhf Packages
Hit http://ports.ubuntu.com saucy/restricted armhf Packages
Hit http://ports.ubuntu.com saucy/universe armhf Packages
Hit http://ports.ubuntu.com saucy/main Translation-en
Hit http://ports.ubuntu.com saucy/restricted Translation-en
Hit http://ports.ubuntu.com saucy/universe Translation-en
Hit http://ports.ubuntu.com saucy-updates/main armhf Packages
Hit http://ports.ubuntu.com saucy-updates/restricted armhf Packages
Hit http://ports.ubuntu.com saucy-updates/universe armhf Packages
Hit http://ports.ubuntu.com saucy-updates/main Translation-en
Hit http://ports.ubuntu.com saucy-updates/restricted Translation-en
Hit http://ports.ubuntu.com saucy-updates/universe Translation-en
Hit http://ports.ubuntu.com saucy-security/main armhf Packages
Hit http://ports.ubuntu.com saucy-security/restricted armhf Packages
Hit http://ports.ubuntu.com saucy-security/universe armhf Packages
Hit http://ports.ubuntu.com saucy-security/main Translation-en
Hit http://ports.ubuntu.com saucy-security/restricted Translation-en
Hit http://ports.ubuntu.com saucy-security/universe Translation-en
Reading package lists... Done
root@lubuntu-vpc:/# 

動作することが確認できました。
あとは、通常と同じ手順でパッケージの追加・削除が可能です。