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