作者:苗德行,华清远见嵌入式培训中心讲师。

为Android内核添加新驱动,并提供menuconfig选项

Android的Linux内核2.6.35添加驱动。

1. 在drives目录下添加hello目录,内含hello.c Kconfig Makefile

hello.c内容:
#include <linux/init.h>
#include <linux/module.h>

MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void)
{
printk(KERN_ALERT"Hello, world\n");
return 0;
}
static void hello_exit(void)
{

printk(KERN_ALERT"Goodbye, world\n");
}

module_init(hello_init);
module_exit(hello_exit);

Kconfig内容:
config HELLO
tristate "Hello Driver added by Farsight"
default n
help
test for adding driver to menuconfig.
MakeFile内容:
obj-$(CONFIG_HELLO) += hello.o

2. 上面的Kconfig文件再加上下面的两个配置,可使hello项出现在配置菜单中。

在arch/arm/Kconfig menu "Device Drivers" endmenu之间添加:
source "drivers/hello/Kconfig"

在drivers/Kconfig menu "Device Drivers" endmenu之间添加:
source "drivers/hello/Kconfig"

3.修改Drivers目录下的Makefile文件,添加如下行:
obj-$(CONFIG_HELLO) += hello/
当CONFIG_HELLO为y或m时,使系统能找到hello驱动的makefile。

linux-2.6.35目录下make menuconfig,在Device Drivers菜单下选中Hello Driver added by Farsight项比如M,作为module。然后保存配置,执行make命令,就可以看到 CC [M] drivers/hello/hello.o 的log了,hello目录里生成了hello.o hello.ko的等文件。

嵌入式及3G相关资源及学习请点击:嵌入式开发视频android开发视频android培训3G培训QT培训QT开发视频物联网培训物联网技术视频嵌入式学习

更多相关文章

  1. Android 设定横屏,禁止屏幕旋转,Activity重置 [更新视频播放器相关
  2. 如何查看无法导出的android数据库文件?
  3. Android中视频播放以及解码
  4. 关于Android Studio里的Gradle文件
  5. android使用http协议上传文件
  6. 【视频课程】Android底层开发关键技术—Android系统移植与HAL框
  7. Android根据文件路径使用File类获取文件相关信息
  8. 安卓xml文件中设置动画匀速旋转无效?

随机推荐

  1. web app 第三方登录-微博登录(二)
  2. Ionic Cordova实现软键盘的监听 以及操作
  3. 浅析Android下的Android.mk文件(三)
  4. Android(安卓)CheckBox使用所遇到的坑
  5. android :使用swipment(侧滑)时,listview
  6. Android小问题集锦
  7. Android动画资源(三)——插值器
  8. android中fragment与activity之间通信
  9. 使用ContentProvider(内容提供者)共享数据
  10. Android(安卓)Studio数据永久保存——Sha