您的位置:首页 > 运维架构 > Linux

Linux内核调试之:ddd+qemu+busybox环境配置

2013-11-22 15:14 483 查看
最近由于课程需要,对于Linux内核下ddd+qemu+busybox调试环境进行了配置。期间参考了不少的网上资料,如下:
http://leave001.blog.163.com/blog/static/162691293201243110252209/
http://babybandf.blog.163.com/blog/static/61993532011110103317728/
http://www.kgdb.info/kgdb/use_kgdb/using_kgdb_base_qemu/
最后在几经折腾之下,终于完成了正确的配置,所以写篇blog来记录下。(ps:编译内核好费时间。)

所需软件(qemu和busybox)下载地址:http://down.51cto.com/data/1020102

一、环境搭建1.编译内核打开终端输入如下命令 mkdir -p ~/misc/qemu cd ~/misc/qemu wgethttp://www.kernel.org/pub/linux/kernel/v3.0/linux-3.5.4.tar.bz2 tar xvfj linux-3.5.4.tar.bz2 cd linux-3.5.4 make defconfig make menuconfig(选中 kernelhacking –> kernel debugging –> compile the kernel with debug info kernelhacking –> compile the kernel with frame pointers) make cparch/x86/boot/bzImage ..2.安装qemu1)去群共享下载qemu安装文件2)在安装qemu前先要安装库文件。打开终端输入sudo apt-get install gcc libsdl1.2-dev zlib1g-devlibasound2-dev pkg-config libgnutls-dev pciutils-dev3)切换到qemu的源码目录输入./configure生成makefile4)输入make开始编译(如果缺automake包,输入sudo apt-get install autoconf automake libtool安装)5)输入sudo make install开始安装
3.制作根文件系统,打开终端输入以下命令 cd ~/misc/qemu dd if=/dev/zero of=rootfs.img bs=1M count=10 创建大小为1M到根文件系统 mkfs.ext3 rootfs.img 以ext3类型来格式化 mkdir rootfs sudo mount -t ext3 -o loop rootfs.img rootfs将其mount 到新创建到目录上 cd rootfs mkdir dev proc sys 创建三个目录4.安装busybox到根文件系统1)打开终端切换到busybox的源码目录,输入命令make menuconfig配置编译选项a)选择静态编译:BusyboxSettings->Build options->Build Busybox as a static binaryb)取消选择Networkingutilities->iptunelc)取消选择Networkingutilities->inetd2)输入make开始编译3)输入命令make installCONFIG_PREFIX=~/misc/qemu/rootfs把busybox文件系统安装到根文件系统中4)输入cd ~/misc/qemu切换到qemu目录5)输入命令sudo umount rootfs卸载根文件系统二、验证流程 1启动qemu1)打开终端输入,输入命令cd ~/misc/qemu切换到~/misc/qemu目录2)输入qemu-system-i386 -S -kernel bzImage -hdarootfs.img -append "root=/dev/sda init=/bin/ash"启动qemu3)用鼠标点击qemu窗口,然后ctrl+alt+2切换到控制台,输入“gdbservertcp::12344)打开另外一个终端。输入命令cd ~/misc/qemu/linux-3.5.4切换到~/misc/qemu/linux-3.5.4目录5)运行 dddvmlinux(未安装ddd的输入sudo apt-get install ddd安装)6)在gdb的命令行中输入命令target remote localhost:1234将qemu虚拟机连接到ddd的控制台自此就可以通过ddd的控制台用gdb的命令来查看源码的运行信息了。大家也可以将自己需要测试的程序编译好考到根文件系统中运行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息