LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1666|回复: 10

如果想尝试2.6.30+内核怎么办?

[复制链接]
发表于 2010-4-9 10:19:50 | 显示全部楼层 |阅读模式
我用的是slackware 13.0.0.0 (stable), 内核一直是2.6.29-smp, 想尝试下2.6.30以上的内核的特性,可是stable版本又不提供。 怎么办?

我自己编译打包一个内核和模块吗? 我不想用current版本,那个版本以前崩溃过。

rorot
发表于 2010-4-10 18:13:21 | 显示全部楼层
假设你是30的内核,可以随便找一个目录,如果想打包的话,放到/usr/src/,然后
  1. tar xf path-to-linux-2.6.30.tar.bz2
  2. cd linux-2.6.30
  3. make menuconfig
  4. make
  5. make modules_install
  6. cp arch/x86/boot/bzImage /boot/
复制代码
这是我一般的做法

如果源码也想打包,再执行
  1. make clean
  2. make prepare
复制代码
这样可以减小体积,而且也不会影响到一些需要用到内核源码编译的软件
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-10 23:42:23 | 显示全部楼层
编译内核没什么问题了。现在的问题是这个内核和initrd之间的关系,和/etc/rc.d/rc.modules之间的关系,能说明一下吗?
回复 支持 反对

使用道具 举报

发表于 2010-4-11 11:36:21 | 显示全部楼层
新内核好是好,要的是时间编译,呵呵~~我用2.6.32.4一段时间了~~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-12 14:42:20 | 显示全部楼层
本来我的理解是只要我把内核编译好了.就不再需要initrd支持了.
可是当我把ext3,4,reiserfs都编译进内核后,重启还是出现了panic错误. 说没找到root,而如果编译了initrd后, 就可以不出现panic错误.

还有就是2.6.29认为我的磁盘是hd*, 而2.6.33.2认我的磁盘是sd*, 这样我还必须要更改/etc/fstab, 这样就不能随时切换内核了. 有什么好办法吗?
回复 支持 反对

使用道具 举报

发表于 2010-4-12 15:44:28 | 显示全部楼层
panic的问题:虽然FS驱动编译进内核了,但你确定你的磁盘驱动编译进内核了没有(也可能是root参数异常,比如你说的识别问题)?

hd*和sd*的问题,ChangeLog中有提到,有兴趣可以自己看下

fstab问题:最简便的方法就是fstab里不使用/dev/xxx,而是使用UUID,这个你可以使用blkid命令来获取,把UUID=“xxx”这一段内容放进你的fstab
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-12 21:03:49 | 显示全部楼层
谢谢digwtx, 我确实没有看过changelog,这回补上:)
回复 支持 反对

使用道具 举报

发表于 2010-4-13 10:59:25 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-14 21:10:27 | 显示全部楼层
谢谢tuxloo的文章链接:)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-20 21:36:08 | 显示全部楼层
我把我编译内核遇到的疑惑写出来,请大家解答:

编译的是从kernel.org下载的2.6.33.2 源代码。

我自己选择的参数,编译后,总是在两个地方出问题。

A) 硬盘驱动,或者文件系统的参数。
    硬盘是笔记本的ATA硬盘。我选择了ATA, PATA, SATA, SCSI等参数,总会出点问题。 文件系统我的是ext4, ext3, reiserfs, 这些我都选择了,但是没有选择ext2

B) 网络无法发包(无法上网)。编译的时候,我选择了网络的大部分,包括网卡驱动。还有NF过滤。 编译后具体的表现是:eth0, lo都正常,IP也正常,但是无法获得局域网其他机器的arp地址,所以就无法通过网关上网。我监听了包,发现根本网关收到了我的arp包,但是我的机器收不到包。

rorot
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表