Ubuntu编译Linux内核过程
一、下载源代码和编译软件的准备
下载内核源代码:http://www.kernel.org/
注意,点击2.6.39.3内核的F版,即完整版。
如果你懒得去网站点联接,运行下列命令:
代码:
$cd~
$wgethttp://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.39.3.tar.bz2
安装有关编译程序。安装make,gcc, make-kpkg,运行menuconfig等等和编译内核相关的工具。
安装不了,请检查/etc/apt/sources.list文件。
安装所需工具包有关命令:
代码:
$sudoapt-get install build-essential kernel-package libncurses5-devfakeroot
二、解压源代码
注意,网上很多教程上说应该解压到/usr/src,纯属以讹传讹,linux掌门人linus说解压到任何目录上都可以。当然,linus的说法是正确的。先将压缩包复制到usr/src目录下,然后将压缩包解压到user/src目录下。
如果压缩包现在放在个人主目录的桌面上,则运行下列命令:
代码:
$sudocp Desktop/linux-2.6.39.3.tar.bz2 /usr/src
$cd usr/src
$tar jxvf linux-2.6.39.3.tar.bz2
现在,源代码就在usr/src/linux-2.6.39.3
进入源代码的目录,准备下一步的工作。后面都在这个目录里面进行。
代码:
$cd usr/src/linux-2.6.39.3
三、开始编译前的准备工作。
首先,清理以前编译时留下的临时文件。如果是刚刚解开的包,不需要执行这步。如果是第二次或者是第n次编译,那么一定要执行。
相关命令如下:
代码:
$sudo make mrproper
网上很多教程上说把现在使用的内核的config拷贝过来参考,据实验,是不需要的,ubuntu还有debian会自动做这步。不过这条命令倒是可以学习一下。当然你可以将以前的配置拷贝过来。
命令:
代码:
cp/boot/config-2.6.35-22-generic./.config
加红部分视自己操作系统情况而定
四、开始配置内核选项。
相关命令:
代码:
$sudomake menuconfig
我们选用的是图形界面的配置,在配置选项的最下方有一个Load和Save选项,我们先将第四步复制过来的配置文件.config文件Load进来,在Save就可以了。
五、开始编译内核。
ubuntu的工具是make-kpkg,和其他的发行版相比,步骤相对简单。
相关命令:
代码:
$sudo make-kpkg clean这条命令好像不要超级权限,很多资料上说要,不过这不是原则问题。
$sudo make-kpkg --initrd --append-to-version=t61 kernel_imagekernel-headers
上述命令中的t61可以用自己喜欢的字符代替,最后的字符一定是数字.
输完上述命令回车之前,建议大家把浏览器还有别的运用程序都关掉,机器开始的工作比较艰苦。
七、安装内核
编译完成就是安装工作。编译好的内核在上一层目录。包括linux-headers-2.6.39.3t61_2.6.39.3t61-10.00.Custom_i386.deb和linux-image-2.6.39.3t61_2.6.39.3t61-10.00.Custom_i386.deb两个文件,如果你不搞开发的话,只要安装内核就可以,头文件以后要用的时候再说。
安装相关命令:
代码:
$cd ..
$sudo dpkg -i linux-image-(按tab键)
文件名很长,如果不用tab自动补足是不可能的。
安装完成后和老内核比较一下大小
代码:
$ls -l /boot/
八、重新启动验证新内核。
代码:
$sudo reboot
重启后可以检查新内核版本,命令如下:
$uname -a
至此Linux内核的安装编译已经完成,以下几个步骤是个人情况而定:
九、显卡驱动
如果你的显卡和我一样是nvidia显卡,启动之后往往无法正常进入x-window。即使能看到gdm登录界面,效果也是很差的。
那么就要安装nvidia驱动。
用ctrl+alt+f1进入字符命令行,输入用户名,密码登录。
命令:
代码:
下载驱动
$wgethttp://us.download.nvidia.com/XFree86/Linux-x86/173.14.12/NVIDIA-Linux-x86-173.14.12-pkg1.run
$sudo-s
输入密码取得超级权限。
#psax
看看和gdm相关的进程,把这些进程全部关闭;用sudo/etc/init.d/gdm stop有可能有一个进程没有关闭:
#kill进程号
然后安装nvidia显卡驱动,当然驱动要先下好,到nvidia驱动所在的目录里,运行:
#sh./NVIDIA-Linux-x86-173.14.12-pkg1.run
重新启动以后就ok。要用nvidia的驱动,每次升级内核都要这么做。
十、无线网卡
相关的内核选项是
Networking--->
Wireless--->
GenericIEEE 802.11 Networking Stack (mac80211)
还有4965的驱动。
4965无线网卡驱动虽然已经编入内核,但没有firmware无法使用。需要把原来内核的firmware拷贝到新内核对应的目录,名字和内核一致,我的内核是linux-image-2.6.25.10dell1400,那建的目录名就是2.6.25.10dell1400。
代码:
具体命令:
$cd /lib/firmware/
$sudo mkdir 2.6.25.10dell1400
把你的老内核中的4965的firmware拷贝过来。
$sudo cp 2.6.24-16-generic/* 2.6.25.10dell1400/
上面的命令和下面的命令是等价的:
$cd /lib/firmware/
$sudo cp -R 2.6.24-16-generic/ 2.6.25.10dell1400/
重新启动系统,无线网卡就正常了。
复制命令:sudocpDesktop/linux-2.6.39.3.tar.bz2/usr/src
解压命令:sudotarjxvfFileName.tar.bz2
http://www.cnblogs.com/chineseboy/archive/2013/06/06/3121076.html