页面

2010年5月18日星期二

xorg

Contents

[hide] [hide]

介绍

Xorg 是X11 X窗口系统的一个开放和开源实现。(查看 X.org Wikipedia ArticleX.org for details.) 一般地,如果你想在Arch上用GUI,你要用到xorg.

安装 Xorg

开始之前,确定你做了一下事情:

  1. 确保 pacman 已经配置和更新.
  2. 记录下第三方驱动 (如 nVidia 或 ATI 驱动).

首先让我们安装完整的'xorg'软件包组:

# pacman -S xorg

缺省的vesa显示驱动虽然兼容绝大部分芯片组,但它仅仅是一个后备方案(没有加速并且很多分辨率不支持),因此可以的话你还是需要一个合适的驱 动。你可以打入以下命令获取显示驱动列表:

# pacman -Ss xf86-video

找到合适你显卡的驱动后,用pacman -S命令安装。

想要知道你的显卡类型,可以安装hwd (pacman -S hwdetect)或 community/lshw:

$ hwd -s

或者:

$lshw -short

或者:

$ lspci | grep "VGA"

配置xorg

在运行xorg以前,你需要对它进行配置,使得它识别你的图形卡、显示器、鼠标和键盘。有几种方法可以自动进行配置:

无需xorg.conf

最新的Xorg通常可以在HAL协助下有效的识别硬件。因此,使用xorg.conf文件成为一个可选方案。一开始不使用xorg.conf, 然后只是增加些必须的部分,这样做可能更好。

由于xorg依赖于hal,所以如果你还没有hal的话,安装它:

# pacman -S hal

将hal加入到/etc/rc.conf的 DAEMONS=队列中:

启动hal:

# /etc/rc.d/hal start

启动X:

$ startx

或者

$ xinit

如果X可以正常启动,而你需要一个基本的xorg.conf文件,那么就可以根 据Xorg.0.log文件中创建它。

如果没有检测到闭源驱动如nvidia,可以加入一个最小的xorg.conf,就像下面这样:

Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
EndSection

Section "Files"
FontPath "/usr/share/fonts/local/"
EndSection

Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce Go 7300"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Device0"
EndSection

不使用xorg.conf配置non-us键盘

# cp /usr/share/hal/fdi/policy/10osvendor/10-keymap.fdi /etc/hal/fdi/policy/

然后打开/etc/hal/fdi/policy/10-keymap.fdi,编辑 input.xkb.layout中 的"us"成为你所希望的键盘布局,如果有必要,可以一同修改input.xkb.variant.

在X里执行命令

# setxkbmap pl 

(用你自己的键盘布局而不是pl)可以切换你的键盘布局。 想要永久生效,你可以采用将此命令加入到~/.xinitrc文件中(在启动窗口管理器之前)等方式。

hwd

Note: 注意:hwd目前已经升级(5.5版)并能工作于xorg-server-1.5.x和1.6.x。 目前,它会禁用基于HAL的输入设备的热插拔功能,取而代之的是产生一个包含输入设备的传统xorg.conf文件。
Note: hwd已经从[community]官方仓库中移动到AUR。

或许简单快捷配置好Xorg的方法就是使用hwd,一个由Arch linux社区用户所写的工具。它主要是一个硬件探测工具,当然还有其他功能。其中一项就是设置X server,幸运的是,hwd 比xorgconf 更加简明,根本不需要任何输入。

首先,你需要安装AUR中的hwd软件包.

现在只需要以roor权限运行下面的命令,便可生成一个缺省的xorg.conf文件:

# hwd -xa

这将用hwd检测到的硬件生成一些配置,覆盖掉已有的/etc/X11/xorg.conf文件,原有的xorg.conf文件将被重命名为 xorg.conf.bak。

另外一种做法是, 你可以生成一个范例Xorg文件(/etc/X11/xorg.conf.hwd)而不覆盖你已有的设置。 使用-x参 数来运行hwd

# hwd -x

结果范例:

/etc/X11/xorg.conf.ati
/etc/X11/xorg.conf.vesa

有了范例文件,把它们之一重命名为'xorg.conf'。如果不确定,可以先尝试'vesa'(缺省)。

