[android[kmz] KZM9D来た。とりあえずSD起動の確認してみた

もうEOLとのことだけど、やんごとなき事情によりさわりはじめる必要がある。
まずは、SDで起動できるGingerbread作る必要がある。
とりあえず、prebuiltのイメージをSDで起動してみる。


シリアルは9ピン。ハーネス付けにくすぎ...
Lコネクタでもよかったのじゃ...
通電で、内蔵eMMCに書かれたGingerbreadが起動した。
タッチで動作しにくいと思ったら、感圧だったか?
いや、静電だな...


CDには、kzm9d_20111018.tar。
1GBくらい。
tar?
なんでだ...
なんで圧縮されていないのだ?
tar嫌うってのはあるけど、gz嫌うってのは聞いたことないな...

$ mkdir ~/KZM9D
$ cp /media/KZMA9DUAL_111021/Software/kzm9d_20111018.tar ~/KZM9D/
$ sync
$ eject
$ cd ~/KZM9D/
$ tar xvf kzm9d_20111018.tar 
20111018/
20111018/How_to_boot_ubuntu.txt
20111018/kernel_20111018.tar.bz2
20111018/android_20110930.tar.bz2
20111018/write_sd.sh
20111018/prebuilt/
20111018/prebuilt/u-boot-emmc.bin
20111018/prebuilt/android-root.tar.bz2
20111018/prebuilt/sdboot.bin
20111018/prebuilt/uImage
20111018/prebuilt/uboot-sd.bin
20111018/prebuilt/u-boot.bin
20111018/How_to_boot_from_SD.txt
20111018/How_to_boot_via_NFS.txt
20111018/patch-linux-2.6.35-kzma9d-20111017
20111018/u-boot_20110930.tar.bz2
20111018/How_to_build.txt
20111018/00Readme.txt
$ cd 20111018/

なるほど、中身がbz2だから、これ以上圧縮する意味はないってことか。


"00Readme.txt"によると、SDからの起動は、

Boot from SD card
DSW1-3: OFF
DSW1-4: ON

"How_to_boot_from_SD.txt"によると、SDからの起動に必要なのは4つ。
uboot-sd.bin, sdboot.bin, uImage, android-root.tar.bz2。
./outに入れておく。
構成は普通のルネサスっぽい感じ。
eMMCにuserlandベタ書きで、ROM化されていないってことか。正直、よろしくない実装ね。
容量は1Gくらい。速いカード使ってね。
"write_sd.sh"というスクリプトが用意してあるので、それに接続SDを引数で渡す。
kernelの起動パラメータは、こんな感じだそう。

root=/dev/mmcblk1p3 noinitrd init=/init console=ttyS1,115200n8n mem=129M@0x40000000 mem=256M@0x50000000 rw video=qfb: ip=none rootfstype=ext3 rootwait

これは、ubootにハードコードかな? あんまりよろしくない実装だな。
SDからの起動では、スリープすると起きなくなるそうな。
うぐぐ。


手持ちの余りSDに良さ気なのがないな。
東芝2GBがあった。中身はPandaの起動に使ってたやつだな。
カードリーダー経由で接続。sdbで認識された。


まずは、起動テストのために、prebuiltを試す。

$ mkdir out
$ cp prebuilt/
android-root.tar.bz2  u-boot-emmc.bin       uImage
sdboot.bin            u-boot.bin            uboot-sd.bin
$ cp prebuilt/* out/

Ubuntuが自動マウントしちゃうので、アンマウントしておく。

$ sudo umount /dev/sdb1
$ sudo umount /dev/sdb2

書き込む。

$ sudo ./write_sd.sh /dev/sdb
+ OUT_DIR=./out
+ UBOOT=./out/uboot-sd.bin
+ SDBOOT=./out/sdboot.bin
+ UIMAGE=./out/uImage
+ ROOT_TAR=./out/android-root.tar.bz2
+ DRIVE=/dev/sdb
+ TMP_MNT=/tmp/mnt
+ ls -l ./out/uboot-sd.bin
-rw-r--r-- 1 kinneko kinneko 123232 Jun 14 11:51 ./out/uboot-sd.bin
+ ls -l ./out/uImage
-rw-r--r-- 1 kinneko kinneko 4128768 Jun 14 11:51 ./out/uImage
+ ls -l ./out/android-root.tar.bz2
-rw-r--r-- 1 kinneko kinneko 51548221 Jun 14 11:51 ./out/android-root.tar.bz2
+ ls -l /dev/sdb
brw-rw---- 1 root disk 8, 16 Jun 14 11:53 /dev/sdb
+ dd if=/dev/zero of=/dev/sdb bs=1024 count=1024
1024+0 records in
1024+0 records out
1048576 bytes (1.0 MB) copied, 0.652617 s, 1.6 MB/s
+ fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x6e693969.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): Command action
   e   extended
   p   primary partition (1-4)
Partition number (1-4): First cylinder (1-1015, default 1): Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1015, default 1015): 
Command (m for help): Command action
   e   extended
   p   primary partition (1-4)
Partition number (1-4): First cylinder (24-1015, default 24): Using default value 24
Last cylinder, +cylinders or +size{K,M,G} (24-1015, default 1015): 
Command (m for help): Command action
   e   extended
   p   primary partition (1-4)
Partition number (1-4): First cylinder (25-1015, default 25): Using default value 25
Last cylinder, +cylinders or +size{K,M,G} (25-1015, default 1015): Using default value 1015

Command (m for help): Partition number (1-4): Hex code (type L to list codes): Changed system type of partition 1 to 6 (FAT16)

Command (m for help): 
Disk /dev/sdb: 1967 MB, 1967128576 bytes
61 heads, 62 sectors/track, 1015 cylinders
Units = cylinders of 3782 * 512 = 1936384 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x6e693969

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          23       43462    6  FAT16
/dev/sdb2              24          24        1891   83  Linux
/dev/sdb3              25        1015     1873981   83  Linux

Command (m for help): The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
information.
Syncing disks.
+ sync
+ sync
+ sync
+ mkfs.msdos /dev/sdb1
mkfs.msdos 3.0.9 (31 Jan 2010)
+ mkfs.ext3 /dev/sdb3
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
117360 inodes, 468495 blocks
23424 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=482344960
15 block groups
32768 blocks per group, 32768 fragments per group
7824 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912

Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 20 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
+ mkdir -p /tmp/mnt
+ mount /dev/sdb1 /tmp/mnt
+ cp ./out/sdboot.bin /tmp/mnt
+ cp ./out/uboot-sd.bin /tmp/mnt
+ cp ./out/uImage /tmp/mnt
+ umount /tmp/mnt
+ mount /dev/sdb3 /tmp/mnt
+ tar xvpf ./out/android-root.tar.bz2 -C /tmp/mnt
./
./ueventd.goldfish.rc
./sys/
./ueventd.rc
./data/
./init.kzm9d.rc
./default.prop
./proc/
./init
./system/
./system/usr/
./system/usr/icu/
./system/usr/icu/icudt44l.dat
./system/usr/keylayout/
./system/usr/keylayout/AVRCP.kl
./system/usr/keylayout/qwerty.kl
./system/usr/share/
./system/usr/share/alsa/
./system/usr/share/alsa/cards/
./system/usr/share/alsa/cards/aliases.conf
./system/usr/share/alsa/alsa.conf
./system/usr/share/alsa/pcm/
./system/usr/share/alsa/pcm/center_lfe.conf
./system/usr/share/alsa/pcm/surround50.conf
./system/usr/share/alsa/pcm/iec958.conf
./system/usr/share/alsa/pcm/rear.conf
./system/usr/share/alsa/pcm/surround41.conf
./system/usr/share/alsa/pcm/front.conf
./system/usr/share/alsa/pcm/side.conf
./system/usr/share/alsa/pcm/default.conf
./system/usr/share/alsa/pcm/modem.conf
./system/usr/share/alsa/pcm/surround71.conf
./system/usr/share/alsa/pcm/surround40.conf
./system/usr/share/alsa/pcm/dsnoop.conf
./system/usr/share/alsa/pcm/surround51.conf
./system/usr/share/alsa/pcm/dmix.conf
./system/usr/share/alsa/pcm/dpl.conf
./system/usr/share/bmd/
./system/usr/share/bmd/RFFstd_501.bmd
./system/usr/share/bmd/RFFspeed_501.bmd
./system/usr/share/zoneinfo/
./system/usr/share/zoneinfo/zoneinfo.dat
./system/usr/share/zoneinfo/zoneinfo.idx
./system/usr/share/zoneinfo/zoneinfo.version
./system/usr/keychars/
./system/usr/keychars/qwerty.kcm.bin
./system/usr/keychars/qwerty2.kcm.bin
./system/usr/srec/
./system/usr/srec/config/
./system/usr/srec/config/en.us/
./system/usr/srec/config/en.us/g2p/
./system/usr/srec/config/en.us/g2p/en-US-ttp.data
./system/usr/srec/config/en.us/dictionary/
./system/usr/srec/config/en.us/dictionary/basic.ok
./system/usr/srec/config/en.us/dictionary/enroll.ok
./system/usr/srec/config/en.us/dictionary/cmu6plus.ok.zip
./system/usr/srec/config/en.us/baseline11k.par
./system/usr/srec/config/en.us/grammars/
./system/usr/srec/config/en.us/grammars/VoiceDialer.g2g
./system/usr/srec/config/en.us/grammars/phone_type_choice.g2g
./system/usr/srec/config/en.us/grammars/boolean.g2g
./system/usr/srec/config/en.us/baseline8k.par
./system/usr/srec/config/en.us/models/
./system/usr/srec/config/en.us/models/generic8_m.swimdl
./system/usr/srec/config/en.us/models/generic8.lda
./system/usr/srec/config/en.us/models/generic.swiarb
./system/usr/srec/config/en.us/models/generic8_f.swimdl
./system/usr/srec/config/en.us/models/generic11_f.swimdl
./system/usr/srec/config/en.us/models/generic11.lda
./system/usr/srec/config/en.us/models/generic11_m.swimdl
./system/usr/srec/config/en.us/baseline.par
./system/tts/
./system/tts/lang_pico/
./system/tts/lang_pico/en-US_lh0_sg.bin
./system/tts/lang_pico/it-IT_ta.bin
./system/tts/lang_pico/es-ES_zl0_sg.bin
./system/tts/lang_pico/fr-FR_nk0_sg.bin
./system/tts/lang_pico/de-DE_gl0_sg.bin
./system/tts/lang_pico/it-IT_cm0_sg.bin
./system/tts/lang_pico/en-GB_kh0_sg.bin
./system/tts/lang_pico/de-DE_ta.bin
./system/tts/lang_pico/es-ES_ta.bin
./system/tts/lang_pico/fr-FR_ta.bin
./system/tts/lang_pico/en-GB_ta.bin
./system/tts/lang_pico/en-US_ta.bin
./system/xbin/
./system/xbin/scp
./system/xbin/strace
./system/xbin/tcpdump
./system/xbin/procrank
./system/xbin/dexdump
./system/xbin/add-property-tag
./system/xbin/showslab
./system/xbin/latencytop
./system/xbin/dbus-monitor
./system/xbin/crasher
./system/xbin/opcontrol
./system/xbin/btool
./system/xbin/oprofiled
./system/xbin/procmem
./system/xbin/dbus-send
./system/xbin/sqlite3
./system/xbin/netperf
./system/xbin/timeinfo
./system/xbin/directiotest
./system/xbin/daemonize
./system/xbin/netserver
./system/xbin/ssh
./system/xbin/rawbu
./system/xbin/check-lost+found
./system/xbin/showmap
./system/xbin/cpueater
./system/xbin/vfp-crasher
./system/xbin/nc
./system/xbin/librank
./system/xbin/su
./system/media/
./system/media/audio/
./system/media/audio/alarms/
./system/media/audio/alarms/Alarm_Beep_01.ogg
./system/media/audio/alarms/Alarm_Beep_03.ogg
./system/media/audio/alarms/Alarm_Classic.ogg
./system/media/audio/alarms/Alarm_Buzzer.ogg
./system/media/audio/alarms/Alarm_Rooster_02.ogg
./system/media/audio/alarms/Alarm_Beep_02.ogg
./system/media/audio/ui/
./system/media/audio/ui/KeypressReturn.ogg
./system/media/audio/ui/camera_click.ogg
./system/media/audio/ui/KeypressDelete.ogg
./system/media/audio/ui/VideoRecord.ogg
./system/media/audio/ui/Effect_Tick.ogg
./system/media/audio/ui/KeypressSpacebar.ogg
./system/media/audio/ui/KeypressStandard.ogg
./system/media/audio/notifications/
./system/media/audio/notifications/F1_MissedCall.ogg
./system/media/audio/notifications/Tinkerbell.ogg
./system/media/audio/notifications/Voila.ogg
./system/media/audio/notifications/F1_New_MMS.ogg
./system/media/audio/notifications/CaffeineSnake.ogg
./system/media/audio/notifications/F1_New_SMS.ogg
./system/media/audio/notifications/OnTheHunt.ogg
./system/media/audio/notifications/Highwire.ogg
./system/media/audio/notifications/Beat_Box_Android.ogg
./system/media/audio/notifications/TaDa.ogg
./system/media/audio/notifications/DontPanic.ogg
./system/media/audio/notifications/DearDeer.ogg
./system/media/audio/notifications/Heaven.ogg
./system/media/audio/notifications/KzurbSonar.ogg
./system/media/audio/ringtones/
./system/media/audio/ringtones/RomancingTheTone.ogg
./system/media/audio/ringtones/Noises3.ogg
./system/media/audio/ringtones/BirdLoop.ogg
./system/media/audio/ringtones/Ring_Digital_02.ogg
./system/media/audio/ringtones/BeatPlucker.ogg
./system/media/audio/ringtones/Ring_Synth_04.ogg
./system/media/audio/ringtones/Growl.ogg
./system/media/audio/ringtones/EtherShake.ogg
./system/media/audio/ringtones/InsertCoin.ogg
./system/media/audio/ringtones/VeryAlarmed.ogg
./system/media/audio/ringtones/World.ogg
./system/media/audio/ringtones/LoveFlute.ogg
./system/media/audio/ringtones/TwirlAway.ogg
./system/media/audio/ringtones/DreamTheme.ogg
./system/media/audio/ringtones/Noises1.ogg
./system/media/audio/ringtones/FriendlyGhost.ogg
./system/media/audio/ringtones/Terminated.ogg
./system/media/audio/ringtones/NewPlayer.ogg
./system/media/audio/ringtones/Noises2.ogg
./system/media/audio/ringtones/LoopyLounge.ogg
./system/media/audio/ringtones/CaribbeanIce.ogg
./system/media/audio/ringtones/CurveBall.ogg
./system/media/audio/ringtones/Ring_Classic_02.ogg
./system/media/audio/ringtones/SitarVsSitar.ogg
./system/media/audio/ringtones/GameOverGuitar.ogg
./system/media/audio/ringtones/MidEvilJaunt.ogg
./system/media/audio/ringtones/MildlyAlarming.ogg
./system/media/audio/ringtones/SpringyJalopy.ogg
./system/media/audio/ringtones/CrazyDream.ogg
./system/media/audio/ringtones/BentleyDubs.ogg
./system/media/audio/ringtones/Ring_Synth_02.ogg
./system/media/audio/ringtones/OrganDub.ogg
./system/bin/
./system/bin/ls
./system/bin/String8_test
./system/bin/dnsmasq
./system/bin/dvz
./system/bin/skia_test
./system/bin/rmmod
./system/bin/toolbox
./system/bin/app_process
./system/bin/installd
./system/bin/keystore
./system/bin/monkey
./system/bin/cmp
./system/bin/ping
./system/bin/start
./system/bin/sh
./system/bin/umount
./system/bin/lsmod
./system/bin/InputPublisherAndConsumer_test
./system/bin/uptime
./system/bin/pm
./system/bin/chmod
./system/bin/notify
./system/bin/audioloop
./system/bin/setconsole
./system/bin/gzip
./system/bin/hd
./system/bin/dumpsys
./system/bin/racoon
./system/bin/vmstat
./system/bin/date
./system/bin/nandread
./system/bin/reboot
./system/bin/ifconfig
./system/bin/dbus-daemon
./system/bin/watchprops
./system/bin/tc
./system/bin/servicemanager
./system/bin/pppd
./system/bin/ime
./system/bin/bootanimation
./system/bin/dmesg
./system/bin/smd
./system/bin/surfaceflinger
./system/bin/chown
./system/bin/newfs_msdos
./system/bin/check_prereq
./system/bin/kill
./system/bin/route
./system/bin/netd
./system/bin/df
./system/bin/stop
./system/bin/cat
./system/bin/vold
./system/bin/InputChannel_test
./system/bin/schedtest
./system/bin/ps
./system/bin/dd
./system/bin/rm
./system/bin/logwrapper
./system/bin/sleep
./system/bin/ionice
./system/bin/testid3
./system/bin/flash_image
./system/bin/mv
./system/bin/ndc
./system/bin/getevent
./system/bin/log
./system/bin/printenv
./system/bin/InputReader_test
./system/bin/netcfg
./system/bin/gdbserver
./system/bin/dalvikvm
./system/bin/Looper_test
./system/bin/system_server
./system/bin/qemu-props
./system/bin/vdc
./system/bin/lsof
./system/bin/radiooptions
./system/bin/mount
./system/bin/am
./system/bin/rmdir
./system/bin/mediaserver
./system/bin/mtpd
./system/bin/wipe
./system/bin/linker
./system/bin/run-as
./system/bin/InputDispatcher_test
./system/bin/fsck_msdos
./system/bin/record
./system/bin/showlease
./system/bin/dumpstate
./system/bin/omx_tests
./system/bin/getprop
./system/bin/debuggerd
./system/bin/rtp_test
./system/bin/logcat
./system/bin/input
./system/bin/mkdir
./system/bin/gdbjithelper
./system/bin/id
./system/bin/qemud
./system/bin/rild
./system/bin/schedtop
./system/bin/renice
./system/bin/stagefright
./system/bin/dhcpcd
./system/bin/applypatch
./system/bin/setprop
./system/bin/netstat
./system/bin/iftop
./system/bin/bmgr
./system/bin/iptables
./system/bin/sendevent
./system/bin/applypatch_static
./system/bin/ln
./system/bin/keystore_cli
./system/bin/sync
./system/bin/updater
./system/bin/dexopt
./system/bin/ObbFile_test
./system/bin/sdcard
./system/bin/svc
./system/bin/recovery
./system/bin/top
./system/bin/ioctl
./system/bin/service
./system/bin/insmod
./system/bin/bugreport
./system/framework/
./system/framework/services.jar
./system/framework/am.jar
./system/framework/input.jar
./system/framework/svc.jar
./system/framework/monkey.jar
./system/framework/sqlite-jdbc.jar
./system/framework/android.test.runner.jar
./system/framework/javax.obex.jar
./system/framework/framework.jar
./system/framework/ime.jar
./system/framework/android.policy.jar
./system/framework/bouncycastle.jar
./system/framework/core.jar
./system/framework/com.android.location.provider.jar
./system/framework/pm.jar
./system/framework/framework-res.apk
./system/framework/ext.jar
./system/framework/bmgr.jar
./system/framework/core-junit.jar
./system/etc/
./system/etc/init.kzm9d.sh
./system/etc/apns-conf.xml
./system/etc/event-log-tags
./system/etc/hosts
./system/etc/NOTICE.html.gz
./system/etc/media_profiles.xml
./system/etc/ppp/
./system/etc/ppp/ip-up-vpn
./system/etc/permissions/
./system/etc/permissions/platform.xml
./system/etc/permissions/com.android.location.provider.xml
./system/etc/permissions/android.hardware.camera.xml
./system/etc/permissions/android.software.live_wallpaper.xml
./system/etc/permissions/android.hardware.touchscreen.xml
./system/etc/vold.fstab
./system/etc/init.goldfish.sh
./system/etc/security/
./system/etc/security/cacerts.bks
./system/etc/security/otacerts.zip
./system/etc/dbus.conf
./system/etc/dhcpcd/
./system/etc/dhcpcd/dhcpcd-hooks/
./system/etc/dhcpcd/dhcpcd-hooks/20-dns.conf
./system/etc/dhcpcd/dhcpcd-hooks/95-configured
./system/etc/dhcpcd/dhcpcd-run-hooks
./system/lib/
./system/lib/libttssynthproxy.so
./system/lib/soundfx/
./system/lib/soundfx/libvisualizer.so
./system/lib/soundfx/libreverbwrapper.so
./system/lib/soundfx/libbundlewrapper.so
./system/lib/libmedia.so
./system/lib/libjpeg.so
./system/lib/libiprouteutil.so
./system/lib/libstagefright.so
./system/lib/librtp_jni.so
./system/lib/libnativehelper.so
./system/lib/libhardware.so
./system/lib/libstagefright_color_conversion.so
./system/lib/libcamera_client.so
./system/lib/libssl.so
./system/lib/libandroid.so
./system/lib/libaudio.so
./system/lib/libvorbisidec.so
./system/lib/libcameraservice.so
./system/lib/libgui.so
./system/lib/libdiskconfig.so
./system/lib/libstagefright_avc_common.so
./system/lib/libsysutils.so
./system/lib/libsoundpool.so
./system/lib/libsqlite_jni.so
./system/lib/libcamera.so
./system/lib/libdrm1.so
./system/lib/libSR_AudioIn.so
./system/lib/libOpenSLES.so
./system/lib/libm.so
./system/lib/invoke_mock_media_player.so
./system/lib/hw/
./system/lib/hw/gps.goldfish.so
./system/lib/hw/copybit.emxx.so
./system/lib/hw/overlay.emxx.so
./system/lib/hw/lights.emxx.so
./system/lib/hw/gralloc.default.so
./system/lib/hw/alsa.default.so
./system/lib/hw/gralloc.emxx.so
./system/lib/hw/acoustics.default.so
./system/lib/hw/sensors.goldfish.so
./system/lib/libskia.so
./system/lib/libasound.so
./system/lib/libstdc++.so
./system/lib/libstagefright_omx.so
./system/lib/libcrypto.so
./system/lib/libstlport.so
./system/lib/libdl.so
./system/lib/libdvm.so
./system/lib/libpagemap.so
./system/lib/egl/
./system/lib/egl/libGLES_android.so
./system/lib/libeffects.so
./system/lib/libsystem_server.so
./system/lib/liblog.so
./system/lib/libwpa_client.so
./system/lib/libaudiopolicy.so
./system/lib/libwebcore.so
./system/lib/libsensorservice.so
./system/lib/libui.so
./system/lib/libc_malloc_debug_qemu.so
./system/lib/libsqlite.so
./system/lib/libdbus.so
./system/lib/libaudioeffect_jni.so
./system/lib/libreference-cdma-sms.so
./system/lib/libGLESv2.so
./system/lib/libemoji.so
./system/lib/libacc.so
./system/lib/libcutils.so
./system/lib/librs_jni.so
./system/lib/libstagefright_enc_common.so
./system/lib/libsurfaceflinger.so
./system/lib/libaudioflinger.so
./system/lib/libz.so
./system/lib/libGLESv1_CM.so
./system/lib/libmock_ril.so
./system/lib/libjni_pinyinime.so
./system/lib/libskiagl.so
./system/lib/libc.so
./system/lib/libmediaplayerservice.so
./system/lib/libc_malloc_debug_leak.so
./system/lib/libexif.so
./system/lib/libterm.so
./system/lib/libctest.so
./system/lib/libRS.so
./system/lib/libstagefright_amrnb_common.so
./system/lib/libstagefrighthw.so
./system/lib/libbinder.so
./system/lib/libFFTEm.so
./system/lib/libicui18n.so
./system/lib/libstagefright_foundation.so
./system/lib/libsurfaceflinger_client.so
./system/lib/libmedia_jni.so
./system/lib/libETC1.so
./system/lib/libnetlink.so
./system/lib/libthread_db.so
./system/lib/libnetutils.so
./system/lib/libexpat.so
./system/lib/libpixelflinger.so
./system/lib/libEGL.so
./system/lib/libdrm1_jni.so
./system/lib/libicuuc.so
./system/lib/libandroid_runtime.so
./system/lib/libutils.so
./system/lib/libjni_latinime.so
./system/lib/libril.so
./system/lib/libttspico.so
./system/lib/libjnigraphics.so
./system/lib/libhardware_legacy.so
./system/lib/libreference-ril.so
./system/lib/libsrec_jni.so
./system/lib/libnfc_ndef.so
./system/lib/libandroid_servers.so
./system/lib/libsonivox.so
./system/build.prop
./system/fonts/
./system/fonts/DroidSansFallback.ttf
./system/fonts/DroidSerif-Bold.ttf
./system/fonts/DroidSansThai.ttf
./system/fonts/DroidSerif-BoldItalic.ttf
./system/fonts/DroidSansMono.ttf
./system/fonts/DroidSans.ttf
./system/fonts/DroidSerif-Italic.ttf
./system/fonts/Clockopia.ttf
./system/fonts/DroidSansHebrew.ttf
./system/fonts/DroidSansArabic.ttf
./system/fonts/DroidSans-Bold.ttf
./system/fonts/DroidSerif-Regular.ttf
./system/app/
./system/app/SystemUI.apk
./system/app/VisualizationWallpapers.apk
./system/app/LiveWallpapers.apk
./system/app/MediaProvider.apk
./system/app/Launcher2.apk
./system/app/Gallery3D.apk
./system/app/PackageInstaller.apk
./system/app/DeskClock.apk
./system/app/Calendar.apk
./system/app/UserDictionaryProvider.apk
./system/app/SpeechRecorder.apk
./system/app/CertInstaller.apk
./system/app/DefaultContainerService.apk
./system/app/Term.apk
./system/app/DrmProvider.apk
./system/app/DownloadProvider.apk
./system/app/LatinIME.apk
./system/app/TtsService.apk
./system/app/LiveWallpapersPicker.apk
./system/app/Development.apk
./system/app/Mms.apk
./system/app/VpnServices.apk
./system/app/PicoTts.apk
./system/app/Email.apk
./system/app/Protips.apk
./system/app/Provision.apk
./system/app/SoundRecorder.apk
./system/app/Browser.apk
./system/app/Bluetooth.apk
./system/app/Camera.apk
./system/app/Music.apk
./system/app/Settings.apk
./system/app/SpareParts.apk
./system/app/CalendarProvider.apk
./system/app/Contacts.apk
./system/app/Phone.apk
./system/app/DownloadProviderUi.apk
./system/app/Calculator.apk
./system/app/ApplicationsProvider.apk
./system/app/AccountAndSyncSettings.apk
./system/app/TelephonyProvider.apk
./system/app/MagicSmokeWallpapers.apk
./system/app/SettingsProvider.apk
./system/app/QuickSearchBox.apk
./system/app/ContactsProvider.apk
./system/app/HTMLViewer.apk
./sbin/
./sbin/ueventd
./sbin/adbd
./ueventd.kzm9d.rc
./init.goldfish.rc
./initlogo.rle
./init.rc
./dev/
./lib/
./lib/modules/
./lib/modules/em_ave.ko
./lib/modules/pwm.ko
./lib/modules/inter_dsp.ko
./kzm9d_ts0.rle
+ umount /tmp/mnt
umount: /tmp/mnt: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

やってることは普通。パーティション切って書いているだけ。
最後、umountに失敗してる。

$ df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sdb3              1844472    110332   1640444   7% /tmp/mnt

確かに残っているね。
大丈夫かな?
まだ書いている最中にumountしようとしちゃった?
とりあえず、手動でやっておく。

$ sudo umount /tmp/mnt


ちゃんと書けているのかな?

$ sudo fdisk -l /dev/sdb

Disk /dev/sdb: 1967 MB, 1967128576 bytes
61 heads, 62 sectors/track, 1015 cylinders
Units = cylinders of 3782 * 512 = 1936384 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x6e693969

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          23       43462    6  FAT16
/dev/sdb2              24          24        1891   83  Linux
/dev/sdb3              25        1015     1873981   83  Linux

何が書かれたか見る。

$ sudo mount /dev/sdb1 /media
kinneko@BuildSV:~/KZM9D/20111018$ ls -l /media
total 4162
-rwxr-xr-x 1 root root    8192 Jun 14 12:02 sdboot.bin
-rwxr-xr-x 1 root root 4128768 Jun 14 12:02 uImage
-rwxr-xr-x 1 root root  123232 Jun 14 12:02 uboot-sd.bin
kinneko@BuildSV:~/KZM9D/20111018$ sudo umount /media
kinneko@BuildSV:~/KZM9D/20111018$ sudo mount /dev/sdb2 /media
mount: you must specify the filesystem type
kinneko@BuildSV:~/KZM9D/20111018$ sudo mount /dev/sdb3 /media
kinneko@BuildSV:~/KZM9D/20111018$ ls -l /media
total 228
drwxr-xr-x  2 kinneko kinneko  4096 Oct 18  2011 data
-rw-r--r--  1 kinneko kinneko   118 Oct 18  2011 default.prop
drwxr-xr-x  2 kinneko kinneko  4096 Oct 18  2011 dev
-rwxr-xr-x  1 kinneko kinneko 94252 Oct 18  2011 init
-rw-r--r--  1 kinneko kinneko  1677 Dec 18  2010 init.goldfish.rc
-rw-r--r--  1 kinneko kinneko   300 Sep 14  2011 init.kzm9d.rc
-rw-r--r--  1 kinneko kinneko 13806 Dec 20  2010 init.rc
-rw-r--r--  1 kinneko kinneko 23164 Aug 24  2011 initlogo.rle
-rw-r--r--  1 kinneko kinneko 22184 Sep 14  2011 kzm9d_ts0.rle
drwxr-xr-x  3 kinneko kinneko  4096 Oct 18  2011 lib
drwx------  2 root    root    16384 Jun 14 12:01 lost+found
drwxr-xr-x  2 kinneko kinneko  4096 Oct 18  2011 proc
drwxr-xr-x  2 kinneko kinneko  4096 Oct 18  2011 sbin
drwxr-xr-x  2 kinneko kinneko  4096 Oct 18  2011 sys
drwxr-xr-x 12 kinneko kinneko  4096 Oct 18  2011 system
-rw-r--r--  1 kinneko kinneko     0 Dec 18  2010 ueventd.goldfish.rc
-rw-r--r--  1 kinneko kinneko   373 Feb 22  2011 ueventd.kzm9d.rc
-rw-r--r--  1 kinneko kinneko  3882 May  2  2011 ueventd.rc
kinneko@BuildSV:~/KZM9D/20111018$ sudo umount /media

ログ見ても、sdb2(ext3)はmkfsされた気配がないね。
スクリプトの中みても使ってない。

mkfs.msdos ${DRIVE}1
mkfs.ext3 ${DRIVE}3

どういう意図かな?
サイズも256Kしかないし。
謎。


とりあえず、これで起動してみる。
ターゲットの電源を引っこ抜いて、DIPSWを切り替える。
正面右下に、2つのピアノスイッチがある。4つと8つの。
"KZM-A9-Dual_first_guide.pdf"によると、8つのがDSW1のようだ。
デフォルトの内蔵eMMCからの起動モードは以下。

DSW1-1: OFF
DSW1-2: OFF
DSW1-3: ON
DSW1-4: OFF
DSW1-5: ON
DSW1-6: ON
DSW1-7: OFF
DSW1-8: OFF

左から1かな。
爪楊枝で、3,4を反転する。
作ったSDを基板上側に差し込み、ACを入れる。
キャリブレーション画面が上がってきたので、SDから起動している模様。
このデータは、どこに保管しているんだろう?
なんか、タッチしても動かない。
適当にクリックしたら、起動してきたけど、SDからの起動は遅いな...
やっぱ、キャリブレーションに失敗してたので、タッチが効かない。
ガチャ切りして再起動。
どっかに書かれていれば無駄だけど... 無駄だったようだ。
さっきはホームアプリで上がってきたけど、こんどはアンロック画面で上がってきた。
なんだなんだ?


"kzm9d_ts0.rle"って最初からあったかな?
あったみたい。
キャリブレーションデータはどこに保管しているんだろう...
しょうがないので、SDもう一回書いて起動。
再度キャリブレーション
数字の+を順番に押していく。
ちゃんと動いた...
たしかにスリープしたら起きられないですね。
二回目からアンロックになるのも同じだな。
App-StayWakeと、Disp-timeoutを30分にする。
never timeout拡張したらいいのに。
キャリブレーションは指ではイマイチだったようで、操作少しズレる。


キャリブレーションの設定については、"How_to_build.txt"の最後に書いてあった。
/data/property/persist.kzm9d.tsに保存されるそうだ。
tslibでやっているのかな?
数字の+を順にタップしていくという操作も間違いないようだ。