周五上午处理完成常规工作后,打开Ubuntu的更新管理器,发现已经有9.10可以更新,之前好像也听说9.10在10月22号和Win7同一天发布(事后证明是在29号)。心里有些痒痒,脑袋一热,决定升级了。升级界面提示需要9个小时,我是等不及了,下午还要参加CSDN的SD2.0大会,随它去吧。
周一早上,满怀欣喜的打开电脑,一切正常。提示需要删除旧的软件包,然后重启。那就删吧,也可以节省空间。可是我并没有意识到危险已经向我逼近。
删除完成,自动重启。重启的屏幕,停在了命令行状态。刚开始我并没有在意,以为是一个常规的过程而已。可是过了半天,还是如此。仔细一看,原来是请求登录,那就登录吧。用户名、密码,登录成功。可是依然是命令行界面。运行startx命令,却得到了一把屏幕的信息,最重要的就是:
No Screens found
隐隐感觉有些不对劲。根据提示打开/etc/X11/xorg.conf文件查看,却发现只有寥寥数行:
# xorg.conf (X.Org X Window System server configuration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the xorg.conf manual page.
# (Type "man xorg.conf" at the shell prompt.)
#
# This file is automatically updated on xserver-xorg package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xorg
# package.
#
# Note that some configuration settings that could be done previously
# in this file, now are automatically configured by the server and settings
# here are ignored.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command:
# sudo dpkg-reconfigure -phigh xserver-xorg
Section "Device"
Identifier "Configured Video Device"
EndSection
Section "Monitor"
Identifier "Configured Monitor"
EndSection
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
EndSection
这怎么可能正常呢?赶紧打开另外一台机器上8.04下该文件进行比较,那里的信息就要丰富很多了。
信息还提示,/var/log/Xorg.0.log中保存了日志信息,打开看下:
X.Org X Server 1.6.4
Release Date: 2009-9-27
X Protocol Version 11, Revision 0
Build Operating System: Linux 2.6.24-24-server i686 Ubuntu
Current Operating System: Linux B0324-MENGKJ 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:04:26 UTC 2009 i686
Kernel command line: root=UUID=315b7ba6-7a94-41cb-9a25-93f8d1716d67 ro quiet splash
Build Date: 14 October 2009 11:18:16PM
xorg-server 2:1.6.4-2ubuntu3 (buildd@)
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.1.log", Time: Tue Oct 27 08:39:20 2009
(==) Using config file: "/etc/X11/xorg.conf"
(==) No Layout section. Using the first Screen section.
(**) |-->Screen "Default Screen" (0)
(**) | |-->Monitor "Configured Monitor"
(**) | |-->Device "Configured Video Device"
(==) Automatically adding devices
(==) Automatically enabling devices
(WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
Entry deleted from font path.
(==) FontPath set to:
/usr/share/fonts/X11/misc,
/usr/share/fonts/X11/100dpi/:unscaled,
/usr/share/fonts/X11/75dpi/:unscaled,
/usr/share/fonts/X11/Type1,
/usr/share/fonts/X11/100dpi,
/usr/share/fonts/X11/75dpi,
/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType,
built-ins
(==) ModulePath set to "/usr/lib/xorg/modules"
(II) Cannot locate a core pointer device.
(II) Cannot locate a core keyboard device.
(II) The server relies on HAL to provide the list of input devices.
If no devices become available, reconfigure HAL or disable AllowEmptyInput.
(II) Loader magic: 0x3bc0
(II) Module ABI versions:
X.Org ANSI C Emulation: 0.4
X.Org Video Driver: 5.0
X.Org XInput driver : 4.0
X.Org Server Extension : 2.0
(II) Loader running on linux
(--) using VT number 7
(--) PCI:*(0:1:0:0) 1039:6351:17aa:301a Silicon Integrated Systems [SiS] 771/671 PCIE VGA Display Adapter rev 16, Mem @ 0xd0000000/268435456, 0xfeae0000/131072, I/O @ 0x0000dc00/128
(II) Open ACPI successful (/var/run/acpid.socket)
(II) System resource ranges:
[0] -1 0 0xffffffff - 0xffffffff (0x1) MX[B]
[1] -1 0 0x000f0000 - 0x000fffff (0x10000) MX[B]
[2] -1 0 0x000c0000 - 0x000effff (0x30000) MX[B]
[3] -1 0 0x00000000 - 0x0009ffff (0xa0000) MX[B]
[4] -1 0 0x0000ffff - 0x0000ffff (0x1) IX[B]
[5] -1 0 0x00000000 - 0x00000000 (0x1) IX[B]
(II) LoadModule: "extmod"
(II) Loading /usr/lib/xorg/modules/extensions//libextmod.so
(II) Module extmod: vendor="X.Org Foundation"
compiled for 1.6.4, module version = 1.0.0
Module class: X.Org Server Extension
ABI class: X.Org Server Extension, version 2.0
(II) Loading extension MIT-SCREEN-SAVER
(II) Loading extension XFree86-VidModeExtension
(II) Loading extension XFree86-DGA
(II) Loading extension DPMS
(II) Loading extension XVideo
(II) Loading extension XVideo-MotionCompensation
(II) Loading extension X-Resource
(II) LoadModule: "dbe"
(II) Loading /usr/lib/xorg/modules/extensions//libdbe.so
(II) Module dbe: vendor="X.Org Foundation"
compiled for 1.6.4, module version = 1.0.0
Module class: X.Org Server Extension
ABI class: X.Org Server Extension, version 2.0
(II) Loading extension DOUBLE-BUFFER
(II) LoadModule: "glx"
(II) Loading /usr/lib/xorg/modules/extensions//libglx.so
(II) Module glx: vendor="X.Org Foundation"
compiled for 1.6.4, module version = 1.0.0
ABI class: X.Org Server Extension, version 2.0
(==) AIGLX enabled
(II) Loading extension GLX
(II) LoadModule: "record"
(II) Loading /usr/lib/xorg/modules/extensions//librecord.so
(II) Module record: vendor="X.Org Foundation"
compiled for 1.6.4, module version = 1.13.0
Module class: X.Org Server Extension
ABI class: X.Org Server Extension, version 2.0
(II) Loading extension RECORD
(II) LoadModule: "dri"
(II) Loading /usr/lib/xorg/modules/extensions//libdri.so
(II) Module dri: vendor="X.Org Foundation"
compiled for 1.6.4, module version = 1.0.0
ABI class: X.Org Server Extension, version 2.0
(II) Loading extension XFree86-DRI
(II) LoadModule: "dri2"
(II) Loading /usr/lib/xorg/modules/extensions//libdri2.so
(II) Module dri2: vendor="X.Org Foundation"
compiled for 1.6.4, module version = 1.1.0
ABI class: X.Org Server Extension, version 2.0
(II) Loading extension DRI2
(==) Matched sis for the autoconfigured driver
(==) Assigned the driver to the xf86ConfigLayout
(II) LoadModule: "sis"
(II) Loading /usr/lib/xorg/modules/drivers//sis_drv.so
(II) Module sis: vendor="X.Org Foundation"
compiled for 1.6.0, module version = 0.10.1
Module class: X.Org Video Driver
ABI class: X.Org Video Driver, version 5.0
(II) SIS: driver for SiS chipsets: SIS5597/5598, SIS530/620,
SIS6326/AGP/DVD, SIS300/305, SIS630/730, SIS540, SIS315, SIS315H,
SIS315PRO/E, SIS550, SIS650/M650/651/740, SIS330(Xabre),
SIS660/[M]661[F|M]X/[M]670/[M]741[GX]/[M]760[GX]/[M]761[GX]/[M]770[GX],
SIS340
(II) SIS: driver for XGI chipsets: Volari Z7 (XG20),
Volari V3XT/V5/V8/Duo (XG40)
(II) Primary Device is: PCI 01@00:00:0
(WW) Falling back to old probe method for sis
(--) Assigning device section with no busID to primary device
(EE) No devices detected.
Fatal server error:
no screens found
Please consult the The X.Org Foundation support
at http://wiki.x.org
for help.
Please also check the log file at "/var/log/Xorg.1.log" for additional information.
ddxSigGiveUp: Closing log
配置文件也查了,日志也读了,还是不知道如何解决。
只能问Google了,大家一直的想法就是驱动丢失,可以重新安装驱动。可是Google上全是在图形界面上安装驱动的。于是我又在一位同事的指导下,安装了gnone-core已经kde-desktop的环境。这个过程中更惨的是,由于之前是中文的环境,命令行中好多东西都是乱码。
经过一番折腾,时间已经到了下班了。我只能向它缴械了投降,准备第二天采用终极解决方法,重新安装。
晚上,我还是不死心,就这样低头好像有点太那个了。重新Google it,无意中发现一个方法:删除xorg.conf文件,然后重启
。现在死马当成活马医,只能试试了。
今天早上,依然是进入命令行登录,执行下列的命令:
~$ cd /etc/X11
~$ sudo mv xorg.conf xorg.conf.bak
~$ sudo reboot
我静待奇迹的出现,想不到奇迹真的出现了!于是就有了这篇文章。
这里只是在事后解决了问题,那么有没有办法在事前就避免这样的问题呢?不知道下面办法是否可行:在重启前,先备份xorg.conf;如果不能正常重启,就用备份的文件,替换重启后生成的文件。
后记:
首先感谢zxz_tsgx
,你提出的问题,给我提了个醒,“知其然,知其所以然。”首先说明我也只是Linux方面的新手,希望大家一起讨论问题。
首先看下面的一段话:
Xorg
supports several
mechanisms for supplying/obtaining configuration and run-time parameters:
command line options, environment variables, the xorg.conf configuration
file, auto-detection, and fallback defaults. When the same information is
supplied in more than one way, the highest precedence mechanism is used.
The list of mechanisms is ordered from highest precedence to lowest.
从上面可以看出,如果系统中不存在xorg.conf,那么Xorg就会采用自动检测(auto-detection)的方式,同时应该根据自动检测的结果生成新的xorg.conf文件保存检测到的信息。
至于升级后出错的那个xorg.conf,应该是只保存了最基本的信息,所以每次启动时,根据文件中的信息都不能进入图形用户界面。