chakokuのブログ(rev4)

テック・コミック・DTM・・・ごくまれにチャリ

BeagleBoneにArchLinuxを入れる

結論として、多少問題はありましたがやり方を変えたらすんなり入りました。
ご参考に以下手順を記録

PCのLinux環境でSDを焼く
SDをカードリーダ経由でUSBに刺す。自分のDebianからだと、/dev/sddとして見える
fdiskを使って、第1パーティションFAT16,第2パーティションをLinuxFileSystemとして切る
以下、パーティションを切り終えたところ


# fdisk -l

Disk /dev/sdd: 8035 MB, 8035237888 bytes
248 heads, 62 sectors/track, 1020 cylinders
Units = cylinders of 15376 * 512 = 7872512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005bbea

Device Boot Start End Blocks Id System
/dev/sdd1 * 1 20 153729 e W95 FAT16 (LBA)
/dev/sdd2 21 1020 7688000 83 Linux

Linux環境からmkfsコマンドを使ってフォーマット


mkfs.vfat -F 16 -n "bootloader" /dev/sdd1
mkfs.ext3 -L "rootfs" /dev/sdd2
以上でSDの前準備は終わり
SDに焼くファイルを取得する

wget http://archlinuxarm.org/os/omap/BeagleBone-bootloader.tar.gz
wget http://archlinuxarm.org/os/ArchLinuxARM-am33x-latest.tar.gz

どうもファイルが壊れているのかエラーが出るけど。。


tar ftz ArchLinuxARM-am33x-latest.tar.gz
.
.
.
./var/cache/man/
./var/opt/
tar: 前のエラーにより失敗ステータスで終了します

SDカードに書き込むため、一旦Linux環境にマウントする


mkdir /mnt/sd1
mount /dev/sdd1 /mnt/sd1
mkdir /mnt/sd2
mount /dev/sdd2 /mnt/sd2

Linuxから操作する場合、イメージを物理的に書く必要はなく、ファイル転送として書き込む


cd /mnt/sd1
tar xvfz /BeagleBone-bootloader.tar.gz
cd /mnt/sd2
tar xvfz /ArchLinuxARM-am33x-latest.tar.gz
cd /mnt/sd2/boot/
cp uImage /mnt/sd1

ブート時にアクセスされる第1パーティションの内容


# ls -F /mnt/sd1
MLO* mkcard.txt* u-boot.img* uEnv.txt* uImage*
(全てに実行権限ついてるけどそれはやりすぎかと。。)

できあがったSDをBeagleBoneに刺して電源投入、USB経由のシリアルで接続


Arch Linux 3.2.21-3-ARCH (ttyO0)

alarm login: root
Password:
Last login: Fri Dec 31 18:01:16 on ttyO0
[root@alarm ~]# uname -a
Linux alarm 3.2.21-3-ARCH #1 PREEMPT Tue Jul 24 05:32:19 UTC 2012 armv7l GNU/Linux

一応ログインはできた

■補足
発生した問題について
 PCのLinuxを使わず、Debianが動いているBeagleBoneでArchLinux用のSDを焼こうとしていた。
 イメージをtarで展開しているとエラーが大量に出て、SDのファイルシステムがどうやら壊れた
 (PCのLinuxファイルシステムを作り直すと今度はうまくいった)

■追記(2012/12/15)
syslogにメッセージを出すだけの動的モジュールを作ってみて動作することを確認した。というわけで、、今後はArchLinuxを使っていくつもり。。

■追記(2012/12/16)
USB to SerialでPCと繋いでいると、PC側のSerialPortが上がったり下がったりして、むりやりTeraTerm等で接続すると最後にPCはメモリ異常でエラーになる(ブルースクリーン
なぜだろうか。。

根拠ないけど連続使用が可能になった場合のシーケンス
(1)SDを入れない状態でPCに接続 (不明なデバイスとか出ている)
   不明なデバイスに対してはずっと上がり下がりする
(2)この状態からSDカードをインサート、OSブート
(3)不明なデバイスは切り離された状態、COMポートは上がったまま(上がり下がりしない)

■ご参考URL

以下の記事に従って作業しました。

http://archlinuxarm.org/platforms/armv7/beaglebone
BeagleBone | Arch Linux ARM

OS起動メッセージは以下(ブートメッセージ等)
https://docs.google.com/open?id=0B0tdHEsmB1TGNndTLVhXRy1kY2s