2012-07-25 kobo
koboを買ってきたので、(電源入れる前に)バラしてシリアルを付けた。TXやRXのシルクは大いなる罠で、USBコネクタ側にあるシルク印刷の無い4つのランドがUART1(console=ttymxc0)でした。騙された!
シリアルのスピードは115200bps。
適当にヘッダピンを付ける。蓋締まらないけど気にしない。U-Boot 2009.08-dirty-svn (12 13 2011 - 16:52:29)
CPU: Freescale i.MX50 family 1.1V at 800 MHz
mx50 pll1: 800MHz
mx50 pll2: 400MHz
mx50 pll3: 216MHz
ipg clock : 66666666Hz
ipg per clock : 66666666Hz
uart clock : 24000000Hz
ahb clock : 133333333Hz
axi_a clock : 400000000Hz
axi_b clock : 200000000Hz
weim_clock : 100000000Hz
ddr clock : 200000000Hz
esdhc1 clock : 80000000Hz
esdhc2 clock : 80000000Hz
esdhc3 clock : 80000000Hz
esdhc4 clock : 80000000Hz
Board: MX50 RDP board
Boot Reason: [POR]
Boot Device: SD
I2C: ready
DRAM: 256 MB
MMC: FSL_ESDHC: 0, FSL_ESDHC: 1
In: serial
Out: serial
Err: serial
MMC read: dev # 0, block # 1023, count 1 partition # 0 ...
1 blocks read: OK
MMC read: dev # 0, block # 1024, count 1 partition # 0 ...
1 blocks read: OK
[only 1 key]
0 keys,0x00,0x00
0 keys,0x00,0x00
0 keys,0x00,0x00
0 keys,0x00,0x00
ram p=70000000,size=268435456
MMC read: dev # 0, block # 1023, count 1 partition # 0 ...
1 blocks read: OK
MMC read: dev # 0, block # 1024, count 1 partition # 0 ...
1 blocks read: OK
MMC read: dev # 0, block # 18431, count 1 partition # 0 ...
1 blocks read: OK
MMC read: dev # 0, block # 14335, count 1 partition # 0 ...
1 blocks read: OK
MMC read: dev # 0, block # 14336, count 1979 partition # 0 ...
1979 blocks read: OK
Kernel RAM visiable size=255M->255M
Hit any key to stop autoboot: 0
MMC read: dev # 0, block # 2047, count 1 partition # 0 ...
1 blocks read: OK
cmd=mmc read 0 0x778205a0 0x7ff 0x1
no kernel image signature !
cmd=mmc read 0 0x70800000 0x800 0x1800
MMC read: dev # 0, block # 2048, count 6144 partition # 0 ...
6144 blocks read: OK
## Booting kernel from Legacy Image at 70800000 ...
Image Name: Linux-2.6.35.3-850-gbc67621+
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1904568 Bytes = 1.8 MB
Load Address: 70008000
Entry Point: 70008000
Loading Kernel Image ... OK
OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
epdc_init_sequence(994) : epd_power_on request fail !
1+0 records in
1+0 records out
512 bytes (512B) copied, 0.002489 seconds, 200.9KB/s
cannot open /dev/null
dosfsck 3.0.6, 04 Oct 2009, FAT32, LFN
/dev/mmcblk0p3: 110 files, 1262/348630 clusters
FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!
(none) login: ApplicationBase::switchTranslator::loading locale: ":/translations/trans_en_US"
Translator is empty! Do you have translation files for this locale?
sh: you need to specify whom to kill
sh: you need to specify whom to kill
sh: you need to specify whom to kill
sh: you need to specify whom to kill
sh: you need to specify whom to kill
> WebSyncScheduler: scheduleTimer: No need to schedule a sync
> Warning: You haven't called pageView yet: "5(Settings*Set%20View%20Type*List)"
> FSCheckThread: dbMalformed: false fsCorrupted: false
sh: you need to specify whom to kill
sh: you need to specify whom to kill
sh: you need to specify whom to kill
sh: you need to specify whom to kill
(none) login: root
login[727]: root login on 'ttymxc0'
[root@(none) /]# ApplicationBase::switchTranslator::loading locale: ":/translations/trans_en_US"
Translator is empty! Do you have translation files for this locale?
[root@(none) /]#
[root@(none) /]#
[root@(none) /]# ps
PID USER TIME COMMAND
1 root 0:00 init
2 root 0:00 [kthreadd]
3 root 0:00 [ksoftirqd/0]
4 root 0:00 [events/0]
5 root 0:00 [khelper]
8 root 0:00 [async/mgr]
9 root 0:00 [pm]
63 root 0:00 [usb_wakeup thre]
64 root 0:00 [usb_wakeup thre]
112 root 0:00 [sync_supers]
114 root 0:00 [bdi-default]
116 root 0:00 [kblockd/0]
128 root 0:00 [mxc_spi.2]
136 root 0:00 [khubd]
153 root 0:00 [kmmcd]
210 root 0:00 [swapper]
214 root 0:00 [zq_calib]
220 root 0:00 [kswapd0]
267 root 0:00 [aio/0]
277 root 0:00 [crypto/0]
369 root 0:00 [kapmd]
415 root 0:00 [kconservative/0]
418 root 0:00 [mxc_chg]
420 root 0:00 [pmic_battery.1]
425 root 0:00 [esdhc_wq/0]
428 root 0:00 [esdhc_wq/0]
430 root 0:00 [esdhc_wq/0]
445 root 0:00 [submit/0]
450 root 0:00 [mmcqd]
456 root 0:00 [jbd2/mmcblk0p1-]
457 root 0:00 [ext4-dio-unwrit]
460 root 0:00 [flush-179:0]
474 root 0:00 /sbin/udevd -d
714 root 0:00 /bin/sh /etc/init.d/on-animator.sh
717 root 0:00 [submit/0]
725 root 0:01 /usr/local/Kobo/nickel -qws
727 root 0:00 -sh
763 root 0:00 zcat /etc/images/on-1.raw.gz
764 root 0:00 /usr/local/Kobo/pickel showpic 1
766 root 0:00 ps
768 root 0:00 [dd]
[root@(none) /]#
放置してると10〜20秒くらい(?)でsleepに入ってしまうので、rootで入ってpsして
/usr/local/Kobo/nickel -qws をkillしてやるとそのまま使える。linuxさわる場合はどうぞ。
で、肝心のubootだが、uboot promptに落ちることができなかった。キー入力してもautobootが止まらない。
^CやESCやその他もろもろを押しっぱなしにしてもダメだった。
色々試すべくリセットスイッチ(=基板実装面のUSBコネクタの近くにあるタクトスイッチ)を押しまくってたら、
SDカードが壊れたのかlinux kernelがbootしなくなった。
Starting kernel ... Uncompressing Linux... done, booting the kernel. epdc_init_sequence(994) : epd_power_on request fail ! Kernel panic - not syncing: No init found. Try passing init= option to kernel. See Linux Documentation/init.txt for guidance. [<800294ac>] (unwind_backtrace+0x0/0xf0) from [<80290e00>] (panic+0x6c/0xe0) [<80290e00>] (panic+0x6c/0xe0) from [<80024588>] (init_post+0xac/0xd4) [<80024588>] (init_post+0xac/0xd4) from [<800084a4>] (kernel_init+0x124/0x168) [<800084a4>] (kernel_init+0x124/0x168) from [<800259c0>] (kernel_thread_exit+0x0/0x8)
ガーン。
しかしどうやらkoboはMX50のSDHC bootモードでSDCardからubootを実行してるようだ。SDカードを抜くとubootさえ起動しなかった。
http://github.com/kobolabs/Kobo-Reader にあるu-bootを自分で作りなおしてSDカードに書けばいくらでもいじくれる様子。flashメモリじゃないということは文鎮の恐れもないし! これはもう買うしかないんじゃね?(シルシル風に)
さっそくはしもとさんがオレオレu-bootで立ち上げてた様子。https://twitter.com/h_kenken/status/228446056084537345
ちなみにi.MX50xのデータシートはこちら。NetWalkerとメモリマップが違うけどデバイスの一つ一つはだいたい一緒。
EOF