使用的主控芯片是SBC6345,在使用之前应该将ARM Linux的交叉开发环境搭建好。看了书之后,就开始总结,根据理解,边看边记录。由于这是针对性的开发,所以理解讲述的时候也会涉及到一些固定的路径。
1、交叉编译环境的安装
先用mkdir建立一个文件夹,该文件夹名为arm,路径如下,用于保存交叉编译工具。
mkdir /usr/local/arm
再用tar -jxvf将交叉编译工具解压存下来。解压的文件名就是那长长的一串,解压后放于/usr/local/arm文件夹中。
tar -jxvf arm-2007q1-10-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C /usr/local/arm
2、添加交叉环境变量
对这一步的理解我还是不能完全说明白,但是并不阻碍学习的继续。
这一步的操作是:
export PATH=/usr/local/arm/arm-2007q1/bin/:$PATH
我对这一步的理解是/usr/local/arm表示了需要添加的文件所在地,文件名为arm-2007q1,估计是简写吧,能够标示清楚是哪个文件就行了。置于bin,好像涉及到操作系统的文件都会有这个目录,置于是什么含义,还真是讲不清楚。
3、系统编译
1)编译文件准备阶段
这个是显而易见的啦,先要将需要编译的文件都准备好,自然还是从光盘里拷出来,放在一个目录下面,并且解压,以待后面的使用。
这一环节涉及到文件夹的建立,文件的copy还有解压,但是总体来说和前面的文件搬移差不多,就不说了,但是将那几个系统源码所在文件的文件名说一下,方便后面的讲解。我猜应该能用到的。
Bootstrap-v1.14.tar.bz2 -> Bootstrap-v1.14
u-boot-1.3.4.tar.bz2 -> u-boot-1.3.4
linux-2.6.30.tar.bz2 -> linux-2.6.30
rfs-qtopia.tar.bz2 -> rfs-qtopia
2)编译启动第一阶段-AT91Bootstrap
SBC6345主板支持nandflash启动,在Bootstrap-v1.14文件夹下能找到nandflash文件夹,然后进去了之后使用make命令就能够生成我们所需要的nandflash_at91sam9g45ekes.bin二进制文件。注意了,这个文件的生成要在那个nandflash目录下哦。不然make是不管用的。
3)编译启动第二阶段-U-boot
这个阶段的启动主要目的是生成u-boot.bin文件。方法和前面差不多哦,不过还是记录一下,以免我后面给忘记了是怎么弄的。
在u-boot-1.3.4目录下make一下。但是文档的讲解中有两个make,有点不太明白,不过还是要如实记录下来。
make at91sam9g45ekes_nandflash_config
make
好像生成了u-boot-1.3.4.bin文件之后,就完成了编译启动的阶段,后面就进入到内核的编译过程了。
4)编译内核
在编译内核的时候有三条命令,先照章全搬,再来理解吧。
cp arch/arm/configs/sbc6345_defconfig .config
make menuconfig
make uImage
这些命令是在linux-2.6.30的目录下进行的。做完这些操作之后,需要的uImage文件就在/arch/arm/boot/目录下了。刚打完这一串命令之后,感觉有点不太对,后来发现在 .config之前有一个空格,cp这句花的意思是将空格后面的文件拷贝在空格前面的目录下,故而如果没有空格的话,这条命令肯定是错误的。
5)文件系统镜像制作
资料中提供了一个软件mkyaffs2image,对应的命令语句是:
mkyaffs2image rfs_sbc6345/ rfs_sbc6345.yaffs2
由于我也是第一次接触到这个命令,不过可以做一个简单的推理猜想。mkyaffs2image相当于之前的cp之类,应该是一个标示符,告诉编译器要干什么,这里是要产生文件系统的镜像文件。这个镜像得来的文件系统后缀名是 .yaffs2 。要制作的文件是rfs_sbc6345,制作完成后保存的文件名好像还是这个。这种方式也可以理解成一种压缩吧,就是把文件的相关信息打成了一个包,所以这个命名最好是一样的。这个包的文件是文件系统的镜像文件。
唉!好端端的一段文字,被我讲的怎么这么纠结啊。不过总体的意思是要生成一个镜像文件,这个镜像文件是文件系统的镜像。OK貌似简单了一些。希望看官不要被我绕迷糊了。
4、系统制定
系统的制定主要是针对Linux中的内核,可以依据我们的需要进行裁剪和添加。这里介绍的板子出厂内核源码提供的默认配置文件是:arch/arm/config/sbc6345_defconfig
使用的相关命令是:
cp arch/arm/config/sbc6345_defconfig .config
make menuconfig
然后对相关的内核进行裁剪添加,完成后别忘记了要生成新的内核哦,相关的命令还是make,其实make的意思是编译,只有编译通过了才能生成相应为文件吧。
make uImage
时间仓促,匆匆写完,如果有什么问题或者着是不对的地方,欢迎看官来纠正。
0 0