- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
熟练掌握Linux系统调试环境
Build Run Linux System
Based on VMwareUbuntu10.04
linux-3.2.1
中国科学技术大学软件学院
孟宁
mengning@
2012年01月
Agenda
♦ 编译Linux在QEMU模拟器上运行
– 1. 准备模拟器
– 2. 编译Linux内核
– 3. 准备根文件系统
– 4. 运行
♦ 制作完整的PC-Linux系统
♦ 构建Linux内核的gdb调试环境
准备模拟器qemu
♦ 1. sudo apt-get install qemu
– 这个源/ubuntu/有qemu
♦ 2. 有的源中不带qemu,则需要自己编译(未实际
验证)
– 获得qemu源代码/download/qemu-
1.0.tar.gz,并解压缩配置、编译,并安装到指定的目录下
– ./configure --prefix=/usr/bin --target-list=i386-softmmu
– make
– su -c “make install”
♦ 编译安装完成之后,如何使用qemu?
– 可以通过指定路径的方式使用qemu,此时qemu在安装目录下的bin
目录中
– 可以将安装目录/bin加入到PATH环境变量中,此时可以在任何目
录下直接使用qemu
编译Linux内核
♦ 获得/pub/linux/kernel/vx.y/linux-
x.y.z.tar.gz,解压缩得到目录linux-x.y.z,不妨称之为
Linux源代码根目录(以下简称源码根目录)
– tar -zvxf linux-3.2.1.tar.gz (以3.2.1版本为例)
♦ 进入源代码根目录
♦ 可以使用make help得到一些编译内核的帮助信息
♦ 我们采用i386的缺省编译
– make i386_defconfig
– make
♦ 可以观察一下编译过程中的输出信息,特别是编译最后阶
段的输出信息。
准备根文件系统(方法一)
♦ 1)建立目标根目录映像
– dd if=/dev/zero of=myinitrd4M.img bs=4096
count=1024
– mkfs.ext3 myinitrd4M.img
– mkdir rootfs
– sudo mount -o loop myinitrd4M.img rootfs
准备根文件系统(方法一)
♦ 2)准备一个helloworld应用程序,使用静态链接
的方法编译成可执行文件,命名为init,并将init拷
贝到目标根目录下
– (linux启动后期会在根目录中寻找一个应用程序来运
行,在根目录下提供init是一种可选方案)
– gcc -static -o init helloworld.c
– cp init rootfs/ #includestdio.h
int main()
{
printf(hellworld!\n);
}
准备根文件系统(方法一)
♦ 3)准备dev目录
– sudo mkdir rootfs/dev
– linux启动过程中会启用console设备
• sudo mknod rootfs/dev/console c
文档评论(0)