Can't run Android on Pandaboard

Zachary czzcz at ...302...
Thu Mar 12 09:59:43 CET 2015


Hi all,
I want to run Android using Genode foc on Pandaboard referencing to
"http://sourceforge.net/p/genode/mailman/message/30642833/"

Now, I compile and get a image. When I run the image, I only get a black
window with a penguin on it.

This my operation:
  1) Format my SD card to 3 partitions.
  2) Copy the system-ginger.img via "dd" to the second partition:
          sudo dd if=system-ginger of=/dev/sdb2 bs=1M
  3) Build the image using the run script blew
  4) Copy the image to the first partition of the SD card

This is my run script:

#
# Build
#

if {[have_spec foc] == 0} {
   puts "Runs on Fiasco.OC only"
   exit 0
}

# generic components
set build_components {
	core
	init
	drivers/timer
	drivers/framebuffer
	drivers/sd_card
	drivers/usb
	drivers/gpio
	server/nitpicker
	server/nit_fb
	server/nic_bridge
	server/part_blk
	server/terminal
	server/terminal_log
	l4android
}


build $build_components
create_boot_directory

#
# Config
#

set config  {
<config prio_levels="2">
	<parent-provides>
		<service name="ROM"/>
		<service name="RAM"/>
		<service name="IRQ"/>
		<service name="IO_MEM"/>
		<service name="IO_PORT"/>
		<service name="CAP"/>
		<service name="PD"/>
		<service name="RM"/>
		<service name="CPU"/>
		<service name="LOG"/>
		<service name="SIGNAL"/>
	</parent-provides>
	<default-route>
		<any-service> <parent/> <any-child/> </any-service>
	</default-route>
	<start name="timer">
		<resource name="RAM" quantum="1M"/>
		<provides><service name="Timer"/></provides>
	</start>
	
	<start name="fb_drv">
		<binary name="fb_drv"/>
		<resource name="RAM" quantum="4M"/>
		<provides><service name="Framebuffer"/></provides>
	</start>
	<start name="sd_card_drv">
		<resource name="RAM" quantum="4M"/>
		<provides><service name="Block"/></provides>
	</start>
	<start name="gpio_drv">
		<resource name="RAM" quantum="4M"/>
		<provides><service name="Gpio"/></provides>
		<config/>
	</start>
	<start name="usb_drv">
		<resource name="RAM" quantum="12M"/>
		<provides>
			<service name="Input"/>
			<service name="Nic"/>
		</provides>
		<config ehci="yes">
			<hid/>
			<nic mac="2e:60:90:0c:4e:01" />
		</config>
	</start>
	<start name="part_blk">
		<resource name="RAM" quantum="2M"/>
		<provides><service name="Block"/></provides>
		<config>
			<policy label="l4android -> sda" partition="3" />
		</config>
		<route>
			<service name="Block">
                           <child name="sd_card_drv"/>
                        </service>
			<any-service> <parent/> <any-child/> </any-service>
		</route>
	</start>
	<start name="nic_bridge" priority="-1">
		<resource name="RAM" quantum="2M"/>
		<provides><service name="Nic"/></provides>
		<route>
			<service name="Nic">
                           <child name="usb_drv"/> </service>
			<any-service> <parent/> <any-child/> </any-service>
		</route>
	</start>
	<start name="nitpicker">
		<resource name="RAM" quantum="2M"/>
		<provides><service name="Nitpicker"/></provides>
		<route>
		        <service name="Input">
                           <child name="usb_drv"/>
                        </service>
			<service name="Framebuffer">
                           <child name="fb_drv"/>
                        </service>
			<any-service> <parent/> <any-child/> </any-service>
		</route>
	</start>
	<start name="android_fb">
		<binary name="nit_fb"/>
		<resource name="RAM" quantum="4M"/>
		<provides>
			<service name="Framebuffer"/>
			<service name="Input"/>
		</provides>
		<config xpos="0" ypos="0" width="640" height="480"/>
	</start>
	<start name="l4android">
		<resource name="RAM" quantum="512M"/>
		<config args="mem=128M console=ttyS0 l4x_rd=root-ginger.gz">
			<block label="sda"/>
		</config>
		<route>
			<service name="Input">
                          <child name="android_fb"/>
                        </service>
			<service name="Framebuffer">
                          <child name="android_fb"/>
                        </service>
			<service name="Block">
                          <child name="part_blk"/>
                        </service>
			<service name="Nic">
                          <child name="nic_bridge"/>
                        </service>
			<any-service> <parent/> <any-child/> </any-service>
		</route>
	</start>
</config>}



install_config $config


#
# Boot modules
#

set boot_modules {
	core
	init
	timer
	nitpicker
	nit_fb
	nic_bridge
	terminal
	terminal_log
	fb_drv
	part_blk
	sd_card_drv
	gpio_drv
	usb_drv
	l4android
	root-ginger.gz
	ld.lib.so
}

