调试linux内核环境搭建方法(ddd+busybox+qemu+linux3.5.4内核)

环境搭建

1.1.准备工作

(1).qemu虚拟机

(2).busybox软件

(3).linux-3.5.4内核

(4).ddd 调试工具(终端中输入 sudo apt-get install ddd 安装)

1.2.编译内核

(1)建立工作目录:mkdir -p ~/work/qemu

(2)切换到此目录:cd ~/work/qemu

(3)下载 linux内 核

(4)解压内核:tar -jxvf linux-3.5.4.tar.bz2

(5)切换到linux-3.5.4目录: cd linux-3.5.4

(6)配置编译选项:makemenuconfig

说明:可能会缺依赖包 ncurses-dev 输入:sudo  apt-get install ncurses-dev有的版本 linux 源里可能是:sudo apt-get install libncurses5-dev

编译选项选中:

kernelhacking–>kerneldebugging–> compile the kernel with debug info

kernelhacking–> compilethe kernel with frame pointers

(7) 编译:make(注意:编译完之后不要安装内核,编译的时候如果有错误,请查看是否少安装了一些编译工具)

(8)将文件bzImage 拷到上级目录:cp arch/x86/boot/bzImage  ../

1.3.安装qemu虚拟机

(1)下载 qemu 安装文件

(2) 在安装 qemu前先要安装库文件。打开终端输入 sudo apt-get install gcc  libsdl1.2-dev zlib1g-dev libasound2-devpkg-config libgnutls-dev pciutils-dev

(3)切换到 qemu的源码目录输入./configure 生成 makefile

(4) 输入 make 开始编译(如果缺 automake 包,输入 sudo apt-get install autoconf automake libtool 安装)

(5)输入 sudo make install 开始安装

1.4.制作根文件系统

(1)切换目录: cd ~/work/qemu

(2)创建大小为10M 到根文件系统: dd if=/dev/zero of=rootfs.img bs=1M count=10

(3)以 ext3 类型来格式化根文件:mkfs.ext3 rootfs.img

(4)创建rootfs 目录:mkdir rootfs

(5) 将rootfs.img 挂载到 rootfs 目录上: sudo mount -t ext3 -o loop rootfs.img rootfs

(6)切换到rootfs 目录: cd rootfs

(7)创建三个目录:mkdir dev proc sys

1.5.安装 busybox 到根文件系统

(1)下载busybox

(2)解压、切换到busybox 的源码目录,配置 busybox 编译选项:make menuconfig

a.选择静态编译:BusyboxSettings->Build options->BuildBusybox as a static binary

b.取消Networkingutilities->iptunel

c.取消Networkingutilities->inetd

(2)编译: make

(3) 把busybox 文 件 系 统 安 装 到 刚 创 建 的 根 文 件 系 统 中 : make  install CONFIG_PREFIX=~/work/qemu/rootfs

(4)切换到 qemu目录:cd  ~/work/qemu

(5)卸载根文件系统:sudo umount rootfs

1.6.验证流程

(1) 在~/work目录下编写c验证程序 test_fork.c

#include<unistd.h>

#include<sys/types.h>

int main()

{

pid_t pid;

pid=fork();

}

(2)编译c程序

gcc -c -g -statictest_fork.c

gcc -o test_fork -static test_fork.o

因为busybox是编译成了静态的,要想c程序能够在qemu虚拟机中运行,也必须编译成静态的。这样test_frok命令才能在虚拟机中运行

(3) 输入 sudo mount -t ext3 -o loop rootfs.img rootfs 命令挂载 qemu 虚拟机的根文件系统。

(4)输入 cp fork rootfs/bin 命令将 fork 考到根文件系统的 bin/文件夹下

(5)卸载根文件系统:sudo umount rootfs

(6)启动 qemu

a.打开终端输入,输入命令切换到~/work/qemu 目录:cd  ~/work/qemu

b.输入qemu-system-i386 -S -kernel bzImage -hda rootfs.img -append "root=/dev/sdainit=/bin/ash rw" -monitor stdio启动 qemu(64位计算机请将i386换成x86)

注:rw代表开启的虚拟机是可以读写的。

-monitor stdio表示将qemu中的控制台转移到终端内,就不用ctrl+alt+2进行切换

c.在控制台中输入“gdbserver tcp::1234

d.打开另外一个终端,输入命令cd  ~/work/qemu/linux-3.5.4切换到~/misc/qemu/linux-3.5.4 目录

e.运行dddvmlinux(未安装ddd的输入sudo apt-get installddd 安装)

f.在ddd的命令窗口中输入命令target remote localhost:1234将qemu虚拟机连接到ddd的控制台

g.在ddd的命令窗口输入 b do_fork在do_fork函数上加上断点

h.在ddd的命令窗口中输入让虚拟机继续执行

