内容:掌握Linux系统的构建和调试方法
环境:ubuntu 12.04 学号:sa***199
1.qemu(相当于window底下的umware)
qemu是唯一可以模拟各种CPU的虚拟机软件,包括x86,arm,mips,powerpc,sparc等主流的CPU。qemu是在linux中开发出来的,但也支持windows。当前在linux中主要跟kvm配合来管理linux内核上运行的虚拟机。windows版本的qemu运行效率不如vmware,但是可以模拟出来多种嵌入式平台,是嵌入式软件开发的最佳模拟器。
下面我们下载和准备qemu:
下面我们下载和准备qemu:
linux版本的源代码:
http://free-linux.org/upload/qemu/qemu-1.0.1.tar.gz
下载之后,依次执行命令,解压安装到哪个文件夹由自己来决定。
tar zxvf qemu-1.0.tar.gz
sudo mkdir /opt/qemu_bin // 在根目录下面生成一个文件夹
cd qemu-1.0
./configure --prefix=/opt/qemu_bin --target-list=x86_32-softmmu
我的系统是32的,这里有i386-softmmu,arm平台等等,可以有选择
sudo make
sudo make install
二、kernel准备
我们还需要一个bzImage,也就是个胖内核,qemu只钟爱肥的,由于我们目的只在调试内核,所以别的
可以不准备,有兴趣的可以装个整套的,做个虚拟机看看,
wget ftp://ftp.kernel.org/pub/linux/kernel/v3.x/linux-3.2.tar.gz
tar xzvf linux-3.2.tar.gz
cd linux-3.2/
make defconfig
wget ftp://ftp.kernel.org/pub/linux/kernel/v3.x/linux-3.2.tar.gz
tar xzvf linux-3.2.tar.gz
cd linux-3.2/
make defconfig
暂且用个x86做试验,我们要用gdb连接,需要把调试信息加入内核,
否则gdb时候会出现:no debugging symbols found
这里就别去修改Makefile添加-g了,直接在内核配置选项里打开就可以.
#$make menuconfig
在kernel hacking中选中compile the kernel with debug info,
这样编译出来的kernel才是真正的肥
make bzImage
等到出现下面的情形的时候,表示成功:
make bzImage
Setup is 14764 bytes (padded to 14848 bytes).
System is 4738 kB
CRC cfadad97
Kernel: arch/x86/boot/bzImage is ready (#1)
OK,进入下一步
调试:
Setup is 14764 bytes (padded to 14848 bytes).
System is 4738 kB
CRC cfadad97
Kernel: arch/x86/boot/bzImage is ready (#1)
去http://wiki.qemu.org/Testing下载linux-0.2.img.bz2,解压后丢到linux源码的目录下。
在linux源代码目录下开启终端执行:
qemu-system-i386 -kernel arch/i386/boot/bzImage -hda linux-0.2.img -append "root=dev/hda"
进入到以下界面:
按住crtl+alt +2,切换界面
OK,