lappend_if [have_spec x86]     boot_modules nic_drv
lappend_if [have_spec x86]     boot_modules atapi_drv
lappend_if [have_spec pci]     boot_modules pci_drv
lappend_if [have_spec ps2]     boot_modules ps2_drv
lappend_if [have_spec pl11x]   boot_modules pl11x_drv
lappend_if [have_spec lan9118] boot_modules nic_drv
lappend_if [have_spec pl180]   boot_modules sd_card_drv
lappend_if [have_spec vesa]    boot_modules vesa_drv

if {[have_spec x86]} {
	set initrd_uri 
"http://genode.org/files/release-11.11/l4lx/root-ia32-ginger.gz"
	set system_uri
"http://genode.org/files/release-11.11/l4lx/system-ia32-ginger.img"
} elseif {[have_spec arm]} {
	set initrd_uri 
"http://genode.org/files/release-11.11/l4lx/root-arm-ginger.gz"
	set system_uri
"http://genode.org/files/release-11.11/l4lx/system-arm-ginger.img"
}
if {![file exists bin/root-ginger.gz]} {
	puts "Download initramfs ..."
	exec curl $initrd_uri > bin/root-ginger.gz 2> /dev/null
}
if {![file exists bin/system-ginger.img]} {
	puts "Download system image ..."
	exec curl $system_uri > bin/system-ginger.img 2> /dev/null
}

build_boot_image  [join $boot_modules " "]

append qemu_args " -m 512 "
append qemu_args " -serial mon:stdio "
append_if [have_spec     x86] qemu_args " -hda bin/system-ginger.img "
append_if [have_spec     x86] qemu_args " -net nic,model=e1000 "
append_if [have_spec   pl180] qemu_args " -drive
file=bin/system-ginger.img,if=sd,cache=writeback "
append_if [have_spec lan9118] qemu_args " -net nic,model=lan9118 "
append qemu_args " -net user -redir tcp:5555::5555 "
run_genode_until forever
---------------------------------------------------------------------

This is the log:
...
Genode 14.11
int main(): --- create local services ---
int main(): --- start init ---
int main(): transferred 997 MB to init
int main(): --- init created, waiting for exit condition ---
Quota exceeded! amount=28672, size=4096, consumed=28672
[init] upgrading quota donation for Env::CPU (8192 bytes)
[init -> gpio_drv] --- omap4 gpio driver ---
Insufficient quota for transfer: init -> part_blk
  have 1564672, need 4206592
