linux下arm驱动开发环境配置
2015-06-01 00:04
357 查看
倒腾了好几天的环境配置了,算是知道怎么玩这个鬼东西了,
首先:驱动有两种情况,一种是linuxPC端的驱动,一个是arm端的linux驱动,
而驱动程序写了之后,需要有内核代码里面的文件帮助编译,也就是说,一个驱动程序要编译,需要内核的代码,而环境配置,就是把需要的内核文件进行整理,让驱动程序能成功编译。
原料:linux源代码,arm-linux-gcc
因为你需要把驱动代码(,ko)编译好了之后放到开发板里面运行,所以一定是要交叉编译的,
解压linux源码:
tar zxvf linux-XXX.tar.gz
然后Cd进去,找到linux下面的arch/arm/configs/
cp s3c2410-defaults .config //注意有一个点在config前面
vim Makefile 大概在190行左右改为
ARCH ?=arm
CROSS_XXXX?=arm-linux-
然后mv .config到根目录,既linux-xxx下面
然后make menuconfig
在systemp->support里面找到对应的开发板,我的是2440的
然后退出,之后
make
之后就可以编写makefile了,makefile的指向的编译地址就选择这里,
PS:arm版的linux版本要和你编译的linux的版本一致,不然运行的时候会出错的
出现 hello: version magic '2.6.32FriendlyARM mod_unload ARMv4 ' should be '2.6.32.2-FriendlyARM mod_unload ARMv4 '
出现这个错误的原因是我们编译驱动程序的内核和arm板上跑的内核版本不一样。
有两个解决方案,
1,把编译驱动程序的内核烧写到arm版上,或者把arm版上的系统拿来编译驱动程序,总之保持一致
2,不修改arm版的系统,
进入编译驱动的内核,
make clean //重新编译
make menuconfig // 进入配置界面
然后选择第一个,
进入之后,选择第二个,system version什么的,
在输入框中输入 -FriendlyARM
make
原理很简单,把这个内核的版本修改成和arm版上的一样,这样就很简单的实现了同步了,
首先:驱动有两种情况,一种是linuxPC端的驱动,一个是arm端的linux驱动,
而驱动程序写了之后,需要有内核代码里面的文件帮助编译,也就是说,一个驱动程序要编译,需要内核的代码,而环境配置,就是把需要的内核文件进行整理,让驱动程序能成功编译。
原料:linux源代码,arm-linux-gcc
因为你需要把驱动代码(,ko)编译好了之后放到开发板里面运行,所以一定是要交叉编译的,
解压linux源码:
tar zxvf linux-XXX.tar.gz
然后Cd进去,找到linux下面的arch/arm/configs/
cp s3c2410-defaults .config //注意有一个点在config前面
vim Makefile 大概在190行左右改为
ARCH ?=arm
CROSS_XXXX?=arm-linux-
然后mv .config到根目录,既linux-xxx下面
然后make menuconfig
在systemp->support里面找到对应的开发板,我的是2440的
然后退出,之后
make
之后就可以编写makefile了,makefile的指向的编译地址就选择这里,
PS:arm版的linux版本要和你编译的linux的版本一致,不然运行的时候会出错的
出现 hello: version magic '2.6.32FriendlyARM mod_unload ARMv4 ' should be '2.6.32.2-FriendlyARM mod_unload ARMv4 '
出现这个错误的原因是我们编译驱动程序的内核和arm板上跑的内核版本不一样。
有两个解决方案,
1,把编译驱动程序的内核烧写到arm版上,或者把arm版上的系统拿来编译驱动程序,总之保持一致
2,不修改arm版的系统,
进入编译驱动的内核,
make clean //重新编译
make menuconfig // 进入配置界面
然后选择第一个,
进入之后,选择第二个,system version什么的,
在输入框中输入 -FriendlyARM
make
原理很简单,把这个内核的版本修改成和arm版上的一样,这样就很简单的实现了同步了,
相关文章推荐
- linux命令总结
- Linux的文件类型和权限操作
- Linux下c程序的编译方法:
- Linux分区机制和常见命令
- Linux下jdk的安装和配置
- CentOS7的yum安装mysql
- linux基础
- CentOS配置静态IP
- Linux内核(2.6)进程调度算法
- 【linux系统优化】CentOS中yum更新源的配置及使用
- 【linux系统优化】CentOS中yum更新源的配置及使用
- linux内部指令知识点小节
- LINUX-用户和用户组管理
- 玩转Linux之必修内功(基础篇)
- Linux高级编程(一)
- Linux高级编程(二)
- Linux高级编程(三)
- LINUX-软件安装(四)
- Linux高级编程(四)
- (转)Linux Socket编程(不限Linux)