--------------------------------------------------------我是分割线-----------------------------------------------------------
一、编译器的安装:编译器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 卸载
如果有以上输出,则说明成功了!