实验二 嵌入式程序的开发与根文件系统的搭建

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本科实验报告课程名称:嵌入式

实验地点:软件楼210 专业班级:物联网学号:

学生姓名:

指导教师:

实验成绩:

2016年月日

实验二嵌入式程序的开发与根文件系统的搭建

一,实验目的

二,实验内容

三,实验资源

四,实验操作

1,编译busybox

A)修改Make file

B)make menuconfig 修改编译配置选项

C)make 时遇到的问题,解决方法

a)error: ‘SYS_ioprio_ser’ undeclared (first use in this function)

b)err or: ‘UBI_DEV_NUM_AUTO’ undeclared (first use in this

function)

在busybox-1.19.4/include 下面新建mtd 文件夹,并将ubi-user.h

复制到它里面

c)e rror: ‘ARPHRD_INFINIBAND’ underclared (not in a

function)

在interface.c 中添加#define ARPHRD_INFINIBAND 32

d)err or; elements of array ‘filter_instr’ have incomplete type

e)error: ‘GFP_KERNEL’ undeclared (first use in this function)

D)make install

E)修改_install/bin/busybox 属性

为什么要修改属性

保证busybox 中命令的级别,使它们在运行时不会受限

F)查看busybox 动态库

2, 制作initrd.img

A)创建映像文件

1)fa355@fa355-desktop:~/Desktop/share/busybox-1.19.4$ mkdir

initrd

2)udo dd if=/dev/zero of=initrd.img bs=1k count=8192

3)sudo mke2fs -F -v initrd.img

4)sudo mount -o loop initrd.img initrd

5)cd initrd

B)添加busybox 到此映像文件

1)sudo cp –r ../_install/* .

C)添加动态库

1)sudo mkdir lib

2)cd lib

3)sudo cp /usr/local/arm/3.4.1/arm-linux/lib/ld* .

4)sudo cp /usr/local/arm/3.4.1/arm-linux/lib/libc-2.3.2.so .

5)sudo cp /usr/local/arm/3.4.1/arm-linux/lib/libc.so.6 .

6)sudo cp /usr/local/arm/3.4.1/arm-linux/lib/libm* .

7)sudo cp /usr/local/arm/3.4.1/arm-linux/lib/libcrypt* .

D)创建必要的目录

1)fa355@fa355-desktop:~/Desktop/share/busybox-1.19.4/initrd$ sudo

mkdir proc lib etc dev root home var tmp

2)chmod 777 tmp

3)cd dev

4)sudo mknod -m 644 console c 5 1

5)sudo mknod -m 644 null c 1 3

6)sudo mknod -m 640 ram b 1 1

7)sudo mknod -m 644 mem c 1 1

8)cd ..

E)创建脚本文件

1)sudo touch etc/inittab

2)输入内容

3)设置权限

F)交叉编译helloworld并复制到initrd/home/

/usr/local/arm/3.4.1/bin/arm-linux-gcc helloworld.c –o helloworld

G)生成initrd.img

1)cd..

2)sudo umount initrd

3, 测试initrd.img

A)执行skyeye –e vmlinux

B)Skyeye 启动后,在home目录下执行 ./helloworld

C)结果

4,利用现有initrd.img 生成所需要的根文件

如何扩充initrd.img 大小?

五,实验总结

1, 实验制作initrd.img 部分,由于对相应目录不清楚导致制作错误。

2, 测试initrd.img 时,误将程序最后执行错误当作程序错误,认为Skyeye 未成功启动,浪费大量时间,试图解决错误,最终还是未成功解决can’t access tty。

3,添加动态库时,未添加ld-2.3.2.so 导致出现找不到init 的错误。

相关文档
最新文档