LINUX.ORG.RU

Борьба с X.Org 7.3 и HAL


0

0

Slackware 12

Появился планшет Wacom, подключаемый по bluetooth.

X Server 1.3.0 не поддерживает hotplug
(т.е. X теряет планшет при его отключении).

Ждать Слаку 12.1 не терпится, да и там Патрик hotplug отключил.

Ночью скачал по GPRS ветку исходников X11 и mesa,
пересобрал их, по ходу заменив i486 на i686.

Теперь перевожу X на HAL (с минимальным xorg.conf)



Что уже сделано

Удалены:
/usr/share/hal/fdi/policy/10osvendor/10-x11-input.fdi
/usr/share/hal/fdi/policy/10osvendor/10-keymap.fdi

Вместо них:

>cat /etc/hal/fdi/policy/10-x11-input.fdi
<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <!-- FIXME: Support tablets too. -->
    <match key="info.capabilities" contains="input.mouse">
      <merge key="input.x11_driver" type="string">mouse</merge>
      <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
             string="Linux">
        <merge key="input.x11_driver" type="string">evdev</merge>
      </match>
    </match>

    <match key="info.capabilities" contains="input.keys">
        <merge key="input.x11_driver" type="string">evdev</merge>
    </match>
  </device>
</deviceinfo>


>cat /etc/hal/fdi/policy/10-keymap.fdi
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.keymap">
      <append key="info.callouts.add" type="strlist">hal-setup-keymap</append>
    </match>

    <match key="info.capabilities" contains="input.keys">
      <merge key="input.xkb.rules" type="string">base</merge>
      <merge key="input.xkb.model" type="string">evdev</merge>
      <merge key="input.xkb.layout" type="string">us,ru</merge>
          <merge key="input.xkb.variant" type="string">,winkeys</merge>
          <merge key="input.xkb.options" type="strlist">grp:rctrl_toggle</merge>
              <append key="input.xkb.options" type="strlist">grp_led:scroll</append>
    </match>
  </device>
</deviceinfo>

Обратите внимание: в Сети множество ошибочных руководств
"input.xkb.options" - это список строк, а не строка!

Клавиатура поднялась, мышь тоже =)

>grep -v \# /etc/X11/xorg.conf
Section "Extensions"
        Option "Composite"
EndSection

Section "ServerLayout"
        Identifier     "Simple Layout"
        Screen         "Screen 1" 0 0
EndSection

Section "ServerFlags"
    Option      "AllowEmptyInput"
EndSection

Section "Files"
    RgbPath         "/usr/X11R6/lib/X11/rgb"
    FontPath        "/usr/X11R6/lib/X11/fonts/misc"
    FontPath        "/usr/X11R6/lib/X11/fonts/cyrillic"
    FontPath        "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
    FontPath        "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
EndSection

Section "Module"
    Load           "extmod"
    Load           "glx"
    Load           "v4l"
EndSection





Section "Monitor"
    Identifier     "SyncMaster 795MB"
    HorizSync       30.0 - 85.0
    VertRefresh     50.0 - 160.0
    ModeLine       "1024x768_100.00" 113.3 1024 1096 1208 1392 768 769 772 814 -hsync +vsync
    ModeLine       "800x600_100.00" 68.2 800 848 936 1072 600 601 604 636 -hsync +vsync
    ModeLine       "640x480_100.00" 43.2 640 680 744 848 480 481 484 509 -hsync +vsync
EndSection

Section "Monitor"
    Identifier     "SyncMaster 920N"
    HorizSync       30.0 - 81.0
    VertRefresh     56.0 - 75.0
EndSection


Section "Device"
    Identifier          "GeForce"
    Driver              "nvidia"
    Option              "RenderAccel"
    Option              "AllowGLXWithComposite"
EndSection

