2011年12月20日
KZM-A9-DualボードでARM Ubuntu 11.10を使う(2)
前回はrootstockコマンドでARM Ubuntuのルートファイルシステムのイメージを作成しましたが、今回はLinaroのダウンロードページにあるDevelopers and Community Buildsのイメージを動かしてみます。
ユーザーランドのバイナリの準備
LinaroのダウンロードページにあるNanoというビルドセットを使用します。これは動作確認のための最小限のセットです。
(この記事を書いている時点では2011.11 Releaseになっています。)
$ wget http://releases.linaro.org/11.11/ubuntu/oneiric-images/nano/linaro-o-nano-tar-20111121-0.tar.gz
代わりに以下のdeveloper版を使うと、コンパイラなどの開発ツールが入っているものをインストールできます。
$ wget http://releases.linaro.org/11.11/ubuntu/oneiric-images/developer/linaro-o-developer-tar-20111121-0.tar.gz
NFSサーバにディレクトリを作成して移動
localhost:/export がNFSの公開ディレクトリだとすると
$ sudo tar xvpf linaro-o-nano-tar-20111121-0.tar.gz $ mkdir -p /export/linaro_nano/root $ sudo mv binary/boot/filesystem.dir/* /export/linaro_nano/root/
起動
NFSサーバのIPアドレスを192.168.1.126とすると
カーネルのパラメータ
root=/dev/nfs nfsroot=192.168.1.126:/export/linaro_nano/root ip=dhcp noinitrd \ mem=167M@0x40000000 mem=256M@0x50000000 debug no_console_suspend=1 \ console=ttyS1,115200n8n video=qfb rootwait rw
起動ログ
... [ 1.620000] mmc0: new high speed MMC card at address 0001 [ 1.620000] mmcblk0: mmc0:0001 000000 3.82 GiB [ 1.630000] mmcblk0: p1 p2 p3 [ 2.090000] net eth0: SMSC911x/921x identified at 0xe0840000, IRQ: 167 [ 3.100000] Sending DHCP requests .., OK [ 5.270000] IP-Config: Got DHCP answer from 0.0.0.0, my address is 192.168.1.139 [ 5.270000] IP-Config: Complete: [ 5.280000] device=eth0, addr=192.168.1.139, mask=255.255.255.0, gw=192.168.1.62, [ 5.280000] host=192.168.1.139, domain=kmckk.jp, nis-domain=(none), [ 5.290000] bootserver=0.0.0.0, rootserver=192.168.1.26, rootpath= [ 5.300000] Looking up port of RPC 100003/2 on 192.168.1.26 [ 5.310000] Looking up port of RPC 100005/1 on 192.168.1.26 [ 5.320000] VFS: Mounted root (nfs filesystem) on device 0:12. [ 5.320000] Freeing init memory: 120K modprobe: FATAL: Could not load /lib/modules/2.6.35.7/modules.dep: No such file or directory Last login: Sat Jan 1 02:04:14 UTC 2000 on tty1 Welcome to Linaro 11.12 (GNU/Linux 2.6.35.7 armv7l) * Documentation: https://wiki.linaro.org/ root@linaro-nano:~#
起動後の設定
Nameserverの設定
/etc/resolve.conf に以下を追加します。
nameserver 8.8.8.8
時刻合わせ
# /usr/sbin/ntpdate-debian
アップデート
# apt-get update # apt-get upgrade
モジュールディレクトリを作る
# mkdir /lib/modules/`uname -r` # touch /lib/modules/`uname -r`/modules.dep
これで起動時のmodprobeのエラーメッセージが消えます。
カーネルのリビルド
Android用のカーネルをそのまま使うと、一般ユーザでのsocketの作成が禁止されています。これでは困るので、ANDROID_PARANOID_NETWORK=n でカーネルをリビルドします。