一、嵌入式linux内核裁剪与系统构建实验

上传人:第*** 文档编号:32740479 上传时间:2018-02-12 格式:DOC 页数:13 大小:829.50KB
返回 下载 相关 举报
一、嵌入式linux内核裁剪与系统构建实验_第1页
第1页 / 共13页
一、嵌入式linux内核裁剪与系统构建实验_第2页
第2页 / 共13页
一、嵌入式linux内核裁剪与系统构建实验_第3页
第3页 / 共13页
一、嵌入式linux内核裁剪与系统构建实验_第4页
第4页 / 共13页
一、嵌入式linux内核裁剪与系统构建实验_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《一、嵌入式linux内核裁剪与系统构建实验》由会员分享,可在线阅读,更多相关《一、嵌入式linux内核裁剪与系统构建实验(13页珍藏版)》请在金锄头文库上搜索。

1、嵌入式 Linux 内核裁剪与系统构建实验一、实验目的1、了解 linux 内核裁减过程,掌握内核的编译方法及在开发板下如何运行一个内核。2、学会基于 busybox 的根文件系统的制作。3、熟悉开发板及 uboot 的使用。二、实验条件 IBM-PC 兼容机 Redhat9.0 或其他兼容的 Linux 操作系统 OMAP3730 开发板三、实验原理1、 linux 内核裁减编译:/见教材 6.3.2 (第一版 p126-p130,第二版 p143-p147)2、 基于 busybox 根文件系统制作:见教材 6.3.3 (第一版 p131-p136,第二版 p148-p154)3、 Ubo

2、ot 使用:参照附录一4、 内核裁剪编译参考步骤:参照附录二5、 根文件系统制作参考步骤:参照附录三6、 在开发板 OMAP3730 下运行内核参考步骤:参照附录四7、 OMAP3730 开发板:四、实验内容与实验步骤1、 内核裁减编译。2、 基于 busybox,制作根文件系统。3、 在开发板上运行自己裁减过的内核和文件系统。备注:本实验默认在 ubuntu 下进行,在其他版本的 linux 中操作基本类似。实验中用到的软件包均可在 xmu_omap3730_lib1.tar.gz 中找到。输入命令$ tar zxvf xmu_omap3730_lib1.tar.gz。注:这里的$,包括下文

3、的# 均表示一种系统用户权限,前者表示普通用户,后者表示超级用户;在 ubuntu 下可在命令前追加 sudo 命令来使用超级用户权限,在 fedora 下可输入 su命令后,按提示输入密码即可切换超级用户。一般来说普通用户能做的超级用户均有权限做。解压后可看到如下几个文件或文件夹:artatr-desktop:/workdir/omap3730/lib_1$ lsarm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2busybox-1.18.2.tar.gzfileshellolinux-03.00.01.06.tar.

4、bz2minicom-2.5.tar.gzMLOruntimelibu-boot.binxmu_omap3730_lib1.tar.gz五、实验报告要求实验报告中要包含以下几个部分:1、实验目的2、实验条件3、实验原理4、实验步骤分析5、实验结果与总结实验步骤要详细,关键步骤要有截图,运行结果也要有截图。内核配置要求列出选择的内核配置选项,并说明它的功能。说明编译出来的内核文件 uImage 大小附录一u-boot 命令简介:printenv 用来打印 u-boot 中正在使用的所有环境变量(包括未保存的) ,可不带参数setenv 用来设置一个环境变量,参数用空格隔开。例如 setenv b

5、ootdelay 2saveenv 用来保存环境变量,无参数tftp 用来从 tftp 服务器下载文件,通常用来下载内核,initrd,以及bootloader 自身。例如 tftp 31000000 uImage,即把 tftp 服务器上/arm-zznux/tftpboot/uImage 文件下载到内存的 0x31000000 地址nand 用来执行 nand flash 操作,这个命令有几个子命令nand scrub nand flash low-level clean-upnand erase 用来擦除 nand flashnand bad 用来显示 nand flash 的坏块列表n

6、and read 用来把 nand flash 上的数据读入内存nand read.jffs2 同 nand read 功能一样,差别在于会自动跳过坏块nand write 用来把内存数据写入 nand flashnand write.jffs2 同 nand write 功能一样,差别在于会自动跳过坏块使用实例:nand erase 44000 400000 擦除自 0x00044000 开始,长度是 0x00400000 字节的 nand flash 区域nand write 2000000 44000 400000 将内存地址从 0x02000000 开始长度为 0x00400000字节

7、的数据块拷贝到 nand flash 中从 0x00044000 开始的位置nand read 2000000 44000 400000 将 nand flash 中从 0x00044000 开始长度为0x00400000 字节的数据块拷贝到内存中从 0x02000000 开始的位置bootm 用来加载前面提到 u-boot 特有的 uImage 格式文件。该文件可以是 linux内核,initrd,甚至是 VxWorks 操作系统镜像。u-boot 会自动按照正确的方式处理。bootm 2000000 即是加载存放在内存地址 0x02000000 中的 uImage 文件md 用来显示内存的

