linux设备驱动编程学习——内核树的配置与构造(稍后补完)
来源:互联网 发布:iosselect.js andriod 编辑:程序博客网 时间:2024/05/18 03:00
--------------------------------------------------------我是分割线-----------------------------------------------------------
一、编译器的安装:编译器arm-linux-gXX的版本并不是越新越好,不同版本的编译器对应着不同版本的linux内核,所以在安装编译器是一定要选择正确的版本安装(小Kra当时就是因为版本不对程序编译了半天也不能运行)
1.查看arm板上的linux内核版本:
输入命令:uname -a
可以看到,2440上的linux版本为2.6.12
2.下载对应版本的编译器:(正常来讲选择arm板自带资料里提供的编译器肯定是没错的,但是这块板TMD的没给资料,只能自己找了啊魂淡)
这里小Kra找到的是arm-linux-gcc 3.4.1
3.将压缩包解压到/usr/local/arm目录下
输入命令:tar jxvf arm-linux-gcc-3.4.1.tar.bz2 \usr\local\arm
如果没有该目录则自己创建一个:mkdir \usr\local\arm
4.修改环境变量,编译器路径加入到PATH中:
a.打开修改配置文件:vim \etc\bash.bashrc
b.最后加上export PATH=$PATH:/usr/local/arm/3.4.1/bin
c.保存
5.使新的环境变量生效:
输入命令:source \root\.bashrc
6. 检查是否将路径加入到PATH:
输入命令:echo $PATH
如图,显示的内容中有/usr/local/arm/bin,说明已经将交叉编译器的路径加入PATH。
7. 测试安装是否完成:
输入命令:arm-linux-gcc –v
显示版本号,说明编译器安装成功
--------------------------------------------------------我是分割线--------------------------------------------------------
安装好了编译工具后,接下来就是要构造内核树。因为要给arm板写程序,所以要构造的内核树的版本要和arm板上的linux内核版本一样。
1.查看arm板上的linux内核版本:
输入命令:uname -a
可以看到,2440上的linux版本为2.6.12
2.下载版本为2.6.12的linux内核源代码,并解压。
解压命令:tar -jxvf linux-2.6.12.tar.bz2
得到源码文件
3.进入源码目录,使用旧配置编译内核:
a.输入命令:cd ema
b.输入命令:make oldconfig
c.输入命令:make bzImage
等待...
4.编译模块:
输入命令:make module
5.安装模块:
输入命令:make module_install
6.可以查看/lib/modules下是否生成了相应的内核文件,如果是,则说明内核树的配置完成
如图:
--------------------------------------------------------我是分割线--------------------------------------------------------
此时我们已经完成了编译气的安装和内核树配置,下面就写一个驱动程序测试一下吧:
1.编写以下程序,保存文件名为hello.c(程序由《linux设备驱动程序》提供):
2.编写Makefile(由BOSS CHEN提供):
其中KIDR为配置的内核树路径,CROSS_COMPILE为:arm-linux-gcc的绝对路径
3.MAKE,生成模块hello.ko
输入命令:make
4.测试该模块:
输入命令:insmod hello.ko安装
输入命令:rmmod hello 卸载
如果有以上输出,则说明成功了!
- linux设备驱动编程学习——内核树的配置与构造(稍后补完)
- linux设备驱动编程-初探(2)--在内核中构造和运行模块
- Linux设备驱动程式学习(7)-内核的数据类型
- Linux设备驱动程式学习(7)-内核的数据类型
- linux设备驱动学习(1)--内核源码树安装
- Linux内核与驱动开发学习总结:设备驱动模型(九)
- Linux驱动编程——设备树
- Linux 内核模块编程的第一个字符设备驱动
- linux学习笔记-读《Linux设备驱动开发详解》~第三章 Linux内核及内核编程
- linux 内核编程之字符设备驱动
- Linux内核模块编程-字符设备驱动
- Linux内核编程七:字符设备驱动
- Linux驱动开发环境配置(内核源码树构造)
- Linux驱动开发环境配置(内核源码树构造)
- Linux驱动开发环境配置(内核源码树构造) --------转
- [linux]驱动开发环境配置(内核源码树构造)
- Linux驱动开发环境配置(内核源码树构造)
- linux驱动开发环境配置 构造内核源代码树
- <数据结构>单链表的C语言实现
- 11gR2 Clusterware and Grid Home – What You Need to Know [ID 1053147.1]
- iOS的init、loadView, viewDidLoad, viewDidUnload, dealloc的关系
- 使用phonegap插件启动另一个Android+Activity
- 位域
- linux设备驱动编程学习——内核树的配置与构造(稍后补完)
- IO流操作规律(一)
- PHP语法-数组
- FFMPEG编码h264过程
- 图像分割之(三)从Graph Cut到Grab Cut
- 在Linux 上安装DB2 8.1 并配置Windows 客户端连接
- spring StringUtils
- PHP正则表达式
- POJ 1067 取石子游戏