Страница 1 из 1

xorg, hald и русская раскладка клавиатуры

Добавлено: 2009-10-16 13:58:21
ski

Код: Выделить всё

$ uname -a
FreeBSD work.mlcom.pvt 8.0-RC1 FreeBSD 8.0-RC1 #0: Mon Sep 28 17:31:36 MSD 2009     root@work.mlcom.pvt:/usr/obj/usr/src/sys/ski8  i386
Впрочем, проблема, по-моему, тянется еще с 7.2 и вылезла после очередного портапгрейда.
Xorg 7.4, собран с HAL. Отвалилась русская раскладка. В центре управления kde 3.5.10 просто нет вообще никаких вариантов раскладок.
Полез делать как написано здесь: http://www.freebsd.org/doc/en/books/han ... onfig.html
Сначала пробовал по подобию отрихтовать конфиг hal так, чтобы была и английская расклада, при этом /usr/local/etc/hal/fdi/policy/x11-input.fdi выглядел так:

Код: Выделить всё

<?xml version="1.0" encoding="ISO-8859-1"?>
<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.keyboard">
            <merge key="input.xkb.rules" type="string">base</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="string">grp:ctrl_shift_toggle,grp_led:scroll</merg
        </match>
    </device>
</deviceinfo>
Что не имело вообще никакого эффекта. Сдернул практически в ноль пример из хендбука:

Код: Выделить всё

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.keyboard">
      <merge key="input.x11_options.XkbModel" type="string">pc102</merge>
      <merge key="input.x11_options.XkbLayout" type="string">ru</merge>
    </match>
  </device>
</deviceinfo>
в надежде разобраться, что и как. результата ноль, раскладка аглицкая, русского языка на клавиатуре нет.
В хендбуке также говорится, что можно сказать в эмулятр терминала

Код: Выделить всё

% setxkbmap -model pc102 -layout ru
и станет счастье. Но счастье не стало, более того, в ответ на введенную команду приходит ответ:

Код: Выделить всё

Couldn't find rules file (xfree86)
Вопрос: где взять этот рулезный файл и куда его положить, чтобы оно заработало?
В /usr/local/lib/X11/xkb/rules симлинк на xfree86 есть. Содержимое файла похоже на правду...
Поможите, люди добрые советом, а то уж больно плохо без рiдной мовы.

Re: xorg, hald и русская раскладка клавиатуры

Добавлено: 2009-10-21 19:10:03
ski
Смотю на все это непотребство, и ничего вообще не понимаю. Поглядите, может, что в голову придет...
xorg.conf

Код: Выделить всё

Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
#       Option "AutoAddDevices" "false"
#       Option  "AllowEmptyInput"  "off"
EndSection
Собственно, насколько я понимаю, секции о мыше и клавиатуре не роялят без закоменченых строк и дальше работает hal:
/usr/local/etc/hal/fdi/policy/x11-input.fdi

Код: Выделить всё

<?xml version="1.0" encoding="ISO-8859-1"?>
 <deviceinfo version="0.2">
    <device>
     <match key="info.capabilities" contains="input.keyboard">
      <merge key="input.x11_options.XkbRules" type="string">xorg</merge>
      <merge key="input.x11_options.XkbKeycodes" type="string">xfree86</merge>
      <merge key="input.x11_options.XkbModel" type="string">pc105</merge>
      <merge key="input.x11_options.XkbLayout" type="string">us,ru</merge>
      <merge key="input.x11_options.XkbOptions" type="string">grp:ctrl_shift_toggl</merge>
     </match>
    </device>
 </deviceinfo>
В логе хорга печалит первая приведенная строка. Что за контекст он не может создать, не пойму.
xorg.log:

Код: Выделить всё

(EE) config/hal: couldn't initialise context: (null) ((null))
(II) config/hal: Adding input device AT Keyboard
(II) LoadModule: "kbd"
(II) Loading /usr/local/lib/xorg/modules/input//kbd_drv.so
(II) Module kbd: vendor="X.Org Foundation"
        compiled for 1.6.1, module version = 1.3.2
        Module class: X.Org XInput Driver
        ABI class: X.Org XInput driver, version 4.0
