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時間ぐらいかかる。
xubuntuやGUIなしの場合は以下の様にする。最小構成なら--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を忘れずに
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分以上かかる。重い。