解决升级到 Ubuntu 9.10 后无法进入 X Window 的有关问题

解决升级到 Ubuntu 9.10 后无法进入 X Window 的问题

十月底 Ubuntu 9.10 正式发布,用 Alternative CD 从 9.04 升级,一切顺利。但是重启后,发现 Grub 中最新的 2.6.31 版本内核无法启动,系统在启动后进入命令行模式,屏幕不停闪烁,而且键盘输入也呈现问题,完全无法输入密码登录系统。幸好还保留了一个老版本的内核 2.6.28 可以正常启动,但是在安装了 nvidia-glx-185 显卡驱动之后,连 2.6.28 也无法启动了,故障的状况和 2.6.31 类似。上网搜索了一下,在云风的 blog 上看到他也遇到过类似的问题,但是我在查看 /etc/X11/xconf 文件之后,并没有发现分辨率的设置有异。不过因此得到了提示,手动执行 startx,控制台上输出报错信息显示因为某些出现 error 导致 nvidia 驱动无法正常加载,只是报错信息比较含糊,没有办法定位问题之所在,而模糊的信息,也无法提供良好的搜索关键字。

在浪费了若干时间之后,想到可以在 Ubuntu Forum 上或许可以寻找到一些有用的信息。果然,在 Installation & Upgrades 版块就有一篇 stick 在顶部的 thread《ATI & Nvidia: no X, just blinking on 2.6.31 (Karmic 9.10) 》,文中的问题描述和我遇到的情况别无二致。该 thread 中提供了好几种解决方案,我采用的方法(by Sunflower1970)是

  1. 备份并修改 X 的配置文件:
    sudo cp /etc/X11/xconf /etc/X11/xconf.bak && sudo vi /etc/X11/xconf
  2. 找到类似显示设备配置的段落,类似:
    Section "Device"
    Identifier "Default Device"
    Driver "the driver here"
    Option "NoLogo" "True"
    EndSection
  3. 将 Driver 一项修改成为 vesa,之后保存配置文件,重启系统即可。

导致该问题的原因是系统自动安装 nvidia 显卡驱动失败,但是依旧修改了 /etc/X11/xconf 的配置,于是 X 在启动时根据配置去加载没有安装成功的驱动程序,导致出现故障。可以在成功启动系统之后,再尝试自行安装专用的显卡驱动程序。我是按照 chessmani 提供的方法利用 envyng 来安装 nvidia 显卡驱动的。步骤如下:

  1. 增加 PPA 并且更新 apt 源:
    sudo add-apt-repository ppa:nvidia-vdpau/ppa && sudo apt-get update
  2. 安装 envyng:
    sudo apt-get install envyng-core
  3. 安装 nvidia-190-modaliases 以便 envyng-core 检测到需要安装的驱动:
    sudo apt-get install nvidia-190-modaliases
  4. 执行 envyng 开始安装驱动。注意首先卸载旧版本的驱动。
    sudo envyng -t
    按照出现的提示操作即可。