0
点赞
收藏
分享

微信扫一扫

Android—Step by step - Compile kernel module for Samsung Galaxy S3 (Linux)

yellowone 2022-03-15 阅读 63


1. Download the Source for your current kernel version from "http://opensource.samsung.com".




2. Extract the file "Kernel.tar.gz" (inside the downloaded zip) into a folder, for example "/home/<your_user_name>/androidkernel".


3. Open the README_Kernel.txt


4. Download the Android NDK containing the suggested toolchain, in our case "arm-eabi-4.4.3". The latest NDK package often does not contain older toolchains, so you have to make some experiments until you find the right one. All the NDKs are available from "http://developer.android.com/tools/sdk/ndk". Copy the URL and modify it according to the given version numbers.



5. For a 64bit operating system, you have to take the 64bit link, of course. Paste the URL into a text editor of your choice.



6. Now you have to find out, which NDK version contains the needed 4.4.3 toolchain. In our case, it is the version "8e".



7. Copy the modified link back to your browser and download the old NDK version.



8. Extract the archive, for example to "/home/<your_user_name>/androidbuild".


9. Modify "/home/<your_user_name>/androidkernel/Makefile" and change the following parts according to your environment. The "EXTRAVERSION" string has to be the one from your phone's system information.





10. Pay attention to the correct line ending "arm-linux-androideabi-". The build process will look for the compiler "gcc" inside the "bin" directory. The android NDK contains the compiler, but the filename always starts with "arm-linux-androideabi-". The NDK version, the toolchain version, and the system architecture (32/64bit) have to match your environment.


11. Move to the directory of your kernel in a command line interface, for example "cd /home/<your_user_name>/androidkernel/".


12. Enter "make arch=arm m0_00_defconfig".


13. Enter "make menuconfig".


14. Modify the kernel configuration according to your wishes. For example select "M" for "Device drivers -> Input device support -> Joystick interface" to create the module "joydev.ko".



15. Leave "menuconfig" and save.



14. Enter "make CFLAGS_MODULE=-fno-pic modules".


15. The modules will be compiled and stored in "/home/<your_user_name>/androidkernel/drivers/*/*.ko", according to each module's category.


16. If you like, you can comiple a completely new kernel for your phone with the command "make". The kernel image will be stored in "/home/<your_user_name>/androidkernel/arch/arm/boot/zImage" then.




<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>

上一篇:​​理解 Android Build 系统​​

下一篇:​​Linux Kernel and Driver Development Training​​

相关热门文章


  • ​​Android之开发环境搭建​​
  • ​​Android自定义View的实现...​​
  • ​​AndroidManifest.xml配置文件...​​
  • ​​Android相对布局+圆角按钮+Sha...​​
  • ​​查看Android应用包名package和...​​


  • ​​linux dhcp peizhi roc​​
  • ​​关于Unix文件的软链接​​
  • ​​求教这个命令什么意思,我是新...​​
  • ​​sed -e "/grep/d" 是什么意思...​​
  • ​​谁能够帮我解决LINUX 2.6 10...​​

给主人留下些什么吧!~~ 评论热议


举报

相关推荐

0 条评论