手头的这台 Lenovo IdeaPad Y400 是去年买的,美行,在淘宝上代购的。原因是旧电脑更新换代,原来的那台联想 F41M 实在是太慢了(2G 内存,而且由于主板限制,内存无法扩容)。买之前就决定操作系统要装 Gentoo。
最终的事实证明,买这台电脑是无比糟糕的选择:从买回这台电脑到现在,我至少有一半的时间都在用旧电脑,而新电脑则躺在电脑包里睡大觉,因为根本就没法用。
至于原因嘛,简单地说,是因为 Y400 的 Linux 驱动问题。
先说 Y400 的网卡驱动问题。当然,这个问题几个月前已经解决了。现在只是回顾下那段「苦难史」。
Y400 有线网卡型号是 Atheros AR8161/8165 PCI-E Gigabit Ethernet Controller,无线网卡型号是 Intel Centrino Wireless N-2230。前面已经说过,我打算安装 Gentoo。安装过 Gentoo 的朋友都知道,Gentoo 安装起来非常麻烦。而对我来说,最大的麻烦却是一个别人一般都不会遇到的问题:没有相应的网卡(有线网卡和无线网卡)驱动,没法连网。
安装 Gentoo 需要连网来更新 Portage tree,进而编译 kernel 和各种应用程序。而当时 Gentoo 提供的 stage3 的 ISO 安装包,kernel 版本不够新(大概是 kernel 3.8 左右),导致有线网卡和无线网卡都无法工作。其中,有线网卡的驱动 alx.ko 模块,要在 kernel 3.10 以上才有提供。
我当时也尝试过采用基于 Gentoo、但是 kernel 版本经常会更高一些的 SystemRescueCd 来制作 LiveUSB 启动盘,但是最终无果。因为 SystemRescueCd 的 kernel 版本也不够高。
其实,当时如果我换用别的发行版(eg. 当时最新版本的 Ubuntu),是能够绕过这个问题的。但是,因为执意要安装 Gentoo,便一条道走到黑了。
如果我买一个支持 Linux 的 USB 网卡,也有可能解决这个问题的。但是,因为之前买过 Mercury RTL8192CU 的 USB 网卡,结果不支持 Linux……所以,就放弃这种尝试了。
最终是怎么解决这个问题的呢?说来惭愧,我等了几个月,后来 Gentoo 放出了 kernel 版本在 3.10 以上的 stages ISO,我才把 Gentoo 安装成功。
那几个月里,新电脑一直闲置,资源浪费啊。我用旧电脑凑合着。
安装上 Gentoo,用了几个月后,又出了大问题。这回是 nVidia 的显卡驱动出了问题。显卡型号是 nVidia GeForce GT 750M。
这也是要非写这篇博客不可的原因:我实在忍无可忍了!且听我娓娓道来。
春节回家前,随手 emerge -uDN --with-bdeps=y world
升级系统,然后发现没有 X 了。service xdm start
,提示 xdm
服务可以启动,但是没有了 GUI。
几个相关日志文件,记录的错误信息如下:
kernel: NVRM: RmInitAdapter failed! (0x24:0x38:1129) kernel: NVRM: rm_init_adapter failed for device bearing minor number 0 kernel: NVRM: nvidia_frontend_open: minor 0, module->open() failed, error -5
(EE) Fatal server error: (EE) no screens found(EE) (EE) Please consult the The X.Org Foundation support at http://wiki.x.org for help. (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information. (EE) (EE) Server terminated with error (1). Closing log file.
[ 168.894] (EE) NVIDIA(GPU-0): Failed to initialize the NVIDIA GPU at PCI:1:0:0. Please [ 168.894] (EE) NVIDIA(GPU-0): check your system's kernel log for additional error [ 168.894] (EE) NVIDIA(GPU-0): messages and refer to Chapter 8: Common Problems in the [ 168.894] (EE) NVIDIA(GPU-0): README for additional information. [ 168.894] (EE) NVIDIA(GPU-0): Failed to initialize the NVIDIA graphics device! [ 168.894] (EE) NVIDIA(0): Failing initialization of X screen 0 [ 168.894] (II) UnloadModule: "nvidia" [ 168.894] (II) UnloadSubModule: "wfb" [ 168.894] (II) UnloadSubModule: "fb" [ 168.894] (EE) Screen(s) found, but none have a usable configuration. [ 168.894] (EE) Fatal server error: [ 168.894] (EE) no screens found(EE) [ 168.894] (EE) Please consult the The X.Org Foundation support at http://wiki.x.org for help. [ 168.894] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information. [ 168.894] (EE) [ 168.895] (EE) Server terminated with error (1). Closing log file.
我尝试过的解决方法:
- 用不同 kernel 版本 + 不同
nvidia-drivers
版本,各种组合,无果。错误信息也基本相同。 - linux-3.10.7-gentoo-r1 +
nvidia-drivers
(331.38, 331.49, 334.21) - linux-3.12.13-gentoo +
nvidia-drivers
(331.49) - 用
nouveau
代替nvidia-drivers
,X 可以启动。
但是效果很渣,分辨率太低,而且似乎不能调整。
2014.05.12 更正:采用了 nouveau
显卡驱动,分辨率是可以修改的。具体可以参考这篇文章:Scientific Linux下设置分辨率。
各种 Google 之后,我确认这是 nVidia GeForce GT 650M/750M 显卡驱动的 bug,联想 IdeaPad Y400/Y500/Y510P 型号笔记本存在该 bug,也有一些其它品品牌的笔记本存在该 bug。而我还一度以为是显卡坏掉了呢。在 nVidia 的论坛里有关于该 bug 的讨论:1,2。该 bug 已经存在挺长时间了,至今未修复,nVidia 还真淡定……
由于 bug 是直接出在硬件驱动上的,所以并没有什么好的方法,只能等 nVidia 官方来修复。也有帖子说可以通过降级 kernel 版本(有说 kernel 3.9)来绕过该 bug,但是如果降级 kernel,我怕网卡驱动会再次不能用,所以不打算尝试该方法。
然后,我又想可否禁用 nVidia 显卡,而只用 Intel 的集成显卡呢?Intel 的集成显卡总不会出问题吧。
事与愿违。Y400 系列只可以使用独立显卡,集成显卡不能用。具本可以参考这两个链接:1,2。
都是驱动惹的祸。
究其原因嘛,是因为 Y400 硬件太新(当时毕竟号称是顶级配置嘛),而 Linux 对新硬件的驱动支持不够及时(相对于 Windows 而言)。
当然,我并不是说 Linux 社区不努力。
一方面,这与发行版有关(在新的 kernel 已经增加了对某硬件驱动支持的情况下)。Ubuntu 每半年发布一个新版本,新版本往往会采用比较新的 kernel;Arch Linux 作为「激进派」,每次滚动更新,kernel 和各种应用程序都能升级到很新(倒不一定是最新);Gentoo Linux 虽然同样是滚动更新,但是系统更新时,对 kernel 和应用程序的更新就保守很多。个人感觉,新版本 Ubuntu 和 Arch Linux 对于新硬件的驱动支持都比 Gentoo 要好一些。
另一方面,与硬件厂商对于 Linux 驱动的支持有关。硬件厂商能提供开源驱动当然是好事;如果不愿意提供开源驱动、而闭源驱动支持又足够好用的话,作为一个普通的 Linux 用户,我也很乐意接受。毕竟,开源暗含「自由」的意思,如果强迫硬件厂商把驱动开源出来,一定程度上就违背了「自由」的含义。但是我很难接受这样的情形:闭源驱动很差,bug 严重到硬件没法正常使用;同时,又不愿意把驱动开源出来,让开源社区帮助提高……这损害了用户的利益。nVidia 就是这样的典型。
启示:
玩 Linux,硬件配置不要太新。因为驱动有可能跟不上。
nVidia 显卡驱动很坑爹:开源驱动效果差,几乎没法用似乎略差(存疑);闭源驱动效果虽好,但是 bug 太多(严重的可能导致显卡直接没法用),修复也很不及时。
请问博主的问题解决了吗?我因为显卡驱动问题一直没有去用linux
解决了~可以尝试下的。
请问博主怎么解决的?我也是y400。我安装n卡官方驱动过程一直没有错误,就最后的log基本一样。。麻烦能指点一下吗?
我们邮件里沟通吧~
I don’t want to write this with English, but I have not install Pinyin Input programe.
I want to ask you how to solve GPU QuDong.
Please….
你好 我也是小y 我安装ubuntu和linuxmint后 出现异常声音 ”迟迟“声 好像不是硬盘的i声音 我检测也没有坏道 求教
我这边没有遇到这样的问题哈~
如果是硬件故障的话,无论装什么 OS、启动什么应用,都应该有问题。
或者跟声卡驱动有关?