最近需要研究lguest虚拟机,但是ubuntu12.04内核貌似没有集成,故重新升级内核,逐有此小记一篇
环境:vmware workstation下ubuntu桌面版12.04
第一步:在http://www.kernel.org/ 上下载最新稳定内核源代码,我下载的最新稳定版为3.7.10
第二步:解压源码包,并将解压过的内核代码放置 /user/src 目录下
第三步:打开终端进入/usr/src/linux-3.7.10
znn@ubuntu:~$ cd /usr/src/linux-3.7.10
以上为准备工作
第四步:以管理员身份运行后续命令,或者在命令前加sudo亦可
znn@ubuntu:/usr/src/linux-3.7.10$ sudo su
[sudo] password for znn:
输入命令make mrproper,
root@ubuntu:/usr/src/linux-3.7.10# make mrproper
该命令的功能在于清除当前目录下残留的.config和.o文件,这些文件一般是以前编译时未清理而残留的。
第五步:配置
配置编译选项,因为操作系统内核功能及结构非常复杂,配置选项很多,配置特别繁琐,为了简单起见使用make menuconfig或者make xconfig,我的系统已经安装ncurses,故使用make menuconfig,没有安装的同学可以到http://invisible-island.net/ncurses/下载
或者到http://ftp.gnu.org/pub/gnu/ncurses/ 下载,再或者在软件中心找到软件安装也行,如下输入关键字出来好多,自己看着需要的就装上吧:
我下载的为5.8,然后解压缩后安装就ok啦。
然后进入重点:make menuconfig
root@ubuntu:/usr/src/linux-3.7.10# make menuconfig
配置界面如下,选项太多,找起来实在是麻烦,木有办法撒
具体配置看个人需求,我是安装lguest虚拟机需要配置的,然后保存退出,我的配置选项如下:
"General setup":
"Prompt for development and/or incomplete code/drivers" = Y
(CONFIG_EXPERIMENTAL=y)
"Processor type and features":
"Paravirtualized guest support" = Y
"Lguest guest support" = Y
"High Memory Support" = off/4GB
"Alignment value to which kernel should be aligned" = 0x100000
(CONFIG_PARAVIRT=y, CONFIG_LGUEST_GUEST=y, CONFIG_HIGHMEM64G=n and
CONFIG_PHYSICAL_ALIGN=0x100000)
"Device Drivers":
"Staging drivers"=N
"Block devices"
"Virtio block driver (EXPERIMENTAL)" = M/Y
"Network device support"
"Universal TUN/TAP device driver support" = M/Y
"Virtio network driver (EXPERIMENTAL)" = M/Y
(CONFIG_VIRTIO_BLK=m, CONFIG_VIRTIO_NET=m and CONFIG_TUN=m)
"Virtualization"
"Linux hypervisor example code" = M/Y
(CONFIG_LGUEST=m)
第五步:确定依赖性:建立模块间的依赖信息
make dep
Step 六:清除编译中间文件 :删除配置时留下的一些不用的文件
make clean
Step 七:生成新内核,此处内核较小时可以用make zImage,时间较长,请耐心等待,
make bzImage
Step 八:编译内核模块
make modules
Step 九:安装内核模块
make modules_install
Step 十:建立ramdisk映像
mkinitramfs -o
/boot/initrd-linux3
.7.10.img
Step 11:安装新内核
make install
大功告成了有没有,O(∩_∩)O~,最后一步
Step 12:重新启动虚拟机
reboot
以上命令都是以管理员身份运行的,登陆重启后的系统,查看内核版本:
root@ubuntu:~# uname -r
3.7.10
对于双系统或多系统来说,还需修改grub配置文件,在此不多说。