linux内核下载 2.6.32,linux内核升级到2.6.32

最近在弄面向对象文件系统,用到www.open-osd.org 上面的东西,编译网站上提供的2.6.30版本的内核,遇到了下面的几个问题,今天花了一天的时间来搞定这些问题,趁着夜深人静,把今天的工作做下总结.

首先说下我怎么编译内核.网上有很多相关的文章介绍各种distribution的linux上如何编译内核,我用过debian/ubuntu系列,Redhat/FC/CentOS系列,两大系列的linux,我自己的编译方式都很简单.

1.复制原有的config文件,原有的config文件在/boot目录下面,例如/boot/config-2.6.18-128-el5,复制到源码目录下,名字为.config,即 cp /boot/config-2.6.18-128-el5 .config

2.make menuconfig;修改内核选项,这个过程其实就是修改.config文件,因为上一步的原因,所以里面的大部分选项不需要修改,当然你可以修改来精简自己的内核,这一步里主要做的就是增加自己需要的属性,要么[*],要么[M].

3.make;make modules;make modules_install;make install # 这一连串的命令就把内核编译了一遍,如果是Redhat系列的,下一步就可以直接reboot了,它已经把grub,initrd等都搞定了;若是 debian系列的,可能还需要一些额外的操作,比如update-grub,update-initramfs之类的.

4.reboot

今天我上面的过程编译新下来的30版的内核,结果出现了两个之前没有遇到的问题.

首先,重启后报出 insmod: error inserting ‘/lib/dm-region-hash.ko’: –1 File exits

这个问题,google了一下,就找到了解决方案,原因是生成的initrd里面的init中加载dm-region-hash.ko这个模块重复了两遍.解决办法

1.解压initrd

# cp /boot/initrd-2.6.30.img /tmp

# cd /tmp/

# ls

initrd-2.6.30.img

# mkdir newinitrd

# cd newinitrd/

# zcat ../initrd-2.6.30.img |cpio -i

11537 blocks

# ls

bin  dev  etc  init  lib  proc  sbin  sys  sysroot

2,编辑init,删掉重复的两行

echo "Loading dm-region-hash.ko module"

insmod /lib/dm-region-hash.ko

echo "Loading dm-region-hash.ko module"

insmod /lib/dm-region-hash.ko

3,重新打包initrd

# find .|cpio -c -o > ../initrd

11538 blocks

# cd ..

# gzip -9 < initrd > initrd-2.6.30.img

# ls

initrd-2.6.30.img      initrd            newinitrd

initrd-2.6.30.img就是重新打包的initrd了,然后把initrd.img拷贝到/boot,就可以了,再reboot,就不会有之前的错误了.

将init文件的第二行“setquiet” 去掉,boot时就可以打印出initrd在做什么,功能类似于 sh –x init

这个应该是某个地方配置的有问题,所以才出现了重复加载的问题,没时间去细究原因,代价是每次make install后都需要按照上面的步骤修改initrd.img

虽然上面的这个问题没有了,开机时又出现了新的问题.

o_temp.jpg

为了能让遇到相同问题的同仁能用google,baidu找到这篇文章,我敲一遍上面的错误,如下

*************************************************************************

mount: could not find filesystem '/dev/root'

Setting up other filesystems.

Setting up new root fs

setuproot: moving /dev failed: No such file or directory

no fstab.sys, mounting internal defaults

setuproot: error mounting /proc: No such file or directory

setuproot: error mounting /sys: No such file or directory

Switching to new root and running init.

unmounting old /dev

unmounting old /proc

unmounting old /sys

switchroot: mount failed: No such file or directory

Kernel panic - not syncing: Attempted to kill init!

**************************************************************************

这个问题在网上找了半天,网上的这个问题主要集中在2.6.31版本内核的编译上,网上的大部分方案我都试了,以前在用debian的时候ms也遇到过这个问题,不过仔细想来问题不太一样,以前遇到的问题是sata硬盘驱动没有包含在initrd里面,所以开机的时候无法加载磁盘,网上的方法试了个遍,内核编译了好几遍,也没有搞定.终于找到了http://patchwork.kernel.org/patch/37444/ 这个网页,从里面找到了Solution,问题出在了CONFIG_SYSFS_DEPRECATED_V2这个选项上了.解决办法如下

编辑内核源码包里面的.config文件.

CONFIG_SYSFS_DEPRECATED_V2=y #默认该选项为not set,被注释掉的.

然后再编译一遍内核,修改一下initrd/init文件,就都OK了.

最后,推荐两个软件,windows live writer,我的这篇博文就是用软件写出来的.

另外一个是everNote,一个google notebook的替代品,google notebook这个东西本来很不错的,可是google已经停止维护了,且在firefox里面有时候google.com都无法访问.everNote有客户端,也有网络版,用起来还可以,不过有40M/month的空间限制,这个很不爽,尽管根本用不了这么大的空间.

顺便说下google的客户端软件,总觉得google的客户端软件不好,我不太喜欢google gadget那种侧栏的方式,比较喜欢xp最经典的窗口模式的软件,这样我就可以用actual windows manager(这个软件很赞,我一直在用,在程序窗口右上角的三个图标扩展出更多的图标,支持置顶,置底,透明等效果),chrome虽然不错,但是跟 awm兼容性就不太好,另外chrome CPU经常100%,且最近让我死机多次,我直接把chrome干掉了.

我最近有个需求,功能上类似于google的一套东西,google notebook,docs,mail,blog等,再做个比较好的客户端,把这些东西放在一起,支持搜索,同步,发布等功能.我想这个软件可以由腾讯来做,从foxmail扩展出去,也可以由微软来做,从live writer做出去(ms好像做过了?messenger套件里的东西我就用了msn和writer,其他的没有用过)如果google肯愿意做的话,那更好啦.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值