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就会出现!!!!!
分享到:
相关推荐
上述命令中,`zImage`是编译生成的内核映像文件,`modules`则负责编译内核模块。 #### 四、总结 通过上述步骤,开发者可以成功地编译出适用于Android设备的Linux内核。值得注意的是,由于不同硬件平台可能存在差异...
在刷入自编译内核时需谨慎,以防止设备变砖。 总之,Android内核编译是一项技术性较强的工作,涉及到多个步骤和技术领域,包括交叉编译、源码管理、内核配置和设备驱动开发等。对于初学者来说,了解这些基础知识并...
其次,获取Android源代码是编译内核的第一步。开发者需要通过Android开放源代码项目(AOSP)的官方网站克隆源代码仓库。在此过程中,需要指定特定的分支或标签以获取目标版本的代码。然后,在源代码树中找到kernel目录...
- 另外,在`modules`目录下会生成内核模块,在`dtbs`目录下会生成设备树二进制文件。 #### 五、移植注意事项 在尝试将Android内核移植到其他硬件平台时,需要注意以下几点: - **硬件兼容性**:不同硬件平台可能...
3. 编译内核:执行 `make` 命令,系统会使用已配置的交叉编译工具链编译内核。 4. 创建内核映像:编译完成后,生成的内核映像文件(如 `vmlinuz`)将用于设备。 5. 编译模块:如果需要编译额外的驱动模块,可以...
- **Android特定配置**:Android系统有其特殊的内核配置项,如Android调试桥(ADB)支持、Android内核模块等,需要在配置中开启。 在提供的资源中,“编译内核详细配置.pdf”很可能是对整个内核编译过程的详尽指南...
这些选项包括内核模块、设备驱动、系统特性等。根据你的设备需求,选择相应的选项,比如启用或禁用某些硬件支持,调整内存管理策略等。 完成内核配置后,便是编译过程。在源码目录下运行`make`命令,系统会自动执行...
此外,对于嵌入式设备或特定用途的计算机(如Android开发板),可能需要特定的硬件支持,这正是编译内核的意义所在——裁剪掉无用模块,启用必要的驱动和支持。 编译内核的第一步是获取源代码。通常,我们可以从...
- 编译内核模块需要配置内核源码,并确保与当前运行的内核版本匹配。 4. **Chuping**标签可能指的是一位开发者或团队,他们在处理此类问题上有专长,也可能是一个特定的工具或方法。 5. **Multitouch-Solution**...
在深入探讨Android编译过程之前,首先需要理解的是Android系统的开放性使得开发者和制造商能够根据特定硬件需求定制操作系统。例如,小米、LePhone和M9等品牌就利用这一特性为自家设备打造独特的用户体验。要对...
《Android Goldfish内核3.18源码详解与编译指南》 Android Goldfish内核是Android系统中用于模拟器环境的一个关键组件,它基于Linux内核,并针对虚拟化进行了优化,使得开发者可以在宿主机上模拟Android设备的硬件...
在Linux环境下,GCC被广泛用于编译内核模块,因为它能够生成针对特定架构优化的机器码。GCC还提供了一系列编译选项,如警告级别、优化等级等,帮助开发者调试和优化代码。 ### Android与Linux的关系 Android操作...
3. 内核编译:修改内核源码后,通过make命令编译内核,并使用fastboot或adb刷入设备。 4. 测试与验证:编写测试用例,运行在目标设备上,确保驱动功能正常。 六、内核模块开发 内核模块是可加载到内核中的代码段,...
适合于做Android系统框架的工程师意味着需要有深入了解Android系统架构的能力,包括内核的各个模块以及如何协同工作,能够进行系统级的开发和优化。系统框架工程师将使用到的知识涉及到底层硬件抽象、驱动开发、系统...
编译完成后,你可能还需要构建和安装内核模块,以及更新设备树(device tree)。这通常涉及运行`make modules`和`make modules_install`,以及将内核映像复制到正确的位置,如`/boot`目录,并更新系统启动加载器的...
此外,了解设备的硬件特性、内核模块以及驱动程序的工作原理也是非常重要的。通过编译不同的内核,开发者可以探索硬件潜力,实现个性化的系统优化,或者解决特定设备的问题。 总之,这个资源为那些希望深入Android...
配置完成后,我们就可以使用make命令开始编译内核了。编译成功后,生成的bzImage(内核映像文件)会被放置在arch/x86/boot/目录下。 在编译过程中,如果遇到gcc编译器版本不兼容的问题,例如出现“-m”错误,通常...