1、可在SkyEye上运行u CLinux以及u C/OS-II等多种嵌入式操作系统和各种系统软件,并可对它们进行源码级的分析和测试。 SkyEye是一个指令级模拟器,可以模拟多种嵌入式开发板,可支持多种CPU指令集,在SkyEye上运行的操作系统意识不到它是在一个虚拟的环境中运行,而且开发人员可以通过SkyEye调试操作系统和系统软件。于SkyEye的目标不是验证硬件逻辑,而是协助开发,调试和学习系统软件,所以在实现上SkyEye与真实的硬件环境相比还是有一定差别的。 编译ARM-Linux内核,熟悉ARM-Linux的移植过程。编译成功后,同学们需要将ARM内核在SkyEye的ARM硬件模拟环
2、境运行测试。具体步骤见后文。 三、主要仪器设备 硬件: a. PC机 软件: a. VMware b. Ubuntu c. _ d. e. f. g. _ h. g+-_ i. _ j. _ k. libstdc+_ 四、操作方法与实验步骤 1. 安装虚拟机VMware 2. 安装ubuntu10 A.可以选用Typical Install方式建立ubuntu B.安装VMTool C.设置host computer共享的目录 3. 安装使用版本编译器 A.在安装之前先看看的gcc是哪个版本 B.下载相关文件 a. _ b. g+-_ c. _ d. _ e. libstdc+_ 执行命令su
3、do dpkg -i *.deb就可以安装好 C.设置默认gcc版本update ls /usr/bin/gcc* sudo update-alternatives -install /usr/bin/gcc gcc /usr/bin/ 40 sudo update-alternatives -install /usr/bin/gcc gcc /usr/bin/gcc-4.? 20 update-alternatives -config gcc update-alternatives -install /usr/bin/g+ g+ /usr/bin/g+- 40 4. 安装SKyeye a.
4、键入tar -xzvf _ 解压 b. 依次键入cd _REL回车,./configure回车,make 回车,sudo make install 回车 5. 测试Skyeye a. 键入tar -xvjf 回车 b. 键入 cd /linux/s3c2410/回车 c. 键入skyeye -e vmlinux回车 6. 安装交叉编译环境 a. 键入tar -xvjf 回车 b. 记住arm-gcc的目录,即/usr/local/arm/bin 7. 编译内核 a. 键入tar -xzvf 回车 b. 键入 cd 回车 c. 键入vi Makefile 回车 修改Makefile: ARCH?
5、=$(SUBARCH) CROSS_COMPILE ?= ARCH?=arm CROSS_COMPILE ?=/usr/local/bin/arm-linux- d. 生成默认的内核配置文件,键入cp arch/arm/configs/smdk2410_defconfig .回车,继续键入 sodu make smdk2410_defconfig回车 改为: e. 参照/Linux 修改内核文件 修改include/asm-arm/arch-s3c2410/ #define S3C2410_CS6(0x30000000) 改为: #define S3C2410_CS6(0xC0000000)
6、键入vi include/asm-arm/arch-s3c2410/ 修改include/asm-arm/arch-s3c2410/ #define PHYS_OFFSET(0x30000000UL) 改为: #define PHYS_OFFSET(0xC0000000UL) 键入vi include/asm-arm/arch-s3c2410/ f. 裁剪/定制内核 1) 键入sodu make menuconfig回车 2) 设置内核启动参数 Boot option-Default kernel command string: mem=32M console=ttySAC0 root=/de
7、v/ram initrd=0xc0800000,0x00800000ramdisk_size=8192rw 3) 设置initrd的支持 Device Drivers-Block devices- *RAM disk support (4096)Default RAM disk size (kbytes)改为:8192 *Initial RAM disk (initrd) support 4) 设置ROM file system 的支持 File system-*ROM file system support 5) 设置ext2的支持 File system-*Second extended
8、fs suppord g. 编译,键入make 键编译完成后会有vmlinux在当前目录下,这就是我们要的arm-linux内核了 h. 验证 ? 将/linux/s3c2410/中的skyeye.conf和复制到目录中 ? 键入skyeye -e vmlinux 出现了ARMLinux字样说明成功! 五、实验结果与分析 六、讨论、心得 通过本次实验完成了内核的编译,这次实验没有什么太大的难度,只要按照实验指导书的步骤并且细心的话,实验是很快就可以完成的。 嵌入式程序的开发与根文件系统的搭建 一、实验目的和要求 1熟悉利用busybox建立ARM-Linux根文件系统 2熟悉修改现有根文件系统
9、的方法 3熟悉利用交叉编译环境编译简单的C 语言程序 4将自己写好的C 语言程序,进行交叉编译,写入根文件系统,并在实验一中搭建的虚拟环境中运行,显示正确的结果 5回答后面遇到的4个问题 二、实验内容和原理 根文件系统就是一种目录结构,根文件系统就是要包括Linux 启动时所必须的目录和关键性的文件,例如Linux 启动时都需要有init目录下的相关文件,在Linux 挂载分区时Linux一定会找/etc/fstab 这个挂载文件等,根文件系统中还包括了许多的应用程序bin 目录等,任何包括这些Linux系统启动所必须的文件都可以成为根文件系统。 利用BusyBox搭建根文件系统。BusyBo
10、x 是一个集成了一百多个最常用linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例如grep、find、mount以及telnet。这样的集合可以替代大部分常用工具比如的GNU fileutils , shellutils等工具,BusyBox提供了一个比较完善的环境,可以适用于任何小的或嵌入式系统。 将自己编译的程序保存到根文件系统中的目录下,就可以在嵌入式虚拟环境中运行。 a. 实验一搭建好的嵌入式虚拟平台 b. c. 四、操作方法与实验步骤 1. 编译busybox a. 修改Makefile中的arch和编
11、译工具链头为: ARCH?=/usr/local/bin/arm-linux- b. make menuconfig 修改编译配置选项 选择动态编译busybox Busybox Setting- build option- Build BusyBox as a static binary (no shared libs) * Build shared libbusybox * Produce a binary for each applet, linked against libbusybox * Produce additional busybox binary linked agains
12、t libbusybox Build with Large File Support (for accessing files 2 GB) General Configuration- * Dont use /usr installation option- Applets links (as soft-links) - (./_install) BusyBox installation prefix c. 键入make d. 编译键入make install e. 修改busybox的属性 键入chmod 4755 ./_install/bin/busybox 注意:必须要修改属性,否则在b
13、usybox中很多命令会受限制:比如: $su su:must be suid to work properly f. 查看busybox需要的动态库 2. 制作 a. 创建映像文件并挂到 initrd 目录 ? 键入mkdir initrd ? 键入dd if=/dev/zero of= bs=1k count=8192 ? 键入mke2fs -F -v ? 键入mount -o loop initrd b. 将添加 busybox 到此映像文件 ? 键入cd initrd ? 键入cp -r ./_install/* . c. 拷贝busybox 需要的动态库arm-linux/lib ? mkdir proc lib etc dev root home var tmp ? 键入cp /usr/local/arm/arm-linux/lib/ld* lib ? 键入cp /usr/local/arm/arm-linux/lib/ lib ? 键入cp /usr/local/arm/arm-linux/lib/libm * lib ? 键入cp /usr/local/arm/arm-linux/lib/libcrypt* lib d. 建立必要的文件 ? 键入chmod 777 tmp ? 建立设备文件,键入cd de
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1