之前安装的Ubuntu12.04内核版本为
3.11.0.15-generic,后面下载相应版本的内核源码,执行apt-get source linux-image-$(uname -r)命令
下载的内核版本是3.11.10.12,
编译安装之后无进入ubuntu图形界面,不清楚是什么原因,可能3.11.10.12版本的源码还是有些问题。
去官网下载长期维护版本3.12.72,地址:https://www.kernel.org/,编译安装后ubuntu可以正常进入用户图形界面。
参考操作步骤:
1. ubuntu12.04 在线升级到最新内核版本(根据需要可不升级)
sudo apt-get updatesudo apt-get dist-upgrade
2. 首先安装编译内核所需要的软件
sudo apt-get install build-essential
3. 查看ubuntu内核版本
lwx@ubuntu:/opt$
sudo apt-cache search linux-source
linux-source - Linux kernel source with Ubuntu patches
linux-source-3.13.0 - Linux kernel source for version 3.13.0 with Ubuntu patches
4. 显示ubuntu的版本
lwx@ubuntu:~$
uname -a
//显示系统名、节点名称、操作系统的发行版号、操作系统版本、运行系统的机器 ID 号。
Linux ubuntu 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:08:14 UTC 2014 i686 i686 i686 GNU/Linux
lwx@ubuntu:~$
uname -r
//显示系统发行的版本
3.13.0-24-generic
5. 下载内核源码
lwx@ubuntu:/opt$
sudo aapt-get source linux-image-$(uname -r)
Reading package lists... Done
Building dependency tree
Reading state information... Done
或者
去官网下载:
https://www.kernel.org/
6. 编译内核
将liming@CM:/usr/src/linux-headers-3.8.0-32$目录下的 .config文件拷贝到解压后的源代码目录下。
sudo make menuconfig
//编译时报错,说某一个模块没有定义,在配置的时候将它去掉后编译通过。
sudo make
sudo make modules_install
sudo make install
//安装内核镜像
重启linux,在grub内核选择界面选择刚刚编译的内核启动。
7.
列出系统中的所有已安装内核
lwx@ubuntu:~$
sudo dpkg --get-selections|grep linux
[sudo] password for lwx:
libselinux1:i386 install
linux-firmware install
linux-generic install
linux-headers-3.13.0-24 install
linux-headers-3.13.0-24-generic install
linux-headers-generic install
linux-image-3.13.0-24-generic install
linux-image-extra-3.13.0-24-generic install
linux-image-generic install
linux-libc-dev:i386 install
linux-sound-base install
pptp-linux install
syslinux install
syslinux-common install
syslinux-legacy install
util-linux
//列出当前系统中安装内核的 image 和 extra 文件。
lwx@ubuntu:~$
sudo dpkg --list | grep linux-image
ii linux-image-3.13.0-24-generic 3.13.0-24.46 i386 Linux kernel image for version 3.13.0 on 32 bit x86 SMP
ii linux-image-extra-3.13.0-24-generic 3.13.0-24.46 i386 Linux kernel extra modules for version 3.13.0 on 32 bit x86 SMP
ii linux-image-generic 3.13.0.24.28 i386 Generic Linux kernel image
//列出当前系统中安装的内核 headers 文件。
lwx@ubuntu:~$
sudo dpkg --list | grep linux-headers
ii linux-headers-3.13.0-24 3.13.0-24.46 all Header files related to Linux kernel version 3.13.0
ii linux-headers-3.13.0-24-generic 3.13.0-24.46 i386 Linux kernel headers for version 3.13.0 on 32 bit x86 SMP
ii linux-headers-generic 3.13.0.24.28 i386 Generic Linux kernel headers
8. 删除不要的内核镜像(确保自己编译的内核能够正常跑起来再进入系统删除之前的旧版本)
//系统将删除 4.2.0-12 内核文件中的 headers 文件。
sudo apt-get purge linux-headers-3.13.0-24-generic
//系统将删除 4.2.0-12 内核文件中的 image 文件。
sudo apt-get purge linux-image-3.13.0-24-generic
// 或者手动删除
/boot/config-3.13.11-ckt39
/boot/vmlinuz-3.13.11-ckt39
/boot/initrd.img-3.13.11-ckt39
/boot/System.map-3.13.11-ckt39
/lib/modules/3.13.11-ckt39
/var/lib/initramfs-tools/3.13.11-ckt39