Chinaunix首页 | 论坛 | 博客
  • 博客访问: 471885
  • 博文数量: 134
  • 博客积分: 3056
  • 博客等级: 中校
  • 技术积分: 1150
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-14 15:53
文章分类
文章存档

2013年(1)

2010年(133)

我的朋友

分类: LINUX

2010-07-17 22:09:56

1、下载源码

上下载标准的Linux内核源码。通常有xxx.tar.gzxxx.tar.bz2两种压缩包可以选择。我下载的是linux-2.6.34.1.tar.bz2

2、拷贝源码

切换到root权限,然后把linux-2.6.29.4.tar.bz2 文件复制到/usr/src/目录下

#su root

#cp 源码压缩包所在目录/ linux-2.6.34.1.tar.bz2 /usr/src

3、解压源码

#tar -jxvf linux-2.6.34.1.tar.bz2

4、进入/usr/src目录

#cd /usr/src/linux-2.6.34.1.tar.bz2

5、配置内核

# make oldconfig

   一路回车

6、编译安装内核

Step1: #make

所花时间很长,可以去跟MM聊聊天,看看电影啥的。

Step2: #make bzImage

生成一个名字为bzImage的内核镜像文件

Step3: #make modules

生成*.ko9(模块化的内核驱动)等

ps: 在在'make modules"时,出现:

WARNING: modpost: Found 2 section mismatch(es).

To see full details build your kernel with:

'make CONFIG_DEBUG_SECTION_MISMATCH=y'

解决方法:

执行命令:'make CONFIG_DEBUG_SECTION_MISMATCH=y && make modules'

Step4: #make modules_install

安装内核模块到/lib/modules/2.6.34.1目录下

Step5: make install

完成内核(bzImage)System.map的拷贝到/boot目录的工作。在ubuntu下,查看/boot/下已经有vmlinuz-2.6.34.1了,但是没有对应的initrd.img

首先,安装kernel-packageinitramfs-tools

#apt-get install kernel-package

#apt-get install initramfs-tools

然后,

mkinitramfs -o /boot/initrd.img-2.6.34.1 /lib/modules/2.6.34.1/

当前目录下生成一个名字为initrd.img-2.6.34.1initrd 镜像文件。

在执行命令 mkinitramfs -o /boot/initrd.img-2.6.34.1 /lib/modules/2.6.34.1/

出现错误:

gzip: stdout: No space left on device

此提示表明:/boot分区空间不够。

解决方法:

一。查看内核

#dpkg --get-selections | grep linux-image

命令结果如:

linux-image-2.6.28-11-generic install

linux-image-2.6.28-16-generic                    install

linux-image-2.6.28-18-generic                    install

linux-image-2.6.28-19-generic                    install

linux-image-generic                              install

二。查看现在使用的内核

#uname -r

命令结果如:

2.6.28-19-generic

 

三。把不再使用的内核用apt-get purge命令卸载掉。如前面的例子,则用:

#sudo apt-get purge linux-image-2.6.28-11-generic

在执行这条命令的时候,又出现错误:

Errors were encountered while processing:

 linux-restricted-modules-2.6.28-11-generic

E: Sub-process /usr/bin/dpkg returned an error code (1)

解决方法是执行命令:

#dpkg --configure –a

同样,卸载2.16 linux-image-2.6.28-16-generic

 

最后,再执行命令 mkinitramfs -o /boot/initrd.img-2.6.34.1 /lib/modules/2.6.34.1/,成功。

 

7、检查/boot/grub/menu.lst文件内容是否多出类似如下的信息即可。

title            Ubuntu 9.04, kernel 2.6.34.1

uuid          2dd48e47-3376-480f-b212-bc8144b54610

kernel                 /vmlinuz-2.6.34.1 root=UUID=8ea2a2a3-68e0-4e59-bc5e-ef9f0c34db50 ro quiet splash

initrd                  /initrd.img-2.6.34.1

quie

我的里面有,所有安装成功了!

阅读(2162) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~