本文共 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/