GTA04 Kernel

This page documents the various tried to get a working kernel for the GTA04 with ICS userspace.

  • The GTA04 is an AM37x OMAP board like the BeagleBoard XM. The other BeagleBoard models use another OMAP3 SoC.
  • AM37x category on TI wiki

Rowboat kernel

The TI porting guide for AM37x devices advices to use the rowboat tree with the rowboat-ics.xml manifest.
The kernel in that tree is branch rowboat-ics-kernel-2.6.37 from the rowboat kernel.

Porting the GTA04 board and drivers to this kernel seems possible, however this is a very old kernel revision.
The gta04 kernel based on rowboat kernel is at:;a=shortlog;h=refs/heads/rowboat-gta04

Status matrix:

Component Status
Board file OK (boots normally)
RS232 OK
Modem Missing
Power off/reboot Reboot works, poweroff leaves led on, power button won't start it after poweroff
GPS Missing
WiFi/Bluetooth Missing
Graphics (fb) OK, fast
Touch screen OK
Backlight Missing
Sensors Missing
Audio Missing
Headset Missing
USB OK, automatic OTG host/device, issue at suspend
microSD OK
Buttons Missing
LEDs Missing
Battery Missing

Omapzoom kernel

Omapzoom (where TI pushes code for Android) has an omap3 kernel that should match ICS userspace.
However, when running on the GTA04, serious power management issues caused characters to be dropped on serial after not touching the phone for a couple of seconds as well as IRQ interrupts being dropped, which caused the touchscreen to not work properly. Suspend/resume and earlysuspend works perfectly though. Maybe this kernel wasn't designed for AM37x OMAP3 devices but another kind of OMAP3 SoCs: there is no support for Android Beagleboard.

AOSP's 3.4 common kernel merged with Neil Brown's 3.4 gta04 kernel

Merging AOSP's 3.4 common kernel on top of Neil Brown's 3.4 gta04 kernel and adding the Android options to the defconfig resulted in a non-working kernel where input events didn't seem to be reported correctly to userspace (even with an USB mouse, click events seemed dropped).

Kernels on Gitorious/Replicant:

The repository is here,
  • the replicant-4.0+3.7+WIP branch contains the kernel 3.7 for the gta04(which comes from neil brown's git (git:// probably at the 3.7-gta04 branch with adb forward-ported to it on top. The others android features comes from the mainline 3.7 kernel.
  • the replicant-4.0+3.8+WIP branch contains the experimental/android-3.8 branch of the AOSP common kernel with on top, the result of the rebase of the mainline branch of neil brown's git on top of 3.7 (which was also pushed in neil-rebase-3.7 branch for historic purposes), which is forward ported to 3.8

Status matrix:

Component Status
Board file OK (boots normally)
RS232 OK
Modem Untested, should work
Power off/reboot Reboot works, poweroff crashes with adb
GPS Untested, should work
WiFi/Bluetooth Untested, should work
LCD OK, looks strange after suspend
Graphics (fb) OK, fast
Touch screen OK
Backlight Working
Sensors Untested, should work
Audio Untested, should work
Headset Untested, probably needs to be adapted to android
USB OK, adb works but doesn't shut down properly
microSD OK
Buttons works
LEDs Untested, should work
Battery Untested, should work
frequency scaling not working in neil's kernel, waiting for a fix

h3. Issues

Both branches seem to make trebuchet freeze, on the system log there is:
I/WindowManager( 191): Input event dispatching timed out sending to Keyguard