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//声音问题
NO 1:
内核清洁工作。
一般的清洁可能会立刻想到make clean.但这个确实不完整,make clean只能清楚一部分东西。而有一个命令是做的非常彻底的,那就是make mrproper。对于这两个的差别,可以在进入kernel source 目录的时候,make help.
1 xxx@linux-3.6.4:%make help 2 Cleaning targets: 3 clean - Remove most generated files but keep the config and 4 enough build support to build external modules 5 mrproper - Remove all generated files + config + various backup files 6 distclean - mrproper + remove editor backup and patch files
make clean: 会清除大部分以前留下来的东西,但是不会清楚配置文件,也就是那个 .config文件;
make mrproper:是会连配置文件都清除的。
而我前文的操作步骤就是,先把配置文件从/boot目录下导入到/usr/src/linux-3.6.10/ 然后再次执行make mrproper。这样,就把导入的配置文件给删除了嘛,根本就没保持系统原来的配置文件了。但是为啥能成功呢? 因为linux kernel source 默认的是x86的配置吧。---这其实是很危险的,所以纠正这一步这么做:先make mrproper,然后再导入系统原来的配置文件。
NO 2:
配置文件。
配置文件有三个大的来源:一个是自己按照自己的硬件平台,自行的配置编写---这个要求有点高,对于新手不是很合适;一个来源于别人成熟的配置文件--在别人成熟的配置基础上,做一些小动作的修改;第三个是使用kernel source自带的一个配置文件,如果需要使用的话,使用如下:
make defconfig
而借助别人的配置文件,有两种方式添加到现有的kernel source目录下--第一,直接cp命令,比如将/boot/config-3.5这个文件copy到现在将要编译的这个内核中,那么就这个样子:
1 sudo cp /boot/config-3.5 /usr/src/linux-3.6.10/.config
这里注意,要编译的配置文件是 .config,而非其他格式。
第二种方法就是 make menuconfig 后,在第一个界面有一个 Load选项:
1 Load an Alternate Configuration File
在这里写入/boot/config-3.5,然后保存为.config文件。
这两种方法适合于:第一种,是完全不做修改了,直接拿来用;第二种是自己还想做一些修改---其实也不啦,第一种直接再make menuconfig后,一样的可以修改。
再次说明的是:
make mrproper会删除配置文件的,所以配置文件一定要在make mrproper进行之后进行。
以此修正。