linux-2-6-11内核调试环境搭建

1. linux内核调试环境分为两部分

1)用bochs调试汇编
2)用qemu调试从start_kernel开始的部分

2. 环境说明:

内核版本: 2.6.11
ubuntu: 6.10
qemu: qemu-stable-0.13
busybox: 1.10.4

3. 安装ubuntu

ubuntu1

4. 安装软件包

4.1 更新软件源

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

软件包

sudo apt-get install libncurses5-dev

5. 制作根文件系统

使用busybox制作文件系统,busybox的版本是:1.10.4
//如果不用这个版本的制作ramdisk,会导致无法关机。

  1. 选择静态库
    make menuconfig
Busybox Settings  --->
                Build Options  ---> 
                [*] Build BusyBox as a static binary (no shared libs)
  1. make -j4
Device Drivers ---->
              Block devices   ---->
                            <*> RAM disk support
                            (16)  Default number of RAM disks
                            (65536) Default RAM disk size (kbytes)
                            [*]   Initial RAM disk (initrd) support

6. 制作ramdisk镜像

tom@tom:~/kernel$ cat mk_rootfs.sh 
#!/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 touch rootfs/etc/mdev.conf
sudo dd if=/dev/zero of=ramdisk bs=1M count=32
sudo mkfs.ext2 -F ramdisk
sudo mkdir -p tmpfs
sudo mount -t ext2 ramdisk ./tmpfs/  -o loop
sudo cp -raf rootfs/*  tmpfs/
sudo umount tmpfs

7. 内核

在这里插入图片描述
选择关于ext3为y状态。

编译内核:

make bzImage -j4 O=../out
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
搭建Linux内核调试环境需要准备以下工具和步骤: 1. 准备编译工具链:在Linux系统上搭建交叉编译工具链,用于编译和调试内核。可以使用GCC工具链或者Clang/LLVM工具链。 2. 获取Linux内核源代码:从Linux官方网站或者GitHub上获取所需的Linux内核源代码。可以选择稳定版本或者特定的分支。 3. 配置编译选项:进入内核源代码目录,在终端执行"make menuconfig"命令,配置所需的编译选项。可以选择启用调试符号、内核调试选项和相关的硬件调试支持等。 4. 编译内核:执行"make"命令编译内核。可能需要一段时间来完成编译过程,取决于系统资源和内核配置选项。 5. 安装内核:执行"make modules_install install"命令将编译好的内核和模块安装到系统中。注意备份原有内核并配置启动引导文件。 6. 配置调试工具:安装并配置GDB调试器。GDB是一种强大的调试器,可以用于调试Linux内核。可以通过包管理器安装GDB,如"apt-get"或者"yum"。 7. 连接调试器:通过串口、网络或者通过JTAG接口连接调试器到目标机器。这可能需要硬件设备和相应的驱动程序。 8. 启动内核调试:启动目标机器,并在GDB中配置和启动目标机器连接。可以设置断点、观察变量、单步执行和查看调用栈等。 9. 进行调试:在GDB中使用各种调试命令和功能对Linux内核进行调试。例如,可以查看内核日志、内存映射和寄存器状态等。 10. 分析问题和修复:根据调试结果分析问题,并进行相应的代码修改,重复以上步骤来进行进一步的调试和测试。 以上是搭建Linux内核调试环境的基本步骤。根据具体需求和调试场景,可能还需要其他工具和配置来满足特定的调试需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值