mini2440をいじりはじめる ― 2009年08月15日 23時31分05秒
あるところからMINI2440をあずかってしまいました。
最終目的はandroidのポーティングですが、本体をあずかったのみで、それ以外の作業状況などの状態がわからん。
開発環境の準備
Linuxな開発環境が必要なので、今回は以下のような準備をすることにしました。
- PCはAcer Aspire One(初代)をメインに考える
- ubunto Linux 9.04 USBブート版(MicroSDHC16GB+USB Reader/Wriger)
- 開発用領域として外付けUSB HDD(NTFS,18GB)
- ※ubuntu LinuxではNTFS領域へ書き込めることを確認済み
- USB HDDのデータ退避、というか母艦に移動
- ubuntuのアップデート(しばらく触っていなかったので)
・・・とこの程度でも最初の一晩というか1日目終了。
MINI2440の状態の確認
ドキュメントによると2MB NOR Flashと64MB NAND Flashの2種類のFlashが搭載され、スイッチによりどちらから起動するのかが選択できるとのこと。
スイッチの存在はわかるがどっちがどっちなのかの説明がない。 これは起動してみるしかないのか・・・・
あずかった状態での起動では以下のようになる。
U-Boot 1.3.2-mini2440 (Jul 8 2009 - 13:25:23) I2C: ready DRAM: 64 MB Flash: 2 MB NAND: 64 MiB Found Environment offset in OOB.. USB: S3C2410 USB Deviced In: serial Out: serial Err: serial MAC: 08:08:11:18:12:27 Hit any key to stop autoboot: 0 trying to detect SD Card... ===============> MMC CMD Timeout ===============> MMC CMD Timeout ===============> MMC CMD Timeout ===============> MMC CMD Timeout ===============> MMC CMD Timeout ===============> MMC CMD Timeout ===============> MMC CMD Timeout ===============> MMC CMD Timeout ===============> MMC CMD Timeout ===============> MMC CMD Timeout ===============> MMC CMD Timeout ===============> MMC CMD Timeout ===============> MMC CMD Timeout ===============> MMC CMD Timeout ===============> MMC CMD Timeout ===============> MMC CMD Timeout ===============> MMC CMD Timeout ===============> MMC CMD Timeout ===============> MMC CMD Timeout ===============> MMC CMD Timeout ===============> MMC CMD Timeout MMC found. Card desciption is: Manufacturer ID = 000000 HW/FW Revision = 0 0 Product Name = Serial Number = 000000 Month = 0 Year = 1997 ===============> MMC CMD Timeout ===============> MMC CMD Timeout READ_BL_LEN=0, C_SIZE_MULT=0, C_SIZE=0 size = 0 ===============> MMC CMD Timeout ===============> MMC CMD Timeout ===============> MMC CMD Timeout mmc_block_read: err SDIDSTA=0x00000020 ===============> MMC CMD Timeout ===============> MMC CMD Timeout mmc_block_read: err SDIDSTA=0x00000020 ** Unable to use mmc 0:1 for fatload ** Wrong Image Format for bootm command ERROR: can't get kernel image! MINI2440 #
スイッチを切り替えて起動すると以下のようになる。 メニュー表示のあと「b」を入力してみた結果です。
##### FriendlyARM BIOS for 2440 ##### [x] bon part 0 320k 2368k [v] Download vivi [k] Download linux kernel [y] Download root_yaffs image [c] Download root_cramfs image [a] Absolute User Application [n] Download Nboot [e] Download Eboot [i] Download WinCE NK.nb0 [w] Download WinCE NK.bin [d] Download & Run [z] Download zImage into RAM [g] Boot linux from RAM [f] Format the nand flash [p] Partition for Linux [b] Boot the system [s] Set the boot parameters [t] Print the TOC struct of wince [u] Backup NAND Flash to HOST through USB(upload) [r] Restore NAND Flash from HOST through USB [q] Goto shell of vivi Enter your selection: b Copy linux kernel from 0x00050000 to 0x30008000, size = 0x00200000 ... done Warning: this binary is not compressed linux kernel image zImage magic = 0xffffffff Setup linux parameters at 0x30000100 linux command line is: "noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0" MACH_TYPE = 782 NOW, Booting Linux......
ま、どっちも工場出荷時状態とは違う気がしますね。 人から預ったものを返す時は元に戻す必要があるので、この状態をとりあえず保存したいのだが・・・・・
U-Bootの状態
最初の起動状態のU-Bootの起動は恐らくNAND Flashからの起動。エラーが出ているけどどういう起動をしたかったのかというところをprintenvコマンドに聞いてみる。
MINI2440 # printenv bootdelay=3 baudrate=115200 ethaddr=08:08:11:18:12:27 ipaddr=10.0.0.111 serverip=10.0.0.4 netmask=255.255.255.0 usbtty=cdc_acm mtdparts=mtdparts=mini2440-nand:256k@0(u-boot),128k(env),5m(kernel),-(root) mini2440=mini2440=0tb bootargs_base=console=ttySAC0,115200 noinitrd bootargs_init=init=/sbin/init root_nand=root=/dev/mtdblock3 rootfstype=jffs2 root_mmc=root=/dev/mmcblk0p2 rootdelay=2 root_nfs=/mnt/nfs set_root_nfs=setenv root_nfs root=/dev/nfs rw nfsroot=${serverip}:${root_nfs} ifconfig_static=run setenv ifconfig ip=${ipaddr}:${serverip}::${netmask}:mini2440:eth0 ifconfig_dhcp=run setenv ifconfig ip=dhcp ifconfig=ip=dhcp set_bootargs_mmc=setenv bootargs ${bootargs_base} ${bootargs_init} ${mini2440} ${root_mmc} set_bootargs_nand=setenv bootargs ${bootargs_base} ${bootargs_init} ${mini2440} ${root_nand} set_bootargs_nfs=run set_root_nfs; setenv bootargs ${bootargs_base} ${bootargs_init} ${mini2440} ${root_nfs} ${ifconfig} mtdids=nand0=mini2440-nand bootcmd=mmcinit; fatload mmc 0:1 0x32000000 uImage.bin; bootm 0x32000000 bootargs=console=ttySAC0,115200 root=/dev/mmcblk0p2 init=/init rootfstype=ext3 rw mini2440=0tb rootdelay=3 nohz=off noinitrd partition=nand0,0 mtddevnum=0 mtddevname=u-boot Environment size: 1209/65532 bytes MINI2440 #
SDカードのパーティションを分けて2番目のパーティションにext3なrootファイルシステムをおく必要があるみたいですね。
・・・とこの程度でもニ晩目終了。 これに専念しているわけでもないので勘弁して。
ちなみにこの作業が割り込んだ影響でペルセウス座流星群の観測、兼、モータードライブテストは流れてしまいました。
最近のコメント