Hi
I am trying to play around with making my own android driver (just basic things at the moment) but cannot figure out how to compile them. Before trying to write my own driver i would like to compile one of the included ones (in this case its one of the gadget drivers for mass storage). I cannot work out what i need to add where to make it compile. I have compiled the kernel successfully.
What do i need to change so that when i type make modules it will compile the drivers i want into a .ko file (at the moment this would be the gadget driver but in the future it would be my own drivers)?.
Thanks for your help
got it
Worked out to compile the built in modules i just needed to fun make modules. As far as a custom module, make a Makefile as outlined in
yatsec.blogspot.com.au/2011/01/guide-to-compiling-custom-kernel.html All compiled and worked.
Related
Dear all,
Did anyone succeed extracting kernel configuration from I9000XXJP3? Kernel version is 2.6.32.9, the vermagic is "2.6.32.9 mod_unload ARMv7"
extract-ikconfig doesn't work on it.
I succeeded extracting a zImage gzipped payload, but it seems not to contain any configuration in it (see attached).
/proc/config.gz doesn't exist, Samsung open source package (downloaded from Samsung open source site) contains only Android 2.1 Eclair or previous versions.
My target is to build tun.ko and, eventually, ext3/ext4 modules to make them working in Samsung Galaxy S I9000 with rooted I9000XXJP3.
Any idea?
Without froyo source code or a good Samsung Kernel (es. for himem capable) I think is impossible to play good with theses beta roms.
Ciao
Any news? I need tun.ko for jp3 too..
I have tried to compile the 2.6.32.9 kernel editing the .config in 2.6.9, the module tun.ko is accepted by the device, but I get a kernel panic!
redsh said:
I have tried to compile the 2.6.32.9 kernel editing the .config in 2.6.9, the module tun.ko is accepted by the device, but I get a kernel panic!
Click to expand...
Click to collapse
Did you use the stock linux kernel? Or the common from android.kernel.org?
I'm trying the same thing actually. Isn't there any default config for the processor that might work? I tried with the config from .29 but when loading the module it says wrong format.
try to build 2.6.32 with the 2.6.29 config ("yes" all missing stuff)
turn on your galaxy, adb push the tun.ko
try to load it, it will say "missing symbols" blabla
find the config options that match those symbols, enable them, recompile, try again
Great to see some people who are hacking the kernel! Keep it up!
But I'm afraid it is not going to be as easy as dropping aries_rev03_defconfig as .config in a 2.6.32 kernel tree and doing 'make oldconfig'. That's because many of Samsung's changes have not been included in the newer mainline kernel versions yet.
Samsung added quite a lot of low-level board support for their dev boards (and for the SGS, of course), did some customization and added a few drivers which you will need to forward-port to the newer kernel.
Please have a look at this thread, in which I've started a breakdown of the Samsung patches against Android Eclair's 2.6.29 kernel.
The best course of action I think is to git clone Android's kernel from AOSP, checkout the android-2.6.29 branch, apply Samsung's patches to that, then attempt to rebase your tree to a newer kernel version. (Note, you may want to start with small steps, to get a feel for what you're up against )
Note that there probably will be lots of merge conflicts which you need to resolve, and after dealing with all those, you also have to make sure that everything else that's merged still works as expected, but at least that will show you the amount of work involved. You will basically be doing all the work that Samsung is doing right now for their kernel for FroYo. It will be interesting to follow their progress on the mailing lists and on IRC.
bilboa1 said:
try to build 2.6.32 with the 2.6.29 config ("yes" all missing stuff)
turn on your galaxy, adb push the tun.ko
try to load it, it will say "missing symbols" blabla
find the config options that match those symbols, enable them, recompile, try again
Click to expand...
Click to collapse
Thats exactly what I did, but I got wrong module format... which is a fatal error. I need to invest further in the used config... maybe i did not pick up the right one properly..
miki4242 said:
Great to see some people who are hacking the kernel! Keep it up!
But I'm afraid it is not going to be as easy as dropping aries_rev03_defconfig as .config in a 2.6.32 kernel tree and doing 'make oldconfig'. That's because many of Samsung's changes have not been included in the newer mainline kernel versions yet.
Samsung added quite a lot of low-level board support for their dev boards (and for the SGS, of course), did some customization and added a few drivers which you will need to forward-port to the newer kernel.
Please have a look at this thread, in which I've started a breakdown of the Samsung patches against Android Eclair's 2.6.29 kernel.
The best course of action I think is to git clone Android's kernel from AOSP, checkout the android-2.6.29 branch, apply Samsung's patches to that, then attempt to rebase your tree to a newer kernel version. (Note, you may want to start with small steps, to get a feel for what you're up against )
Note that there probably will be lots of merge conflicts which you need to resolve, and after dealing with all those, you also have to make sure that everything else that's merged still works as expected, but at least that will show you the amount of work involved. You will basically be doing all the work that Samsung is doing right now for their kernel for FroYo. It will be interesting to follow their progress on the mailing lists and on IRC.
Click to expand...
Click to collapse
Yes that would be a lot of work. Maybe its better to just wait until they release the kernel from froyo. I read that they release their opensource stuff rather fast. But just for adding a module like ext4 I don't think you need those patches, because imho they didn't touch the fs of the kernel. We just need an adaquate kernel config and adding modules should be possible.
Phlogiston said:
Thats exactly what I did, but I got wrong module format... which is a fatal error. I need to invest further in the used config... maybe i did not pick up the right one properly..
Click to expand...
Click to collapse
Make sure you're using the same kernel version number and build number, because samsung kernels do not have the option to load incorrect module versions
Yes i've set the subversion as well but without the patches from samsung its impossible it seems. We need to wait and hope that they release the froyo kernel sources soon....
bilboa1 said:
Make sure you're using the same kernel version number and build number, because samsung kernels do not have the option to load incorrect module versions
Click to expand...
Click to collapse
Are you sure they set CONFIG_MODVERSIONS? It's off in the downloadable sources.
Just compare the output of `modinfo -F vermagic <yourmodule>` to `modinfo -F vermagic <modulewhichloads>` or to /proc/version .
did this get solved yet? I google'd for the tun.ko file for my i9000 using jp3 but nothing yet... if you have a proper one for the MoDaCo version here please attach it! ~
I think I saw someone's post with tun.ko for FroYo beta somewhere in these forums, I mean i9000 Android Dev. One of the guys here has found a way to compile kernel for jp* here. I am sure.
I actually found it attached somewhere in the forum and it was 1,5447 mb big I think it was... but it still didn't work for me so I presumed the kernel or something must have been wrong.
What I have done so far:
1) setup cross compiling
2) downloaded the HTC-provided kernel source
3) wrote my own lkm & Makefile
4) grabbed .config from /proc/config.gz off the phone
The problem though is that the distributed HTC kernel is only the source and it doesn't have the compiled files used in the kernel module building processing. It also doesn't have the autoconf files are shown here in the make error:
" ERROR: Kernel configuration is invalid.
include/linux/autoconf.h or include/config/auto.conf are missing.
Run 'make oldconfig && make prepare' on kernel src to fix it."
So I am wondering, do I have to compile my own kernel in order to be able to compile modules or is there someway to make it work with the stock HTC kernel? Loadable modules are enabled in the stock kernel, but unless I am missing something I don't see how you can actually compile modules for it.
Thanks for any help, and I am very experienced with kernel development (on Intel) so feel free to provide any technical details.
I work with Cisco devices on a regular basis. To connect to them, I need to use a DB9 serial.
I have tried the usb to serial Prolific 2303 chipset but it isn't supported in the OS (I'm not sure why this was removed from the Android Linux kernel because it is standard in Linux kernel 2.4.31 and later but anyway...)
Anyone know of a way to get serial connectivity so I can use this tablet as a true laptop replacement? Maybe a serial to bluetooth would work? Samsung says the bluetooth supports SPP but I don't want to dish out $70+ to find out it doesn't work.
Maybe someone familiar with compiling kernel modules for Android could assist? I have the pl2303.c source code but I'm not familiar enough with compiling kernels or kernel modules to attempt this.
I've been looking into this myself the past couple of days. The kernel is not compiled with support for USB-Serial converters, but all of the code is there. It looks like the kernel would have to be recompiled along with the required modules. Here is the source I'm using: https://github.com/pershoot/galaxy-2636
So far I've just looked at config and it is easy to enable the required modules, but I haven't managed to get the kernel compilation and ARM toolchain to work just yet.
samsung source
I noticed the pl2303.c and pl2303.h are in the Samsung source I downloaded.
I'm going to try to compile a kernel module in the next week.
I'm fairly shocked this hasn't been a bigger issue. We can't be the only ones wanting this functionality - especially since Samsung support basically told me to pound sand.
I've managed to compile an ICS kernel with the required configuration and modules, once I figure out how to get it on the device I'll test it. If it works I'll build a honeycomb kernel as well and post both in the dev section.
That is fantastic! I'm having issues getting my cross compile to work properly.
Well, I managed to build the kernel & modules properly but the adapter still isn't recognized even with the modules loaded. I think there might be more to the problem than missing modules
I read today that the main linux kernel and the android fork are going to be merging. Maybe that will lead to better device support.
Hey guys
Right now I've succesfully built CM13 from sources for the Z00A but I need to change a few things for a project here at work. We need to use ALSA instead of tinyalsa because of some hard-coded things in that mentioned project, that doesn't work with tinyalsa but with ALSA.
Till now I used alsa-lib and alsa-utils from the Marshmallow branch of Android x86 project as external packages. They compiled without any big bug and here comes my problem: All of those little ALSA tools (aplay, amixer, arecord, etc) aren't build through the make-process and won't be integrated into the image as a result. When I compile them separately and copy them into /system/bin with corresponding access rights, they can't be used in the shell. It tell's me they cant be found - even with correctly installed libasound.so.
Any hint or tipp what I'm doing wrong?
Hey xdas,
i just received my new Samsung Galaxy z Fold 4
SAOMC_SM-F936B_OXM_EUX_12_0045 EUX /-/EUX/EUX
Kernel : 5.10.81-afaneh92-gd8d6af751972 (flashed for twrp)
I would like to install nethunter on the device with a working kernel
I tired my best to understand the docu on kali but its not the best
i am also new to compiling kernels at that level so maybe someone can help here
I attached as much as i could
So the steps i took so far is
Unlocked Bootloader
installed the twrp ( like descriped here : https://forum.xda-developers.com/t/recovery-unofficial-twrp-for-galaxy-z-fold4-snapdragon.4498743/ )
installed magisk
Then for nethunter
(https://www.kali.org/docs/nethunter/)
i downloaded the kernel source :
https://opensource.samsung.com/uploadSearch?searchValue=SM-F936 (my device is EUX see infos for device above)
downloaded the proper=? toolchain , there is an readme_kernel inside the kernel_source with a link to the toolchain , i am unsure about this
https://opensource.samsung.com/uploadSearch?searchValue=toolchain
there are two options i took the S22(Exynos) file ( hope thats right ?)
now we come to the difficult part :-(
first i tried to compile via the instructions on kali docs
unpack the kernel file i did and there a subfolders so i decided to use the subfolder common as the root mentioned in the docs:
you can begin by cloning our kernel builder to the root of your kernel’s folder, and prepare the environment:
from common folder i did git clone https://gitlab.com/kalilinux/nethunter/build-scripts/kali-nethunter-kernel
cd kali-nethunter-kernel
I did not change the configs as i am new to that so i know there are some exports inside the build config inside the kernel file but i dont know how get them together
./build.sh
S. Setup Environment and download toolchains.
2. Configure & compile kernel from scratch
It found the devconfig so i took it as mentioned in the docs (Select your device’s defconfig, then save and exit to start the building process.)
did not edit the kernel config till jet
and ran into the error attached in the error txt
I would like to understand how i can build the kernel the normal way , without the nethunter tool
and maybe someone could help to make this working with nethunter that would be great !
i want to understand the process and i am willing to help , so i am not asking for a final kernel , more for the way to go in general to also give the community a benefit for the next new kernel we want to port
as mentioned the docs are not the best !
thanks for your time
@yesimxev / @V3rB0se / @afaneh92 need some help here
Which toolchain to you use in nethunter kernel builder? I'd recommend clang-12.
https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+archive/refs/tags/android-12.0.0_r12/clang-r416183b1.tar.gz
Download, extract somewhere and add it's path to kali-nethunter-kernel/config (clang-10 is the default). no need for setup environment again.
Any luck with this? i am in the same situation trying to build a nethunter kernel for my zfold4
Wanttoknowthings said:
Hey xdas,
i just received my new Samsung Galaxy z Fold 4
SAOMC_SM-F936B_OXM_EUX_12_0045 EUX /-/EUX/EUX
Kernel : 5.10.81-afaneh92-gd8d6af751972 (flashed for twrp)
I would like to install nethunter on the device with a working kernel
I tired my best to understand the docu on kali but its not the best
i am also new to compiling kernels at that level so maybe someone can help here
I attached as much as i could
So the steps i took so far is
Unlocked Bootloader
installed the twrp ( like descriped here : https://forum.xda-developers.com/t/recovery-unofficial-twrp-for-galaxy-z-fold4-snapdragon.4498743/ )
installed magisk
Then for nethunter
(https://www.kali.org/docs/nethunter/)
i downloaded the kernel source :
https://opensource.samsung.com/uploadSearch?searchValue=SM-F936 (my device is EUX see infos for device above)
downloaded the proper=? toolchain , there is an readme_kernel inside the kernel_source with a link to the toolchain , i am unsure about this
https://opensource.samsung.com/uploadSearch?searchValue=toolchain
there are two options i took the S22(Exynos) file ( hope thats right ?)
now we come to the difficult part :-(
first i tried to compile via the instructions on kali docs
unpack the kernel file i did and there a subfolders so i decided to use the subfolder common as the root mentioned in the docs:
you can begin by cloning our kernel builder to the root of your kernel’s folder, and prepare the environment:
from common folder i did git clone https://gitlab.com/kalilinux/nethunter/build-scripts/kali-nethunter-kernel
cd kali-nethunter-kernel
I did not change the configs as i am new to that so i know there are some exports inside the build config inside the kernel file but i dont know how get them together
./build.sh
S. Setup Environment and download toolchains.
2. Configure & compile kernel from scratch
It found the devconfig so i took it as mentioned in the docs (Select your device’s defconfig, then save and exit to start the building process.)
did not edit the kernel config till jet
and ran into the error attached in the error txt
I would like to understand how i can build the kernel the normal way , without the nethunter tool
and maybe someone could help to make this working with nethunter that would be great !
i want to understand the process and i am willing to help , so i am not asking for a final kernel , more for the way to go in general to also give the community a benefit for the next new kernel we want to port
as mentioned the docs are not the best !
thanks for your time
Click to expand...
Click to collapse
Great research bro , same as here.
Difference is I am doing it for M21 .
And to flash the kernel I need to do port twrp for vA12 M21 too.
Great respect bro.
Anyone can help with kernel? u need AR9271 and rtl8188EUS drivers on ysl Android 9
https://forum.xda-developers.com/t/arm64-rom-unofficial-9-0-0-ysl-lineageos-16-0-18-08-2019.3958696/ <----- this rom
Phone: codename-[ysl]
Redmi s2
i have been trying to make it myself but always gets fails
im having the same issue at this step... anyone willing to show the part on how to setup the toolchain properly>?
heres a screenshot of my issue
this is local.config file
kluongo said:
heres a screenshot of my issue
Click to expand...
Click to collapse
It shows the error, do apt install flex
yesimxev said:
It shows the error, do apt install flex
Click to expand...
Click to collapse
Will do, thanks... You know I was looking through the process and missed that line... I suppose next time I should take more time and look more carefully
kluongo said:
Will do, thanks... You know I was looking through the process and missed that line... I suppose next time I should take more time and look more carefully
Click to expand...
Click to collapse
Great, I'll add to the setup env script so it won't be missed. It shouldn't happen in the first place though