bc10-router

bc10-router/arago-project(danny)/NAND boot

bc10 の NAND からbc10-router/arago-project(danny)/Ubuntu12.04LTSで作成した
arago-console-image を起動させるための手順について記載します。

NAND Boot用イメージの作成、設定の手順は大きく3つあります。

それぞれの手順で使用する環境は異なり、
bc10-router/arago-project(danny)/Ubuntu12.04LTS
記載しています以下の3つの環境を使用します。

  • Ubuntu 12.04 LTS
  • bc10 arago-cosole-image
  • bc10 u-boot

Ubuntu 12.04 LTS part

Ubuntu 12.04 LTS 上で以下の作業を行います。

bc10-router/arago-project(danny)/Ubuntu12.04LTS で作成されている
ubiファイルを NAND Boot 可能なように ubi ファイルの設定、再作成を行います。

ubi ファイルを再作成する理由は bc10-router/arago-project(danny)/Ubuntu12.04LTS でビルド済みの
ubi ファイルに一部 ubi dataではないものがあり NAND Boot ができないためです。

再作成のため mtd-utils を導入します。

$ sudo apt-get install mtd-utils

arago-console-image の ubi ファイルを rootfs.ubi に変更します。

$ cd /home/beat/tisdk/build/arago-tmp-external-linaro-toolchain/deploy/images
$ cp arago-console-image-beagleboard-20140131034334.rootfs.ubi rootfs.ubi

ubi ファイル作成のため以下のように ubinize.cfg を変更し ubiファイルを再作成し
SD カードの Ext3 の領域(本稿では /media/EXT3 と記載)にコピーします。

$ diff -upN __ubinize.cfg_orig ubinize.cfg
--- __ubinize.cfg_orig  2014-02-06 14:52:27.473188696 +0900
+++ ubinize.cfg 2014-02-06 14:52:48.297189782 +0900
@@ -3,5 +3,5 @@ mode=ubi
 image=/home/beat/tisdk/build/arago-tmp-external-linaro-toolchain/deploy/images/arago-console-image-beagleboard-20140131034334.rootfs.ubifs
 vol_id=0
 vol_type=dynamic
-vol_name=beagleboard-rootfs
+vol_name=rootfs
 vol_flags=autoresize

$ sudo ubinize -v -o rootfs.ubi -m 2048 -p 128KiB -s 512 ubinize.cfg
$ sudo cp rootfs.ubi /media/EXT3/.

bc10 arago-console-image part

rootfs.ubi をコピーした SD で bc10 を起動します。
その際 NAND のパーティションを確認し、そのサイズに合わせて
uImage、rootfs.ubi を NAND に書き込みます。

NAND パーティションの確認
# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00080000 00020000 "X-Loader"
mtd1: 001e0000 00020000 "U-Boot"
mtd2: 00020000 00020000 "U-Boot Env"
mtd3: 00400000 00020000 "Kernel"
mtd4: 1f980000 00020000 "File System"

uImage の書き込み
# cd /boot/
root@beagleboard:/boot# ls
uImage        uImage-3.3.7
root@beagleboard:/boot# flash_erase /dev/mtd3 0 0
Erasing 128 Kibyte @ 3e0000 -- 100 % complete
# nandwrite -p /dev/mtd3 uImage
Writing data to block 0 at offset 0x0
Writing data to block 1 at offset 0x20000
...<snip>
Writing data to block 26 at offset 0x340000

rootfs.ubi の書き込み
# ubiformat -y /dev/mtd4 -f rootfs.ubi
ubiformat: mtd4 (nand), size 530055168 bytes (505.5 MiB), 4044 eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 2048 bytes
libscan: scanning eraseblock 4043 -- 100 % complete
ubiformat: 4039 eraseblocks are supposedly empty
ubiformat: 5 bad eraseblocks found, numbers: 89, 107, 731, 881, 2852
ubiformat: flashing eraseblock 321 -- 100 % complete
ubiformat: formatting eraseblock 4043 -- 100 % complete

完了後 bc10 を再起動し u-boot のプロンプトを起動します。

bc10 u-boot part

u-boot プロンプト上で MLO、u-boot.img を NAND に書き込みます。

MLO の書き込み
OMAP3 beagleboard.org # mmc rescan 0
OMAP3 beagleboard.org # fatload mmc 0 ${loadaddr} MLO
reading MLO

44580 bytes read
OMAP3 beagleboard.org # nandecc hw
HW ECC selected
OMAP3 beagleboard.org # nand erase 0 80000

NAND erase: device 0 offset 0x0, size 0x80000
Erasing at 0x60000 -- 100% complete.
OK
OMAP3 beagleboard.org # nand write ${loadaddr} 0 ${filesize}

NAND write: device 0 offset 0x0, size 0xae24
 44580 bytes written: OK
OMAP3 beagleboard.org # nand write ${loadaddr} 20000 ${filesize}

NAND write: device 0 offset 0x20000, size 0xae24
 44580 bytes written: OK
OMAP3 beagleboard.org # nand write ${loadaddr} 40000 ${filesize}

NAND write: device 0 offset 0x40000, size 0xae24
 44580 bytes written: OK
OMAP3 beagleboard.org # nand write ${loadaddr} 60000 ${filesize}

NAND write: device 0 offset 0x60000, size 0xae24
 44580 bytes written: OK

