博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
qemu的安装与内核的调试初步
阅读量:4154 次
发布时间:2019-05-25

本文共 2259 字,大约阅读时间需要 7 分钟。

首先问qemu是什么?

在完成了linux3.0的编译工作之后,我们希望能对linux的内核进行调试,而qemu给我们提供了这样的环境。在网上看了一些介绍,感觉有点儿不明白,大体上说qemu是虚拟机性质的,但是虚拟机跟我们要进行的调试工作有什么关系呢?问了师兄,他的解释通俗易懂,如下:把自己编译的内核放在虚拟机上(qemu)跑,然后在物理机上对其进行调试。明白了么?我们不可能期望对运行在物理机上的内核进行调试,这是不可能的。那么我们就把它放在虚拟机上,虚拟机是可以进行操控的,这下应该明白了。要多问问有这方面 经验的人,有时候只需要人家的一句话。好了下面介绍qemu的安装。

1.下载qemu.我把我下在的qemu上传上去了,大家可以去下载。

2.解压下载得到的文件夹,进行安装。遇到的问题:

首先./configure的时候系统提示没有zlib库,这个只需要安装zlib库就行了,我把我下载得到的zlib库也上传上去了,可以搜索下载。其安装方法和其它的一样。另外网上有提示“但是注意,实践中发现在qemu-kvm的configure后还必须再把zlib makeuninstall掉,否则之后再ubuntu下面打开pdf、打开Firefox都会有问题的。”不知道是真是假,可以试一下。

在安装了zlib后,系统可能继续提示缺少glib。同样,只需要下载glib包,然后安装上去就行了。我也把我下载的glib包上传上去了。

 提示"libpci failed"——apt-get install libpci-dev即可。

  在configure列表中有“SDL support: no”——apt-get install libsdl1.2-dev。如果没有SDL,qemu-kvm安装后   启动会没有图形界面的。
注:
如果你输入qemu之后出现如下提示:
server running on `::1:5900'。。。
那说明你还是没有安装SDL模块,好吧,重新执行apt-get install libsdl1.2-dev,从新./configure,重新make, 重新make install...

3.调试内核。

搜到一篇文章http://www.groad.net/bbs/read.php?tid-3163.html,讲的很仔细。我也是按照这篇文章实践的。尚在实践中。。。

        好了,终于看到能正常调试了,在上面提到的那篇文章中有个错误,下面我要指出,不然linux会在qemu下一直不停的跑,而不会在你设置断点的地方停下来。

      (1) 找到你自己编译的内核产生的vmlinux和bzImage文件,将他们拷贝到你的工作目录下,这个目录是没有任何要求的,比如你就拷贝道/home/username/kernel下,kernel是我自己建的一个目录。之后,将 下载l得到的inux-0.2.img.bz2 文件解压后得到的linux-0.2.img文件放在相同的目录下,也就是/home/username/kernel下就行了。现在已经做完了调试内核前的所有的工作,下面就正式开始吧。

       (2)   建议cd 到kernel下,省去每次敲路径的麻烦。在/home/username/kernel目录下,向终端输入

$ qemu  -kernel bzImage -hda linux-0.2.img -append "root=/dev/hda" -S
注意,这条命令就是我说的上述引文中的错误的地方,好好看一下啊,原文中这条命令的参数-S是不在最后的,按照他的做法的话,虚拟机的CPU是听不下来的,你就不可能进行调试了。
-S 参数表示在启动时CPU 停止(见上图的标题栏中的 stopped) 并等待 GDB 连接。
-kernel bzImage 表示指定 bzImage 作为内核镜像文件。
-hda linux-0.2.img 表示 linux-0.2.img 中的文件系统都放在 hda 中。
-append "root=/dev/hda" :-append 后接命令行参数,这里表示根文件系统设备使用 hda 。
引文中给出了各个参数的意义,这里解释一下为什么是linux-0.2.img,你下载的时候一定注意到了对它的解释了
师兄还给我提供了另外一种的调试内核的方法,就是把ubuntu直接安装在虚拟机上。
首先,创建qemu格式的硬盘:
qemu-imgcreate –f qcow2 ubuntu11.04.img 5G;5G这个是根据你的ubuntu的大小来确定的,如果版本较低的话4G 就够用了
第二,在创建的硬盘上安装操作系统:
kvm –hda  ubuntu10.04.img –cdrom./ubuntu-11.04.iso  -boot d; 其中./ubuntu-11.04.iso是你的ubuntu镜像文件的存放的路径。
第三,从已经安装好的操作系统的硬盘上启动:
qemu –hda ubuntu11.04.img;
这样就完成了qemu虚拟机下安装ubuntu11.04的工作。以下的编译过程就不再赘述了。

该文章参考qemu的安装:http://zhangjun2915.blog.163.com/blog/static/3808623620103585320514/

                   qemu的调试http://www.groad.net/bbs/read.php?tid-3163.html

转载地址:http://fbgti.baihongyu.com/

你可能感兴趣的文章
PAT L1-015. 跟奥巴马一起画方块
查看>>
PAT L1-016. 查验身份证
查看>>
stl & set
查看>>
poj1004 Financial Management
查看>>
PAT L1-017. 到底有多二
查看>>
PAT L1-018. 大笨钟
查看>>
PAT L1-019. 谁先倒
查看>>
PAT L1-023. 输出GPLT
查看>>
PAT L1-024. 后天
查看>>
PAT L1-025. 正整数A+B
查看>>
poj1953 World Cup Noise [1]
查看>>
poj1953 World Cup Noise [2]
查看>>
poj1953 World Cup Noise [3]
查看>>
sql server 2012 express 安装实例
查看>>
Gym-101502A A Very Hard Question
查看>>
Gym-101502B Linear Algebra Test
查看>>
Gym-101502E The Architect Omar
查看>>
Gym-101502H Eyad and Math
查看>>
Gym-101502K Malek and Summer Semester
查看>>
Cheering Gym-101522C
查看>>