Hatena::ブログ(Diary)

kinneko@転職先募集中の日記

検索エンジンから来た方へ: 申し訳ないですが、日記なので日々積み重なっています。
目的の情報にたどり着くには、右の検索窓から日記内を再検索してください。
北陸エリア内(もしくはエリア外でも)で転職先を探しています。
(マジです。ネタではありません。ホントですって...)
詳細履歴書をご希望の方はメールでご連絡下さいませ。(kinneko at gmail.com)
chromeで見ると、死ぬほど出るGoogleの広告がブロックできないので、
firefoxでABPを入れるとすっきり見られます。

2014-01-15

[] armhf.comで配布しているUbuntuイメージはボタン押さないと起動できない件

Beaglebone blackにUbuntuを入れるとき、armhf.comのやり方では、UbuntuというかLinux起動できないとトモさんに言われた。

彼は、ddで書けるこのイメージを使っているようだが、SDから起動できないらしい。

http://www.armhf.com/index.php/download/

基板のボタンを押しながら起動すると上がってくるらしい。

わたしは、elinux.orgのを使っているので、そういう不自由な目にあったことはない。

http://elinux.org/BeagleBoardUbuntu


そういえば、ABC2013Autumnのバザール会場でも同じようなこと言ってた人いたな...

?「SDにUbuntu入れると、ボタン押さないと起動しないですよね?」

私「え? できますよ?」

?「え? そうですか?」

で済ましてしまつてスマヌスマヌ。


ubootのプロンプトで止まっているそうなので、uEnv.txtの中身がおかしいようだ。

確認してもらうと、/boot/uImageを探して無いと言っているようだ。

/boot/zImageはあるのだそうだけど、それがmkimageされたものかどうかはわかららないみたい。

fileコマンドで見てっていったけど、やってくんないし。

しょうがないから、見てみることに。

kinneko@L2012:~$ mkdir BBB_ubuntu
kinneko@L2012:~$ cd BBB_ubuntu/
kinneko@L2012:~/BBB_ubuntu$ wget http://s3.armhf.com/debian/saucy/bone/ubuntu-saucy-13.10-armhf-3.8.13-bone30.img.xz

ついでに、Method 2: u-boot and rootfsのほうも落としておく。

kinneko@L2012:~/BBB_ubuntu$ wget http://s3.armhf.com/boards/bbb/uboot-bone.tar.xz
kinneko@L2012:~/BBB_ubuntu$ wget http://s3.armhf.com/debian/saucy/bone/ubuntu-saucy-13.10-armhf-rootfs-3.8.13-bone30.tar.xz

確認。

kinneko@L2012:~/BBB_ubuntu$ ls -lh
total 148M
 -rw-r--r-- 1 kinneko kinneko 154K Nov 24 06:16 uboot-bone.tar.xz
 -rw-r--r-- 1 kinneko kinneko  75M Nov 24 06:33 ubuntu-saucy-13.10-armhf-3.8.13-bone30.img.xz
 -rw-r--r-- 1 kinneko kinneko  73M Nov 24 06:21 ubuntu-saucy-13.10-armhf-rootfs-3.8.13-bone30.tar.xz