[init] not enough quota for a donation of 4206592 bytes
[init -> part_blk] resource_request: ram_quota=4206592
[init -> part_blk] virtual void Genode::Platform_env::release(): used before
freeing emergency=290816
[init -> part_blk] virtual void Genode::Platform_env::release(): used after
freeing emergency=286720
[init] child "part_blk" requests resources: ram_quota=4206592
[init -> fb_drv] Could not open file "config"
[init -> fb_drv] Could not obtain config file
[init -> sd_card_drv] --- OMAP4 SD card driver ---
[init -> fb_drv] int main(int, char**): using default configuration:
HDMI at ...311...
[init -> gpio_drv] No GPIO config
[init -> l4android] Booting L4Linux ...
[init -> usb_drv] Services::Services(): Could not read screen resolution in
config node
[init -> usb_drv] Services::Services(): No <storage> config node found -
not starting the USB Storage (Block) service
[init -> usb_drv] Services::Services(): No <raw> config node found - not
starting external USB service
[init -> usb_drv] Enabled EHCI (USB 2.0) support
[init -> l4android] ======> L4Linux starting... <========
[init -> l4android] Linux version 3.5.0-l4-gcea6e7a (czzcz at ...306...)
(gcc version 4.7.4 (GCC) ) #18 SMP Thu Mar 12 10:52:16 CST 2015
[init -> l4android] Binary name: vmlinux
[init -> l4android]    This is an AEABI build.
[init -> l4android] Linux kernel command line (3 args):
mem=128M console=ttyS0 l4x_rd=root-ginger.gz
[init -> l4android] CPU mapping (l:p)[0]: Image: 01000000 - 01400000 [4096 KiB]
[init -> l4android] Areas: Text:     01000000 - 0135e000 [3448kB] 
[init -> l4android]        Data:     0135e000 - 0138b1b8 [180kB]
[init -> l4android]        Initdata: 01337000 - 0135c4c0 [149kB]
[init -> l4android]        BSS:      0138c000 - 013c96e8 [245kB]
[init -> usb_drv] Using configured mac: 2e:60:90:0c:4e:01
[init -> l4android] l4io_get_root_device: Not implemented yet!
[init -> l4android] Device scan:
[init -> sd_card_drv] CID: 0x97009861 0x38caa862 0x44303847 0x02544d53
[init -> l4android] l4io_iterate_devices: Not implemented yet!
[init -> sd_card_drv] RCA: 0x895a
[init -> l4android] Device scan done.
[init -> usb_drv] void platform_hcd_init(Services*): register platform device
[init -> sd_card_drv] SD card detected
[init -> sd_card_drv] capacity: 7600 MiB
[init -> usb_drv] dev_info: EHCI Host Controller
[init -> usb_drv] dev_info: new USB bus registered, assigned bus number 1
[init -> part_blk] Partition 1: LBA 63 (144522 blocks) type: c
[init -> part_blk] Partition 2: LBA 144585 (15149295 blocks) type: c
[init -> part_blk] Partition 3: LBA 15293880 (257040 blocks) type: c
[init -> usb_drv] dev_info: irq 109, io mem 0x4a064c00
[init -> l4android] main thread will be c
[init -> l4android] l4x_register_pointer_section: addr = 01000000 size
= 4194304
[init -> l4android] section-with-init: virt: 1000000 to 13fffff [4096 KiB]
[init -> l4android] Cannot determine physical address for dataspace Binary!
[init -> l4android] error: failed to get physical address for 1000000.
[init -> l4android] Main thread running, waiting...
[init -> l4android] thread=c000 cpu=0
[init -> l4android] l4x_setup_memory: Forcing superpages for main memory
[init -> l4android] l4re_global_env: 0
[init -> l4android] Main memory size: 128MB
unmapping of managed dataspaces not yet supported
[init -> l4android] Main memory: virt: 8000000 to fffffff [131072 KiB]
[init -> l4android] Main memory: Phys: 0x00000000 to 0x08000000, Size:
134217728
[init -> l4android] Filling lower ptabs...
[init -> l4android] Done (0 entries).
[init -> l4android] l4x_register_pointer_section: addr = 01000000 size =
4194304
[init -> l4android] text: virt: 1000000 to 13fffff [4096 KiB]
[init -> l4android] Cannot determine physical address for dataspace Binary!
[init -> l4android] error: failed to get physical address for 1000000.
[init -> usb_drv] dev_info: USB 2.0 started, EHCI 1.00
[init -> l4android] l4x_virt_to_phys: Could not translate virt. address 1000000
[init -> l4android] l4x_virt_to_phys: Could not translate virt. address 1336fcb
[init -> l4android] l4x_virt_to_phys: Could not translate virt. address 135e000
[init -> l4android] l4x_virt_to_phys: Could not translate virt. address 13c96e7
[init -> usb_drv] dev_info: USB hub found
[init -> l4android] l4x_virt_to_phys: Could not translate virt. address 1000000
[init -> l4android] l4x_virt_to_phys: Could not translate virt. address 13fffff
[init -> l4android] l4x_rd_path: root-ginger.gz
[init -> usb_drv] dev_info: 3 ports detected
[init -> l4android] Loading: root-ginger.gz
[init -> l4android] INITRD: Size of RAMdisk is 224KiB
[init -> l4android] RAMdisk from 00005000 to 0003d000 [224KiB]
[init -> l4android] l4timer: Using IRQ210
[init -> nitpicker] Could not open file "config"
[init -> nitpicker] Could not obtain config file
[init] l4android: no route to service "Terminal"
[init -> nitpicker] create session with args: label="android_fb",
ram_quota=28672
[init -> l4android] l4x_virt_to_phys: Could not translate virt. address 12359a0
[init -> l4android] l4x_virt_to_phys: Could not translate virt. address 12359a0
[init -> l4android] l4io_get_root_device: Not implemented yet!
[init -> l4android] l4io_iterate_devices: Not implemented yet!
[init -> usb_drv] dev_info: new high-speed USB device number 2 using ehci-omap
[init -> android_fb] using xywh=(0,0,640,480)
[init -> nic_bridge] Could not open file "config"
[init -> nic_bridge] Could not obtain config file
Insufficient quota for transfer: init -> nic_bridge
  have 1564672, need 3301376
[init] not enough quota for a donation of 3301376 bytes
[init -> nic_bridge] resource_request: ram_quota=3301376
[init -> nic_bridge] virtual void Genode::Platform_env::release(): used
before freeing emergency=278528
[init -> nic_bridge] virtual void Genode::Platform_env::release(): used
after freeing emergency=274432
[init] child "nic_bridge" requests resources: ram_quota=3301376
[init -> usb_drv] dev_info: USB hub found
[init -> usb_drv] dev_info: 5 ports detected
[init -> nic_bridge] Invalid session request, no matching policy
[init -> usb_drv] dev_info: new high-speed USB device number 3 using ehci-omap
[init -> usb_drv] Using configured mac: 2e:60:90:0c:4e:01
[init -> usb_drv] netif_info: open: enable queueing (rx 4, tx 60) mtu 1500
simple framing
[init -> usb_drv] nedev_info: hardware isn't capable of remote wakeup
[init -> usb_drv] netif_info: register 'smsc95xx' at usb-ehci-omap-1.1,
smsc95xx USB 2.0 Ethernet, 10c4e04M
------------------------------------------------------------------
so,
  1)Is there anything wrong with my run script? What should I do to make
Android run perfectly on pandaboard? 
  2)Is "ld.lib.so" necessary? The run script of longjks include the
component, 
but I can't compile it successfully using this script.

Best,
Zachary





More information about the users mailing list