在学习Android源代码情景分析第二章goldfish编译时出现的问题和解决方法
造成这些问题打主要原因是内核版本没有选择2.6,而使用的是goldfish3.4,而是对这些问题解决并分享给大家,希望能帮到大家
1.make menuconfig 进入界面
在Enable loadable module supprot选择false,这里按下N就可以,这个表示将编译到模块的方式编译,这里是要编译到内核,故不选择(选择有×,不选择没有×)。
2.选择Device Drivers进入界面
这里选择我们自己定义模块,Fake Register Driver,选中出现×。
3.init_MUTEX这个函数中内核2.6.16之后被废弃,这里用以下代码代替
改进:把init_MUTEX(&(dev->sem));
改成
sema_init(&(dev->sem),1);
4.linux/proc_fs.h中struct proc_dir_entry 没有owner这个成员变量(proc_fs.h在kernel/include/linux目录下)
改进:在linux/proc_fs.h中struct proc_dir_entry
加入
struct module *owner;
5.Kconfig的配置,这里我选择的是x86,这里只在drivers目录下的Kconfig中加入source "drivers/freg/Kconfig"