u-boot.img の書き込み
OMAP3 beagleboard.org # mmc rescan 0
OMAP3 beagleboard.org # fatload mmc 0 ${loadaddr} u-boot.img
reading u-boot.img

336184 bytes read
OMAP3 beagleboard.org # nandecc hw
HW ECC selected
OMAP3 beagleboard.org # nand erase 80000 1c0000

NAND erase: device 0 offset 0x80000, size 0x1c0000
Erasing at 0x220000 -- 100% complete.
OK
OMAP3 beagleboard.org # nand write ${loadaddr} 80000 ${filesize}

NAND write: device 0 offset 0x80000, size 0x52138
 336184 bytes written: OK
OMAP3 beagleboard.org #

以上で NAND Bootの書き込みは完了です。

一度電源を落として SD カードを抜き、再度 bc10 を起動します。
bc10 が SD カード無し(NAND Boot)できることを確認します。

注:まれに正しく書き込めている状態でも、Boot時に以下のメッセージが表示されることがあります。

uncorrectable error :

その際は再起動もしくは電源の入れなおしをおこなってください。

NAND への書き込みを失敗時と SD Boot への戻し方

仮に NAND への書き込みに失敗した場合とSD Boot への戻し方は同じ手順です。
bc10 を再起動後 u-boot プロンプトを起動し、
以下のコマンドを実行し NAND の全データを消去します。

# nand erase.chip

削除後電源を落とし再度電源を入れた際、以下の表示で止まれば
削除は成功です。

40w

bc10 NAND Boot Log

bc10 NAND Boot 時の Log の一部を以下に記載します。

U-Boot SPL 2012.04.01 (Jan 28 2014 - 19:49:35)
...<snip>...
Booting from nand ...

NAND read: device 0 offset 0x280000, size 0x400000
 4194304 bytes read: OK
## Booting kernel from Legacy Image at 80007fc0 ...
   Image Name:   Linux-3.3.7
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3413048 Bytes = 3.3 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   XIP Kernel Image ... OK
OK

Starting kernel ...
...<snip>...
[    0.944183] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xbc (Micron NAND 512MiB 1,8V 16-bit)
[    0.954223] Creating 5 MTD partitions on "omap2-nand.0":
[    0.959808] 0x000000000000-0x000000080000 : "X-Loader"
[    0.966796] 0x000000080000-0x000000260000 : "U-Boot"
[    0.974029] 0x000000260000-0x000000280000 : "U-Boot Env"
[    0.980926] 0x000000280000-0x000000680000 : "Kernel"
[    0.989013] 0x000000680000-0x000020000000 : "File System"
[    1.199310] UBI: attaching mtd4 to ubi0
[    1.203338] UBI: physical eraseblock size:   131072 bytes (128 KiB)
[    1.209960] UBI: logical eraseblock size:    129024 bytes
[    1.215667] UBI: smallest flash I/O unit:    2048
[    1.220642] UBI: sub-page size:              512
[    1.225494] UBI: VID header offset:          512 (aligned 512)
[    1.231628] UBI: data offset:                2048
[    2.183929] UBI: max. sequence number:       10
[    2.202484] UBI: attached mtd4 to ubi0
[    2.206512] UBI: MTD device name:            "File System"
[    2.212310] UBI: MTD device size:            505 MiB
[    2.217529] UBI: number of good PEBs:        4039
[    2.222473] UBI: number of bad PEBs:         5
[    2.227142] UBI: number of corrupted PEBs:   0
[    2.231842] UBI: max. allowed volumes:       128
[    2.236694] UBI: wear-leveling threshold:    4096
[    2.241638] UBI: number of internal volumes: 1
[    2.246337] UBI: number of user volumes:     1
[    2.251007] UBI: available PEBs:             0
[    2.255676] UBI: total number of reserved PEBs: 4039
[    2.260925] UBI: number of PEBs reserved for bad PEB handling: 40
[    2.267333] UBI: max/mean erase counter: 1/0
[    2.271820] UBI: image sequence number:  86612789
[    2.277465] usbcore: registered new interface driver catc
...<snip>...
[    5.085510] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[    5.126647] UBIFS: recovery needed
[    5.227508] UBIFS: recovery completed
[    5.231384] UBIFS: mounted UBI device 0, volume 0, name "rootfs"
[    5.237731] UBIFS: file system size:   256112640 bytes (250110 KiB, 244 MiB, 1985 LEBs)
[    5.246185] UBIFS: journal size:       9033728 bytes (8822 KiB, 8 MiB, 71 LEBs)
[    5.253875] UBIFS: media format:       w4/r0 (latest is w4/r0)
[    5.260040] UBIFS: default compressor: lzo
[    5.264343] UBIFS: reserved for root:  0 bytes (0 KiB)
[    5.270599] VFS: Mounted root (ubifs filesystem) on device 0:14.
[    5.277740] devtmpfs: mounted
[    5.281372] Freeing init memory: 216K
INIT: version 2.88 booting
...<snip>...
Stopping Bootlog daemon: bootlogd.

 _____                    _____           _         _
|  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
|     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
|__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|
              |___|                    |___| 

Arago Project http://arago-project.org beagleboard ttyO2

Arago 2013.06 beagleboard ttyO2

beagleboard login:

更新履歴

2014/02/06 初稿公開

syariten

BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。
トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS
Last-modified: 2014-02-06 (木) 16:41:20 (3725d)