现在的位置: 首页 > 操作系统 > 正文

ubuntu12.04->mini2440移植内核模块

2017年02月08日 操作系统 ⁄ 共 733字 ⁄ 字号 评论关闭

准备移植驱动【内核模块】,从hello开始,

摘:Linux设备驱动属于内核的一部分,Linux内核的一个模块可以以两种方式被编译和加载:

  (1)直接编译进Linux内核,随同Linux启动时加载;

  (2)编译成一个可加载和删除的模块,使用insmod加载(modprobe和insmod命令类似,但依赖于相关的配置文件),rmmod删除。这种方式控制了内核的大小,而模块一旦被插入内核,它就和内核其他部分一样。

摘:最近开始搞内核模块的交叉编译,意思是在pc机上面编写能在arm上面insmod的模块,以下是注意点:

1)打开2440开发板自带的光盘,把开发板操作系统的内核拷贝到电脑linux系统下面,名称为linux-2.6.32.2-mini2440-20110413.tar,解压,发现里面有config_mini2440_w35将这个文件重命名为.config

2)转到交叉编译链目录下,创建硬链接ln arm—angstrom——gnueabi-objdump arm-linux-objdump

ln arm—angstrom——gnueabi-objcopy arm-linux-objcopy ln arm—angstrom——gnueabi-nm arm-linux-nm

下一步make要用到这个

3)转回mini2440的内核目录,make

这个时候应该就没有问题了,必须要编译这个内核,因为编译内核模块代码的时候,需要用到此编译过程中的.o文件,如果不编译,会出现很多找不到文件的错误,及其郁闷!!

现在就可以写arm内核模块了。

Kconfig产生menuconfig上面的选项

make menuconfig产生./config文件,make 产生vmlinuz文件。

 

抱歉!评论已关闭.