Kernel porting



Keywords: kernel porting
Description: Idolon gives a good suggestion. In theory what is written there is true. In practice, it's a little more involving. I've been porting Android Kernel for months now. My goal was to have a custom

Idolon gives a good suggestion. In theory what is written there is true. In practice, it's a little more involving. I've been porting Android Kernel for months now. My goal was to have a custom S5PV210 processor module on my custom board with my custom I/O. I have the source code for Samsung's galaxy tab and several Samsung's android smartphone as well as a few versions (Froyo, Gingerbread) for the Samsung's Evaluation board (SMDKV210 for S5PV210 CPU). FYI, S5PC110 is a close derivative. Here is what I found out. Eventhough all the device drivers are supposed to be built in a very modular way and independent from each other and you should be able to replace them with similar devices, the way Samsung did it is not exactly that. To give you one example is about power management. In many low level drivers dealing with hardware devices, it calls some specific routine for other hardware devices like power management chip. So, When you change the choice of drivers in the "make xconfig" or "make menuconfig" it will remove the source code of what you don't want and add the one you want but, there are still other modules that are calling the low level function you removed. When building, you will get tons of unresolved external because you removed a power management chip that your hardware doesn't have but is used in the source you started with. I looked through several Samsung's device source code and they have branched very early on. They have been adapted by different teams and it would be a major amount of work to go from one device to the other from one source kit.

Here is how I succeeded: I bought an S5PV210 evaluation board with an already ported Android Kernel (Gingerbread). All the power management and inter dependant issues where already cleaned-up. Then, form a working kit, I could change the device I needed (the one you can't buy without a 100K unit/yr commitment) without getting stuck with the interdependancy. Then I could even change LCD resolution (from 800x480 to 1024x768), touchscreen, Cell modem etc etc. The whole thing takes about a month worth of work with only one guy (me).

Starting with a Galaxytab or other commercial device made me waste months of headakes with no useful results but the thing I've learned.

There is one requirement to succeed on my approach. You have to know the hardware you are working on. As an example, you need to know what touch screen your hardware has (chipset) to select the driver and were is it connected to hook it up to the right device (USB, Serial etc). That the same thing for all other devices (power managemnt chip, keypad, backlight, LCD etc etc)




Photogallery Kernel porting:


Tizen porting guide_2.0.beta_1025


Presentation "Navigation and Ancillary Information Facility NIF ...


Tizen porting guide_2.0.beta_1025


porting-android-4-728.jpg?cb= ...


Presentation "Navigation and Ancillary Information Facility NIF ...


Porting android


Presentation "Google's android as an application environment for ...


Kernel Level Services, Linux Kernel, Window Kernel Development and ...


DEV] Porting kernel 3.0 for DESIRE | HTC Desire | XDA Forums


Porting Firefox OS to Android device - Stack Overflow


Android Opens Up The Operating System For Innovation | Learning ...


DISCONTINUED][RECOVERY]CarlivTouchRecovery  | Android Development ...


Linux RFS v1.3.0 Porting Guide


Hybrid kernel


Android Porting Guide for Embedded Platforms


Presentation "Navigation and Ancillary Information Facility NIF ...


Presentation "Samba, CIFS and Linux Network Filesystems Steve ...


Porting LDD3 examples on newer kernel [Kernel Development Community]


fazurullaembedded-2-638.jpg?cb ...