(**) AT Keyboard: always reports core events
(**) Option "Protocol" "standard"
(**) AT Keyboard: Protocol: standard
(**) Option "AutoRepeat" "500 30"
(**) Option "XkbRules" "xorg"
(**) AT Keyboard: XkbRules: "xorg"
(**) Option "XkbModel" "pc105"
(**) AT Keyboard: XkbModel: "pc105"
(**) Option "XkbLayout" "us,ru"
(**) AT Keyboard: XkbLayout: "us,ru"
(**) Option "XkbOptions" "grp:ctrl_shift_toggl"
(**) AT Keyboard: XkbOptions: "grp:ctrl_shift_toggl"
(**) Option "CustomKeycodes" "off"
(**) AT Keyboard: CustomKeycodes disabled
(II) XINPUT: Adding extended input device "AT Keyboard" (type: KEYBOARD)
(II) config/hal: Adding input device PS/2 Mouse
(II) LoadModule: "mouse"
(II) Loading /usr/local/lib/xorg/modules/input//mouse_drv.so
(II) Module mouse: vendor="X.Org Foundation"
        compiled for 1.6.1, module version = 1.4.0
        Module class: X.Org XInput Driver
        ABI class: X.Org XInput driver, version 4.0
(**) PS/2 Mouse: Device: "/dev/sysmouse"
(==) PS/2 Mouse: Protocol: "Auto"
(**) PS/2 Mouse: always reports core events
(**) Option "Device" "/dev/sysmouse"
(==) PS/2 Mouse: Emulate3Buttons, Emulate3Timeout: 50
(**) PS/2 Mouse: ZAxisMapping: buttons 4 and 5
(**) PS/2 Mouse: Buttons: 9
(**) PS/2 Mouse: Sensitivity: 1
(II) XINPUT: Adding extended input device "PS/2 Mouse" (type: MOUSE)
(**) PS/2 Mouse: (accel) keeping acceleration scheme 1
(**) PS/2 Mouse: (accel) filter chain progression: 2.00
(**) PS/2 Mouse: (accel) filter stage 0: 20.00 ms
(**) PS/2 Mouse: (accel) set acceleration profile 0
(II) PS/2 Mouse: SetupAuto: hw.iftype is 4, hw.model is 0
(II) PS/2 Mouse: SetupAuto: protocol is SysMouse
(==) VESA(0): Write-combining range (0x0,0x1000) was already clear
(==) VESA(0): Write-combining range (0x0,0x1000) was already clear
Впрочем, ниже вроде как все нормально. Клавиатура с мышой работают. Но русской раскладки нет как нет :( Куда копать, никто не знает?

Re: xorg, hald и русская раскладка клавиатуры

Добавлено: 2009-10-21 23:34:27
netbug
Мой кусок x.org:

Код: Выделить всё

Section "ServerLayout"
    Identifier     "X.org Configured"
    Screen      0  "Screen0" 0 0
    Option         "AIGLX" "true"
EndSection
Попробуй убрать InputDevice

Re: xorg, hald и русская раскладка клавиатуры

Добавлено: 2009-10-24 18:44:30
ski
netbug писал(а): Попробуй убрать InputDevice
Не помогло :(

Re: xorg, hald и русская раскладка клавиатуры

Добавлено: 2009-10-25 11:41:52
Gerk
Возможно у Вас обновление криво прошло?
Попробуйте посмотреть нарушенные зависимости с помощью

Код: Выделить всё

/usr/ports/ports-mgmt/portmanager
portmanager -s
если будет много MISSING, то возможно поможет

Код: Выделить всё

portmanager -u
Ниже работающая секция конфига из 8.0-RC1, cборка oxrg + hald без доп. настроек:

Код: Выделить всё

Section "InputDevice"
	Identifier  "Keyboard0"
	Driver      "kbd"
        Option "XkbRules" "xorg"
        Option "XkbModel" "pc104"
        Option "XkbLayout" "us,ru"
	Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll,terminate:ctrl_alt_bksp"
	Option "XkbVariant" ",winkeys"
EndSection
Еще возможно поможет установка полного xorg порта, а не xorg-minimal.

Re: xorg, hald и русская раскладка клавиатуры

Добавлено: 2009-11-01 14:04:28
ski
решилось все цсупом и пересборкой ядра и мира внутри rc1. Видать, рано обновился, что-то поломатое было. Сейчас все прекрасно работает.

Re: xorg, hald и русская раскладка клавиатуры

Добавлено: 2010-11-14 9:35:40
dekloper
а как через хал указать, где покладены русские шрифты?
т.е., то, что прописано в xorg.conf в секции

Код: Выделить всё

Section "Files"
        ModulePath   "/usr/local/lib/xorg/modules"
        FontPath     "/usr/local/lib/X11/fonts/cyrillic/"
        FontPath     "/usr/local/lib/X11/fonts/misc/"
        FontPath     "/usr/local/lib/X11/fonts/TTF/"
        FontPath     "/usr/local/lib/X11/fonts/OTF"
        FontPath     "/usr/local/lib/X11/fonts/Type1/"
        FontPath     "/usr/local/lib/X11/fonts/100dpi/"
        FontPath     "/usr/local/lib/X11/fonts/75dpi/"
        FontPath     "/usr/local/lib/X11/fonts/cyrillic"
        FontPath     "/usr/local/lib/X11/fonts/webfonts/"
EndSection
но с закоменченными инпут-девайсами, ибо юзается халд

Код: Выделить всё

Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0
#       InputDevice    "Mouse0" "CorePointer"
#       InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Re: xorg, hald и русская раскладка клавиатуры

Добавлено: 2010-11-15 11:39:11
dekloper
и, кстати, я не могу собрать тестовый конфиг по команде

Код: Выделить всё

X -configure
падает в корку
так бы можно было подсунуть xorg.conf и всёб работало...
и ещё

Код: Выделить всё

xorgconfig
xorgconfig: Команда не найдена.
почему так?

Re: xorg, hald и русская раскладка клавиатуры

Добавлено: 2011-01-21 11:31:28
fowrest
У вас ошибка в политике: toggl заменить на toggle
Вместо X -configure использовать Xorg -configure

Re: xorg, hald и русская раскладка клавиатуры

Добавлено: 2011-01-21 11:41:07
forwest
...а также убрать XkbKeycodes
Можно работать вообще без xorg.conf, зачем городить огород?!
Проверьте еще раз rc.conf:
dbus_enable="YES"
hald_enable="YES"

Re: xorg, hald и русская раскладка клавиатуры

Добавлено: 2011-01-21 22:48:34
Alex Keda
странно, очередная тема а я тут ещё не отметился =))

Код: Выделить всё

dc7700p$ ll /etc/X11/
total 0
dc7700p$ cat ~lissyara/.kde4/Autostart/klava.sh 
#!/bin/sh



setxkbmap -layout us,ru -variant ,winkeys -option grp:alt_shift_toggle

sleep 5 && kkbswitch &

/usr/local/bin/xset +fp /usr/local/lib/X11/fonts/WinXP/


dc7700p$ 
и всё

Re: xorg, hald и русская раскладка клавиатуры

Добавлено: 2011-09-09 1:02:01
nikll
В общем проблема решена, файл надо называть 10-x11-input.fdi тогда все работает как надо :) ну и hald не забыть рестартануть

Код: Выделить всё

[root@nikll /usr/local/etc/hal/fdi/policy ]# cat /usr/local/etc/hal/fdi/policy/10-x11-input.fdi
<?xml version="1.0" encoding="ISO-8859-1"?>
<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.keyboard">
            <merge key="input.xkb.rules" type="string">base</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="string">grp:rctrl_rshift_toggle,grp_led:scroll,compose:rwin,terminate:ctrl_alt_bksp</merge>
        </match>
    </device>
</deviceinfo>