要使用这些范例文件,你得手动将它更名,例如:

# mv xorg.conf.hwd xorg.conf

注意,以我的经验hwd生成的XF86Config-4文件,如果当前没有xorg.conf的话,Xorg就会自动使用它。

Xorg -configure

你也可以使用

# Xorg -configure

或者

# X -configure

以下命令在当前目录下自动生成缺省的xorg.conf.new文件。

# X -config ./xorg.conf.new

你可以将它复制为/etc/X11/xorg.conf

nvidia-xconfig

nVidia 用户也可以使用

# nvidia-xconfig

用户要安装 nvidia 官方驱动installed.

Module段注释掉这行

 Load           "type1"

这是因为新版本的xorg-server已经不含type1字体模块了(已被freetype完全替代)。

根据Xorg.0.log文件中创建

如果你可以不使用xorg.conf文件成功启动x,那么就可以在/var/log/Xorg.0.log中找 到缺省的xorg配置。只要复制下面两行

(==) --- Start of built-in configuration ---

(==) --- End of built-in configuration ---

之间的文本到你新建的xorg.conf中就可以了。

编辑 xorg.conf

在xorg.conf生成后,你可能想要修改它. 打开你最心爱的文本编辑器, 如 Vim (你需要 root 权限):

vim /etc/X11/xorg.conf

如果你想要设置鼠标滚轮, 请看 Get All Mouse Buttons Working.

显示器设置

依赖于你的硬件, Xorg 可能无法正确探测显示器参数, 又或者你只想使用显示器性能之外的低分辨率。在设置以下参数前,你可能要查看以下显示器的手册。 以下设置在Monitor section中指定:

水平同步

HorizSync 28-64

刷新率

VertRefresh 60

以下设置在Screen section中指定:

色深

Depth 24

分辨率

Modes "1280x1024" "1024x768" "800x600"

键盘设置

Xorg 可能会探测键盘失败,这可能是没有正确设置键盘布局(keyboard layout)和键盘模型(keyboard model)。

想看keyboard models, layouts, variants and options的完整的列表, 请打开.


/usr/share/X11/xkb/rules/xorg.lst

键盘布局 Keyboard Layout

在keyboard InputDevice section中使用XkbLayout选项来改变键盘布局。如果你有一个英文布局的键盘,如下所示:

Option "XkbLayout" "gb"

键盘模型 Keyboard Model

在keyboard InputDevice section中使用XkbModel选项来改变键盘模型。如果你有一个M$的无线多媒体键盘,如下所示:

Option "XkbModel" "microsoftmult"

显示尺寸 Display Size/DPI

为得到正确的字体大小,显示尺寸必须设置为你所需要的DPI.在"Monitor"段中以毫米(mm)为单位设置显示大 小:

Section "Monitor"
...
DisplaySize 336 252 # 96 DPI @ 1280x960
...
EndSection


计算显示尺寸值的公式是 宽 x 25.4 / DPI 和 高 x 25.4 / DPI. 如果你的xorg的分辨率是 1024x768 ,想要96的DPI, 使用 1024 x 25.4 / 96 和 768 x 25.4 / 96. Round numbers down.

# calc: (x|y)pixels * 25.4 / dpi
# DisplaySize 168 126 # 96 DPI @ 640x480
# DisplaySize 210 157 # 96 DPI @ 800x600
# DisplaySize 269 201 # 96 DPI @ 1024x768
# DisplaySize 302 227 # 96 DPI @ 1152x864
# DisplaySize 336 252 # 96 DPI @ 1280x960
# DisplaySize 336 269 # 96 DPI @ 1280x1024 (non 4:3 aspect)
# DisplaySize 370 277 # 96 DPI @ 1400x1050
# DisplaySize 420 315 # 96 DPI @ 1600x1200
# DisplaySize 506 315 # 96 DPI @ 1920x1200


对 nVidia 的驱动来说, 你要手动设置而不是自动设置DPI. 在这些显卡上设置DPI不难. 下面两行或者任意一行可以加在device段中即可。

  Option   "UseEdidDpi" "false"
Option "DPI" "96 x 96"


执行以下命令可以检查结果, 如果你设置DPI为96,那么会返回96x96 per dots.

xdpyinfo | grep -B1 dot

官方驱动

首先检查X server是否运行OK. 在没有官方驱动下,Xorg也能平稳运行。官方驱动只是提供更高级的特性,如3D加速渲染,双屏设置,TV-out。 nVidia驱动查看 NVIDIA;ATI 驱动查看ATI

字体

X 字体配置有设置字体的贴士.

Xorg.conf 文件样例

如果谁有可以运行的xorg.conf文件, 可以提供一个链接让其他人也能看到! 请不要贴上整个文件; 上传到其他地方并建立一个链接,谢谢!

测试Xorg配置文件

键入以下命令:

startx

默认的X环境很简单, 一般要安装窗口管理器或者桌面环境。

为测试x配置文件,你可以:

X -config <your config file>

如果出现问题, 可以查看日志 /var/log/Xorg.0.log。 请注意以 (EE) 开头的行,它会指出错误,也注意以(WW)开头的行,它会指出其他问题。

*请注意* 使用 startx 需要~/.xinitrc 文件, 这样 X 才能知道它在启动时要运行什么。最好的选择是拷贝 /etc/skel/.xinitrc文 件到你的用户目录下并做些修改。注释掉你不需要的'exec'行, 增加或者释放你所需要的内容。如果你使用 GNOME,为防止HAL的许可问题,最好通过gdm来启动GNOME。

另外,你也可以安装 twm 和 xterm (通过 pacman),如果 /.xinitrc 不存在,它可以作为一个替补 (以/etc/X11/xinit/xinitrc启动).

X 启动 (/usr/bin/startx) 小窍门

参看X的选项:

man Xserver

以下的选项可以附加在/usr/bin/startx文件的"defaultserverargs"变量中.

阻止 X 侦听tcp:

-nolisten tcp
Note: 现在已是/etc/X11/xinit/xserverrc中的缺省设置。

在x启动时,取消灰色波纹图案,让x设置一个黑色根窗口(black root window):

-br
Note: 新版Xorg已不需要。

为16位字体使能延缓字形加载:

-deferglyphs 16

注意: 如果你用kdm启动x, 则不会执行startx脚本。上述这些选项必须加在/usr/share/config/kdm/kdmrc文 件的"ServerArgsLocal"或者"ServerCmd"变量中. 缺省kdm的选项是

  ServerArgsLocal=-nolisten tcp
ServerCmd=/usr/bin/X

模块化Xorg的变化

通用包

请确认你已经安装了键盘、鼠标、显卡的驱动。鼠标和键盘驱动分别为xf86-input-keyboardxf86-input-mouse 。其它类似 xf86-input-* 的包是其它输入设备的驱动。

对于显卡,在xf86-video-*中查找符合的驱动然后安装即可;ATI和Nvidia显卡需要安装非自由驱动(NVIDIA, ATI)。 安装完毕后需要在xorg.conf中显卡定义段指定相应的驱动。

要一次安装所有驱动, 可以用 xorg-input-driversxorg-video-drivers

OpenGL 3D 加速

在Arch Linux上,Xorg 7.0 使用组件来支持 mesa, 一个 OpenGL 渲染系统. 以下是可用的一些实现:

  • libgl-dri: 开源的 DRI OpenGL 实现。 如果DRI驱动没有安装,会回退到使用软件渲染。
  • 其他驱动提供libGL (ati, nvidia)

当pacman安装一个需要mesa的程序时,它会自动安装这些软件包中的一个。请确保设置正确的库,在安装Xorg之前安装你想要的库。在安装完 Xorg之后再安装正确的库也是可以的,但是这有可能带来一些依赖方面的错误,通过"-d"选项可以忽略这个错误。

Glxgears 和 Glxinfo

这些程序在mesa包中.

改变的路径(及相关配置)

在这里可以看到其它一些更新信息 http://www.archlinux.org/blog/2006/01/02/how-to-upgrade-xorg/

模块化X.org 7的所有文件都安装在/usr下面,以前老的版本是安装在/usr/X11R6。 相应地,一些配置文件也需要更新:

  • /etc/X11/xorg.conf
    • 字体路径现在位于/usr/share/fonts
    • RGB数据库位于/usr/share/X11/rgb
    • 模块路径为/usr/lib/xorg/modules

