笔者想要学习驱动程序的编写,故不得不面临一个问题,重新编译内核,并构建内核源码树,虽然ubuntu相对centos能好点,有内核源码树,但是LDD3的作者一再强调需要从kernel.org上下载源程序,然后亲自编译并构造内核源码树,因为发行版中可能会对主线版本的内核做一些修改,并且禁止了对内核的debug功能,而这个并不是我所希望看到的,故笔者决定自己亲自动手编译下内核!
在此之前,强调一点,如果你的电脑里以前安装过交叉编译器或者在配置文件里面设置过ARCH等选项,请将系统恢复到刚安装模式下再进行下面的步骤!
这点非常重要!
具体步骤:
1、下载主线内核,网址:www.kernel.org,笔者下载的是linux-3.9
2、将源码解压到/usr/src目录下,命令如下:
sudo -s
tar -xJvf linux-3.9.tar.xz -C /usr/src
3、进入源码目录下,并生成配置文件
方法:
cd /usr/src/linux-3.9
cp -vi /boot/config-`uname -r` .config//拷贝Ubuntu12.04原来的配置文件到.config中,只是为了方便,当然也可以进行详细配置
或者使用如下命令:
make ARCH=x86 defconfig//使用默认的配置进行更新
make menuconfig(图形化界面) gtk+【可选】如图1所示
make xconfig(图形化界面)qt 【可选】如图2所示
4、第三步配置完成后,就可以对内核源码进行编译了,具体命令如下所示:
make -j4 //编译内核,生成内核镜像和模块
make modules_install //安装内核模块
5、生成新内核,会将第4步编译好的内核拷贝到/boot目录下
make install
如图3所示
6、重启即可(默认情况下会进入新的内核启动项中)
进入系统后,uname -r后即可查看当前内核版本。如图4所示
图1
图2
图3
图4