前提:ubuntu 12.04 LTS x64用的内核版本为3.5的,同时,我的电脑今天声音总是没有,最后就想了想,编译内核吧,都使用linux这么长时间了,怕啥呢?由于不敢跨版本太多,最后就选了3.6.10的内核,并且下载了相应的补丁.
--------------------------------
下文写的有一些混乱,有些地方有错误,现已经在另外一个地方进行了修正。下面是链接:
-----------------------------------------------------------
对<< ubuntu 12.04编译安装linux-3.6.10内核笔记>>的修正
2013/08/25 修
-----------------------------------------------------------
先构建编译环境,下载编译工具吧:
sudo apt-get install libncurses-dev kernel-package bzip2 make ncurses-dev fakeroot module-init-tools patch diff sudo apt-get install libqt3-headers libqt3-mt-dev sudo apt-get install libqt3-compat-headers
从这里下载内核以及对应版本的补丁
linux-3.6.10.tar.gz
patch-3.6.gz
ftp://ftp.kernel.org/pub/linux/kernel/v3.x/
这两个文件下载后放入/usr/src目录:
sudo cp ~/Download/linux-3.6.10.tar.gz /usr/src sudo cp ~/Download/path-3.6.gz
解压,并打补丁,补丁可以通过不同方式制定,那么打的时候就用不同的命令,一般常见的是 patch,但自己今天这个是diff:
cd /usr/src tar -xvf linux-3.6.10.tar.gz gzip -d patch-3.6.gz sudo cp patch-3.6 ./linux-3.6.10 cd linux-3.6.10
file patch-3.6 sudo diff -rN patch-3.6 ./
如果patch文件是patch做成的,那么就相应的用:
patch -p1 < patch-3.6.patch
接下来就该配置内核了,但是自己对于内核配置可不是那么熟练什么的,那就用原来系统中存在的配置文件吧。原来系统中的配置文件,位置有两种情况:一是放在/boot下面的,一个是放在/usr/src/linux-xxx/下面的,而我自己的就是放在/usr/src/linux-headers-3.5.32-xx/下面的
cp ../linux-headers-3.5.32-xxx/.config ./
清理一下各种问题:
make mrproper
开始配置,那么配置的时候先导入内核中已经存在的配置文件.config 也就是自己刚才从原系统拷贝过来的文件.
make menuconfig ---------------------------- ps: load xxx 你的修改 save xxx
如果没有修改的话,就直接进入load 当前配置文件,然后再保存推出,我自己在某些地方稍做修改了,就是声卡驱动上。
接下来就是开始make了,make的时候,默认情况下是单线程编译,这个似乎有点慢。如果自己的机器处理器还可以的话,想加快速度的话,可以选在多线程。我选的是4,然后1个小时左右吧。以前曾经试过16,但我怀疑ubunut会不会因此而挂掉。我在13.04的时候有这个经历。
make -j4
待结束后,开始编译模块。有这么一个说法,可以在编译内核的时候,同时编译模块,互相不影响,这里自己由于心疼本本,没有试过。
make modules
安装模块
make modules_install
创建创建initrd 文件
mkinitramfs -o /boot/initrd.img-linux-3.6.10
安装内核
make install
按说,这个时候,内核安装完毕,grub2会自动更新的,如果不放心,可以选择:
update-grub2
如果对grub熟悉的人就知道,会在开机的引导界面出现很多选项的,这个时候有的同学就可能开始要去弄grub和删除多余的内核什么的。其实,这个时候最好不要去弄这个,应该是先重启一下机器,看看内核安装的结构如何,失败没,一旦失败了就可以从旧的内核启动。
reboot //
如果没有其它问题,那么就会在引导界面出现ubuntu 3.6.10的选项了
<当然,这个引导界面可不是自己想要的,可能需要自己美化一下>
进入系统,首先删除多余的内核。
按道理说,在删除旧的内核时,应该不影响系统中软件的存在,但是今天自己在删除的时候,发现少量的软件确实被删除了,好像它们有什么依赖关系,但影响不大,可以忽略。
uname -r //保留你当前所用的内核 dpkg --get-selections|grep linux-header
apt-get remove xxxxx
注意删除旧内核的时候,可别将当前内核也删除了。否则,你的系统就跪了;如果你是在真机上的双系统的话,那估计你自己也就跪了。
删除完毕后,grub响应一次吧,其实没必要。
update-grub2
然后就是开始修改grub的配置文件,让引导界面不是那么乱糟糟的。说是修改,也就只是注释掉一些选项。它是用shell语言,但和C语言相差无几,同样有函数和变量什么的,仔细点就行。个人不推荐直接删除那些选项的原因是,一旦系统挂掉,自己可以在引导界面进入grub的配置文件,打开ubuntu的救援模式或者其他的,然后就可以启动。
sudo vim /boot/grub/grub.conf
注意这个文件修改后,需要强制保存。
一切OK后,就再次重启下吧~~
---
另外自己因为要弄一下声音的问题,于是按照谷妹的办法:
su passwd
xxx
xxx
su
xxx
xxx
这个上面就是说切换到root的时候,第一次似乎都要先更新下root的密码,然后才可以登入
下面就是自己弄声音的一个命令了
gnome-control-center sound
会弹出一个对话框,里面有设备的,调整下就OK了,我的笔记本声音也就出来了
--------------------------------------------------------------------
以上学习谷妹所提供的资料链接如下,非常感谢这些人们的分享。同时,资料里也写的非常详尽了。
http://www.linuxidc.com/Linux/2012-03/57303.htm //内核编译 http://qing.blog.sina.com.cn/tj/9c5a7cf5330020uz.html//内核编译 http://forum.ubuntu.org.cn/viewtopic.php?t=23255//内核删除 http://forum.ubuntu.org.cn/viewtopic.php?f=49&t=363069//声音问题
over