Linux 内核的测试和调试(1)
这份教程适合与初学者以及有经验的内核开发者,如果你想加入到内核开发者行列,那么它也适合你。有经验的开发人员可以跳过那些介绍基础测试和调试的章节。
这份教程介绍如何测试和调试 Linux 内核、工具、脚本以及在回归测试和集成测试中使用的调试机制。另外,本文还会介绍如何使用 git 把针对一个 bug 的补丁分离出来,再介绍把你的补丁提交到内核的邮件列表之前需要做些什么。我将会使用 Linux PM 作为测试它调试的对象。尽管本文讨论的是 Linux 内核,但是介绍的方法也适用于任何其他软件开发项目。
配置开发与测试的系统
第一步,找一个满足你需求的开发环境,x86-64 是一个比较理想的选择,除非你必须用特别的架构。
第二步,安装 Linux 发行版,我推荐 Ubuntu,所以本教程会介绍基于 Ubuntu 的配置过程。你可以参考如何使用 Ubuntu 来安装一个 Ubuntu 系统。
在开发和测试环境,最好要保证你的 boot 分区有足够的空间来存放内核文件。你可以为 boot 分区留下 3GB 空间,或把 boot 分区直接放到根目录下,这样 boot 分区可以使用整个磁盘的空间。
安装好操作系统后,确保 root 用户可用,确保你的用户身份可以使用 sudo 命令。你的系统也许已经安装了 build-essential,它是编译内核必备的软件包,如果没安装,运行下面的命令:
sudo apt-get install build-essential
然后运行下面的命令,保证你的系统能够交叉编译内核。下面的 ncurses-dev 安装包是运行 make menuconfig 命令必须用到的。
sudo apt-get install binutils-multiarch
sudo apt-get install ncurses-dev
sudo apt-get install alien
然后安装一些每个内核开发者都会用到的工具包:
sudo apt-get install git
sudo apt-get install cscope
sudo apt-get install meld
sudo apt-get install gitk
如果你喜欢把内核通过交叉编译以支持非 x86_64 架构的环境,请参考在 x86_64 上交叉编译 Linux 内核。
稳定的内核
使用 git 克隆一个稳定的内核,然后编译安装。你可以参考Linux 内核结构来找到最新的稳定版和开发主线。
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
上面的步骤将会创建一个新的目录,名为 linux-stable,并把源码下载到里面。
你也可以直接下载压缩包并解压出源码,无需使用 git:
tar xvf linux-3.x.y.tar.xz
via: http://www.linuxjournal.com/content/linux-kernel-testing-and-debugging?page=0,0
本文转载来自 Linux 中国: https://github.com/Linux-CN/archive