Section "Screen"
    Identifier     "Screen 1"
    Device         "GeForce"
    Monitor        "SyncMaster 920N"
    DefaultDepth    24
    Option         "NoLogo" "true"
    Option         "AddARGBGLXVisuals" "true"
        Option         "DisableGLXRootClipping" "true"
    Option         "CursorShadow" "false"
    SubSection     "Display"
        Viewport    0 0
        Depth       8
        Modes      "1280x1024" "1024x768" "800x600" "640x480"
    EndSubSection
    SubSection     "Display"
        Viewport    0 0
        Depth       16
        Modes      "1280x1024" "1024x768" "800x600" "640x480"
    EndSubSection
    SubSection     "Display"
        Viewport    0 0
        Depth       24
        Modes      "1280x1024" "1024x768" "800x600" "640x480"
    EndSubSection
EndSection
☆☆

Жестяная вещь, наверное. Оно не тормозит по зубику-то, с его 400кбит/с в пике? ;)

P.S. ваком-бамбук замечательно работает, USB.

Gharik
()

На данный момент HAL знает про Wacom:
udi = '/org/freedesktop/Hal/devices/computer_logicaldev_input_2'
  info.capabilities = {'input', 'input.touchpad'} (string list)
  info.category = 'input'  (string)
  info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
  info.product = 'Wacom Graphire 6x8 BlueTooth'  (string)
  info.udi = '/org/freedesktop/Hal/devices/computer_logicaldev_input_2'  (string)
  input.device = '/dev/input/event6'  (string)
  input.product = 'Wacom Graphire 6x8 BlueTooth'  (string)
  input.wacom.DebugLevel = 12  (0xc)  (int)
  input.wacom.Device = '/dev/input/event6'  (string)
  input.wacom.Mode = 'absolute'  (string)
  input.wacom.Type = 'stylus'  (string)
  input.x11_driver = 'wacom'  (string)
  linux.device_file = '/dev/input/event6'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'input'  (string)
  linux.sysfs_path = '/sys/devices/virtual/input/input22/event6'  (string)

С помощью
/etc/hal/fdi/policy/10-x11-input-wacom.fdi
<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.touchpad">
      <match key="input.product" contains="Wacom Graphire">
        <merge key="input.x11_driver" type="string">wacom</merge>
        <merge key="input.wacom.Device" type="copy_property">input.device</merge>
        <merge key="input.wacom.Type" type="string">stylus</merge>
        <merge key="input.wacom.Mode" type="string">absolute</merge>
        <merge key="input.wacom.DebugLevel" type="int">12</merge>
      </match>
    </match>
  </device>
</deviceinfo>

Удало заставить X увидеть девайс:

(II) LoadModule: "wacom"
(II) Loading /usr/lib/xorg/modules/input//wacom_drv.so
(II) Module wacom: vendor="X.Org Foundation"
        compiled for 4.3.99.902, module version = 1.0.0
        Module class: X.Org XInput Driver
        ABI class: X.Org XInput driver, version 2.0
(II) Wacom driver level: 47-0.7.9-8 $
(EE) Wacom Graphire 6x8 BlueTooth: No type or invalid type specified.
Must be one of stylus, cursor, eraser, or pad
(EE) PreInit returned NULL for "Wacom Graphire 6x8 BlueTooth"

Думаю, как быть с ТРЕМЯ (cursor, stylus, eraser),
ведь HAL сообщает только об одном.

ip1981 ☆☆
() автор топика
Ответ на: комментарий от Gharik

Очень интересная настройка уэсбэшного девайса через HAL =)

ip1981 ☆☆
() автор топика
Ответ на: комментарий от unit_1985

> могу помочь скачать что-нибудь, жалко читать что жопорезом пользуешься

Спасибо =)

Так то есть бесплатный HTTP-прокси, но GPRS проще (на FTP)

ip1981 ☆☆
() автор топика

/usr/share/X11/xkb/keycodes/

В evdev:
      // Microsoft keyboard extra keys
      <LWIN> = 133;
      <RWIN> = 134;
      <COMP> = 135;

В xfree86:
    // Microsoft keyboard extra keys
    <LWIN> = 115;
    <RWIN> = 116;
    <MENU> = 117;


Поэтому перестали работать "WinKey" =)

ip1981 ☆☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.