在终端中输入命令:tar –xjvf skyeye-testsuite-2.3.tar.bz2 在
终
端
中
输
入
命
令
:cd
skyeye-testsuite-2.3/linux/s3c2410/s3c2410x-2.6.14
在终端中输入命令:cp initrd.img /home/zcnet/skyeye-1.2.4/binary 使用SKYEYE仿真Linux系统
在终端中输入命令:cd /home/zcnet/skyeye-1.2.4/binary 在终端中输入命令:./skyeye -e vmlinux 6.7 制作Linux根文件系统
6.7.1编译安装BusyBox
1 在home文件夹中新建一个文件夹命名为ilovechina 2 把BusyBo x压缩文件放到/home/ilovechina下
3 在终端中输入命令:cd /home/ilovechina 进入BusyBox-1.2.0的存放位置
4 在终端中输入命令:tar -xjvf busybox-1.2.0.tar.bz2 进行解压 5 在终端中输入命令:cd busybox-1.2.0
6 在终端中输入命令:make menuconfig 进入BusyBox的主配置菜单
7 参考书中提供的资料进行设置各个选项 8 配置完成各个选项后,保存设置
9 在终端中输入命令:make 对BusyBox进行编译,进行编译后得到两个主要的文件:BusyBox与BusyBox_unstripped。
10 在终端中输入命令:make install 安装BusyBox以后会在BusyBox-1.2.0目录中产生_install目录,这是BusyBox默认的安装目录。在安装目录_install中还得到了bin、sbin、usr等三个目录以及Linuxrc文件
BusyBox经过设置、编译与安装在默认的安装目录_install下得到了bin、sbin、usr等三个目录以及Linuxrc文件。在 BusyBox安装目录_install的基础上进行扩展以后可以得到根文件系统。根文件系统中包括了bin、dev、etc、home、initrd、lib、lost+found、proc、root sbin 、tmp 、usr 、var等13个目录以及linuxrc文件,其中home、initrd、lib、lost+found、proc、root、
tmp、var 等目录为空目录,暂时没有内容,另外,用户自己还需要创建dev目录与etc目录,dev目录用以存放设备文件,etc目录用来存放启动文件。
6.7.2创建根文件系统的dev目录: 1 在终端中输入命令:mkdir _install/dev
2 在终端中输入命令:cp /dev/ttyS0/dev/console/dev/ram0 _install/dev/ -a
这样就在dev目录中添加了串口终端设备、系统控制台设备、RAM磁盘设备等三个常用的硬件设备文件
6.7.3创建根文件系统的etc等目录及配置文件
这一部分的配置内容较多,也比较繁琐,为了使相应的目录与配置文件的建立过程相对简单,编写make_rootfs.sh来实现该部分的操作。
1创建make_rootfs.sh脚本文件,内容如下: echo \echo \
mkdir -pv etc etc/init.d home initrd lib proc root tmp var lost+found
echo \cat > etc/inittab << \::sysinit:/etc/init.d/rcS ::askfirst:-/bin/sh ::restart:/sbin/init ::ctrlaltdel:/sbin/reboot ::shutdown:/bin/umount -a -r ::shutdown:/sbin/swapoff -a EOF
echo \cat > etc/init.d/rcS << \#!/bin/sh
/bin/mount -t proc none /proc sbin/ifconfig lo 127.0.0.1 up sbin/ifconfig eth0 10.0.0.2 up hostname skyeye mkdir /var/tmp mkdir /var/log mkdir /var/run mkdir /var/lock cat /etc/motd
#sbin/ifconfig eth0 172.17.51.171 netmask 255.255.0.0 up #route ass sefault gw 172.17.1.2 /bin/ash EOF
echo \chmod 555 etc/init.d/rcS echo \cat > etc/mtab << \rootfs / rootfs rw 0 0
/dev/root / nfs rw,v2,rsize=4096,wsize=4096,hard,udp,nolock, addr=172.17.51.4 0 0 none /proc proc rw 0 0 EOF
echo \cat > etc/motd << \Welcome to ARMLinux ARMLinux for Skyeye
For further information please check:
http://www.skyeye.org/ EOF
2 将编写的make_rootfs.sh脚本文件放在BusyBox的安装目录_install中,然后进入安装目录运行该脚本
在终端中输入命令:cd _install 在终端中输入命令:./make_rootfs.sh
在终端中输入命令:cd /home/ilovechina/BusyBox-1.2.0
这样,根文件系统的完整结构就在安装目录_install中建立出来了,下一步,将使用安装目录_install中的内容创建文件系统映像
在终端中输入命令:dd if=/dev/zero of=./initrd.img count=2048 bs=1024
在终端中输入命令:mke2fs -F -m0 initrd.img
其中,dd是Linux/UNIX系统中一个非常有用的命令,使用dd命令可以复制一个文件到指定大小块空间,并在复制该文件的同时进行指定文件转换。上面具体的带参数的dd命令指定了每个存储块的大小是1024字节,一共2048个块,因此,指定的块空间为2M字节。然后,使用/dev/zero文件来创建一个占用2M字节块空间的初始化空文件,同时将其转换为initrd.img文件输出。mke2fs命令用来将文件映像initrd.img格式化为EXT2格式。
创建的EXT2格式的文件系统映像initrd.img目前还是一个空文件,下一步,应该将安装目录下的所有内容复制到EXT2格式的文件系统映像initrd.img中
6.7.4 添加initrd.img文件系统映像的内容
1 在终端中输入命令:mkdir /mnt/rootfs 先在./mnt目录中建立一个rootfs目录,用来挂载initrd.img文件系统映像。
2 在终端中输入命令:mount initrd.img /mnt/rootfs/ -o loop 挂载映像文件initrd.img
3 在终端中输入命令:cp _install/* /mnt/rootfs/ -a 将安装目录的所有内容复制到/mnt/rootfs目录
4 在终端中输入命令: umount /mnt/rootfs/ 卸载映像文件
initrd.img
这样,就得到了运行嵌入式系统所需要的根文件系统映像initrd.img文件了,下一步,需要将根文件系统映像initrd.img文件放在SKYEYE环境中测试进行。
6.7.5基于SKYEYE的根文件系统仿真调试
1 将BusyBox-1.2.0目录中的根文件系统映像文件initrd.img与SKYEYE的配置文件skyeye.conf、Linux2.6.14内核文件vmlinux放在一起,复制到skyeye-1.2.4目录中的binary目录里面。
2 在终端中输入命令:cd /home/zcnet/skyeye-1.2.4/binary 3 在终端中输入命令:./skyeye -e vmlinux
运行上述命令后,在Redhat Linux的终端窗口中应该可以看到内核的启动信息了,随后会输出在etc/motd文件中设置的“ARMLINUX”ASCII图形的标志,最后,窗口中会输出BusyBox的启动信息
已经出现了BusyBox-1.2.0的信息,光标停留在BusyBox工具提供的命令提示符“#”后,等待用户输入命令。在其中输入命令“ls”,按下回车键执行后,在屏幕上会输出制作的根文件系统中的所有目录。这说明SKYEYE可以正常地模拟仿真Linux-2.6.14系统在ARM9平台上的运行过程
6.8 使用SKYEYE仿真嵌入式系统的运行
在SKYEYE的仿真文件夹中应该已经同时具有了vmlinux内核映像、initrd.img文件系统以及skyeye.conf配置文件等三个基础文件。 现在就可以使用如下命令来启动SKYEYE模拟Linux-2.6.14内核的运行。
运行结果如下图所示
相关推荐: