Автор Тема: Проблем след ъпдейт на Х, кирилицата не работи  (Прочетена 2599 пъти)

bz1pp3d

  • Напреднали
  • *****
  • Публикации: 15
  • Distribution: Arch
  • Window Manager: openbox
    • Профил
Здравейте всички.Проблемът ми е свързах с кирилицата, нагласена директно от конф. файл на Xorg-сървара.След ъпдейт до версия 1.5.3 методът с превключване не работи.Дистрибуцията е Арчлинукс.Следвах и стъпките, описани  на сайта, но за жалост без успех.
Конкретна конфигурация за Х, секция клавиетура:
Код:
Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "keyboard"
    Option      "CoreKeyboard"
        Option          "XkbRules" "xorg"
        Option          "XkbModel" "pc105"
        Option          "XkbLayout" "us,bg"
        Option          "XkbVariant" ",phonetic"
        Option          "XkbOption" "grp:alt_shift_toggle,grp_led:scroll"
EndSection
Section "ServerFlags"
    Option "AutoAddDevices" "False"
EndSection

Ако някой знае решение на проблема, нека сподели.Благодаря предварително!
Активен

senser

  • Напреднали
  • *****
  • Публикации: 1328
    • Профил
Не съм запознат с дистрибцията, която ползваш, но предполагам проблема е в това, че Х вече ползва hal за конфигуриране на периферията
Специално за клавиатурата и мишката - махаш секциите "InputDevice" от xorg.conf и ги настройваш в /etc/hal/fdi/policy/10-x11-input.fdi (пак казвам - ползвам Gentoo,  така че пътят при теб може да е различен) примерно така:
Код:
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
 <device>
<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_options.XkbRules" type="string">base</merge>
                <!-- If we're using Linux, we use evdev by default (falling back to keyboard otherwise). -->
                <merge key="input.x11_driver" type="string">keyboard</merge>
                <merge key="input.x11_options.XkbModel" type="string">pc104</merge>
                <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux">
                        <merge key="input.x11_driver" type="string">evdev</merge>
                        <!--<merge key="input.x11_options.XkbModel" type="string">evdev</merge>-->
                        <merge key="input.x11_options.XkbLayout" type="string">en,bg</merge>
                        <merge key="input.x11_options.XkbVariant" type="string">,pho</merge>
                        <merge key="input.x11_options.XkbOptions" type="strlist">grp_led:caps</merge>
                </match>
                <merge key="input.x11_options.XkbLayout" type="string">en,bg</merge>
                <merge key="input.x11_options.XkbVariant" type="string">,pho</merge>
        </match>
       
</device>
</deviceinfo>
Активен

spirtbrat

  • Напреднали
  • *****
  • Публикации: 76
  • Distribution: Arch Linux
  • Window Manager: Gnome
    • Профил
http://wiki.archlinux.org/index.php/Xorg_input_hotplugging

Тук е обяснено много хубаво и много подробно.
Активен

The harder I work, the luckier I goddamned get.

bz1pp3d

  • Напреднали
  • *****
  • Публикации: 15
  • Distribution: Arch
  • Window Manager: openbox
    • Профил
@senser - да в този файл имаше опции като твоите с малко разлики в синтаксиса.Следвах "howto"-то, но уви, пак безуспешно.
Ето как изглежда 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>

      <!-- If we're using Linux, we use evdev by default (falling back to
           keyboard otherwise). -->
      <merge key="input.xkb.model" type="string">keyboard</merge>
      <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
             string="Linux">
        <merge key="input.xkb.model" type="string">evdev</merge>
      </match>

      <merge key="input.xkb.layout" type="string">us,bg</merge>
      <merge key="input.xkb.variant" type="string">,pho</merge>
      <merge key="input.xkb.option" type="string">grp:alt_shift_toggle,grp_led:scroll</merge>
    </match>
  </device>
</deviceinfo>


Имам чувството, че бъркам някаде тук =)
Активен

senser

  • Напреднали
  • *****
  • Публикации: 1328
    • Профил
Дай да видим лога на X дали ползва evdev драйвера
Предполагам си махнал "InputDevice" секциите от xorg.conf, пробвай също така да добавиш тези два реда в същия файл към "ServerLayout" секцията и експериментирай с различни комбинации за true & false:
Код:
Option              "AutoAddDevices" "False"
Option              "AllowEmptyInput" "False"
Активен

