[[Android]]~ [[Android kernel for bc9 (1/2)]]~ #contents *Setup Android bootable linux kernel and userland for bc9 (gumstix) 2 [#j3d857a5] **Installing file system images on onboard FlashROM [#iccbb4b4] We need a serial connection with kermit and transfer system image file and kernel image file for installation.~ Please refer to following instructions for serial connection setting: -[[gumstix developer site - Setting up a serial connection:http://www.gumstix.net/Software/view/Getting-started/Setting-up-a-serial-connection/111.html]] Boot your gumstix, hit any key to stop the autoboot process and drop into 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 If you successfully stop linux autoboot, you will get U-Boot prompt: GUM> Tell U-Boot to prepare to receive a file download at RAM location a2000000: GUM> loadb a2000000 Break the serial connection and return to the kermit prompt by pressing Ctrl-backslash and then c. ~ Set up the file transfer as follows: C-Kermit> cd ~/gumstix/gumstix-oe/tmp/deploy/glibc/images/gumstix-custom-verdex/ C-Kermit> send gumstix-basic-image-gumstix-custom-verdex.jffs2 Then, you will see the progress of the file upload process: 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. When this process completes you will get U-Boot prompt again. Then re-establish serial connection to gumstix: GUM> connect Protects flash sectors 0 and 1,which contain the U-BOOT bootloader. Then erase all other sectors of FlashROM:~ &color(red){Please never forget bootloader protection! If you forget that, gumstix will be bricked. Please be careful.}; GUM> protect on 1:0-1 GUM> erase all Copy already transfered system image to FlashROM: GUM> cp.b a2000000 40000 ${filesize} {filesize} is automatically filled with variable filesize, which was set during upload process.~ So type just same as above.~ When you finished copy of system image, tell U-Boot to prepare to receive a file download again: GUM> loadb a2000000 Break the serial connection and return to the kermit prompt by pressing Ctrl-backslash and then c. ~ Set up the file transfer as follows: C-Kermit> send uImage-2.6.24-r1-gumstix-custom-verdex.bin Re-establish serial connection to gumstix: C-Kermit> connect Install kernel image into FlashROM: GUM> katinstall 100000 Load kernel image to memory and boot: GUM> katload 100000 GUM> bootm First boot after the system image installation takes rather longer time.~ First boot after the system image installation takes rather longer.~ Because jffs2 system image expansion and ssh key generation are performed during the first boot.~ Normaly it boots up only in 4 or 5 seconds.~ Unlike default 2.6.21 gumstix kernel, our modified 2.6.24 kernel is configured to build most drivers as modules.~ It is because FlashROM kernel sector is limited only 1M byte (max kernel size must be under 1048577 bytes).~ So after system image and kernel image installation, we must install kernel modules.~ We use USB flash memory to copy modules into gumstix's FlashROM.~ First connect USB flash memory to build machine and copy modules to it: $ cd ~/gumstix/gumstix-oe/tmp/deploy/glibc/images/ $ cp modules-2.6.24-r1-gumstix-custom-verdex.tgz /media/disk/ Then disconnect USB flash memory and connect it to gumstix and extract modules into gumstix. root@gumstix-custom-verdex:~$ tar -C / -zxvf /media/hdd/modules-2.6.24-r1-gumstix-custom-verdex.tgz Some modules are already configured to be loaded at boot.~ However pxafb module is not configured, so we need to set up additional module loading as follows: root@gumstix-custom-verdex:~$ vi /etc/modutils/pxafb Just write pxafb in /etc/modutils/pxafb and save. root@gumstix-custom-verdex:~$ vi /etc/modutils/fbcon Just write fbcon in /etc/modutils/fbcon and save and: root@gumstix-custom-verdex:~$ update-modules **Confirming kernel's Android-compliant [#y58af703] Confirm initialization of Android unique drivers, such as ashmem and logger, which is not included in default kernel.~ Following messages should be included in bootup messages: ashmem: initialized logger: created 64K log 'log_main' logger: created 256K log 'log_events' logger: created 64K log 'log_radio' **Confirming framebuffer drawing [#jfd9ac6f] Confirm that modified pxafb driver is functioning normally.~ First confirm that login prompt is shown in LCD screen.~ After boot, login gumstix and confirm that pxafb and fbcon are loaded by lsmod.~ 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 If they are properly loaded, start df_dok command and confirm that it drawing patterns on LCD screen. --------------------------------------- RIGHT:by Satoshi OTSUKA