现在的位置: 首页 > 综合 > 正文

Linux设备驱动–Linux驱动模块交叉编译的注意事项

2018年03月16日 ⁄ 综合 ⁄ 共 621字 ⁄ 字号 评论关闭

在linux系统下编写好目标开发板的驱动程序后,需要以模块的方式加入内核。期间交叉编译适合目标板Kernel的模块尤为关键。在此记录编译方法,以免看客和我一样走弯路。

1、在宿主机上安装交叉编译器 arm-linux,具体方法百度,一大筐。

2、将和目标板的内核原文件在宿主机上编译好(make bzimage)。

3、在编译好的内核文件中,输入make modules ARCH=arm  CROSS_COMPILE=arm-linux-(可以直接修改makefile文件)编译模块,输入make modules_install。将内核加载,用来解决/lib/modules/下无目标板内核版本文件夹及build文件的问题,也可以make modules_install INSTALL_MOD_PATH=/指定模块安装路径。

4、在自己编写好的模块文件makefile中修改以下内容:

KDIR :=/lib/modules/3.0.1(此处为刚刚运行make modules_install 新生成的文件,与目标板内核版本一致)/build

因为开发板是arm系统,还需要用到交叉编译器,添加以下文件:

make -C $(KDIR) M=$(PWD) modules(以下为添加内容)
ARCH:= armCROSS_COMPILE:= /usr/local/arm/4.4.1/bin/arm-linux(路径根据自己的安装路径自己更改)

OK,说到这里,一切ok,make,完成。

抱歉!评论已关闭.