(7) 在qemu虚拟机终端中输入test_fork命令,这样内核就会在do_fork函数处中断了。你就可以对这个函数各种调试了。。

不懂的可以给我留言。

调试linux内核环境搭建方法(ddd+busybox+qemu+linux3.5.4内核)

时间: 2024-10-25 00:11:32

调试linux内核环境搭建方法(ddd+busybox+qemu+linux3.5.4内核)的相关文章

linux开发环境搭建(二)

1,安装arm-linux-gcc 安装方法,将安装包解压到/opt下,然后vim /.bashrc 修改一行:  export PATH = $PATH:/opt/FriendlyARM/tooschain/4.5.1/bin  ,后面是安装的路径,重 新登录系统,注销即可,然后arm-linux-  +Tab键就可以看到安装成功. 2. 安装内核树 要安装与目标板一样版本的内核树,查看内核版本方法: uname -r 将内核压缩包解压到/usr/src下,然后依次执行命令 make oldc

Ubuntu-18.04 LTS嵌入式linux开发环境搭建

Ubuntu-18.04 LTS嵌入式linux开发环境搭建 ubuntu-18.04 LTS于 2018年4月26号正式发布,很多网友早就迫不及待下载下来安装了,同时也在博客分享了自己的安装体验,分desktop和server的文章,写得稍微简单了一些.本人这几个月一直在忙嵌入式AI ARM+VPU平台设计,没有及时去体验ubuntu-18.04 LTS,不过本人也得跟上步伐,因为本公司去年开发的DM8127平台最新版本的SDK3.9.1需要用到64bit虚拟机,正在玩的Intel Movid

嵌入式linux开发环境搭建(三)——TFTP服务器的搭建

嵌入式linux开发环境搭建(三)--TFTP服务器的搭建 系统环境:Ubuntu 14.04 server amd64 1.软件安装 apt-get install tftpd tftp openbsd-inetd 2.查看修改配置文件vim /etc/inetd.conf tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp /srv/tftp为Tftp服务器根目录,可以修改为/home/tftp 3.创

〖Linux〗PPTP_VPN 搭建方法

PPTP pptp还是比较老牌了,它是基于七层网络模型中的第二层,稳稳的 接下来介绍pptp vpn搭建和连接的方法,一般我使用它是为了打通各个网段(通常是持续集成环境上) 搭建步骤 Server 安装依赖包 依赖很少,就一个pptpd sudo apt-get install pptpd 配置ppp分配的ip地址 sudo vi /etc/pptpd.conf # 修改配置 localip 10.1.0.1 remoteip 10.1.0.100-200 配置帐户密码 sudo vi /etc

HHvm Apache 2.4 Nginx建站环境搭建方法安装运行WordPress博客

HHvm Apache 2.4 Nginx建站环境搭建方法安装运行WordPress博客 VPS主机   2014年06月02日 17:20 评论» 文章目录 Debian上安装 CentOS上安装 Ubuntu上安装 装Wordpress HHvm安装小结 HHVM是一个强大的可以用于替代PHP的建站环境,出自Facebook团队,它是一个PHP的JIT(Just-In- Time)编译器,同时具有产生快速代码和即时编译的优点.实践证明HHVM可以明显地提升PHP执行速度,节省大量的服务器资源

Linux开发环境搭建与使用——Linux必备软件之SSH

SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议. SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议.常用于远程登录,以及用户之间进行资料拷贝. 利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题.SSH 最初是 UNIX 系统上的一个程序,后来又迅速扩展到其他操作平台.SSH 在正确使用时可弥补网络中的漏洞.SSH 客户端适用于多种平台.几乎

嵌入式Linux开发环境搭建

一.制作u-boot.bin文件: tar xjf u-boot-1.1.6.tar.bz2 cd u-boot-1.1.6 patch -p1 < ../u-boot-1.1.6_jz2440.patch make 100ask24x0_config make 二.制作适用于4.3寸屏幕的uImage文件: tar xjf linux-2.6.22.6.tar.bz2 cd linux-2.6.22.6 patch -p1 < ../linux-2.6.22.6_jz2440.patch m

HHvm建站环境搭建方法:Nginx,Mariadb,hhvm及lnmp/lamp安装部署 | 免费资源部落

HHvm建站环境搭建方法:Nginx,Mariadb,hhvm及lnmp/lamp安装部署 | 免费资源部落 nginx对redis取数据的不同方式 - 守望

嵌入式linux开发环境搭建(四)——Samba服务器的搭建

嵌入式linux开发环境搭建(四)--Samba服务器的搭建 linux系统:ubuntu Server 12.04 安装流程如下: 1.安装 sudo apt-get install samba samba-common 2.修改配置文件/etc/samba/smb.conf [samba] comment = Samba Server browseable = yes path = /home/samba printable = no writable = yes write list =