LinuxSir.cn,穿越时空的Linuxsir!

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

关于kernel compile中 sata 和 initrd,还有ATI 显卡

[复制链接]
发表于 2008-10-21 08:40:28 | 显示全部楼层 |阅读模式
为了装ATI的显卡驱动,前几天编译内核,好几遍都不成功,新内核启动不起来:
          mkrootdev:mknod faied :30
          mounting root filesystem
        mount: error mounting ext2
        pivotroot: pivot_root('sysroot, sysroot/initrd) failed 2.....

  我把/boot和 / 都做成 ext2,且内核中也编进了对ext2 和 ext3 的支持,应该不是文件系统类型的原因。
  原因应该就是SATA硬盘。
  对SATA和SCSI有不少疑惑,从台湾鸟哥文中看到:
"#不论你有没有SCSI装置,你都必须要启动SCSI的支援! 理由有二: 理由有二:
# 1. 因為USB 裝置用的就是模擬SCSI 啊! # 1.因为USB装置用的就是模拟SCSI啊!
# 2. 因為SATA 的設定項目就在這裡面! # 2.因为SATA的设定项目就在这里面! "
  
  SCSI 和 SATA 是两种硬件接口,为啥软件的驱动混淆在一块呢?
  
  SCSI device support --->  如果没有SCSI设备,是不是这里面的东西都不用选呢?
  还有
  Serial ATA and Parallel ATA drivers 里面的驱动弄得我头大,lspci -vvv 后, sata controller 是 Intel ICH4/ICH6, 貌似在这里面找不到,只能选个Generic ATA support了??

  还有,对initrd有点不懂,如果SATA和文件系统的支持都编进了内核,而不是module,是不是就不需要initrd了呢?
  多谢指点!!
发表于 2008-10-21 10:11:42 | 显示全部楼层
Serial ATA and Parallel ATA drivers 下面intel有关的看名字就看出来了,不清除看一下help。

都编进内核,当然就不需要initrd了。
回复 支持 反对

使用道具 举报

发表于 2008-10-21 11:10:05 | 显示全部楼层
怎么做initrd呢?gentoo-wiki上都是讲genkernel的,我用的不是genkernel
回复 支持 反对

使用道具 举报

发表于 2008-10-21 14:55:33 | 显示全部楼层
关于内核的问题,我也曾经遇到过相同的问题,在自己编译内核的时候,但是一个”make /initrd"命令就可以解决问题了,在重装gentoo后,我也懒得在自己编译,直接用genkernel也不错。
另外关于ati的显卡驱动的问题,你可以在gentoo的英文论坛里搜搜看,我在上面找到过解决方案(忘了具体地址),好像就是开启两个内核默认禁用的选项就可以编译成功了,我在重装的过程中y用的是“genkernel --menuconfig"命令,感觉很方便,可以参看一下官方的内核升级文档。
回复 支持 反对

使用道具 举报

发表于 2008-10-21 15:08:12 | 显示全部楼层
我没使用 initrd

scsi 跟 sata 关系很大,跟很多东西都有关系,我记得cdrom也是挂在scsi(太久没用过cdrom 不确定)
io 挂载跟软件驱动是二回事。。换个意思,就象 socket 在 unix 也是文件一样,对于windows user 是会感觉奇怪。
它是一个层次问题,好似windows下也可以把iso 挂在cdrom 上,省却编写读取iso 数据块的代码

sata 里
如果硬件有 ahci 的建议用 ahci 没的就试下
"Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support"
回复 支持 反对

使用道具 举报

发表于 2008-10-21 17:24:27 | 显示全部楼层
还是用genkernel方便一点,其他似乎没什么好办法
回复 支持 反对

使用道具 举报

发表于 2008-10-21 20:31:28 | 显示全部楼层
如果是自己编译的内核,而且所需要的模块已经在内核里存在的话,是不需要initrd文件的,initrd只是作为一个媒介,进行动态的加载所需要的模块,一般都用在通用的内核中。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-22 12:40:36 | 显示全部楼层
多谢给位,差不多明白了,等星期六不上课时再试一下!有问题还得麻烦各位!
回复 支持 反对

使用道具 举报

发表于 2008-10-22 17:38:48 | 显示全部楼层
手动编译内核。然后用genkernel生成带splash的initrd的飘。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-28 21:57:40 | 显示全部楼层
前几天编译成功了,把sata 的驱动(我的是intel的)边进内核就行了,不用initrd。
ati显卡2D搞定了,3D 开不起来。
我查了一下,有两种不同说法:
1。http://www.gentoo.org/doc/zh_cn/dri-howto.xml 硬件3D加速指南
Graphic support --->
   <M> /dev/agpgart (AGP Support) --->
   (agpgart选项在64位内核里不存在;只需要选择你的芯片组支持即可。)
   <M> Intel 440LX/BX/GX, I8xx and E7x05 support
(启用你的芯片组而不要照抄上面的例子。)
   <M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
     <M> (从列表里选择你的显卡)
2.http://wiki.cchtml.com/index.php/Gentoo_Installation_Guide
Graphics Support --->
  <M> /dev/agpgart (AGP Support)  
    <M> Your_AGP_Chipset_Here
  [ ] Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)

两个郁闷之处
1.我没有AGP
lspci|grep AGP 无显示,查了一些AGP:“关于AGP,是当前被已经淘汰的图形系统接口。”
我的有关显示lspci为:
01:00.0 VGA compatible controller: ATI Technologies Inc RV370 5B60 [Radeon X300 (PCIE)]
01:00.1 Display controller: ATI Technologies Inc RV370 [Radeon X300SE]
控制器为VGA,而且我的x550被认成x300
2。Direct Rendering Manager (XFree86 4.1.0 and higher DRI support
gentoo官方和unofficial的答案想反,哪个是对的呢?

我现在的firefox很卡,升级3.0好一点,不过还是慢,估计就是显卡的原因。
多谢指点!
回复 支持 反对

使用道具 举报

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

本版积分规则

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