还要注意一些X配置工具可能无法工作。现在配置X.org最简单的办法是:安装正确的驱动包,然后运行Xorg -configure, 这会产生一个配置文件/root/xorg.conf.new,你只需要在此基础上修改一下分辨率、鼠标配置、键盘布局即可。

一些软件包含有涉及/usr/X11R6的硬编码,这些包需要进行修改。在修改完成前的这段时间内,检查一下安 装在/usr/X11R6下面的文件,将它们卸载掉,然后创建一个从/usr/usr/X11R6的 链接,再重新安装相关软件包。另外一个选择是将/usr/X11R6 下的内容移动到 /usr下 面,再创建一个链接即可。

或者你也可以在xorg.conf中加入另一个模块路径

ModulePath   "/usr/X11R6/lib/modules"

这种方法对Nvidia 76.76有效。

故障和修复

startx,无反应/空屏

检查你的用户是否属于hal和dbus用户组。如果不是,则键入以下命令

# gpasswd -a user hal
# gpasswd -a user dbus

然后再startx。

Xorg的常见用户问题

如果你在使用xorg中遇到问题,无法启动或者黑屏,鼠标键盘不能正常工作,那么先进行以下步骤:

- 我有没有运行任何Xorg配置脚本? ( xorg -Configure )

- 我有没有查看log日志文件? ( /var/log/Xorg.0.log )如果你使用IRC,可以将日志粘帖求助。

pacman -S wgetpaste && wgetpaste /var/log/Xorg.0.log

- 我有没有启动hal? - 键盘鼠标不能动?需要安装驱动:

pacman -S xf86-input-{mouse,keyboard}

- ATI显卡令我头疼! 查看ATI wiki,ATI的驱动实在不行,所以如果你打算买台新电脑那么就要好好考虑一下显卡的选择了。

Xorg无法找到你的显示器支持哪些分辨率

有时会碰到一种情况,比如使用一台显示器(gnr ts902)时,Xorg只提供了640x480和320x480选项,而这不是我们想要的。

After a lot of research I found through read-edid (in AUR) that part of my EDID was corrupt and so I could only read my HorizSync with read-edid. This fortunately was enough and after adding the right HorizSync line to the xorg.conf's Monitor section (I did not have to add VertRefresh) I restarted X to see the right resolution.

如下:

Option "ModeValidation" "NoEdidModes"
Option "UseEdid" "false"

可能也需要(此步未经测试,不知效果如何).

To switch between layouts with Alt+Shift:

Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"

Apple 的键盘问题?

可以查看 here.

快速修复 Bitstream-Vera 冲突

如果你看到ttf-bitstream-vera与xorg冲突的错误信息,可以通过以下步骤来修复:

  1. 通过回答"no"退出pacman会话
  2. 执行 pacman -Rd xorg
  3. 执行 pacman -Syu
  4. 执行 pacman -S xorg
  5. 更新/etc/X11/xorg.conf中的路径

快速修复在 /usr/include 中的文件冲突

如果你看到/usr/include/X11 和 /usr/include/GL文件冲突的信息,通过以下步骤修复:

  1. 执行 rm /usr/include/{GL,X11}
  2. 执行 pacman -Su

删除的两个目录只是链接,在新的xorg包中会用真正的目录内容放在/usr/include/下面,就不会出现文件冲突问题了。

libgl-dri 冲突

(Note below, that nvidia-legacy has been replaced by nvidia-71xx or nvidia-96xx. See here for further details of which driver to use.) 如果你得到和下面类似的错误信息:

:: libgl-dri conflicts with nvidia-legacy. Remove nvidia-legacy? [Y/n]

这是由于前面讲述的多重不同OpenGL实现,pacman试图安装libgl-dri来满足这种依赖关系,但还试图更新现有的显卡驱动,结果造成 两者冲突。试试下面的步骤也许可以解决这个问题:

  • 在更新系统前先更新显卡驱动:
pacman -S nvidia-legacy
pacman -Syu

如果这不能解决问题,再试试:

  • 卸载现有显卡驱动,然后更新系统,再重新安装显卡驱动:
