Linux内核调拭之printk用法(2)
本文演示了一下printk的基本用法,实验环境为CentOS 5.9 64bit
1,下载内核源码
下载地址是https://www.kernel.org/pub/linux/kernel/v2.6/
CentOS 5.9用的是2.6.18版,CentOS 6用的是2.6.32,下载对应版本的内核文件就可以了
# wget https://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.tar.gz
# tar -zxvf linux-2.6.18.tar.gz
# cd linux-2.6.18
2,修改内核
vim init/main.c
查找start_kernel,在大约456行有如下内容:
……
asmlinkage void __init start_kernel(void)
{
char * command_line;
extern struct kernel_param __start___param[], __stop___param[];
smp_setup_processor_id();
/*
* Need to run as early as possible, to initialize the
* lockdep hash:
*/
lockdep_init();
……
系统从start_kernel()函数开始启动。所以我们要把printk()添加到这个函数里 (more…)
Read More