Software/Android Android 対応にした kernel を含む gumstix 用 Linux 環境の作成2 †本体内 FlashROM へのファイルの配置 †シリアルケーブル経由で system イメージファイルと kernel イメージファイルを転送し、本体内 FlashROM に書き込みます。 起動時に キーを押して U-BOOT へ入ります。 U-Boot 1.2.0 (Dec 21 2007 - 13:37:16) - PXA270@600 MHz - 1578M *** Welcome to Gumstix *** DRAM: 128 MB Flash: 32 MB Using default environment Hit any key to stop autoboot: 0 Linux の起動へ進まず以下のプロンプトになっていれば OK です。 GUM> RAM の a2000000 に転送したファイルを受信する設定をします。 GUM> loadb a2000000 Ctrl+\ の後 c で kermit のシリアル接続から一旦抜け、kermit 上で送信します。 C-Kermit> cd ~/gumstix/gumstix-oe/tmp/deploy/glibc/images/gumstix-custom-verdex/ C-Kermit> send gumstix-basic-image-gumstix-custom-verdex.jffs2 送信中は以下のように転送状況が表示されます。 C-Kermit 8.0.211, 30 Mar 2008, localhost Current Directory: /home/beat/gumstix/gumstix-oe/tmp/deploy/glibc/images/ Communication Device: /dev/ttyUSB0 Communication Speed: 115200 Parity: none RTT/Timeout: 01 / 02 SENDING: => GUMSTIX-BASIC-IMAGE-GUMSTIX-CUSTOM-VERDEX.JFFS2 File Type: BINARY File Size: 7491192 Percent Done: 2 / ...10...20...30...40...50...60...70...80...90..100 Estimated Time Left: 00:13:32 Transfer Rate, CPS: 8963 Window Slots: 1 of 1 Packet Type: D Packet Count: 68 Packet Length: 4096 Error Count: 0 Last Error: Last Message: X to cancel file, Z to cancel group, to resend last packet, E to send Error packet, ^C to quit immediately, ^L to refresh screen. 送信が完了するとプロンプトに戻るので、再度接続します。 GUM> connect ブートローダーの領域だけ保護し、Frash の全領域をクリア。 GUM> protect on 1:0-1 GUM> erase all 転送済みの system イメージを FlashROM へ書き込みます。 GUM> cp.b a2000000 40000 ${filesize} ←ここには転送時に環境変数へ登録されたファイルサイズが自動的にはいります。 書き込み終わったら今度は kernel イメージを受信できるよう再度設定。 GUM> loadb a2000000 Ctrl+\ 、 c で kermit のシリアル接続からまた抜けて、kermit 上で送信を実行します。 C-Kermit> send uImage-2.6.24-r1-gumstix-custom-verdex.bin 送信が完了しプロンプトに戻ったら再度接続します。 C-Kermit> connect kernel 保存領域へ書き込みます。 GUM> katinstall 100000 kernel をメモリへ読み込んで起動します。 GUM> katload 100000 GUM> bootm 初回の起動時には jffs2 の展開や ssh key の生成が行われるため root fs を remount してから起動しきるまでやや時間がかかります。 $ cd ~/gumstix/gumstix-oe/tmp/deploy/glibc/images/ $ cp modules-2.6.24-r1-gumstix-custom-verdex.tgz /media/disk/ 次に USB フラッシュメモリを gumstix に挿して gumstix上へモジュールを展開します。 root@gumstix-custom-verdex:~$ tar -C / -zxvf /media/hdd/modules-2.6.24-r1-gumstix-custom-verdex.tgz いくつかの module は最初から起動時に load されるようになっていますが、pxafb のモジュールは設定されていないので root@gumstix-custom-verdex:~$ vi /etc/modutils/pxafb pxafb (とだけ書いて保存) root@gumstix-custom-verdex:~$ vi /etc/modutils/fbcon fbcon (とだけ書いて保存) root@gumstix-custom-verdex:~$ update-modules Android 対応の確認 †この kernel と userland で起動し、標準の kernel には存在しない ashmem や logger の初期化が行われていることを確認します。 ashmem: initialized logger: created 64K log 'log_main' logger: created 256K log 'log_events' logger: created 64K log 'log_radio' フレームバッファ描画の確認 †変更を加えた pxafb が正常に動作するか確認します。 root@gumstix-custom-verdex:~$ lsmod Module Size Used by i2c_dev 6052 0 mousedev 11528 0 i2c_pxa 6080 0 ipv6 244040 10 vfat 9824 0 fat 46076 1 vfat nls_base 6432 2 vfat,fat tsc2003 7632 0 i2c_core 18928 3 i2c_dev,i2c_pxa,tsc2003 pxamci 6816 0 pxafb 11144 1 [permanent] cfbcopyarea 2976 1 pxafb cfbimgblt 2496 1 pxafb cfbfillrect 3488 1 pxafb pxa2xx_cs 3368 1 pxa2xx_core 10368 1 pxa2xx_cs proc_gpio 4492 0 pcmcia 26536 0 pcmcia_core 30704 2 pxa2xx_core,pcmcia firmware_class 7424 1 pcmcia ohci_hcd 20100 0 usbcore 122452 2 ohci_hcd mmc_block 10244 0 mmc_core 46260 2 pxamci,mmc_block fbcon 40312 65 tileblit 2272 1 fbcon font 4384 1 fbcon bitblit 4576 1 fbcon fbcon_rotate 2336 1 bitblit fbcon_cw 4928 1 fbcon_rotate fbcon_ud 5024 1 fbcon_rotate fbcon_ccw 5120 1 fbcon_rotate softcursor 1600 4 bitblit,fbcon_cw,fbcon_ud,fbcon_ccw fb 32208 8 pxafb,fbcon,tileblit,bitblit,fbcon_cw,fbcon_ud,fbcon_ccw,softcursor evdev 8512 0 smc911x 18753 0 gumstix_smc911x 2688 1 smc911x mii 4768 1 smc911x 正しく読み込まれていたら df_dok を起動して LCD に DirectFB が正しく描画していることを確認して下さい。 by 大塚聡史
|