-
Notifications
You must be signed in to change notification settings - Fork 1
update preinstall Angstrom
製造時期によって異なると思われますが、A5Cで出荷されたもので確認してみると、とりあえずbeagleboard.orgで配布されている最新版がインストールされています。
今後、新しいバージョンがリリースされてアップデートした場合や、出荷時設定に戻したい時のために、最新版にアップデートする方法をおさらいしておきます。
最新版は、http://beagleboard.org/latest-images で提供されています。 2013年10月時点の最新版は6/20版です。4GB SDカードから起動できるイメージと、内蔵のeMMCから起動できるイメージの2種類があります。
- https://s3.amazonaws.com/angstrom/demo/beaglebone/Angstrom-Cloud9-IDE-GNOME-eglibc-ipk-v2012.12-beaglebone-2013.06.20.img.xz
- https://s3.amazonaws.com/angstrom/demo/beaglebone/BBB-eMMC-flasher-2013.06.20.img.xz
その他、Angstromプロジェクトからリリースされているイメージもあります。配布は、http://downloads.angstrom-distribution.org/demo/beaglebone/ から行われています。2013年10月時点の最新版は10/20版です。
- Angstrom-Cloud9-IDE-GNOME-eglibc-ipk-v2012.12-beaglebone-2013.09.05.img.xz
- BBB-eMMC-flasher-2013.09.12.img.xz
- BBB-eMMC-flasher-v2013.06-2013.10.20.img.xz
Angstromプロジェクトでは、アレンジの異なるrootfsも配布されています。
- Angstrom-Cloud9-IDE-GNOME-eglibc-ipk-v2012.12-beaglebone-2013.07.31.rootfs.tar.xz
- Angstrom-Cloud9-IDE-eglibc-ipk-v2012.12-beaglebone-2013.07.31.rootfs.tar.xz
- Angstrom-development-GNOME-image-eglibc-ipk-v2012.12-beaglebone-2013.07.31.rootfs.tar.xz
- Angstrom-systemd-image-eglibc-ipk-v2012.12-beaglebone-2013.09.12.rootfs.tar.xz
最新版のイメージファイルを取得します。
どちらも、LZMA2圧縮アルゴリズムを使ったxzアーカイブで提供されています。unxzコマンドで展開できます。
$ wget https://s3.amazonaws.com/angstrom/demo/beaglebone/BBB-eMMC-flasher-2013.06.20.img.xz
$ unxz BBB-eMMC-flasher-2013.06.20.img.xz
$ ls -hl BBB-eMMC-flasher-2013.06.20.img
-rw-r--r-- 1 kinneko kinneko 3.5G Oct 28 11:15 BBB-eMMC-flasher-2013.06.20.img
$ file BBB-eMMC-flasher-2013.06.20.img
BBB-eMMC-flasher-2013.06.20.img: x86 boot sector; partition 1: ID=0xc, active, starthead 1, startsector 63, 144522 sectors; partition 2: ID=0x83, starthead 0, startsector 144585, 6988275 sectors, code offset 0x0
パーティション構造を持ったディスクイメージであることがわかります。
中身を見てみましょう。
$ sudo LANG=C fdisk -l BBB-eMMC-flasher-2013.06.20.img
Disk BBB-eMMC-flasher-2013.06.20.img: 3657 MB, 3657433088 bytes
255 heads, 63 sectors/track, 444 cylinders, total 7143424 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
BBB-eMMC-flasher-2013.06.20.img1 * 63 144584 72261 c W95 FAT32 (LBA)
BBB-eMMC-flasher-2013.06.20.img2 144585 7132859 3494137+ 83 Linux
2つのパーティションが見えます。さらにマウントして内容を確認してみましょう。
$ sudo mount -o loop,offset=32256 BBB-eMMC-flasher-2013.06.20.img /media/
$ ls /media/
ID.txt MLO u-boot.img uEnv.txt
最初のパーティションには、起動用のブートローダーやkenrelが書かれています。ID.txtは見慣れないファイルです。中を確認すると、バージョンが書かれていました。
$ cat /media/ID.txt
BeagleBone Black eMMC flasher 2013.06.20
最初のパーティションをアンマウントしておきます。
$ sudo umount /media
次のパーティションには、eMMCを書き換えるためのスクリプトと、書き換え用のイメージが入っています。
$ sudo mount -o loop,offset=74027520 BBB-eMMC-flasher-2013.06.20.img /media/
$ ls /media/
bin build eeprom.dump home lost+found mnt run sys usr
boot dev etc lib media proc sbin tmp var
書き込む実体とスクリプトはbuildディレクトリに入っています。
$ ls /media/build/
Angstrom-Cloud9-IDE-GNOME-eglibc-ipk-v2012.12-beaglebone.rootfs.tar.gz
MLO
beaglebg.jpg
connman.settings
mkcard.sh
u-boot.img
mkcard.shは、MBRを削除、2つのパーティションを作成して、それぞれにファイルシステムを作成しています。これはインストーラーから呼ばれるスクリプトで、インストーラーの実体ではないようです。
調べてみると、インストーラーの実体は、/usr/bin/emmc.shで、起動時に、/lib/systemd/system/emmc.serviceから、ExecStart=/usr/bin/emmc.shで呼び出されます。
イメージをmicro SDカードに書き込みます。sd[?]には、sdbなど、お使いの環境でのmicro SDカードのデバイスファイルを書き込みます。micro SDカードの容量は4GB以上のものを用意してください。
遅いインターフェイスを使って、遅いデバイスに大量に書き込むので、かなり時間がかかります。気長に待ってください。
$ sudo dd if=./BBB-eMMC-flasher-2013.06.20.img of=/dev/sd[?]
7143424+0 レコード入力
7143424+0 レコード出力
3657433088 バイト (3.7 GB) コピーされました、 2088.54 秒、 1.8 MB/秒
書き込まれているか、パーティションを確認してみます。
$ sudo LANG=C fdisk -l /dev/sdc
Disk /dev/sdc: 7822 MB, 7822376960 bytes
255 heads, 63 sectors/track, 951 cylinders, total 15278080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdc1 * 63 144584 72261 c W95 FAT32 (LBA)
/dev/sdc2 144585 7132859 3494137+ 83 Linux
問題なさそうです。
このイメージは、起動すると自動的にeMMCに書き込むように作られていますので、これをmicro SDカードに書き込んで起動します。 電源を切った状態から、"User Boot"ボタンを押しながら電源を入れます。LEDが順に点灯し、Angstromでの通常のLED点滅状態になったら、ボタンを離してかまいません。
eMMCは全自動で更新されます。USR0-3のLEDが点灯するまでの間は作業中ですので、電源を切ったりmicro SDカードを抜いたりしないでください。
作業には、40分ほどかかるとのことでしたが、試してみると小一時間かかりました。
この間、シリアルコンソールには、何も出力されていません。psコマンドで動作プロセスを見ると、書き換えが進行中なのがわかります。ちょっとヒドい作りですね。特にbeaglebone-getting-startedのコピーが長く、作業時間の大半を占めます。その後のパッケージの設定に伴う、GTKのアイコンキャッシュの生成や、gconftool-2の設定と思われる部分の時間も同じくらいかかります。
263 root 2856 S {emmc.sh} /bin/bash /usr/bin/emmc.sh
306 root 2844 S {mkcard.sh} /bin/sh ./mkcard.sh /dev/mmcblk1
317 root 1908 D sfdisk -D -H 255 -S 63 -C 233 /dev/mmcblk1
346 root 2152 R tar zxf Angstrom-Cloud9-IDE-GNOME-eglibc-ipk-v2012.1...
347 root 2152 S tar zxf Angstrom-Cloud9-IDE-GNOME-eglibc-ipk-v2012.1...
352 root 2152 D cp -r /media/2/usr/share/beaglebone-getting-started/...
376 root 2184 S systemd-nspawn -D /media/2 /usr/bin/opkg-cl configur...
377 root 3940 S /usr/bin/opkg-cl configure
378 root 0 SW [flush-179:0]
446 root 0 SW [kworker/0:0]
515 root 3008 S {gnome-session.p} /bin/sh //var/lib/opkg/info/gnome-...
527 root 59284 D gtk-update-icon-cache -fqt /usr/share/icons/gnome...
376 root 2184 S systemd-nspawn -D /media/2 /usr/bin/opkg-cl configur...
377 root 3940 S /usr/bin/opkg-cl configure
378 root 0 SW [flush-179:0]
446 root 0 SW [kworker/0:0]
639 root 3020 S {gnome-common-sc} /bin/sh //var/lib/opkg/info/gnome-...
658 root 0 SW [kworker/0:2]
660 root 11356 D gconftool-2 --makefile-install-rule /etc/gconf/schem...
LEDがすべて点灯したら、電源を切ってmicro SDカードを抜いてください。