ubuntu10.04下编译安装linux 3.14.18内核
最近要在linux上安装mptcp,但是需要3.14的内核版本,但是比较喜欢ubuntu10.04的风格,所以要升级一下内核。
环境:ubuntu10.04LTS+虚拟机VMware6.5。
内核:3.14.18
1.准备工作
首先需要下载linux 3.14.18版本的内核,可以从很多地方下载,目前下载的格式为tar.xz,注意解压命令。
其次,需要安装libncurses5-dev,不然make menuconfig 会报错。
安装命令为 sudo apt-get install libncurses5-dev,
如果提示找不到包,请换一下软件源,具体在 “系统》系统管理》软件源》ubuntu软件》下载自”,换一个地址即可。
2.解压内核
将内核解压到/usr/src目录下之后
执行: cd /usr/src/linux -3.14.18
3.配置:
把正在使用中的内核配置文件/usr/src/linux-headers-2.6.32-22-generic/.config 拷到/usr/src/linux-3.14.18目录下:
cp /usr/src/linux-headers-2.6.32-22-generic/.config .
然后执行:
make menuconfig
终端会弹出一个配置界面,然后选load,.config, OK,save, OK, exit。
4.编译安装
执行 make
再 make install
再 make modules
再 make modules_install
最后创建initrd文件:
mkinitramfs -o /boot/initrd.img-3.14.18
5.更新grub
用update-grub命令可以直接生成grub启动菜单,此时新版本的内核应该在第一个启动位置;但是默认状态下启动菜单并不显示。要想显示启动菜单,需要修改相应的配置文件。
(1)首先在/etc/default/grub文件中修改:
GRUB_HIDDEN_TIMEOUT=1
GRUB_TIMEOUT=n
这里n表示菜单显示超时时间,默认是10,这里改成自己喜欢的时间。
(2)但是这时候菜单的超时时间还是0,还需要修改/etc/grub.d/30_os-prober文件中的:
if [ /${timeout} != -1 ]; then
if keystatus; then
if keystatus --shift; then
set timeout=-1
else
set timeout=n
fi
else
if sleep$verbose --interruptible 3 ; then
set timeout=n
fi
fi
fi
EOF
else
cat << EOF
if [ /${timeout} != -1 ]; then
if sleep$verbose --interruptible ${GRUB_HIDDEN_TIMEOUT} ; then
set timeout=n
fi
fi
这里红色的n原本数值为零,n的数值与GRUB_TIMEOUT相同。
保存文件。
(3)更新
执行 sudo update-grub
系统自动生成grub.cfg文件。
6.重启
执行sudo reboot 重启
选择刚刚安装的内核。