Hi guys,
I am porting Android to AT91sam9261,however, I failed.
I share my porting process in here, and eager to obtain your
suggestions.
-------------------------------
My development environment:
* Fedora-9 full install
* arm-none-linux-gnueabi-gcc (arm-2008q1)
* u-boot-1.3.4, and official bootstrap file (from www.linux4sam.org)
--------------------------------
My porting steps:
1. download android source codes linux-2.6.25-android-1.0_r1.tar.gz
from http://code.google.com/p/android/downloads/list
2. download linux-2.6.25-at91 patch file from (
http://www.linux4sam.org/twiki/bin/view/Linux4SAM/LinuxKernel )
3. Compile the Android Kernel,
This step is successful and working on my at91sam9261ek.
4. Prepare Android file system, I got these information from Google.
Download the Android 1.0 SDK ( from
http://developer.android.com/sdk/1.0_r2/index.html
)
and execute this emulator.
#./emulator&
set the [Menu] -> [Dev. Tools] -> [Develop Settings] ->
apply these functions : [Wait for debugger], [Show running process],
[Show screen updates]
Then, following the Benno's Blog - Busybox for android (
http://benno.id.au/blog/2007/11/14/android-busybox )
Operating on Fedora terminal, I successfully generated the android
file system based on Benno's blog.
5. Boot my at91sam9261ek with NFS after setting the u-boot env. and
downloading the kernel,
However, it's not working.
When I set the u-boot env. parameter "init=/init", the boot message
was shown that
========
Starting kernel ...
Uncompressing
Linux...............................................................................................
done, booting the kernel.
Linux version 2.6.25-at91sam9261ek-android-20090624
(r...@localhost.localdomain)
(gcc version 4.2.3 (Sourcery G++ Lite 2008q1-126)) #6 Wed Jun 24
16:04:34 CST 2
009
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
Machine: Atmel AT91SAM9261-EK
Ignoring unrecognised tag 0x54410008
Memory policy: ECC disabled, Data cache writeback
Clocks: CPU 198 MHz, master 99 MHz, main 18.432 MHz
CPU0: D VIVT write-back cache
CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
CPU0: D cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
Built 1 zonelists in Zone order, mobility grouping on. Total pages:
16256
Kernel command line: root=/dev/mtdblock3 mem=64M console=ttyS0,115200
init=/syst
em/bin/sh
AT91: 96 gpio irqs in 3 banks
PID hash table entries: 256 (order: 8, 1024 bytes)
Console: colour dummy device 80x30
console [ttyS0] enabled
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 64MB = 64MB total
Memory: 61628KB available (2668K code, 423K data, 140K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
net_namespace: 152 bytes
android_power_init
android_power_init done
NET: Registered protocol family 16
AT91: Power Management
AT91: Starting after user reset
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
NetWinder Floating Point Emulator V0.97 (double precision)
JFFS2 version 2.2. (NAND) (SUMMARY) 穢 2001-2006 Red Hat, Inc.
yaffs Jun 24 2009 15:35:49 Installing.
io scheduler noop registered
io scheduler anticipatory registered (default)
atmel_lcdfb atmel_lcdfb.0: 160KiB frame buffer at 00300000 (mapped at
c4880000)
Console: switching to colour frame buffer device 30x40
atmel_lcdfb atmel_lcdfb.0: fb0: Atmel LCDC at 0x00600000 (mapped at
c485c000), i
rq 21
atmel_usart.0: ttyS0 at MMIO 0xfefff200 (irq = 1) is a ATMEL_SERIAL
brd: module loaded
loop: module loaded
ssc ssc.1: Atmel SSC device at 0xc4860000 (irq 15)
dm9000 Ethernet Driver, V1.30
eth0: dm9000 at c485e000,c4866044 IRQ 107 MAC: 00:1f:3a:22:c2:30
(chip)
Driver 'sd' needs updating - please use bus_type methods
NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB
3,3V 8-bi
t)
AT91 NAND: 8-bit, Software ECC
Scanning device for bad blocks
Bad eraseblock 256 at 0x02000000
Creating 4 MTD partitions on "at91_nand":
0x00020000-0x00060000 : "Bootstrap"
0x00060000-0x00200000 : "Parameters"
0x00200000-0x00400000 : "Kernel"
0x00400000-0x08000000 : "rootfs-1"
atmel_spi atmel_spi.0: Atmel SPI Controller at 0xfffc8000 (irq 12)
mtd_dataflash spi0.0: AT45DB321x (4224 KBytes)
usbmon: debugfs is not available
at91_ohci at91_ohci: AT91 OHCI
at91_ohci at91_ohci: new USB bus registered, assigned bus number 1
at91_ohci at91_ohci: irq 20, io mem 0x00500000
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
udc: at91_udc version 3 May 2006
mice: PS/2 mouse device common for all mice
input: gpio-keys as /class/input/input0
ads7846 spi0.2: touchscreen, irq 29
input: ADS784x Touchscreen as /class/input/input1
rtc-at91sam9 at91_rtt.0: rtc core: registered at91_rtt as rtc0
rtc-at91sam9 at91_rtt.0: rtc0: SET TIME!
Registered led device: ds7
Registered led device: ds8
Registered led device: ds1
usbcore: registered new interface driver usbhid
drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver
logger: created 64K log 'log_main'
logger: created 64K log 'log_events'
logger: created 64K log 'log_radio'
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
rtc-at91sam9 at91_rtt.0: hctosys: unable to read the hardware clock
yaffs: dev is 32505859 name is "mtdblock3"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.3, "mtdblock3"
yaffs: auto selecting yaffs2
block 225 is bad
VFS: Mounted root (yaffs filesystem).
Freeing init memory: 140K
init: cannot open '/initlogo.rle'
(Stop and die here)
====================
When I set the u-boot env. parameter "init=/system/bin/sh", the boot
message was shown that:
....... (the same boot message, ignored) .......
VFS: Mounted root (yaffs filesystem).
Freeing init memory: 140K
sh: can't access tty; job control turned off
#
#
The shell is working. But I still don't know how to run the Android.
Has anybody got ideas for this porting tasks?
Please share your experience if you succeed in porting to
at91sam9261ek?
Many thanks.