BeagleBoard上にDebianをインストールする方法についてです。
(1)主な情報源
BeagleBoardDebian – eLinux.org
こちらの手順に従い、ネットインストールでDebianをインストールします。
(2)シリアルコンソールの準備
開発用PCとBeagleBoardをシリアルのクロスケーブルで接続して、BeagleBoardを操作します。
ここでは、開発用PCとしてDebian5、通信用ソフトとしてkermitを使用します。
<kermitの通信設定>
kermitを起動して、以下のコマンドを実行して通信設定を行います。
都度、入力するのは大変なので、~/.kermrcに以下を記述しておけば自動設定されます。
尚、BeagleBoardのシリアルではフロー制御が行われないので、通信データを取りこぼさないように適度にディレイを入れる必要があります。
set line /dev/ttyUSB0
set speed 115200
set flow-control none
set carrier-watch off
set delay 1
上記の通信設定をした後、connectコマンドを実行して、何回かリターンキーを押すと、開発用PCとBeagleBoardの間で同期がとられて、正常に通信できるようになります。
connect
kermitを抜けたい場合は、以下のキーを入力します。
ctrl ¥ c
(3)BeagleBoard用のuImage(Linuxカーネルイメージ)、Debianインストール用のinitrdを取得してmicroSDに書き込む。
microSD上に最低でも3つのパーティションが必要になります。
パーティション1(/dev/mmcblk0p1):VFAT(uImage, initrd)
パーティション2(/dev/mmcblk0p2):Linux swap
パーティション3(/dev/mmcblk0p3):Linux(rootファイルシステム)
インストール時はパーティション1だけ作成すれば、あとはDebianのインストーラが作成してくれます。
ブートローダは、BeagleBoardのNANDに書き込まれているものをそのまま使いますので、microSDに書き込む必要はありません。
パーティション1のルートディレクトリにuImageとuInitrdを書き込みます。
# BeagleBoardにDebianをインストール際に利用できるuImageは若干古いバージョンのLinuxカーネルになりますが、Debianをインストールした後、自由にバージョンアップすることができます。
wget http://rcn-ee.net/deb/kernel/CC-beagle-v2.6.29-58cf2f1-oer44.1.uImage
mv CC-beagle-v2.6.29-58cf2f1-oer44.1.uImage uImage
# Debianは安定版のlennyをインストールして、lennyをインストールした後、Squeezeなどにバージョンアップすることができます。
wget http://ftp.debian.org/debian/dists/lenny/main/installer-armel/current/images/versatile/netboot/initrd.gz
gzip -d initrd.gz
dd if=initrd of=uInitrd ibs=8388608 conv=sync
(4)BeagleBoardのu-Bootを設定する。
Debianインストール時は、u-Bootの画面で以下のように設定、実行します。
setenv bootcmd ‘mmc init; fatload mmc 0:1 0×80300000 uImage; fatload mmc 0:1 0×81600000 uInitrd; bootm 0×80300000′
setenv bootargs ‘console=ttyS2,115200n8 ramdisk_size=8192 root=/dev/ram0 rw rootfstype=ext2 initrd=0×81600000,8M’
saveenv
boot
Debianインストール後は、上記の設定のうち以下のように変更します。
setenv bootargs ‘console=ttyS2,115200n8 root=/dev/mmcblk0p3 rootwait rootfstype=ext3 ro’
saveenv
Debianインストール後に、BeagleBoardのHDMI端子経由でHDMI/DVI出力したい場合は、上記の設定のうち、以下のように変更します。
<解像度が1280×720、色深度が16bitの場合>
setenv bootargs ‘console=ttyS2,115200n8 root=/dev/mmcblk0p3 rootwait rootfstype=ext3 ro omapfb.mode=dvi:1280x720MR-16@60′
<解像度が1280×720、色深度が24bitの場合>
setenv bootargs ‘console=ttyS2,115200n8 root=/dev/mmcblk0p3 rootwait rootfstype=ext3 ro omapfb.mode=dvi:1280x720MR-24@60′
<解像度が1440×900、色深度が16bitの場合>
setenv bootargs ‘console=ttyS2,115200n8 root=/dev/mmcblk0p3 rootwait rootfstype=ext3 ro omapfb.mode=dvi:1440x900MR-16@60′
<解像度が1440×900、色深度が24bitの場合>
setenv bootargs ‘console=ttyS2,115200n8 root=/dev/mmcblk0p3 rootwait rootfstype=ext3 ro omapfb.mode=dvi:1440x900MR-24@60′
(5)Debianインストーラを起動する。
上記で用意したmicroSDをBeagleBoardにセットしてリセットするだけで、Debianインストーラが起動し、画面の指示に従って行けば、必要最小限のDebianがインストールされます。
尚、DHCPでUSBイーサネットアダプタにIPアドレスが割り振られるはずなのですが、なぜかうまくいかないので手動で設定する必要があるようです。
<参考:BeagleBoardのu-Bootの工場出荷時の設定>
bootcmd=if mmc init; then if run loadbootscript; then run bootscript; else if run loaduimage; then run mmcboot; else run nandboot; fi; fi; else run nandboot; fi
bootdelay=10
baudrate=115200
loadaddr=0×82000000
console=ttyS2,115200n8
vram=12M
dvimode=1024x768MR-16@60
defaultdisplay=dvi
mmcroot=/dev/mmcblk0p2 rw
mmcrootfstype=ext3 rootwait
nandroot=/dev/mtdblock4 rw
nandrootfstype=jffs2
mmcargs=setenv bootargs console=${console} vram=${vram} omapfb.mode=dvi:${dvimode} omapfb.debug=y omapdss.def_disp=${defaultdisplay} root=${mmcroot} rootfstype=${mmcrootfstype}
nandargs=setenv bootargs console=${console} vram=${vram} omapfb.mode=dvi:${dvimode} omapfb.debug=y omapdss.def_disp=${defaultdisplay} root=${nandroot} rootfstype=${nandrootfstype}
loadbootscript=fatload mmc 0 ${loadaddr} boot.scr
bootscript=echo Running bootscript from mmc …; source ${loadaddr}
loaduimage=fatload mmc 0 ${loadaddr} uImage
mmcboot=echo Booting from mmc …; run mmcargs; bootm ${loadaddr}
nandboot=echo Booting from nand …; run nandargs; nand read ${loadaddr} 280000 400000; bootm ${loadaddr}
stdin=serial
stdout=serial
stderr=serial
bootargs=console=ttyS2,115200n8 vram=12M omapfb.mode=dvi:1024x768MR-16@60 omapfb.debug=y omapdss.def_disp=dvi root=/dev/mtdblock4 rw rootfstype=jffs2
Environment size: 1310/131068 bytes
最近のコメント