$ pacman -Rd nvidia-legacy
$ pacman -Syu
$ pacman -S nvidia-legacy

遇到类似下面的提示时选择"Y":

:: nvidia-legacy conflicts with libgl-dri. Remove libgl-dri?   [Y/n] Y

鼠标滚轮不工作

在Xorg 7中"Auto"协议似乎无法正常工作。找到InputDevice节中与鼠标相关的设置,然后进行更改:

Option         "Protocol" "auto"

改成

Option         "Protocol" "IMPS/2"

或者

Option         "Protocol" "ExplorerPS/2"

If you were using "Auto" to configure your touchpad mouse (and its mouse wheel) you will have to start using the "synaptics" driver, instead. The mouse wheel will be included on the right-hand area of the touchpad, then.

In 'Section "Module"' add:

Load "synaptics"

In 'Section "InputDevice"' add/change:

Driver "synaptics"
Protocol "auto-dev"

Read man synaptics for more information.

Touchpad mouse taps not working

Previous versions of Xorg 7 allowed you to use the "Auto" protocol to configure your mouse, and tapping was enabled, too. Now you have to specify the driver, and explicitly enable tapping.

In 'Section "Module"' add:

Load "synaptics"

In 'Section "InputDevice"' add/change:

Driver "synaptics"
Protocol "auto-dev"
Option "TapButton1" "1"
Option "TapButton2" "2"
Option "TapButton3" "3"

And read man synaptics.

额外的鼠标按键不工作

使用USB鼠标的用户请参阅Get_All_Mouse_Buttons_Working.

Intellimouse (ExplorerPS/2)的用户可以发现其鼠标的滚动和侧按钮无法正常工作。原先的xorg.conf需要加入:

Option      "Buttons" "7"
Option "ZAxisMapping" "6 7"

同时运行以下命令来让侧按钮正常工作:

xmodmap -e "pointer = 1 2 3 6 7 4 5"

现在不再需要xmodmap命令了。取而代之,在xorg.conf中加入以下内容即可:

Option      "Buttons" "5"
Option "ZAxisMapping" "4 5"
Option "ButtonMapping" "1 2 3 6 7"

这样7按钮Intellimouse鼠标也可以像以前一样正常工作了。

键盘问题

切换到控制台1的问题

自动生成的xorg.conf文件可能会产生一些问题。如果你无法通过CTRL-ALT-F1切换到tty1,或者GB的用户无法输入符号"£", 请检查一下你的xorg.conf中是否有以下设定,并根据提示进行修改:

Option "XkbLayout"  "uk"         #"uk"不是一个真正的键盘布局,在/usr/share/X11/xkb/symbols/下可以查看所有真正的键盘布局。
#如果想使用英国的键盘布局,此处要设为 "gb"
Option "XkbRules" "xfree86" #这里应该改成"xorg"
Option "XkbVariant" "nodeadkeys" #这一行会导致上面描述的问题,试着将其注释掉。

有些键盘布局已经变了. I wondered why:

  • I was not able to Ctrl+Alt+Fx to switch to console
  • I was not able to use layouts

The problem was that the sk_qwerty layout does not exist anymore. I had to replace

Option         "XkbLayout" "us,sk_qwerty"

with

Option         "XkbLayout" "us,sk"
Option "XkbVariant" ",qwerty"

Another thing to look for if your keyboard is not properly functioning is the XkbRules option:
You will need to change

Option         "XkbRules" "xfree86"

to

Option         "XkbRules" "xorg"

AltGR (Compose Key)不能正常工作

If, after the update, you cannot use the AltGr key as expected any more, try adding this to your keyboard section:

Option      "XkbOptions" "compose:ralt"

This is not the correct way to activate the AltGr Key on a German keyboard (for example, to use the '|' and '@' keys on German keyboards). Just choose a valid keyboard variant for it to work again, for example (the example is for a German keyboard):

Option      "XkbLayout" "de"
Option "XkbVariant" "nodeadkeys"

The solutions above do not work on an Italian keyboard. To activate the AltGr key on an Italian keyboard make sure you have the following lines set up properly:

 Driver          "kbd"
