Closed Bug 998431 Opened 11 years ago Closed 9 years ago

Android 2.3 test image has a really old kernel

Categories

(Firefox for Android Graveyard :: Testing, defect)

ARM
Android
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: jchen, Assigned: gbrown)

References

Details

I just realized that the Android 2.3 test image has a really old kernel: > Linux 2.6.29-ge3d684d #1 Mon Dec 16 22:26:51 UTC 2013 armv7l This was the version that shipped with Donut and is older than the Tegra's Froyo kernel: > Linux 2.6.32.9-00002-gd8084dc-dirty #1 SMP PREEMPT Wed Feb 2 11:32:06 PST 2011 armv7l This may or may not be related to test instabilities on 2.3, but we should definitely fix it.
:graydon -- What's the history here? Would you anticipate problems with a newer kernel?
Flags: needinfo?(graydon)
The history is that the goldfish kernel is built from a fork of the mainline linux kernel maintained at AOSP: https://android.googlesource.com/kernel/goldfish Google hasn't ported their goldfish target support to a whole lot of different revs of the kernel. Just a few. From what I could tell when I was working on it, the 2.6.29 variant was the recommended one for older userspaces like gingerbread. I think I built one of the 3.x ones at some point but my memory is hazy; most of the "trying different kernels" stuff I did was near the beginning when I was trying to get the ABIs right / experimenting with armv6. I also know that in the meantime some level of goldfish support landed in the mainline kernel, I think only x86 goldfish in kernel 3.9, but maybe some arm goldfish stuff landed later; it might not be necessary to use the AOSP fork anymore. I stopped playing with kernel variants as soon as I found one which worked, and that was 2.6.29 configured (as shown in the script. Others may well also work. The checkout happens here: https://hg.mozilla.org/build/mozharness/file/74a27ec8b633/scripts/android_emulator_build.py#l377 I did not parametrize it in the script, but it'd be pretty easy to adjust. It might require some parallel adjustment to the build_kernel step, I'm not sure. Depends how much the kernel build system has drifted: https://hg.mozilla.org/build/mozharness/file/74a27ec8b633/scripts/android_emulator_build.py#l483
Flags: needinfo?(graydon)
I should say, as a clarification: the kernel you're running on the tegras is a tegra kernel. ARM kernels are very device specific, due to the extensive variation in system configuration, memory map, device drivers, etc. "Goldfish" is a virtual device provided by virtual drivers that exist only in the AOSP qemu tree; in other words, only a goldfish kernel will run on the emulator, and the emulator is the only "device" that a goldfish kernel will run on.
In bug 989343, I tried building some goldfish kernel variations and running them in the 2.3 emulator. Building was trouble-free in all cases. I could not boot 2.3 with android-goldfish-3.4 or android-goldfish-3.10, but had no trouble dropping in the latest revision of 2.6.29.
Android 2.3 emulator tests are now using a slightly newer 2.6.29 kernel -- bug 989343.
We made a slight improvement in bug 989343, but we still run a really old kernel on 2.3. I don't know why later kernels don't work. I don't think it is worth investigating further (since 2.3 is getting pretty old/irrelevant now).
Assignee: nobody → gbrown
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → WONTFIX
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.