BeagleBoardにUbuntu Desktop版インストール

http://elinux.org/BeagleBoardUbuntu


作業はAMD64版Ubuntu9.04 Desktop版で行い、ARM版Ubuntu9.04 DesktopをBeagleBoardにインストールした。
重くて使い物にならないのでそのうちなんとかしよう。


4GB以上のSDカード用rootfsを作る。

mkdir ~/tmp
cd ~/tmp
wget http://ports.ubuntu.com/pool/main/d/debootstrap/debootstrap_1.0.13~jaunty1_all.deb
sudo dpkg -i debootstrap_1.0.13~jaunty1_all.deb
wget http://people.ubuntu.com/~ogra/arm/build-arm-rootfs
sudo chmod u+x build-arm-rootfs 
sudo ./build-arm-rootfs --fqdn beagleboard --login ubuntu --password ubuntu --imagesize 3G --seed ubuntu-desktop,gcc,make,usbutils

イメージの作成に6時間ぐらいかかる。


xubuntuGUIなしの場合は以下の様にする。最小構成なら--seedの後なにもなしでいい。

sudo ./build-arm-rootfs --fqdn beagleboard --login ubuntu --password ubuntu --imagesize 3G --seed xubuntu-desktop,gcc,make,usbutils
sudo ./build-arm-rootfs --fqdn beagleboard --login ubuntu --password ubuntu --imagesize 3G --seed gcc,make,usbutils


SDカードにパーティションを切る。

sudo apt-get install gparted
sudo gparted


gpartedでSDカードフォーマット
全部primaryで、fat32を400MB, ext3を3GB, linux-swapを400MBの順にパーティションを作成
fat32はもっと少なくていいかも。
パーティションGUIで指定したらapplyを忘れずに
50a81aa7a3f7c50f3254f7ea85313e66.png (PNG 画像, 780x526 px)
1パーティション目は起動スクリプト?イメージ?が置かれて、ここから2パーティション目に置いたLinuxを起動する。
今回は省くが1パーティション目にはbeagleboardのROMが死んだときにリカバリさせるファイルを置くこともできるらしい。(壊れたら考えよう)



SDカードをマウントしてから、どこにマウントされたか確認しておく

df -T
ファイルシステム    タイプ    サイズ  使用  残り 使用% マウント位置
/dev/sda1     ext3     71G  5.9G   61G   9% /
varrun       tmpfs    994M  108K  994M   1% /var/run
udev         tmpfs    994M  176K  994M   1% /dev
tmpfs        tmpfs    994M  1.2M  993M   1% /dev/shm
/dev/sdb1     vfat    400M  4.0K  400M   1% /media/boot
/dev/sdb2     ext3    3.0G  4.6M  2.9G   1% /media/ubuntu

vfatがfat32のことらしい



第一パーティションに起動イメージを配置する

cd ~/tmp
sudo wget http://www.rcn-ee.com/deb/kernel/CC-beagle-v2.6.29-58cf2f1-oer32
sudo cp CC-beagle-v2.6.29-58cf2f1-oer32 /media/boot/uImage


余計なファイルを消してから、LinuxイメージをSDカード第2パーティションに展開
[date]の部分はイメージを作成した日時が入るので適宜変更。

sudo rm -rf /media/ubuntu/*
cd ~/tmp
sudo tar xfp armel-rootfs-[date].tgz -C /media/ubuntu/

それなりに時間がかかる


エディタで /media/ubuntu/etc/event.d/ttyS2 を編集
これを書いておくとbeagleboard起動直後にシリアルコンソールが起動する。

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

start on runlevel 2
start on runlevel 3

stop on runlevel 0
stop on runlevel 1
stop on runlevel 4
stop on runlevel 5
stop on runlevel 6

respawn
exec /sbin/getty -L 115200 ttyS2

SDカードをアンマウントしてBeagleBoardに刺して、BeagleBoardとシリアルコンソールを接続
minicomを使った。
インストールして設定

sudo apt-get install minicom
sudo minicom -s

/dev/ttyS0で 115200bps, 8bit, パリティ無し, ストップビット1
hardware flow制御なし、software flow制御なし。
dfl(default)に保存して終了。

sudo minicom

beagleboardの電源を刺す。起動する。autobootしようとするので何かキーを押して止める。

setenv bootcmd 'mmcinit; fatload mmc 0:1 0x80300000 uImage; bootm 0x80300000'
setenv bootargs 'console=ttyS2,115200n8 console=tty0 root=/dev/mmcblk0p2 rootwait rootfstype=ext3 ro omapfb.mode=dvi:1024x768MR-16@60'
saveenv
boot

コマンドが長くて切れてしまう。
screen中にminicom起動してウィンドウ最大化/通常表示を行ったり来たりすると全部コピペできるようになる。
1行ずつコピペする。
ちゃんと設定できているかは、

printenv bootcmd
printenv bootargs

などで確認できる。
bootできたらLCDにも起動風景がでているはずなので画面を切り替えてながめる。

起動には5分以上かかる。重い。