Option "XkbRules" "xorg"
Option "XkbVariant" ""

This might still not be enough for a swedish keyboard. Try the above, but with lv3 instead of compose. (Thank you wyvern!) That is:

 Option "XkbLayout" "se"
Option "XkbVariant" "nodeadkeys"
Option "XkbOptions" "lv3:ralt_switch"

Cannot set qwerty layouts using the setxkbmap command

After the update, there are not qwerty layouts as for example sk_qwerty. If you want to switch your present keyboard layout to any qwerty keyboard layout use this command:

$ setxkbmap NAME_OF_THE_LAYOUT qwerty

e.g.: for sk_qwerty use:

$ setxkbmap sk qwerty

After the update, trying the above command I had this message "Error loading new keyboard description". I find out that the xserver does not have the rights to write, execute, read in the directory /var/tmp.

So, give the permissions to that directory. Restart the xserver and you will have your deadkeys back. Afterwards, confirm a layout (e.g., it layout):

$ setxkbmap -layout it

Setup French Canadian (old ca_enhanced) layout

With disabled hotplugging

Since the new Xorg changed the way it deals with keyboards, the following method will only work if you disable "hotplugging" : http://wiki.archlinux.org/index.php/Xorg_input_hotplugging

With Xorg7, "ca_enhanced" is no more. You have to do a little trick to get the same layout that you are used to: Switch the old:

       Option          "XkbLayout"     "ca_enhanced"

To:

       Option          "XkbLayout"     "ca"
Option "XkbVariant" "fr"

It will be similar with other layout, I presume. You can refer to Gentoo HowTo there: http://www.gentoo.org/proj/en/desktop/x/x11/modular-x-howto.xml


Workaround

I use a workaround so that I do not have to manually change the HAL fdi policies, as this is the new way of dealing with keymaps with the new Xorg. I use "setxkbmap" : http://wiki.archlinux.org/index.php/Xorg_input_hotplugging#Using_setxkbmap

Change the X keyboard layout to french canadian with this command:

#setxkbmap ca -variant fr


To make it change automatically, you can try this:

Created the file

~.config/autostart/keymap.desktop

and added this to it:

