Linux操作系统移植

需要有六个步骤:准备阶段(包括制作交叉工具链以及解压源代码),制作内核镜像,制作bootloader,制作文件系统(包括使用busybox),下载到开发板。下边将对五个步骤进行分别解释。

准备工作

一:设置工作目录

# mkdir /mywork =========将需要用到的各种包分类放在这个目录之下
# cd /mywork
# mkdir crosscompile kernel bootloader rootfs qtopia ====用来存相对应放源文件

二:使用samba服务将Windows中的光盘上的内容挂载到Linux中

[root@localhost ~]rpm –ql samba-client =======查询包中的文件包及都被安装到何处
[root@localhost ~]mount.cifs //115.158.73.199/linux /linux
==========ip为Windows主机ip,/linux为新建的挂载点
[root@localhost ~]mount /*使用mount命令查看是否已经挂载上*/

成功挂载上

成功挂载上

三:制作交叉工具链

删除系统中原来已经安装的交叉工具链

[root@localhost /]# rm -rf opt
[root@localhost /]# mddir cross

把arm-linux-gcc-4.4.3.tar.gz解压到/work/crosscompile目录下

# cd /mywork/crosspile

# xzvf /linux/arm-linux-gcc-4.4.3.tar.gz

把编译器路径加入系统环境变量,因为/root/.bashrc是登入root用户后系统自动读取的,因此要想永久修改而不是只一次,就必须把修改的环境变量写在这个文件里

# gedit /root/.bashrc

编辑/root/.bashrc文件,在最后一行添加:

export PATH=$PATH:/mywork/crosscompile/opt/FriendlyARM/toolschain/4.4.3/bin

退出伪终端之后重新登录,输入“arm-linux-gcc”

没有出现“command not found”说明路径添加成功,且交叉工具链能使用

四:获得内核源码

解压解包内核代码,放在“/mywork/kernel”目录下

# cd /mywork/kernel

# tar xzvf /linux/linux-2.6.32.2-mini2440tar.gz

五:获得vboot源码

将vboot源码放在“/mywork/bootloader”目录下

# cd /mywork/bootloader

# tar xvzf /linux/vboot-srctar.gz

六:获得映像制作工具源码

工具1:mkyaffs2image(用于文件系统映像)

由于制作文件系统映像文件时需要使用专用的制作工具,因此必须安装上该工具。对于64M或者128M/256M/512M/1GB 的 mini2440,分别有两套制作工具,mkyaffs2image和mkyaffs2image-128M

将这两个工具都安装在“/mywork/tool”目录下

# cd /mywork/tools

# tar xzvf /linux/mkyaffs2image.tgz

由于没有修改安装路径,因此必须修改环境变量在PATH中加入该路径,系统自动搜索时才能够找到

gedit /root/.bashrc

最后一行追加“:/mywork/tools/usr/sbin”重新打开一个虚拟终端,进行如下操作

工具2:busybox(用于制作根文件系统)

所谓制作根文件系统,就是创建各种目录,并且在里面创建各种文件。Busybox是把Linux命令集合进了一个可执行程序中,同时也包含了init进程,因此使用busybox创建根文件系统,只需要在/dev目录下创建必要的设备节点,在/etc目录下创建一些配置文件就可以了。

而且对于嵌入式系统非常有限的资源来说,使用静态连接只有1M左右,动态连接只有几百KB的busy,更加实用。

# mkdir /rootfs ============ 存放根文件系统目录和文件
# tar xzvf /linux/busybox-1.13.3-mini2440.tgz -C /mywork/tools

=====================解压得到busybox源文件