[[Android]]~
[[Android kernel for bc9 (1/2)]]~
[[Software/Android]]~
[[Software/Android/bc9]]~
[[Software/Android/bc9/kernel(1/2)]]~
#contents

*Android 対応にした kernel を含む gumstix 用 Linux 環境の作成2 [#id63d866]

**本体内 FlashROM へのファイルの配置 [#w6b16337]
シリアルケーブル経由で system イメージファイルと kernel イメージファイルを転送し、本体内 FlashROM に書き込みます。~
シリアルケーブルを使った build マシンとの接続の設定は以下を参照して下さい。
-[[gumstix developer site - Setting up a serial connection:http://www.gumstix.net/Software/view/Getting-started/Setting-up-a-serial-connection/111.html]]

起動時に キーを押して 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 してから起動しきるまでやや時間がかかります。~
2回目以降は5秒ほどで起動します。~
標準の kernel と違いサイズを小さくするために driver の多くを module 化しているので、~
初回の起動後本体の userland 上へ kernel module パッケージを展開してインストールする必要があります。~
まず build マシンへ USB フラッシュメモリを挿してモジュールをコピーし、
 $ 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 のモジュールは設定されていないので~
起動するたびに modprobe しなくて済むよう、設定します。
 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 対応の確認 [#m3f60dd5]
この kernel と userland で起動し、標準の kernel には存在しない ashmem や logger の初期化が行われていることを確認します。~
起動メッセージ内に以下の項目が含まれていれば OK です。
 ashmem: initialized
 logger: created 64K log 'log_main'
 logger: created 256K log 'log_events'
 logger: created 64K log 'log_radio'
**フレームバッファ描画の確認 [#zd6383e1]
変更を加えた pxafb が正常に動作するか確認します。~
まず起動時 LCD にログインプロンプトが表示されるのを確認。~
ログインしたら lsmod で pxafb や fbcon が読み込まれていることを確認。~
 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 が正しく描画していることを確認して下さい。

-----------------
RIGHT:by 大塚聡史

BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS