. Outline 编译 Linux 在 QEMU 模拟器上运行制作带 grub 启动的磁盘映像...1 编译 Linux 在 QEMU 模拟器上运行...2 制作带 grub 启动的磁盘映像

Similar documents
Outline 制作带 grub 启动的磁盘映像 利用 qemu+gdb 来调试 linux

<4D F736F F D20C7B6C8EBCABD6C696E7578BBF9B4A1CAB5D1E92E646F63>

Abstract arm linux tool-chain root NET-Start! 2

Microsoft Word - 在VMWare-5.5+RedHat-9下建立本机QTopia-2.1.1虚拟平台a.doc

Outline 1 SkyEye 简介 2 SkyEye 的安装 SkyEye 的安装下载 skyeye 源代码, 编译并安装 3 在 Linux 的根文件系统中添加 hello 在 Linux 的根文件系统中添加 hello 4 命令行安装 skyeye 添加 hello 到 uclinux 的根

提纲. 1 实验准备. 2 从实模式进入保护模式. 3 小结 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, / 11

untitled

linux 2.6内核移植_for at91rm9200_归档.doc

2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A. Sun Sun Berkeley BSD University of California UNIX X/Open Company, Ltd.

Microsoft Word - S3c6410移植过程.doc

华恒家庭网关方案

一 Grass 是 什 么 1 简 介 GRASS (Geographic Resources Analysis Support System, 地 理 资 源 分 析 支 持 系 统 ) 是 最 负 盛 名 的 开 源 地 理 信 息 系 统 (GIS) 以 下 是 它 的 一 些 特 点 : 1

接著以 'fdisk' 對 vmhd 做 partition 分割 $ fdisk -C u vmhd Command (m for help): n Command action e extended p primary partition (1-4) p Partition numb

Windows 2000 Server for T100


Red Flag Linux Desktop 4.0 Red Flag Linux Desktop 4.0 1

公務員懲戒法實務及新制

大小通吃-糖尿病


98825 (Project Sunshine) Chi_TC_.indb

(Microsoft Word - outline for Genesis 9\243\2721\243\25529.doc)

穨Shuk-final.PDF

2

招行2002年半年度报告全文.PDF

Microsoft Word _4

郑州大学(下).doc

厨房小知识(六)

广 东 纺 织 职 业 技 术 学 院 发 展 党 员 公 示 制 实 施 办 法 关 于 推 荐 优 秀 团 员 作 为 党 的 发 展 对 象 工 作 的 意 见 后 勤 管 理 工 作 广 东 纺 织 职 业 技 术 学 院 新 引 进 教 职 工 周 转 房 管 理


游戏攻略大全(五十).doc

金融英语证书考试大纲


健康知识(二)

中南财经大学(二).doc

广西大学(一).doc

根据学校教学工作安排,2011年9月19日正式开课,也是我校迁址蓬莱的第一学期开学

山东大学(一).doc

2

主 编 : 杨 林 副 主 编 : 张 新 民 邹 兰 曹 纯 纯 周 秋 婷 李 雅 清 黄 囡 囡 评 审 顾 问 : 杨 林 张 新 民 评 审 : 张 新 民 邹 兰 曹 纯 纯 周 秋 婷 李 雅 清 黄 囡 囡 李 忆 萍 徐 如 雪 文 字 编 辑 : 曹 纯 纯 邹 兰 李 雅 清

最新文物管理执法全书(十四).doc

园林常识(二).doc

前 言 二 一 六 年 四 月 四 日, 兒 童 節, 誕 生 了 一 件 美 事 : 中 國 作 家 曹 文 軒 在 意 大 利 博 洛 尼 亞 國 際 童 書 展 榮 獲 國 際 安 徒 生 文 學 獎, 是 該 獎 創 設 六 十 年 來, 第 一 位 摘 桂 的 中 國 作 家, 意 義 重

湖 南 科 技 大 学

上海外国语大学(二).doc

2009 陳 敦 德

切 实 加 强 职 业 院 校 学 生 实 践 能 力 和 职 业 技 能 的 培 养 周 济 在 职 业 教 育 实 训 基 地 建 设 工 作 会 议 上 的 讲 话 深 化 教 育 教 学 改 革 推 进 体 制 机 制 创 新 全 面 提 高 高 等 职 业 教 育 质 量 在

鸽子(三)

兽药基础知识(四)

园林植物卷(十).doc

园林植物卷(十七).doc

临床手术应用(三)

家装知识(二十)

医疗知识小百科

家庭万事通(一)

家装知识(三)

园林绿化(一)

园林植物卷(十五).doc

最新监察执法全书(一百五十).doc

兽药基础知识(三)

奥运档案(四).doc

最新监察执法全书(五十).doc

最新执法工作手册(三百八十四)

中华美食大全4

动物杂谈_二_.doc

抗非典英雄赞歌(三)

新时期共青团工作实务全书(三十五)

经济法法律法规第十九卷

游戏攻略大全(五十九).doc

火灾安全实例

兽药基础知识(七)

实用玉米技术(二)

中国政法大学(一).doc

水产知识(一)

國立中山大學學位論文典藏.PDF

Microsoft Word mpc-min-chi.doc

( ) 1

穨cwht.PDF

900502_Oasis.indb

bnb.PDF

untitled

Microsoft Word - om388-rnt _excl Items 16 & 38_ _final_for uploading_.doc

% 25% (i) 95% 96,290,900 (ii) 99.9% 17,196,000 (iii) 99.9% 89,663,100 2

¨Æ·~½g¡ã¾·~¤ÀÃþ

游戏攻略大全(五十二).doc

游戏攻略大全(五十一).doc

Cygwin Cygwin windows Linux Cygwin.dll Windows Linux API Linux Windows Linux 2

09 Linux Linux Linux Linux 009.indd /9/4 下午 12:11:10

自由軟體教學平台

自由軟體教學平台

Linux服务器构建与运维管理

Windows 2000 Server for T100

自由軟體教學平台

ebook62-1

, 即 使 是 在 昏 暗 的 灯 光 下, 她 仍 然 可 以 那 么 耀 眼 我 没 有 地 方 去, 你 会 带 着 我 么 杜 晗 像 是 在 嘲 笑 一 般, 嘴 角 的 一 抹 冷 笑 有 着 不 适 合 这 个 年 龄 的 冷 酷 和 无 情, 看 着 江 华 的 眼 神 毫 无 温

Pchome