kinneko@L2012:~/BBB_ubuntu$ md5sum ./*
d95126f87191de8064e9666983d11cfc  ./uboot-bone.tar.xz
8173dffeaae12421a5542c3578afdd82  ./ubuntu-saucy-13.10-armhf-3.8.13-bone30.img.xz
e53b9a7884af980f552a21057a0bd0d2  ./ubuntu-saucy-13.10-armhf-rootfs-3.8.13-bone30.tar.xz

uboot-boneがチェックサム違うよ...

Webには、

md5: ab57368cddc6dba498c874330a319639

って書いてあるんだけどな...

めんどくさいし、展開できればいいか。

展開。

kinneko@L2012:~/BBB_ubuntu$ xz -dv ./*
./uboot-bone.tar.xz (1/3)
  100 %       153.4 KiB / 470.0 KiB = 0.326

./ubuntu-saucy-13.10-armhf-3.8.13-bone30.img.xz (2/3)
  100 %       74.7 MiB / 1832.0 MiB = 0.041   184 MiB/s       0:09

./ubuntu-saucy-13.10-armhf-rootfs-3.8.13-bone30.tar.xz (3/3)
  100 %        72.8 MiB / 259.8 MiB = 0.280    47 MiB/s       0:05

Method 2: u-boot and rootfsのubootアーカイブから見る。

kinneko@L2012:~/BBB_ubuntu$ tar xvf uboot-bone.tar
MLO
u-boot.img
uEnv.txt
kinneko@L2012:~/BBB_ubuntu$ cat uEnv.txt
mmcpart=2
optargs=fixrtc
uenvcmd=i2c mw 0x24 1 0x3e; kd=0; if test $mmcdev -eq 1; then mmc dev 0; if mmc rescan; then kd=1; fi; mmc dev 1; fi; setenv mmcroot /dev/mmcblk${kd}p${mmcpart} ro
loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdtaddr} ${bootdir}/dtbs/${fdtfile}
loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootdir}/${bootfile}

肝心のマクロ部分がわかんないな...


imageのほうを見る。

kinneko@L2012:~/BBB_ubuntu$ sudo fdisk -l ubuntu-saucy-13.10-armhf-3.8.13-bone30.img

Disk ubuntu-saucy-13.10-armhf-3.8.13-bone30.img: 1920 MB, 1920991232 bytes
255 heads, 63 sectors/track, 233 cylinders, total 3751936 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: 0x80008000

                                     Device Boot      Start         End      Blocks   Id  System
ubuntu-saucy-13.10-armhf-3.8.13-bone30.img1   *        2048        4095        1024    1  FAT12
ubuntu-saucy-13.10-armhf-3.8.13-bone30.img2            4096     3751935     1873920   83  Linux

第一パーティションをマウントする。

2048x512=1048576。

kinneko@L2012:~/BBB_ubuntu$ sudo mount -o loop,offset=1048576 ubuntu-saucy-13.10-armhf-3.8.13-bone30.img /media
kinneko@L2012:~/BBB_ubuntu$ ls -l /media/
total 466
 -rwxr-xr-x 1 root root 104320 Nov 17 12:54 MLO
 -rwxr-xr-x 1 root root 370652 Nov 17 12:54 u-boot.img
 -rwxr-xr-x 1 root root    340 Nov 17 12:54 uEnv.txt
kinneko@L2012:~/BBB_ubuntu$ cat /media/uEnv.txt
mmcpart=2
optargs=fixrtc
uenvcmd=i2c mw 0x24 1 0x3e; kd=0; if test $mmcdev -eq 1; then mmc dev 0; if mmc rescan; then kd=1; fi; mmc dev 1; fi; setenv mmcroot /dev/mmcblk${kd}p${mmcpart} ro
loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdtaddr} ${bootdir}/dtbs/${fdtfile}
loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootdir}/${bootfile}

同じか。

kinneko@L2012:~/BBB_ubuntu$ sudo umount /media

第二パーティションを読みに行っていて、${bootdir}/${bootfile}が/boot/uImageなら辻褄が合うかな。

4096x512=2097152

kinneko@L2012:~/BBB_ubuntu$ sudo mount -o loop,offset=2097152 ubuntu-saucy-13.10-armhf-3.8.13-bone30.img /media
kinneko@L2012:~/BBB_ubuntu$ ls /media/
bin   dev  home  lost+found  mnt  proc  run   srv  tmp  var
boot  etc  lib   media       opt  root  sbin  sys  usr
kinneko@L2012:~/BBB_ubuntu$ ls /media/boot/
System.map-3.8.13-bone30  dtbs   vmlinuz-3.8.13-bone30
config-3.8.13-bone30      uboot  zImage
kinneko@L2012:~/BBB_ubuntu$ ls /media/boot/uboot/

ほんとだ。zImageだよ。

${bootfile}がどこに書かれているかが問題だな。

おそらく、uEnvに書かれていないパラメータは、boards.cfgとかで直に埋め込みか。

kinneko@L2012:~/BBB_ubuntu$ sudo find /media/ | grep uImage

uImageはいないのは確認できた。

ubootで自力ロードしているって感じか。

とりあえずのテスト可能なことというと、${loadaddr}がどこかでちゃんと定義されているのであれば、zImageをuImageに変えるだけで起動してくるんじゃないだろうか。

まぁ、ほんとはちゃんとやったほうがいいけどね。


トモさんに、それはやってみたけど駄目だったと言われた。

こんなquick hackでは倒せないか。

こんどは実機でいじってみやう。


自分的には、coreから入れるのが好みかも。


続きはこちら;http://d.hatena.ne.jp/kinneko/20140116/p1

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証