Android on Beagleboard-XM REV-B is deadly slow

Hi,

I am trying to run Android froyo on beagleboard-xm revB. I am unable
to find out detailed datasheet and specifications of this revision.
Also I am confused that which processor has been used in this revision
board. If anybody has datasheet please share with me.

I have tried android prebuilt image given in following link and
followed steps mentioned in README file included in same package.
http://software-dl.ti.com/dsps/dsps_public_sw/sdo_tii/TI_Android_DevKit/02_00_00/exports/AM37X.tar.gz

Finally android2.2 is running on this board but it has taken around 10
minutes to get Android main screen and all the applications running
extremely slow. Linux default command(e.g. ls and top) also running
very slow.

I have checked logcat and linux console but not able to figure out any
issue. I have also tried top command to make sure about cpu usage and
memory usage but it is also not much(CPU usage was 4% to 14% and
memory was 50MB free)

I don't know why it is very slow?

I hope somebody could help me to figure out this issue.

Thanks.

Regards,
Brijesh

Hi All,

Sorry for inconvenience. Please ignore link mentioned in previous mail. Actual link I have tried is: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_tii/TI_Android_DevKit/02_00_00/exports/beagleboard-xm.tar.gz

HI,

Usually if something is running slow and it is not cpu or memory then it must be the storage device.

Cheers

Andy

Usually if something is running slow and it is not cpu
or memory then it must be the storage device.

my thought as well. does df show the root filesystem
on the sd card or a ramfs? the sd card is pretty slow.
a flash stick on the usb 2.0 otg port is the best bet
for a non-ram filesystem. or nfs, i haven't benched that yet.

caveat: i'm a noob so i could be wrong.

Hi,
I'm a newbie but I managed to port Andrid Froyo on BB-xM RevB
following
the indications on this link:

http://coredruids.org/?page_id=77

but ... I follow all step except about u-boot build, I used the u-boot
(and MLO)
download from this link:

http://www.angstrom-distribution.org/demo/beagleboard/

The result is quite good, and Froyo run not so slowly ... for me.

Regards,
Damiano

Brijesh,

if you use the SD card supplied with the board then throw it away and buy SDHC class 6 card in a nearest store for $15. Then you will see the speed! Believe me, I already bought one :slight_smile:

A card supplied with a board is deathly slow and therefore useless.

2010/11/29 marius231 <marius231@gmail.com>

Hi Damiano,

Thanks for reply.

I have not tried to build Android manually but I have tried to use
Android prebuilt images given in mentioned link. I dont think so it
may create problem.

Maxim Podbereznyy has given me reply on the same and he suggested me
to use SDHC class 6 card as I have SDHC class 4 card.
May I know which sd card are you using? Is it SDHC class6 card?

Regards,
- Brijesh

Hi Maxim,

Thank you for your reply.

I will try to use SDHC class 6 card and let see the result.

Regards,
Brijesh

i though i read in the manual that that sd port was slow on the xM.
i would be happy if a fast card fixes it

i was wrong. the 4gb card that came with my bb can
sequential read at 14MB/sec. not too shabby. i took the
label off, its a kingston but i can't see any class rating.
class ratings are supposed to be the minimum speed in MB/sec
according to wikipedia.

you might test your existing one.

it matters how fast your card write, not read

2010/11/30 Andrew Burgess <aab@cichlid.com>

sure enough, my card writes at about 2MB/sec.
but for a root filesystem wouldn't read speed be more important?

2 MB/sec?? It is ridiculous. OS also writes a lot even if you do not touch anything

2010/11/30 Andrew Burgess <aab@cichlid.com>

Andrew, can you just buy another card and try? You maintain the discussion a second while you could buy a card and try it.

2010/11/30 Maxim Podbereznyy <lisarden@gmail.com>

Actually the files system cache is very effective so almost all *nix systems tend to do more writes than reads, unlike Windows like oses that do not yet have intelligent caching algorithms. At a driver level it means the ratio of reads to writes is 1 to 3 on most typical system configs. I did some large scale logging in the drivers years ago and the situation has not improved.

Rich

Hi Brijesh,
reading on the top of the SDHC it seems to be class 2.
But I'm not sure, I don't find a mode to recognize certainty it.

With android on BB you able to use mouse and keyboard?

Reaguard
Damiano

Richard Hyde wrote:

Actually the files system cache is very effective so almost all *nix systems tend to do more writes than reads, unlike
Windows like oses that do not yet have intelligent caching algorithms. At a driver level it means the ratio of reads to
writes is 1 to 3 on most typical system configs. I did some large scale logging in the drivers years ago and the
situation has not improved.

and what is it that they are writing all the time?

i don't know but i just checked my fedora desktop with iostat
and its done 40% writes 60% reads in the last 24 hours.
just a data point.

