I’m building my first Android image, i noticed that compiling a new kernel is pretty similar to what you can do with a vanilla linux kernel, so no problem with that.
Since a complete Android solution is composed by 2 pieces, kernel + the so called “platform”, i’m about to build the platform and to compile the code, the problem is that i noticed that i have to set some values for some attributes like the ones for the bluetooth, this values are required for the bluetooth in order to be recognized and simply work, my question is: what i’m setting? What is the drivers-related architecture under Android?
I could not understand this also because most commercial phones have a kernel that does not support modules, so if can’t load drivers dinamically from places out of the kernel, how this thing works?
This post has a lot of good information on Android. The Linux kernel in Android uses drivers that are loaded and maintained by the kernel. You can also use kernel modules: Building kernel module for Android
To load a driver under Android:
You will need a dev environment setup to cross-compile for the Android device, then compile the source as a module and load it into the kernel from a command line:
If you don’t get an error, it’s loaded.