2010年11月16日

KZM-A9-DualボードでARM Ubuntu 10.10 を動かす(ただし最小システム) rootstock使用。

KZM-A9-Dualボードでいろいろやっています。

ARMのUbuntu 10.10を動かしてみたので、その手順を紹介します。

基本的に9.10以降は同じやり方でできます。



準備

ARM Ubuntu 10.10はPCのUbuntu 10.10から作成します。Desktop版でなくてサーバ版で十分です。私はVMWareの仮想マシンでUbuntu 10.10のサーバ版を入れました。

以下のコマンドでアップデートしてください。

$ sudo apt-get update
$ sudo apt-get upgrade

ARMのUbuntuのルートファイルシステムの作成

以前にも紹介しましたが、rootstockという便利なスクリプトでARM Ubuntuのルートファイルシステムを簡単に作成することができます。

以下は、ホスト名 arm-maverick、ログインアカウント user

そのパスワードが user の場合です。

すぐにsshでログインできるように --seed openssh-serverを指定しておくとよいでしょう。

$ sudo apt-get install rootstock
$ time sudo rootstock --fqdn arm-maverick --login user --password user --seed openssh-server
real    12m2.456s
user    4m2.330s
sys     1m16.630s

armel-rootfs-yyyymmddhhmm.tgz が出来上がります。(yyyymmddhhmmはそのときの時刻)

NFSサーバにディレクトリを作ってルートファイルシステムを展開

NFSサーバが192.168.xx.xxで、NFSのディレクトリが /export の場合

$ sudo mount 192.168.xx.xx:/export /mnt
$ mkdir -p /mnt/ubuntu_maverick_armel/root
$ sudo tar xpvf armel-rootfs-201011141315.tgz -C /mnt/ubuntu_maverick_armel/root

getty用のconfファイルの作成

このままだとsshでログインはできるのですが、シリアルコンソールにloginプロンプトが出ません。シリアルコンソールでgettyを起動するためのconfファイルを作成します。NFSサーバ側で先にこのファイルを作ってしまうと楽です。

コンソールが /dev/ttyS1 の時

/etc/init/tty1.conf をttyS1.confにコピーして、その中のtty1をttyS1に置換。ボーレイトも適切に設定します。

ターゲットの/etc/init/ttyS1.conf

# ttyS1 - getty
#
# This service maintains a getty on ttyS1 from the point the system is
# started until it is shut down again.

start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]

respawn
exec /sbin/getty -8 115200 ttyS1

2011.11.22 追記

/etc/init/ttyS1.conf の作成はrootstockに --serial ttyS1 をつけると自動でやってくれることを発見しました。つまり、rootstockコマンドを以下のようにして使ってください。

$ sudo rootstock --fqdn arm-ubuntu --login user --password user --seed openssh-server --serial ttyS1

カーネルパラメータでルートファイルシステムをNFSに指定

以下をカーネルパラメータに追加します。

root=/dev/nfs nfsroot=192.168.xx.xx:/export/ubuntu_maverick_armel/root ip=dhcp

私はPARTNER-Jetで直接ターゲットのRAM上にカーネルを転送し、PARTNERのコマンドでカーネルパラメータを指定しています。これをマクロコマンドにして、ルートファイルシステムごとに複数のマクロコマンドを使い分けています。(android用、debian用、ubuntu用などなど)

以上です。これで最小のARM Ubuntu 10.10が起動するので、後は欲しいファイルをapt-get install します。gccやmakeなど一通り入れるときには以下のようにすると一発で入るので便利です。

 $ sudo apt-get install build-essential

追記(2011.3.29)

会社のネットワーク環境で外部にアクセスする場合にProxyサーバを経由しなければならないことがあります。この場合はホストのUbuntuでProxyサーバの設定をしてからrootstockを実行してください。

このページが参考になります。

参考にしたページ

Ubuntu wiki ARM RootfsFromScratch



t2koba at 09:37Linux | koba 
記事検索
最新コメント
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

QRコード
QRコード