资源描述
构建嵌入式Linux系统实验报告学生姓名:刘涛学 号:B12040909专业班级:NIIT9班指导教师:孙国梓完成时间:2015.5.8实验2构建嵌入式Linux系统一. 实验目的理解嵌入式Linux内核和文件系统构建过程,掌握Linux内核裁剪、编译等过程,掌 握基于busybox构建嵌入式文件系统命令工具等内容,并利用相关工具制作文件系统。二. 实验内容实验2.1配置和编译UBOOT实验2.2裁剪和编译内核实验2.3制作文件系统三. 预备知识Linux使用等四. 实验设备及工具(包括软件调试工具)硬件:ARM嵌入式开发平台、PC机Pentium100以上、串口线。软件: WinXP或UBUNTU开发环境。五. 实验步骤5.1 UBOOT配置及编译步骤【参看04- Tiny6410 Linux开发指南.pdf文档1.5.1节】:第一步,解压缩 uboot 源码,命令ar zxvf u-boot-mini6410-20111018.tar.gz,在解压后的 文件夹下,可以看到Makefile文件,是整个uboot源码包编译的总Makefile,负责整个uboot 的裁剪、编译等过程。第二步,实验设备使用128M内存,处理器采用S3C6410,生成配置文件命令为#cd /opt/FriendlyARM/ /u-boot-mini6410#make mini6410_nand_config-ram128。第三步,编译U BOOT命令为#make,编译完成后生成uboot.bin,该文件存储在 /opt/FriendlyARM/ /u-boot-mini6410 目录下。5.2内核裁剪及编译步骤【参看04- Tiny6410 Linux开发指南.pdf文档1.6.1节】:第一步,解压缩Linux内核源码,命令,在解 压缩后的文件夹下,可以看到Makefile文件,是整个Linux内核源码包编译的总Makefile,负责整个 Linux内核的裁剪和编译工作。第二步,内核源码裁剪cp config_linux_mini6410 .configmake cleanmake zlmage方式1:通常情况下linux根目录下有个.config文件,该文件是宏文件,每个宏和一定的源码文 件关联,如果注释掉相应宏,则对应源码将不会被编译进linux内核映像文件中。实验1-打开该文件可以选择注释掉部分宏,如CONFIG_NET=y,重新编译会发现内核文件 zImage大小为 3.1MB 字节,或者到net目录下发现所有的c文件_B_(A.被编译B.未被编译)。实验2-重新打开.config文件,取消注释宏CONFIG_NET=y,重新编译会发现内核文件zImage 大小为 3.6MB 字节,或者到net目录下发现所有的c文件_A_(A.被编译B.未被编译),且net目录下的所有被编译后的目标文件被连接成一个目标文彳 build-in.o。方式2:在shell环境下,进入内核源码顶层目录,执行命令make menuconfig命令,进入图形 环境下裁剪Linux内核。找到“网络支持选项”,按空格键取消选择,并保存退出,重新打开.config 文件,发现宏CONFIG_NET是否被定义_B_(A.被定义 B.被注释),重新编译会发现内核文件 zImage大小为 3.6MB 字节,或者到net目录下发现所有的c文件_A_(A.被编译B.未被编译)。第二步,编译内核,命令为_make zImage,编译完成后生成zImage,该文件存储在 opt/FriendlyARM/linux-2.6.3&arch/arm/boot _目录下。5.3内核添加自己代码的方式本例以添加一个RC4加密算法为例来进行第一步,找到内核源码存放加密算法的文件夹,位于 opt/FriendlyARM/linux-2.6.3&crypto_目录第二步,在该目录下编写代码rc4.c文件,文件仅简单包含如下内容#include void rc4ENCrypt()printk(THIS IS A SIMPLE TEST,NO USEn);return;第二步,打开该文件夹下Kconfig文件,添加如下代码【红色加粗斜体部分】if CRYPTOcomment Crypto core or helperconfig RC4ENCRYPTbool RC4 ENCRYPT SUPORThelpthis is a simple test ,no use第四步,执行make menuconfig,在其中找到RC4 ENCRYPTSUPORT”选项,并选中,退出配置, 在.config 文件中,A (A.有 B.没有)宏 CONFIG_RC4ENCRYPT。第五步,打开crypt目录下的Makefile文件,添加如下代码【红色加粗斜体部分】obj-$(CONFIG_CRYPTO_WORKQUEUE) += crypto_wq.oobj-$(CONFIG_CRYPTO_FIPS) += fips.oobj-$(CONFIG_RC4ENCRYPT) +=rc4.o第六步,编译内核,并查看crypt目录下 A (A.有 B.没有)rc4.o文件5.4文件系统构建步骤【参看04- Tiny6410 Linux开发指南.pdf文档1.71.8节】第一步,解压缩 busybox,命令为,解压缩完 成后,可以看到在目录下有Makefile文件和.config文件,Makefile文件负责编译,具体编译哪些文 件依据.config文件。打开fa.config文件,查看其中宏。第二步,裁剪命令,执行命令 makemenuconfig,去除其中部分选项,保存退出,查看.config文件,可以看到相应宏定义也发生变化了。第三步,编译文件,命令为_make_,安装到相应的文件夹,命令为 make install,到对应的文件夹下查看生成的命令文件。第四步,创建配置文件,将busybox源码目录下的etc文件夹拷贝到刚才的文件夹下第五步,拷贝已经移植好的lib到刚才的文件夹下第六步,创建文件夹dev proc tmp等,第七步,利用工具将文件夹制作成根文件系统,命令为_。5.4按照文档【03-Tiny6410刷机指南.pdf中2.2.1】进行烧写
展开阅读全文