LinuxSir.cn,穿越时空的Linuxsir!

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

[请教]两种内核编译的区别是什么

[复制链接]
发表于 2009-6-30 09:04:27 | 显示全部楼层 |阅读模式
昨天发了几个请教贴是T400,找不到网卡的。

后来一狠心,在编译内核的时候用
genkernel all 编译了,这样就能找到网卡。

很奇怪的是,自己选择编译出的是 ***_amd64_*
另外一种编译出的是 ***_x86_64_*

此外,grub的写法也不同。

我要请教的是:

为什么自己编译出的不能找到网卡?genkernel all这种编译出的核有什么不足?

谢谢答复!
发表于 2009-6-30 09:23:22 | 显示全部楼层
grub的写法不会超出man grub吧?不同只是你个人的习惯问题。

genkernel all是把常用的甚至不常用的驱动、功能都编了,常常花费几十分钟,可能编了十几二十种网卡驱动,就一种是你的网卡。自己编的话比较精准,但是容易出错,因为驱动还有其他的一些相关东西需要一些经验才能选对。

至于为什么你自己编译的内核找不到网卡,其实很简单,你编错了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-30 09:33:02 | 显示全部楼层
谢谢答复

也就是说genkernel all没有什么不好,只是多用了空间和内存而已?
回复 支持 反对

使用道具 举报

发表于 2009-6-30 10:17:15 | 显示全部楼层
Post by forrestxz;2002258
谢谢答复

也就是说genkernel all没有什么不好,只是多用了空间和内存而已?


基本可以这么说,但不是非常明显
如果你经常换硬件的话,建议还是genkernel all
这样兼容性好很多..你也不想每次一换硬件就编一次内核把...
回复 支持 反对

使用道具 举报

发表于 2009-6-30 10:29:58 | 显示全部楼层
在genkernel编译出来的kernel中使用 pcimodules &&lsmod && lspci -vv查看调用的模块
然后再自己依据得出来的模块重新配置一下kernel


-------------------------XE分割线---------------------------
其实最好还是用一livecd/liveusb启动先行查看本机需要用到的驱动再进行kernel编译比较好
不然出现
  1. genkernel all 编译了,这样就能找到网卡。
  2. 为什么自己编译出的不能找到网卡?
复制代码

这样的话就有点过了。。。
大多数人会直接跟你说没正确编译驱动(实际上也是如此)
回复 支持 反对

使用道具 举报

发表于 2009-6-30 13:42:06 | 显示全部楼层
我的网卡跟T400的是一样的,自己编完kernel没有问题~
回复 支持 反对

使用道具 举报

发表于 2009-6-30 13:44:40 | 显示全部楼层
传说中的2.6.30 选中e1000 就可以了....
实际上就是这个模块
回复 支持 反对

使用道具 举报

发表于 2009-6-30 18:35:20 | 显示全部楼层
自己编译内核的优点和缺点(假定在编译选项进行了合理选择的情况下):
优点:
   启动快
   运行快
   可以打开你想要的一些特性(genkernel并不是所有特性都打开的),这个有时候很重要
   占内存更小
   如果所有东西全进内核,不做模块的话grub配置也方便些
缺点:
   N多的时间学习 make menuconfig
   换硬件以后可能需要重编译

我自己装的时候是先做了个genkernel的放到grub里用着,顺便写个自己kernel的启动项,然后慢慢学习内核编译,一次次的尝试,不行就重启选genkernel进系统,再改配置/编译/复制到boot,直到最后全部圆满。我是全部编译到内核不做模块的,这样就不用管mod和initramfs 这堆东西了。每次编译也只用3步:
make menuconfig
make
cp arch/x86_64/boot/bzImage /boot/kernel-。。。。。

下面是grub配置文件
title Gentoo Linux 2.6.29-r5
root (hd0,1)
kernel /boot/kernel-2.6.29-gentoo-r5 root=/dev/sda3

title Gentoo All
root (hd0,1)
kernel /boot/kernel-genkernel-x86_64-2.6.29-gentoo-r5 root=/dev/ram0 ramdisk=8192 real_root=/dev/sda3
initrd /boot/initramfs-genkernel-x86_64-2.6.29-gentoo-r5
回复 支持 反对

使用道具 举报

发表于 2009-6-30 18:36:59 | 显示全部楼层
还漏了一点,自制内核编译起来也比genkernel的快很多
回复 支持 反对

使用道具 举报

发表于 2009-6-30 18:58:53 | 显示全部楼层
搞两个内核,一个genkernel,一个自己编译。
回复 支持 反对

使用道具 举报

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

本版积分规则

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