今天,总算是把Gentoo下困扰我N久的一个问题给解决了,把经历分享下,以便与我同命相连的人google到这篇日志。

主要症状是这样的: 使用华硕K8N4-E/Deluxe主板的,无论是使用Gentoo LiveCD 06/07版还是自编译内核(>2.6.13)启动,都无法识别到SATA硬盘设备,必须采用降级内核的方式或者使用Gentoo LiveCD 2005才能正常识别,而在Ubuntu/Fedora Core (2.6.2系列kernel)下却没有这个问题。只要是大于2.6.13的内核无论是gentoo-sources, genkernel, vanilla-sources, mm-sources, sabayon-sources甚至Ubuntu和Fedora的kernel都没用。我曾经在论坛里发过帖子询问,当时没太在意,以为降级内核到2.6.13就算解决了,但是随便kernel的不断更新,问题越来越多了,udev不能用最新的,与之而来的就是hal不能自动挂载移动储存设备,nvidia驱动不能用100系列版本,否则退出X会花屏,xorg-x11不能用7.3,因为没有100系列的nvidia驱动配合,这么多问题差点让我被迫转投ubuntu了,还好最终还是选择向Gentoo Community寻求帮助。

我在open a new thread之前就发现论坛里用同样一块主板的朋友都遇到了这个问题:

  1. SATA drives not recognized on kernel > 2.6.11
  2. Problem finding my SATA-drives
  3. kernel panic (solved)
  4. What does “VFS: Cannot open root device…” mean, exactly?

加上后面两个我之前发布的贴子/回复,搜集好所有信息后,我发了个新的帖子:

Kernels(>2.6.13) dont recognize sata disk on K8N4-E [solved]

并给当时发表/回复那些帖子的人发了封private message,也得到了这些人的热心帮助,但是始终没能解决问题。于是我去Gentoo Mailing List上发邮件,也没能得到解决的办法,最终选择了向Gentoo的Bugzilla提交bug,直接询问Gentoo Developers。

Bugzilla Bug 194531 : Kernels (>2.6.13) dont recognize the sata harddisk on ASUS K8N4-E motherboard

在这里得到了解决方案,关闭MMCONFIG PCI Access Mode可以成功识别到SATA设备,正如其中一个developer说的: Nforce motherboards don’t have the best history with the linux kernel。关闭MMCONFIG有两种方式,一是设置内核:

取消自动选择模式和MMCONFIG模式,选择BIOS或者DIRECT方式

CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GOMMCONFIG is not set 
CONFIG_PCI_GODIRECT=y
# CONFIG_PCI_GOANY is not set

二是在grub.conf的kernel行末尾添加pci=nommconf参数来关闭它。

同样,使用Gentoo LiveCD的话,可以在启动时加入启动参数nommconf来顺利引导LiveCD读取SATA硬盘。问题是解决了,不过查看下ubuntu和fedora的kernel config文件,并没有关闭MMCONFIG模式,难道还是Gentoo的问题?

在Developers的帮助下,进入Kubuntu/Fedora LiveCD,cat /proc/iomem发现其中没有那句f0000000-f3ffffff : PCI MMCONFIG 0,意味着Ubuntu和Fedora把MMCONFIG给blacklist了。哪位使用Ubuntu或者Fedora的朋友麻烦把cat /proc/iomem的结果贴出来给我看下,我想知道是Ubuntu/Fedora直接blacklist了MMCONFIG还是在硬件检测时根据我的硬件关闭了MMCONFIG。

这样,整个症结就落在了MMCONFIG上,排除了Gentoo本身的因素。

Gentoo之所以受青睐的原因不仅是它的高度可定制性和portage的包管理方式,还有它背后强大的社区支持。Gentoo的官方论坛 是目前最活跃的linux论坛之一了,里面集结了来自全世界各地的顶尖linux高手和geek,无论是帖子还是回复都是高质量的,即便是不用Gentoo Linux的朋友在里面都能找到很多有价值的东西。而Bugzilla作为forum的补充,提供了与开发人员直接的交流平台,你可以得到最专业的帮助。

I <3 Gentoo and its Community !

6 Reponses So Far ↓

  1. yucca:

    yucca@yucca-desktop:~$ cat /proc/iomem
    00000000-0009f3ff : System RAM
    00000000-00000000 : Crash kernel
    0009f400-0009ffff : reserved
    000a0000-000bffff : Video RAM area
    000c0000-000ce1ff : Video ROM
    000f0000-000fffff : System ROM
    00100000-3fedffff : System RAM
    00100000-002f7d25 : Kernel code
    002f7d26-003dce83 : Kernel data
    3fee0000-3fee2fff : ACPI Non-volatile Storage
    3fee3000-3feeffff : ACPI Tables
    3fef0000-3fefffff : reserved
    3ff00000-3fffffff : pnp 00:0d
    d0000000-dfffffff : PCI Bus #01
    d0000000-dfffffff : 0000:01:00.0
    e0000000-efffffff : reserved
    fa000000-fcffffff : PCI Bus #01
    fa000000-faffffff : 0000:01:00.0
    fa000000-faffffff : nvidia
    fb000000-fbffffff : 0000:01:00.0
    fc000000-fc01ffff : 0000:01:00.0
    fdc00000-fdcfffff : PCI Bus #03
    fdd00000-fddfffff : PCI Bus #03
    fde00000-fdefffff : PCI Bus #02
    fdeff000-fdefffff : 0000:02:00.0
    fdeff000-fdefffff : r8169
    fdf00000-fdffffff : PCI Bus #02
    fdf00000-fdf1ffff : 0000:02:00.0
    fe024000-fe027fff : 0000:00:14.2
    fe024000-fe027fff : ICH HD audio
    fe028000-fe0283ff : 0000:00:14.0
    fe029000-fe0290ff : 0000:00:13.5
    fe029000-fe0290ff : ehci_hcd
    fe02a000-fe02afff : 0000:00:13.4
    fe02a000-fe02afff : ohci_hcd
    fe02b000-fe02bfff : 0000:00:13.3
    fe02b000-fe02bfff : ohci_hcd
    fe02c000-fe02cfff : 0000:00:13.2
    fe02c000-fe02cfff : ohci_hcd
    fe02d000-fe02dfff : 0000:00:13.1
    fe02d000-fe02dfff : ohci_hcd
    fe02e000-fe02efff : 0000:00:13.0
    fe02e000-fe02efff : ohci_hcd
    fe02f000-fe02f3ff : 0000:00:12.0
    fe02f000-fe02f3ff : ahci
    fec00000-ffffffff : reserved
    amd690g+amd 3600+

  2. yucca:

    ubuntu 7.10 x86

  3. Eliziac:

    already bought PSP-2000 , LOL~

  4. punkid:

    @ yucca: thx very much,似乎ubuntu确实是默认blacklist mmconfig了。你用的nForce的板还是intel的啊?

    @ Eliziac: 此女不是一般的FB啊…what’s the your next gadget?

  5. yucca:

    老大不是说了是amd的690G了吗

Leave a Reply ↓