linux内核编译安装过程

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进行之后进行。

 

以此修正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值