Linux开发环境的搭建

来源:互联网 发布:松下a5伺服软件 编辑:程序博客网 时间:2024/05/16 12:50

使用的主控芯片是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