2.
3.
4.
十一、实验小结(对实验现象、实验故障及处理方法、实验中存在的问题等进行分析和讨论。)
了解BootLoader的结构。掌握BootLoader配置编译过程。熟悉BootLoader的常用命令。
十二、思考题
1. BootLoader的作用?它有几种操作模式?
在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。它有两种操作模式:启动加载模式和下载模式。
福建师范大学协和学院《嵌入式系统》实验报告
实验日期: 2017 年 5 月 9 日
学号: 124242014080 姓名: 谢志杰 实验台: D1 组员姓名: 谢志杰、洪剑锋
实验六 内核和根文件系统
一、实验目的
1. 熟悉内核、根文件系统的结构和配置编译过程。 2. 掌握BootLoader、内核和根文件系统的下载。
二、实验环境
硬件:PC机、ARM实验板及相关配件
软件:VMware Workstation虚拟机、Linux操作系统、BootLoader文件(uboot)、Linux内核源码、根文件系统、Source Insight工具软件、BusyBox工具软件、Samba、nfs和SecureCRT
三、实验内容及步骤
1. 熟悉内核的裁剪和编译
将Linux内核文件复制到Linux下(D:\\嵌入式Linux课程软件集\\内核驱动\\Linux内核制作TQ2440\\linux-tq2440.tar.gz),并解压(#tar xvzf linux-tq2440.tar.gz) (1)内核的裁剪
1)方式1 #make menuconfig命令:进入菜单式配置界面(截图),其中上下键选菜单项,左右键选择选择方式。其中,若为尖括号<>,则有3种取值方式;若为方括号[]则只有两种取值方式:
按Y表示编译进内核; 按N表示不编译进内核;
按M表示以模块方式进行编译;
进入General setup选项中,将Initial RAM ......栏设置为不编译进内核(即按N,选项前会变成[ ]),因为现在暂不进行文件系统挂载。
退出,保存;
2)方式2 #make xconfig命令:进入图形式配置界面(截图),直接通过鼠标选择;
选择好之后,退出,保存
3)#ls -a查看配置文件:配置文件为 .config(截图)
4)*方式3 将已配置好的文件,替换原来的文件。(可不做) (2)内核的编译
1)#make clean命令:清除以前配置产生的一些中间文件和目标文件;
2)#make uImage ARCH=arm CROSS_COMPILE=arm-linux- 命令:执行make命令对内核进行编译,指定体系结构为arm,交叉编译器为arm-linux-gcc等交叉工具。
发现最后会出现在 ./arch/arm/boot目录有zImage文件,但无法创建uImage
3)#创建内核映象文件:把上次实验课uboot/tools/目录下的mkimage文件复制到/bin/目录下,重复2)步骤,即可解决问题
根据编译信息可知,在“./arch/arm/boot/”目录下生成了一个uImage文件,这就是需要的
内核文件映像文件。(截图),再通过tftp服务器下载到开发板 2. 熟悉根文件系统的生成过程 根文件系统的制作
将根文件系统的系统配置文件及BusyBox软件(路径D:\\嵌入式Linux课程软件集\\内核驱动\\根文件系统制作相关软件\\etc.tar.gz和busybox-1.13.3.tar.gz复制到Linux下
使用Busybox工具软件制作根文件系统。
(1)在/home/win目录下先创建一个rootfs目录,并在这个目录下建各个子目录。
#mkdir rootfs #cd rootfs
#mkdir bin etc dev lib mnt proc sbin sys tmp usr var #mkdir usr/bin usr/lib usr/sbin lib/modules (2)创建设备文件
#cd rootfs/dev
#mknod -m 666 console c 5 1 #mknod -m 666 null c 1 3 (3)加入配置文件
#tar etc.tar.gz //解压复制过来的文件 #mv etc/* /home/win/rootfs/etc/ -rf (4)添加内核模块
#cd /home/win/TQ2440/linux-tq2440 //进入内核主目录下 #make modules ARCH=arm CROSS_COMPILE=arm-linux-
#make modules_install ARCH=arm INSTALL_MOD_PATH=/home/win/rootfs (5)配置、安装BusyBox
先把复制过来的BusyBox软件进行解压,解压完进入其主目录 1) 配置busybox
#make menuconfig Busybox Settings àbuild Options->
选中 “Build busybox as a static binary”, 静态链接 Cross Compiler prefix (arm-linux-) (截图)
Installation Options->
选中 “Don’t use /usr”, 选中该项可以避免busybox 被安装到宿主系统的/usr目录下,破坏宿主系统
Busybox Installation Prefix (/xxx/rootfs) 该选项表明编译后的busybox的安装位置 2)编译安装busybox
#make
#make install
3. 使用Initramfs挂载根文件系统 #cd /home/win/rootfs/ #ln -s /bin/busybox init
配置Linux内核,支持Initramfs
#make menuconfig -> general setup ->Initial RAM filesystem and ......
目录写上/home/win/rootfs
编译内核
#make zImage ARCH=arm CROSS_COMPILE=arm-linux- 用ls列出所有的文件,(截图)
*用tftp服务下载根文件系统到Linux系统到开发板(参考实验五)
四、实验结果(粘贴执行结果截图)
1.
2.