android編譯內核模塊

2019-04-14 21:29发布

compiled android kernel module: 1.下載你所要應用的對應的內核源碼,下載交叉編譯器工具。 2.mkdir ./test ./out ./source ./tools 3.cp kernel.gz to ./test cp cross-compile tools to ./tools(eg:arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2) cp source code to ./source touch Makefile into ./source:obj-m +=*.o 4.cd ./test make ARCH=arm CROSS_COMPILE=../tools/~/bin/arm-embi- O=../out *_defconfig 5.cd ../out make ARCH=arm CROSS_COMPILE=../tools/~/bin/arm-embi- modules 6.make ARCH=arm CROSS_COMPILE=../tools~/bin/arm-embi- M=../source 7. 此時你可以在你的source目錄中找到你的*.ko   补充: 整个流程如上,有些简略,下面我再详述一下。 1.请分清你要运行在何种设备上,然后下载对应的kernel。可以通过adb shell命令打开终端,在其中输入uname -ra来查看设备的内核版本,使用对用的内核来build你的kernel module。最好是登陆设备提供商的开发网站下载对应kernel。   2.在你需要的目录创建文件夹,可以像上面2中使用的那样分开创建,便于管理。./test文件夹我对应放入的是kernel,./out是用来自定义的kernel生成的相关文件,./source用来对应你要build的源码,./tools对应放入你的交叉编译工具。   3.你的.c源文件要对应创建一个Makefile,其内容可以只写obj-m +=modulename.o   4.进入你的内核文件夹输入命令make ARCH=arm CROSS_COMPILE=~/tool/~/bin/arm-embi- O=~/out tegra3_defconfig,注意最后的tegra3_defconfig对应为你的处理器,比如qsd8625_defconfig   5.进入out目录输入make ARCH=arm CROSS_COMPILE=~/tool/~/bin/arm-embi- modules,此时会buid此目录下的modules   6.同样在out目录输入上面对应的6对应的命令,完成后你的kernel module就会出现!!!!!