tvkkk

  • Напреднали
  • *****
  • Публикации: 83
  • Distribution: Arch linux
  • Window Manager: lxde
    • Профил
    • WWW
Опитай с  Driver         "kbd"
вместо  Driver      "keyboard".
Аз също съм с Arch,  но не съм губил настройките за кирилицата при update и горепосочения драйвер.
Ето и пълната секция при мен:

Section "InputDevice"
    Identifier     "Keyboard0"
    Driver         "kbd"
    Option         "XkbModel" "pc104"
    Option         "XkbLayout" "us,bg"
    Option         "XkbVariant" ",phonetic"
    Option         "XkbOptions" "grp:ctrl_shift_toggle,lv3:ralt_switch,grp_led:scroll"
EndSection
Активен

bz1pp3d

  • Напреднали
  • *****
  • Публикации: 15
  • Distribution: Arch
  • Window Manager: openbox
    • Профил
@tvkkk незнайно твоят метод проработи.
@senser - от лога видях, че evdev разпознава и клавиетура и мишка.
Код:
input.xkb.model = 'evdev'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  input.xkb.layout = 'us,bg'  (string)
  linux.subsystem = 'input'  (string)
  input.xkb.variant = ',pho'  (string)
  linux.device_file = '/dev/input/event1'  (string)
  input.xkb.option = 'grp:alt_shift_toggle,grp_led:scroll'  (string)
  input.device = '/dev/input/event1'  (string)
  info.category = 'input'  (string)


Е, явно ще карам засега по метода на tvkkk.Благодаря на всички отзовали се! ;)
Активен

spirtbrat

  • Напреднали
  • *****
  • Публикации: 76
  • Distribution: Arch Linux
  • Window Manager: Gnome
    • Профил
Изкам да разясня малко за следващия на който кирилицата на новия X няма да работи.
Това което е написал tvkkk беше доскоро единствения метод. Чрез него всеки си казва на X-a какви Input Devices ще използва (клавиатури, мишки, таблети...). Новия X (1.5) предоставя и нова възможност - всичко това да му бъде казано от HAL. Evdev е общ драйвер, който позволява на ядрото автоматично да разпознава Input Devices, така и HAL става наясно с тях и ги казва на X-a. Всичко това е автоматично и няма нужда потребителя да описва устройствата. Смисъла е, че по този начин може да смените някое устройство, да добавите друо (таблет например) без да се рестартира X и без да се описва новото устройство. Всичко това е обяснено в линка който дадох.
Работата е там, че няма как автоматично да се установи какъв keymap искаш да се ползва. За нещо различно от ангглийски и qwerty подредба, трябва да се редактират правилата на HAL. Предложеното от senser казва на HAL, че ще се ползват 2 keymap-a - стандартния английски и българска фонетична подредба.
За повече подробности - линка който дадох.
Ето ги моите настройки (работят - ползвам ги всеки ден) :

/etc/hal/fdi/policy/keyboard.fdi:
Цитат
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
    <device>
        <match key="info.product" string="AT Translated Set 2 keyboard">
            <merge key="input.x11_driver" type="string">evdev</merge>
            <merge key="input.xkb.layout" type="string">us,bg</merge>
            <merge key="input.xkb.model" type="string">pc105</merge>
            <merge key="input.xkb.rules" type="string">xorg</merge>
            <merge key="input.xkb.variant" type="string">,phonetic</merge>
            <merge key="input.xkb.options" type="string">grp:alt_shift_toggle</merge>
        </match>
    </device>
</deviceinfo>


/etc/hal/fdi/policy/mouse.fdi (не е задължителен, би трябвало автоматично да се справи):
Цитат
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
    <device>
        <match key="info.product" string="ImPS/2 Generic Wheel Mouse">
            <merge key="input.x11_driver"       type="string">evdev</merge>
        </match>
    </device>
</deviceinfo>

Във /etc/X11/xorg.conf се махат всички части започващи със Section "InputDevice" и се добавя
Цитат
Section "ServerFlags"
        Option  "AllowEmptyInput"       "false"
EndSection
Активен

The harder I work, the luckier I goddamned get.