8、数值,例如 md 2000000 即是显示自 0x02000000 开始的内存内容reset 用来复位开发板(如果该开发板支持)u-boot 环境变量简介:baudrate 用来设置终端的串口波特率ethaddr 用来设置网卡的 MAC 地址ipaddr 用来设置开发板 ip 地址serverip 用来设置 tftp 下载使用的服务器地址netmask 用来设置开发板的 ip 地址子网掩码bootdelay 用来设置开发板自启动读秒时间bootcmd 用来设置开发板自启动时执行的命令bootargs 用来存放通过 bootm 命令启动 linux 内核时,传递给内核的参数附录二内核裁剪编译参考

9、步骤注:以下命令的初始位置在 xmu_omap3730_lib1.tar.gz 的解压文件夹下输入一、先构建交叉编译器用到的是 arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 压缩包。/来源光盘,做法的目标1) 在/usr/local/目录下面创建文件夹 arm命令为:#mkdir /usr/local/arm2) 解压编译器到/usr/local/arm 目录下。命令为:#tar jxvf arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz

10、2 -C /usr/local/arm3) 设置环境变量命令为:#export PATH= /usr/local/arm/arm-2009q1/bin:$PATH4) 查看环境变量命令为:#echo $PATH若能看到/usr/local/arm/arm-2009q1/bin:表示添加路径成功。可输入 arm-none-linux-gnueabi-gcc v,若能看到版本号则证明安装成功。二、内核编译用到的是linux-03.00.01.06.tar.bz2 /改+概述1) 解压linux内核压缩包$ sudo tar jxvf linux-03.00.01.06.tar.bz2 $ cd l

11、inux-03.00.01.062) 配置编译清除原配置:$ make ARCH=arm distclean载入设置好的配置文件:$ make ARCH=arm omap3_stalker_defconfig/主要选项有哪些,截图在这一步,如果对内核感兴趣的同学可以输入命令make menuconfig或make xconfig来查看具体的配置信息编译内核:$ make ARCH=arm 生成所需的uImage:$ make ARCH=arm uImage 编译成功后就可以在 linux-03.00.01.06/arch/arm/boot 目录下看到生成的 uImageatrart-deskt

12、op:/workdir/omap3730$ ls linux-03.00.01.06/arch/arm/boot/bootp compressed Image install.sh Makefile uImage zImage 附录三根文件系统制作参考步骤注:以下命令的初始位置在 xmu_omap3730_lib1.tar.gz 的解压文件夹下输入配置并编译 busybox解压 busybox 压缩包:# tar zxvf busybox-1.18.2.tar.gz# cd busybox-1.18.2修改交叉编译器:/在配置中改# gedit Makefile浏览 busybox 默认配置,

13、并修改如上图 164 行所示内容,即在 CROSS_COMPILE ?=后面添加arm-none-linux-gnueabi-载入默认配置:# make defconfig/具体,详细配置放在附录这一步可输入 make menuconfig 或者 make xconfig 查看具体的配置信息,感兴趣的同学可自行尝试。如果修改了配置,可以将.config 文件保存下来,用来恢复自己的配置。附录五中有对 busybox 配置进行一个简略的介绍。编译 busybox# make# make install编译结果会存放到busybox-1.18.2/_install 目录下。复制运行时刻库到生成的文

14、件系统中# cp ar ./runtimelib _install/lib在文件系统中建立必要的目录# cd _install# mkdir root dev home sys etc etc/init.d proc tmp在相应目录中手动建立配置文件,请查看files 目录,这些文件原本需要手动编辑输入,其中在子目录init.d 中的文件rcS 需要被设置可执行属性。将这些文件复制到目的文件系统中。# cp av ././files/* etc构建根文件系统 dev 目录# cd devlinux 至少需要用到 null 设备节点# sudo mknod null c 1 3后面init 启

15、动时候inittab 配置需要设置console,保证控制台输出和命令行输入# sudo mknod console c 5 1# cd .在dev下应该能看到两个文件:atratr-desktop:/workdir/omap3730/busybox-1.18.2/_install $ ls devconsole null/将当前目录下所有文件及目录的属主和属组改为root# sudo chown -R root:root . 输入ls l,可以查看是否更改成功,上图就是更改成功了。在busybox 执行时把进程的属主或属组ID 置为该文件的文件属主# sudo chmod +s ./bin/busybox 至此,我们的文件系统已经准备好了。可以查看 busybox-1.18.2/_install 文件夹中的内容:atratr-desktop:/workdir/omap3730$ ls busybox-1.18.2/_install/bin dev etc home lib linuxrc proc root sbin sys tmp usr附录四在开发板上运行编译好的内核和文件系统注:以下命令的初始位置在 xmu_omap3730_lib1.tar.gz 的解压文件夹下输入/不使用SD卡1) 将实验用SD卡插入SD 卡读卡器,如果此时读卡器插在开发主机的US

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号