[中英对照] evdev, xorg.conf, hal 和其他迷雾

(译注:原文载于 Peter Hutterer——X input 开发者——的博客,标题为“evdev, xorg.conf, hal and other FUD”。FUD 是 Fear, uncertainty and doubt 的缩写,即恐惧、不确定和怀疑,本文译为“迷雾”。)

Sparked by this thread, here's a list of X input facts in random order.
这条讨论线索的启发,这里列举一些 X input 的现状(不分先后顺序)。

  • The evdev driver is the preferred input driver. If you are not running Linux, then evdev is not available for you and you can keep using the mouse/kbd drivers.
  • 推荐使用 evdev 驱动。如果你用的不是 Linux,那么你也用不上 evdev,你可以继续使用 mouse/kbd 驱动。

  • If you are running Linux, you can keep using the mouse/kbd driver if you wish, but configuration adjustments need to be made. See below for details.
  • 如果你运行的是 Linux,如果愿意你也可以继续使用 mouse/kbd 驱动。但是配置需要调整一下,详见以下叙述。

  • By default, the X server will expect a device list at runtime from HAL. You can turn this behaviour off by using Option "AutoAddDevices" "off" in the ServerLayout, or by disabling HAL at configure time. HAL is not required to use X.
  • 默认情况下,X server 会在运行时尝试从 HAL 获得设备列表。你可以在 ServerLayout 部分使用 Option "AutoAddDevices" "off" 来禁止这种行为,或者直接从配置里拿掉 HAL。X 不依赖于 HAL。

  • If HAL is enabled, then the mouse/kbd drivers are disabled. Otherwise, you will get duplicate devices. If you want to use mouse/kbd, disable HAL.
  • 如果 HAL 被启用,那么 mouse/kbd 驱动会被禁用。否则将会有重复的设备。如果你想使用 mouse/kbd,禁用 HAL。

  • Devices only get added if they have the input.x11_driver option set (check lshal). For mice and keyboards, evdev is the default, drivers such as linuxwacom or synaptics provide their own fdi.
  • 设备只有在具备 input.x11_driver 选项属性(通过 lshal 查看)的时候才会被加载。对于鼠标和键盘,evdev 是默认的驱动。其他驱动诸如 linuxwacom 或 synaptics 提供自己的 fdi。

  • Any other options need to be added with the key "input.x11_options.foobar" and must be of type string.
  • 其他任何须同 input.x11_options.foobar 键值同时加载的选项必须是字符串类型。

  • Devices specified in the xorg.conf will not be available after unplugging and replugging them, but will become available again after a VT switch or a resume.
  • 在 xorg.conf 中指定的设备在拔出并重新插入之后会失效,但是会在 VT 切换或唤醒之后重新有效。

  • XKB options are specified by HAL, not by the server.
  • XKB options 由 HAL 指定,而不是 server。

  • The evdev driver will prevent you from adding the same event device twice. The synaptics driver does too. Evdev will not prevent you from adding /dev/input/mice and /dev/input/event1 at the same time.
  • evdev 驱动会阻止加载同一设备两次。synaptics 驱动也是如此。evdev 驱动不会阻止同时加载 /dev/input/mice 和 /dev/input/event1。

  • HAL will prevent you from adding the same UDI.
  • HAL 会阻止加载重复的 UDI。

  • AutoAddDevices specifies whether to add devices through HAL (default on).
  • AutoAddDeivces 指定是否通过 HAL 来加载设备(默认开启)。

  • AutoEnableDevices specifies whether to enable such devices immediately (default on).
  • AutoEnableDevices 指定是否立即启用加载设备(默认开启)。

  • AllowEmptyInput specifies if a mouse/kbd section if none is present is required (if AEI is on -> no mouse/kbd required, disables mouse/kbd if present in the xorg.conf). AllowEmptyInput defaults to (AutoAddDevices && AutoEnableDevices)
  • AllowEmptyInput 指定是否需要 mouse/kdb 配置部分(如果开启此选项,则不需要 mouse/kdb 配置,即使在 xorg.conf 中设置了也会被禁用)。如果 AutoAddDevices 和 AutoEnableDevices 开启,此选项默认也为开启。

  • Synaptics SHM or other options can be enabled in the FDI file with the key "input.x11_options.SHMConfig" (or likewise). Options have to be type string.
  • Synaptics SHM 或其他选项可以通过 FDI 文件中的 input.x11_options.SHMConfig(或其他看着差不多的)键来设置。类型必须为字符串。

  • Synaptics has improved a lot in regards to autoconfiguration and you probably won't need half of your options anymore.
  • Synaptics 的自动配置改进很大,你或许可以扔掉一半原来的配置选项。

  • For every default setting that annoys you there's at least one person that loves it. For every default setting that you find appropriate, there's at least one person hating it. Become an active contributor, then you get to decide on what the defaults are.
  • 默认设置永远无法取悦所有人,总会有人省心有人麻烦。做一个积极的贡献者,你就能参与决定默认设置。

  • Storing configuration in HAL's fdi file is not the best solution but the best we have right now.
  • 将配置放在 HAL 的 fdi 文件里面不是最好的解决办法,但是是我们目前能做的最好的。

  • The old system worked, because you only ever had one mouse and one keyboard in X. Now you can have multiple of each, independently configured. This is why we switched to HAL for hotplugging and autoconfiguring.
  • 旧系统仍然工作,因为你在 X 里面从来都只有一套键盘鼠标。现在你无论键或鼠都可以有多个,并且各自独立配置。这也是为什么我们转向用 HAL 来识别热插拔和自动配置。

  • Ranting and/or commenting on some blog won't get your issues fixed. Filing a bug may.
  • 在博客上(译注:对中文用户来说,论坛也是如此)抱怨或/并评论不会解决问题。提交 bug 或许可以(译注:lyman 认为,加入 xorg 的邮件列表参与讨论或许也可以)。

评论

lun说…
最近更新arch的X server问题可真不少。