Outline 1 课程的意义 组成和目标 2 Text & Reference book 3 成绩评定方法和高分攻略 4 联系方式 陈香兰 ( 苏州研究院中国科学技术大学 November

考 試 日 期 :2016/04/24 教 室 名 稱 :602 電 腦 教 室 考 試 時 間 :09: 二 技 企 管 一 胡 宗 兒 中 文 輸 入 四 技 企 四 甲 林 姿 瑄 中 文 輸 入 二 技 企 管 一

untitled

1

bnb.PDF

Transcription:

.... 计算机应用教研室 @ 计算机学院嵌入式系统实验室 @ 苏州研究院中国科学技术大学 Fall 2010

. Outline 编译 Linux 在 QEMU 模拟器上运行制作带 grub 启动的磁盘映像...1 编译 Linux 在 QEMU 模拟器上运行...2 制作带 grub 启动的磁盘映像

. 编译 Linux 在 QEMU 模拟器上运行 qemu+linux-2.6.26.1. 准备模拟器.2. 编译 Linux 内核..3. 准备根文件系统

. 1 准备模拟器 qemu..1 sudo apt-get install qemu..2 有的源中不带 qemu, 则需要自己编译获得 qemu 源代码 qemu-0.12.3.tar.gz, 并解压缩配置 编译, 并安装到指定的目录下./configure prefix=path TO YOUR QEMU INSTALL DIR target-list=i386-softmmu make su -c make install 编译安装完成之后, 如何使用 qemu? 可以通过指定路径的方式使用 qemu, 此时 qemu 在安装目录下的 bin 目录中可以将安装目录 /bin 加入到 PATH 环境变量中, 此时可以在任何目录下直接使用 qemu

. 编译 Linux 内核 I 获得 linux-2.6.26.tar.gz, 解压缩得到目录 linux-2.6.26, 不妨称之为 Linux 源代码根目录 ( 以下简称源码根目录 ) tar -zvxf linux-2.6.26.tar.gz 进入源代码根目录 可以使用 make help 得到一些编译内核的帮助信息 我们采用 i386 的缺省编译 make i386 defconfig 可以观察一下编译过程中的输出信息, 特别是编译最后阶段的输出信息

. 准备好一个简单的根目录和应用程序 I 准备一个应用程序例如一个 helloworld 输出循环, 使用静态链接的方法编译成一个可执行文件, 命名为 init gcc -static -o init xxx.c 建立目标根目录映像 dd if=/dev/zero of=myinitrd4m.img bs=4096 count=1024 mke2fs myinitrd4m.img mkdir rootfs sudo mount -o loop myinitrd4m.img rootfs 将 init 拷贝到目标根目录下 (linux 启动后期会在根目录中寻找一个应用程序来运行, 在根目录下提供 init 是一种可选方案 ) cp init rootfs/

. 准备好一个简单的根目录和应用程序 II 准备 dev 目录 sudo mkdir rootfs/dev linux 启动过程中会启用 console 设备 sudo mknod rootfs/dev/console c 5 1 另外需要提供一个 linux 根设备, 我们使用 ram sudo mknod rootfs/dev/ram b 1 0 sudo umount rootfs 至此, 一个包含简单应用程序的根目录映像 myinitrd4m.img 就准备好了

. 运行 编译 Linux 在 QEMU 模拟器上运行制作带 grub 启动的磁盘映像 qemu -kernel PATH TO linux-2.6.26/arch/x86/boot/bzimage -initrd myinitrd4m.img -append root=/dev/ram init=/init 可以看到系统能够启动, 并且在启动后看到 init 的输出结果

. 也可以利用 busybox 建立根文件系统 I 下载 busybox 的源代码, 解压缩 make help 可以得到一些编译 busybox 的帮助信息 我们在缺省编译的基础上, 稍作修改 make defconfig make menuconfig 修改如下配置 : make enable:busybox settings > build options > build busybox as a static binary(no share libs) enable:busybox settings > installation options > dont use /usr 准备根目录映像, 并安装 busybox 到根目录映像中 我们使用前面生成的 myinitrd4m.img sudo mount -o loop myinitrd4m.img rootfs

. 也可以利用 busybox 建立根文件系统 II 运行 在 busybox 目录下 sudo make CONFIG PREFIX=PATH TO rootfs/ install sudo umount rootfs qemu -kernel PATH TO linux-2.6.26/arch/x86/boot/bzimage -initrd myinitrd4m.img -append root=/dev/ram init=/bin/ash 此时可以进入 busybox 提供的 shell 环境

. 在 busybox 的 shell 中运行 helloworld 提供一个 helloworld 程序, 静态编译成 hello gcc -static -o hello xxx.c sudo mount -o loop myinitrd4m.img rootfs sudo cp hello rootfs sudo umount rootfs 运行 qemu -kernel PATH TO linux-2.6.26/arch/x86/boot/bzimage -initrd myinitrd4m.img -append root=/dev/ram init=/bin/ash 进入 shell 后, 运行./hello

. 制作带 grub 启动的磁盘映像..1 获得 grub..2 制作 grub 启动软盘..3 准备磁盘映像..4 将磁盘映像升级为带 grub 启动的

. 获得 grub, 并制作 grub 启动软盘 下载 grub-0.97-i386-pc.tar.gz, 解压缩 查看解压缩得到的目录 建立软盘映像 dd if=/dev/zero of=a.img bs=512 count=2880 添加 grub 启动功能 sudo losetup /dev/loop3 a.img sudo dd if=./grub-0.97-i386-pc/boot/grub/stage1 of=/dev/loop3 bs=512 count=1 sudo dd if=./grub-0.97-i386-pc/boot/grub/stage2 of=/dev/loop3 bs=512 seek=1 sudo losetup -d /dev/loop3 测试是否能进入 grub 界面 qemu -fda a.img

. 准备磁盘映像, 并制作带 grub 启动的磁盘映像 I 准备磁盘映像 dd if=/dev/zero of=32m.img bs=4096 count=8192 sudo losetup /dev/loop3 32M.img 在磁盘映像上建立一个活动分区 sudo fdisk /dev/loop3 sudo losetup -d /dev/loop3 将活动分区格式化成 ext2fs, 并 mount 到 rootfs 目录上 sudo losetup -o 32256 /dev/loop3 32M.img 其中,32256 是分区的起始位置, 为 63 512 其中,63 是通过 file 32M.img 得到的 startsector 信息 sudo mke2fs /dev/loop3 sudo mount /dev/loop3 rootfs 将前面制作的 bzimage 和 myinitrd4m.img 拷贝到 rootfs 中 增加 grub 功能

. 准备磁盘映像, 并制作带 grub 启动的磁盘映像 II 准备相关目录, 并拷贝一些必要的文件 sudo mkdir rootfs/boot sudo mkdir rootfs/boot/grub sudo cp./grub-0.97-i386-pc/boot/grub/* rootfs/boot/grub 在 rootfs/boot/grub 中编写 menu.lst, 具有如下内容 default 0 timeout 30 title linux on 32M.img root (hd0,0) kernel (hd0,0)/bzimage root=/dev/ram init=/bin/ash initrd (hd0,0)/myinitrd4m.img 利用 grub 启动软盘, 在硬盘映像上添加 grub 功能 qemu -boot a -fda a.img -hda 32M.img

. 准备磁盘映像, 并制作带 grub 启动的磁盘映像 III 进入 grub 界面后 root (hd0,0) setup (hd0) 测试从磁盘启动进入 grub 界面 qemu -hda 32M.img

. Thanks!..... The end.