环境:Debian testing/lenny 2.6.26-1-486
起因:默认的内核不支持大内存,大于1G的将被当作1G处理?
参考:http://www.howtoforge.com/kernel_compilation_debian_etch
具体:
1.安装需要的工具
$su - root
#apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential
2.下载内核源码
到 http://www.kernel.org/pub/linux/kernel/v2.6 下载需要的版本源码
我下的 2.6.26.5
#cd /usr/src
#wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.5.tar.bz2
#tar xf linux-2.6.26.5.tar.bz2
#cd linux-2.6.26.5
PS:参考文章里说的打补丁可选,我暂时没发现什么补丁需要的。
3.配置内核
#make clean && make mrproper
#cp /boot/config-2.6.26-1-486 ./.config (复制当前内核配置,在这基础上修改)
#make menuconfig
会自动导入 .config 的配置。
选择
Processor type and features ---> High Memory Support (4GB)
默认是关闭的。
然后退出,提示保存。
PS:我是AMD 64 x2 5000+ 的CPU,尝试选择了CPU族K8,不过不知道有什么区别。
4.构建内核
#make-kpkg clean
#fakeroot make-kpkg --initrd --append-to-version=-k8-4gb-memory kernel_image kernel_headers
其中 “--append-to-version” 参数是显示在内核版本后面的文字,必须 “-”开头,然后是小写字母和数字组合。
我上面的写法生成内核后名字为:linux-image-2.6.26.5-k8-4gb-memory
然后就是等待了,我花了50多分钟。
等再了解多点把不用的驱动什么的去掉应该可以省不少时间。
5.安装
不出意外的话已经再 /usr/src/ 下 生成了 deb 包,安装之
#cd /usr/src
#dpkg -i linux-image-2.6.26.5-k8-4gb-memory_2.6.26.5-k8-4gb-memory-10.00.Custom_i386.deb
#dpkg -i linux-headers-2.6.26.5-k8-4gb-memory_2.6.26.5-k8-4gb-memory-10.00.Custom_i386.deb
安装程序会自动生成 initrd 和自动更新 grub
最后重启使用新内核。