Mar 22, 2012

Android (Gingerbread) Kernel for Dell Venue

Finally after long search and learn, I got compiled android kernel booting into Dell Venue (Thunder). The biggest obstacle to build android rom is availability of kernel. But In fact kernel is only 60% of boot image (an Image file bootable into a device). This very small pieace of image play very important role. It was only about 3.5 MB up to 5 MB. Comparing to plain android rom size about 80 MB, the kernel is NOTHING !!!

How I do ? ... I use default Kernerl Source Tree downloaded from Dell Sites Here It Is, save somewhere in your home folder > extracted and start configuration. The configuration is obvious, but Dell Provide a clue ... read venue-HOW-TO-BUILD.txt file. There are many options (at least I knew two options) to build android kernel for dell venue. First build entirely by using android source tree. This will make you download large of file android source tree. Well I need to test just only kernel, thus No need to download android source tree.
This Post, This Post and, This Post is NOOBPROOF guide to build android kernel for dell venue, sure you can build for other device.!

I used prebuilt available configurations in the source > Just check in terminal within your folder of android kernel source tree you downloaded >
$ls arch/arm/configs/
among many configurations available, I toke > qsd8650-perf_defconfig
Note : By Default for Dell Venue the config is toucan-perf_defconfig

Execute >
$ armmake qsd8650-perf_defconfig
after configuration output execute
$ armmake -j5

AND WAIT ... on my Intel core two dua T750 chipset with 4GB physical ram toke about 14 minutes. From This Post, you know how to split a boot.img into ramdisk and kernel. We are going to "borrow" the ramdisk file and repack with our build kernel. Splitted ramdisk file (it is a folder) named mtd0-ramdisk ... you can rename to whatever name of folder you like :D
Presumed we are in folder with a zImage file from our build and a ramdisk folder named mtd0-ramdisk >
$ gedit mtd0-ramdisk/default.prop
AN TEXT EDITOR WINDOW WILL COME UP and edit the text ro.secure=1 to ro.secure=0
This will make your flashed device have writable system, save and closed
$ mkbootfs mtd0-ramdisk | gzip > venue-ramdisk
[Enter] a file named venue-ramdisk will be created, this is gzipped ramdisk file
$ mkbootimg --kernel zImage (YourNameOfKernel) --ramdisk venue-ramdisk --pagesize 2048 --board venue --cmdline "androidboot.hardware=venue" --base 0x20000000 -o venueboot.img [ENTER]

Your flashable boot image is venueboot.img, flashable via fastboot. Boot your venue to fastboot >
$ sudo fastboot erase boot [ENTER]
$ sudo fastboot flash boot venueboot.img [ENTER]
$ sudo fastboot reboot [ENTER]

BINGO !!!

Dell Venue booting customs kernel ... Normally wifi will not properly function due to wifi module will work by using the compiled one with the kernel. Connect your android booting device to PC with adb live. Search file wifi module in kernel source tree folder. >
$ ls drivers/net/wireless/bcm4329/dhd.ko <--THIS IS WIFI MODULE
$ sudo adb start-server [if not already started]
$ adb remount
if you dont see word > remount:success ... its something wrong there
$ sudo adb push drivers/net/wireless/bcm4329/dhd.ko /system/lib/modules/
$ adb reboot
WIFI MUST WORK ....Happy Flashing !!

Real Multilib Userland on Linux

Read multilib requirement on Android rom building and other stuff. About two years absent from getting rid with android rom. I have time to...