linux内核调试环境分为两部分
1)用bochs调试汇编
2)用qemu调试从start_kernel开始的部分
环境说明:
内核版本: 2.6.11
ubuntu: 6.10
qemu: qemu-stable-0.13
busybox: 1.10.4
安装ubuntu
安装软件包
更新软件源
deb http://old-releases.ubuntu.com/ubuntu edgy main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu edgy-security main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu edgy-updates main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu edgy-proposed main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu edgy-backports main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu edgy main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu edgy-security main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu edgy-updates main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu edgy-proposed main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu edgy-backports main restricted universe multiverse
制作根文件系统
使用busybox制作文件系统,busybox的版本是:1.10.4
- 选择静态库
make menuconfig
Busybox Settings --->
Build Options --->
[*] Build BusyBox as a static binary (no shared libs)
- make -j4
制作ramdisk镜像
#!/bin/bash
sudo rm -rf rootfs
sudo rm -rf tmpfs
sudo rm -rf ramdisk*
sudo mkdir rootfs
sudo cp busybox-1.10.4/_install/* rootfs/ -raf
sudo mkdir -p rootfs/proc/
sudo mkdir -p rootfs/sys/
sudo mkdir -p rootfs/tmp/
sudo mkdir -p rootfs/root/
sudo mkdir -p rootfs/var/
sudo mkdir -p rootfs/mnt/
sudo cp etc rootfs/ -arf
sudo mkdir -p rootfs/lib
#sudo cp -arf /lib/* rootfs/lib/
sudo cp -arf /lib/lib* rootfs/lib/
sudo cp -arf /lib/ld* rootfs/lib/
sudo rm -f rootfs/lib/*.a
sudo strip rootfs/lib/*
sudo mkdir -p rootfs/dev/
sudo mknod rootfs/dev/tty1 c 4 1
sudo mknod rootfs/dev/tty2 c 4 2
sudo mknod rootfs/dev/tty3 c 4 3
sudo mknod rootfs/dev/tty4 c 4 4
sudo mknod rootfs/dev/console c 5 1
sudo mknod rootfs/dev/null c 1 3
sudo mknod rootfs/dev/ram b 1 1
sudo dd if=/dev/zero of=ramdisk bs=1M count=32
sudo mkfs.ext3 -F ramdisk
sudo mkdir -p tmpfs
sudo mount -t ext3 ramdisk ./tmpfs/ -o loop
sudo cp -raf rootfs/* tmpfs/
sudo umount tmpfs