i tried to look at this on my bb but i don't see ramdisk stats
in /sys/block/*/stat, just the sd card.

anyone know where the ramdisk stats are kept?

so Maxim is correct, write speed will be a huge factor especially
if its 7x slower than reads.

two days of discussions and investigations :slight_smile:
may be you try another card? :slight_smile:

2010/11/30 Andrew Burgess <aab@cichlid.com>

I use BB XM rev B. I use filesystem from

Actual link I have tried is:http://software-dl.ti.com/dsps/dsps_public_sw/sdo_tii/TI_Android_DevK

This is my boot log:

Texas Instruments X-Loader 1.47 (Oct 23 2010 - 17:44:36)
Unsupported Chip!
Beagle xM Rev A
Starting X-loader on MMC
Reading boot sector

208756 Bytes Read from MMC
Starting OS Bootloader from MMC...
Starting OS Bootloader...

U-Boot 2010.06-rc1-00049-ga306f53 (Oct 23 2010 - 17:43:17)

OMAP34xx/35xx-GP ES2.0, CPU-OPP2 L3-165MHz
OMAP3 Beagle board + LPDDR/NAND
I2C: ready
DRAM: 256 MiB
NAND: 256 MiB
In: serial
Out: serial
Err: serial
Beagle xM Rev A
Die ID #267e00011ff00000015739eb0c037018
Hit any key to stop autoboot: 0
mmc1 is available
reading boot.scr

414 bytes read
Running bootscript from mmc ...
## Executing script at 82000000
reading uImage

2452580 bytes read
***** Kernel: /dev/mmcblk0p1/uImage *****
***** RootFS: /dev/mmcblk0p2 *****
## Booting kernel from Legacy Image at 80200000 ...
   Image Name: Linux-2.6.32
   Image Type: ARM Linux Kernel Image (uncompressed)
   Data Size: 2452516 Bytes = 2.3 MiB
   Load Address: 80008000
   Entry Point: 80008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing
Linux...............................................................................................
Linux version 2.6.32 (a0393957@swubn01) (gcc version 4.4.0 (GCC) ) #1
Sat Oct 23 16:56:25 IST 2010
CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: OMAP3 Beagle Board
Memory policy: ECC disabled, Data cache writeback
OMAP3630/DM3730 ES1.0 (l2cache iva sgx neon isp 192mhz_clk )
SRAM: Mapped pa 0x40200000 to va 0xfe400000 size: 0x100000
Reserving 4194304 bytes SDRAM for VRAM
Built 1 zonelists in Zone order, mobility grouping on. Total pages:
65024
Kernel command line: console=ttyS2,115200n8 androidboot.console=ttyS2
mem=256M root=/dev/mmcblk0p2 rw rootfstype=y
PID hash table entries: 1024 (order: 0, 4096 bytes)
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 256MB = 256MB total
Memory: 250240KB available (4240K code, 818K data, 172K init, 0K
highmem)
Hierarchical RCU implementation.
NR_IRQS:402
Clocking rate (Crystal/Core/MPU): 26.0/332/600 MHz
Reprogramming SDRC clock to 332000000 Hz
GPMC revision 5.0
IRQ: Found an INTC at 0xfa200000 (revision 4.0) with 96 interrupts
Total of 96 interrupts on 1 active controller
OMAP GPIO hardware version 2.5
OMAP clockevent source: GPTIMER12 at 32768 Hz
Console: colour dummy device 80x30
Calibrating delay loop... 497.82 BogoMIPS (lpj=1941504)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
regulator: core version 0.5
NET: Registered protocol family 16
Found NAND on CS0
Registering NAND on CS0
Unable to get DVI reset GPIO
Target VDD1 OPP = 4, VDD2 OPP = 2
OMAP DMA hardware revision 5.0
bio: create slab <bio-0> at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
i2c_omap i2c_omap.1: bus 1 rev4.0 at 2600 kHz
twl4030: PIH (irq 7) chaining IRQs 368..375
twl4030: power (irq 373) chaining IRQs 376..383
twl4030: gpio (irq 368) chaining IRQs 384..401
regulator: VUSB1V5: 1500 mV normal standby
regulator: VUSB1V8: 1800 mV normal standby
regulator: VUSB3V1: 3100 mV normal standby
twl4030_usb twl4030_usb: Initialized TWL4030 USB module
regulator: VMMC1: 1850 <--> 3150 mV normal standby
regulator: VDAC: 1800 mV normal standby
regulator: VPLL2: 1800 mV normal standby
regulator: VSIM: 1800 <--> 3000 mV normal standby
i2c_omap i2c_omap.2: bus 2 rev4.0 at 400 kHz
i2c_omap i2c_omap.3: bus 3 rev4.0 at 100 kHz
Switching to clocksource 32k_counter
musb_hdrc: version 6.0, musb-dma, otg (peripheral+host), debug=0
musb_hdrc: USB OTG mode controller at fa0ab000 using DMA, IRQ 92
NET: Registered protocol family 2
IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
TCP established hash table entries: 8192 (order: 4, 65536 bytes)
TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
TCP: Hash tables configured (established 8192 bind 8192)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
omap-iommu omap-iommu.0: isp registered
NetWinder Floating Point Emulator V0.97 (double precision)
ashmem: initialized
VFS: Disk quotas dquot_6.5.2
Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
JFFS2 version 2.2. (NAND) �© 2001-2006 Red Hat, Inc.
msgmni has been set to 489
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
OMAP DSS rev 2.0
OMAP DISPC rev 3.0
OMAP VENC rev 2
Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654
serial8250.1: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654
serial8250.2: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654
console [ttyS2] enabled
brd: module loaded
loop: module loaded
usbcore: registered new interface driver asix
usbcore: registered new interface driver cdc_ether
usbcore: registered new interface driver cdc_eem
usbcore: registered new interface driver dm9601
usbcore: registered new interface driver smsc95xx
usbcore: registered new interface driver gl620a
usbcore: registered new interface driver net1080
usbcore: registered new interface driver plusb
usbcore: registered new interface driver rndis_host
usbcore: registered new interface driver cdc_subset
usbcore: registered new interface driver zaurus
usbcore: registered new interface driver MOSCHIP usb-ethernet driver
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-omap ehci-omap.0: OMAP-EHCI Host Controller
ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 1
ehci-omap ehci-omap.0: irq 77, io mem 0x48064800
ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 3 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
android init
android_probe pdata: c048547c
android_bind
android_usb gadget: android_usb ready
musb_hdrc musb_hdrc: MUSB HDRC host driver
musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 2
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
f_adb init
android_register_function adb
adb_bind_config
f_mass_storage init
android_register_function usb_mass_storage
mice: PS/2 mouse device common for all mice
input: gpio-keys as /devices/platform/gpio-keys/input/input0
i2c /dev entries driver
Linux video capture interface: v2.00
omap-iommu omap-iommu.0: isp: version 1.1
OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec
mmci-omap-hs mmci-omap-hs.1: err -16 configuring card detect
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
logger: created 64K log 'log_main'
logger: created 256K log 'log_events'
logger: created 64K log 'log_radio'
logger: created 64K log 'log_system'
Advanced Linux Sound Architecture Driver Version 1.0.21.
usbcore: registered new interface driver snd-usb-audio
usb 1-2: new high speed USB device using ehci-omap and address 2
No device for DAI omap-mcbsp-dai-0
No device for DAI omap-mcbsp-dai-1
No device for DAI omap-mcbsp-dai-2
No device for DAI omap-mcbsp-dai-3
No device for DAI omap-mcbsp-dai-4
OMAP3 Beagle SoC init
asoc: twl4030 <-> omap-mcbsp-dai-0 mapping ok
ALSA device list:
  #0: omap3beagle (twl4030)
TCP cubic registered
NET: Registered protocol family 17
NET: Registered protocol family 15
Power Management for TI OMAP3.
Unable to set L3 frequency (400000000)
Switched to new clocking rate (Crystal/Core/MPU): 26.0/332/1000 MHz
IVA2 clocking rate: 800 MHz
SmartReflex driver initialized
VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev
3
omapdss DPI: Could not find exact pixel clock. Requested 23500 kHz,
got 24000 kHz
regulator_init_complete: incomplete constraints, leaving VDVI on
regulator_init_complete: incomplete constraints, leaving VDAC on
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
omapdss DPI error: display already enabled
omap_vout omap_vout: 'dvi' Display already enabled
omapdss DPI error: display already enabled
omap_vout omap_vout: 'dvi' Display already enabled
omap_vout omap_vout: Buffer Size = 3686400
omap_vout omap_vout: : registered and initialized video device 0
omap_vout omap_vout: Buffer Size = 3686400
omap_vout omap_vout: : registered and initialized video device 1
Waiting 1sec before mounting root device...
hub 1-2:1.0: USB hub found
hub 1-2:1.0: 5 ports detected
mmc0: host does not support reading read-only switch. assuming write-
enable.
mmc0: new high speed SDHC card at address 1234
mmcblk0: mmc0:1234 SA04G 3.67 GiB
mmcblk0: p1 p2 p3
usb 1-2.1: new high speed USB device using ehci-omap and address 3
smsc95xx v1.0.4
usb0: register 'smsc95xx' at usb-ehci-omap.0-2.1, smsc95xx USB 2.0
Ethernet, da:24:6c:8f:59:63
kjournald starting. Commit interval 5 seconds
EXT3-fs (mmcblk0p2): using internal journal
EXT3-fs (mmcblk0p2): 1 truncate cleaned up
EXT3-fs (mmcblk0p2): recovery complete
EXT3-fs (mmcblk0p2): mounted filesystem with writeback data mode
VFS: Mounted root (ext3 filesystem) on device 179:2.
Freeing init memory: 172K
Warning: unable to open an initial console.
init: cannot find '/system/etc/install-recovery.sh', disabling
'flash_recovery'
# enabling adb
adb_open
warning: `zygote' uses 32-bit capabilities (legacy support in use)

Switched to new clocking rate (Crystal/Core/MPU): 26.0/332/1000 MHz
its Great!

There are some question:
1. Why X-loader say Unsupported Chip!
2. U-boot say DRAM: 256 MiB (why not 516?).
3. There no image on the DVI-monitor. I know about hardware difference
in revision of BBXM. Where I can download patched kernel tree, x-
loader and u-boot for Android?