[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=Keymap French Canadian
Comment=
Exec=setxkbmap ca -variant fr
StartupNotify=false
Terminal=false
Hidden=false

It works at least for XFCE4 and LXDE.

缺少库文件

  • 求助!运行程序时显示"libXxxxxx不存在"的错误!

在多数情况下,根据提示的库名称安装相应的库即可: In most cases, all you need to do is take the name of the library (eg libXau.so.1), convert it all to lowercase, remove the extension, and pacman for it:

# pacman -S libxau

This will install the library you are missing, and all will be well again!

无法创建某些包,提示"缺少X11头文件"

重新安装xproto和libx11两个包即可(如果两个包已经存在,就覆盖安装)。

无法加载'(null)'字体

  • 一些程序无法运行,提示无法加载`(null)'字体.

这些软件包可能需要一些额外的字体。某些程序只能使用位图字体。 目前有两种主要的位图字体包:xorg-fonts-75-dpi、xorg-fonts-100dpi。选择其中一个就可以了。通过下面这个命令查看显 示设置:

xdpyinfo | grep resolution

根据显示信息选择合适dpi的字体即可(用75 或 100 代替XX):

pacman -S xorg-fonts-XXdpi


升级到xorg-server 1.5后,KDE4任务栏和桌面图标出错

  • KDE任务栏无法工作,并且桌面图标也消失了

在文件 /etc/X11/xorg.conf中,修改下面一行

Option "BackingStore" "True"

变成:

Option "BackingStore" "False"

从testing升级到current时"文件丢失"

如果你在将testing的Xorg7升级到current(现为core,译者注)的Xorg7时发现许多文件丢失(包括startx,/usr /share/X11/rgb.txt等),这是由于xorg-clients包被拆分成许多小的包时造成的文件丢失。 你需要重新安装xorg-clients包及其依赖的包:

pacman -S xorg-apps xorg-font-utils xorg-res-utils xorg-server-utils \
xorg-twm xorg-utils xorg-xauth xorg-xdm xorg-xfs xorg-xfwp \
xorg-xinit xorg-xkb-utils xorg-xsm

这应该可以解决问题

不同桌面环境下MIME的类型问题

如果你发现在桌面环境中图标消失,并且无法点击打开文件,在/etc/profile或者某个初始化脚本中加入下面的语句:

XDG_DATA_DIRS=$XDG_DATA_DIRS:/usr/share
export XDG_DATA_DIRS

重启机器即可。

Matrox显卡的DRI功能失效

如果你使用的是Matrox显卡,在升级到Xorg7后它的DRI功能失效,试着在xorg.conf的显卡设备设置段Device section中加入下面一行:

Option "OldDmaInit" "On"

Xephyr下无法启动任何客户端

客户端连接被X server的安全机制拒绝,你可以在you can find a complete explanation and solution in [1]这里找到完整的 解释和解决方法。

无法用"su"以root身份启动X客户端

如果你遇到"Client is not authorized to connect to server",尝试将以下内容

 session        optional        pam_xauth.so

加入到/etc/pam.d/su文件中。 pam_xauth就可以正常设置环境变量以及处理xauth密钥了。

无法运行在frambuffer模式下

如果X启动失败,日志中有以下信息:

(WW) Falling back to old probe method for fbdev
(II) Loading sub module "fbdevhw"
(II) LoadModule: "fbdevhw"
(II) Loading /usr/lib/xorg/modules/linux//libfbdevhw.so
(II) Module fbdevhw: vendor="X.Org Foundation"
compiled for 1.6.1, module version = 0.0.2
ABI class: X.Org Video Driver, version 5.0
(II) FBDEV(1): using default device

Fatal server error:
Cannot run in framebuffer mode. Please specify busIDs for all framebuffer devices

只需要卸载xf86-video-fbdev就可以了。

Ctrl-Alt-Backspace无法退出X

修改/etc/X11/xorg.conf

新版xorg缺省关闭了使用Ctrl+Alt+Backspace组合键来注销X的功能。你可以加入以下内容:

 Option  "XkbOptions" "terminate:ctrl_alt_bksp" 

/etc/X11/xorg.conf的键盘的InputDevice段来打开它

如果你使用input hotplugging

如果你使用hal来管理键盘,你必须加入以下内容到/etc/hal/fdi/policy/10-keymap.fdi来 开启这项特性。如果文件不存在,你可以复制/usr/share/hal/fdi/policy/10osvendor/10-keymap.fdi作 为模板。

<merge key="input.xkb.options" type="string">terminate:ctrl_alt_bksp</merge>

修改后重启hal。

另外一种方法是加入以下内容到~/.xinitrc

setxkbmap -option terminate:ctrl_alt_bksp
Note: 如果你使用登录/显示管理器如(K/G/X)DM或者Slim,你需要在你的WM/DE登录时运行以上的 setxkbmap命令。通常可以利用~/.config/autostart来做这种事情(使用.desktop文件),或者也可以使用~ /.bashrc。

在出现GUI登录界面之前,不启动Xorg

If Xorg is set to boot up automatically and for some reason you need to prevent it from starting up before the login/display manager appears (if your rc.conf file is misconfigured and Xorg does not recognize your mouse or keyboard input, for instance), there are two ways. From the grub menu you can specify the runlevel in the kernel line by adding a number to the end of the kernel line specifying the run level you want. The following example sets the run level to 3:

kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/..ro 3

If you have not only misconfigured rc.conf to make Xorg unusable, but you have also set the grub menu wait time to zero, or cannot otherwise use grub to prevent Xorg from booting, you must use the Arch live CD. Boot up the live CD and login as root. You need a mount point, such as /mnt, and you need to know the name of the partition you want to mount. You can use the command

fdisk -l

as root to see your partitions. Usually the one you want will be like /dev/sda1. Then to mount this to /mnt use

mount /dev/sda1 /mnt

Then your filesystem will show up under /mnt. So your rc.conf file, for example, would be in /mnt/etc/rc.conf. From here you can delete the gdm module to prevent Xorg from booting up normally, or make any other necessary changes.



--
Linux ,I love you !for you,I will go on ........

没有评论:

发表评论