Переносы ] [ Debian для PowerPC ] [ Установка ] [ Документация ] [ Разработка ]

Уведомление о кодах клавиш PowerPC в Linux!

Если ваше ядро собрано до, приблизительно, апреля 2001 года, и вы собираетесь обновиться до woody, произвести обновление ядра, или изменить раскладку, ВАЖНО, чтобы вы знали об изменении кодов клавиш для PowerPC в Debian woody.

Вот что произошло: чтобы powerpc вошёл в основную ветвь разработки linux и чтобы предотвратить настоящие и будущие конфликты, пакет console-data в woody был изменён так, чтобы для установки использовались раскладки для кодов клавиш linux, а не раскладки для кодов клавиш ADB (которые раньше были нормой для ядер под powerpc). Раскладки для кодов клавиш ADB более официально не поддерживаются в Debian.

Установка ядра системы была изменена так, чтобы она соответствовала указанному пути, поэтому новая установка ядра использует коды клавиш linux, а не ADB. Это постоянное изменение; ядро скомпилированное без поддержки кодов клавиш ADB не может использовать раскладки для кодов клавиш ADB. Коды клавиш linux являются особенностью «New Input Layer», который станет стандартом для всех устройств ввода на всех архитектурах во время цикла версий ядра после ядра 2.4.

Если вы хотите оставить поддержку кодов клавиш ADB, а ядро, которое вы собираетесь использовать скомпилировано с параметром CONFIG_MAC_ADBKEYCODES=n, вы можете перекомпилировать его с параметром CONFIG_MAC_ADBKEYCODES=y и продолжить использовать раскладку кодов клавиш ADB.

Раскладки клавиатуры mac/apple для кодов клавиш ADB и кодов клавиш linux очень сильно различаются. Поэтому вы должны быть подготовлены. Если вы не скоординируете ваши инструкции по загрузке, ваше ядро и вашу раскладку, однажды, введя «root» при запросе имени пользователя, вы увидите «sswj». Это обстоятельство приведёт вас в большое замешательство.

Планируем заранее

Довольно общим обстоятельством этого является обновление с potato до woody. На этот случай при обновлении пакета console-data был добавлен специальный диалог. Производится проверка работающего в момент обновления ядра, и если у вас запущено ядро с поддержкой ADB, будет выведено предупреждение об этой ситуации и задан вопрос о дальнейших действиях.

Поскольку вы уже знаете всё об этой проблеме, выбор будет довольно лёгким. Добавьте новую раскладку на время загрузки, затем, после завершения обновления (ДО перезагрузки), измените настройку загрузки (quik.conf или yaboot.conf), добавив следующую строку в раздел об образе загружаемого ядра:

append="keyboard_sends_linux_keycodes=1"

Если у вас уже имеется строка append=, добавьте новый термин в кавычки, например:

append="video=ofonly keyboard_sends_linux_keycodes=1"

Не забудьте запустить quik или ybin после завершение редактирования, чтобы сохранить изменения настройки в фактических файлах загрузчика.

Эта проблема также может возникнуть при обновлении X с версии 4.0.x до версии 4.1.x с ядром, имеющим поддержку кодов клавиш ADB. Ваш XF86Config-4, вероятно, имеет параметр XkbModel со значение «macintosh», но значение этого параметра изменилось, теперь предполагается, что клавиатура macintosh использует новые коды клавиш Linux. Если вы хотите продолжить использовать коды клавиш ADB, вам нужно изменить параметр XkbModel, установив его в значение «macintosh_old».

Новые установки Woody

При новой установке woody у вас будет установлена раскладка клавиатуры с кодами клавиш linux и ядро с поддержкой кодов клавиш linux. Поэтому они совпадут, а у вас не будет лишних проблем. Если только не ...

Если только вы не измените ядро после установки, и оно окажется ядром с поддержкой ADB. В этом случае у вас будет такая же проблема, только наоборот. Либо если только не ...

Если только вы не измените раскладку клавиатуры вручную, выбрав из /usr/share/keymaps/mac. Все они являются раскладками ADB, и они не подойдут для вашего ядра с поддержкой кодов клавиш linux!

Это со мной не случится — но когда случится

Итак, как действовать, если вы вводите root, а видите sswj? Либо в обратном случае, вводите (tab)ssw, а видите root?

Пользователи Linux не любят выключать свои компьютеры из сети. И если вы это сделаете, произойдёт повреждение файловой системы, которое можно будет или будет нельзя корректно исправить. Поэтому ниже приведены несколько советов о том, как выключить правильно систему, если произошла такая ситуация.

Если у вас имеется установленный ssh в вашей системе и вы можете подключиться к ней с другого компьютера, вы можете временно исправить эту проблему удалённо. Войдите в учётную запись суперпользователя и выполните следующие команды:

cd /proc/sys/dev/mac_hid/
echo 0 > keyboard_lock_keycodes
echo 1 > keyboard_sends_linux_keycodes

Ваша клавиатура теперь будет работать нормально до следующей перезагрузки. Используйте эту возможность, чтобы синхронизировать вашу раскладку, ядро и загрузчик!

Если в вашей системе установлена какая-то комбинация клавиш, используемая для выполнения команды перезагрузки или выключения, вы можете попытаться использовать приведённые ниже таблицы для того, чтобы определить необходимую комбинацию и применить её. На PowerPC обычно используется комбинация Control-Shift-Delete. С загруженными кодами клавиш ADB, интерпретируемыми как коды клавиш linux, она будет Control-F6-F12. С загруженными кодами клавиш linux, интерпретируемыми как коды клавиш ядра с поддержкой ADB, вам нужно будет нажать Shift-AltGr-Equals. Удачи.

На моей клавиатуре нет клавиши Delete, тогда если у меня загружены коды клавиш linux в ядро с поддержкой ADB, я понял из таблицы ниже, как войти в систему в качестве суперпользователя ( 2==3, затем F5 ). Для своего пароля я использую приведённую ниже таблицу. Для перезагрузки я ввожу ( 21 клавиша tab ==3, затем F5 ). Вы также можете использовать команду halt ( p]j3, затем F5 ).

Некоторые символы не могут быть введены в неправильной раскладке. Они отсутствуют в таблице.

Загружена раскладка кодов клавиш Linux, ядро настроено на ADB

 

Если вы хотите:  a b   c d e f g h i j      k l m n     o p q r s t u v w
тогда вводите:   ] TAB m u 1 [ i p 5 Return l j ` Space = 9 y 2 o 3 6 . t

               x y z 0 1 2 3 4 5 6 7 8 9 *   /  [ ] ,         = - ` \ ;
               n 4 / b d f h g z x c v   Alt F7 7 - Backspace w q ; , '

              Control Shift     Enter Tab Backspace Fwd-Del Space
              F6      Ctrl or \ F5, 8 r   e         F12     CapsLock

              Home   NumLock   Clear  AltGr =(numkpd) Escape F11 F12
              Clear  +(numkpd) F6-6   Shift Fwd-Del   s      kp-5 kp-6

              F1         F2          F3         F4       F7   F9
              Left-Arrow Right-Arrow Down-Arrow Up-Arrow kp-. kp-*

              Left-Arrow Right-Arrow Up-Arrow Down-Arrow
              F13                    F11

Ядро настроена на коды клавиш Linux, загружена раскладка ADB

Если вы хотите:  a b c d e         f g h i j k l m n o p q r   s   t u v w
тогда вводите:   0 7 1 Backspace 2 4 3 g l ' k c x s h - Tab Esc w d 8 =

              x y z 0       1 2 3 4 5 6 7 8      9 * /  [ ] , = - ` ;
              6 q 5 Control e r t y i u [ Return p   z  f a \ o ] m `

              Control Shift Return Tab Backspace Fwd-Del   \     Space
              Shift   AltGr j      b   ,         =(numkpd) Shift n

              Clear  AltGr    =(numkpd) CapsLock Escape Alt
              Home   CapsLock Fwd-Del   Space    /       kp-*

              F1 F2 F3 F4 F5    F6   F7 F8 F9 F0 F11 F12
                          Enter Ctrl /               Fwd-Del

              Left-Arrow Right-Arrow Up-Arrow Down-Arrow
              F1         F2          F4       F3

Как узнать ваш текущий статус

В настоящее время раскладки не имеют комментариев, поэтому если вы не знаете, какая раскладка активна в настоящий момент, вы можете определить это, взглянув на строку кода клавиши 1 при помощи команды

zgrep 'keycode *1 =' /etc/console/boottime.kmap.gz
Если keycode 1 = Escape, это раскладка кодов клавиш linux (фактически, i386). Если keycode 1 = s, это ADB (за исключением ADB dvorak, keycode 1 = o).

Файлы config-XXXXX в /boot покажут, скомпилировано загружаемое ядро с поддержкой кодов клавиш ADB или нет. Чтобы узнать это, используйте

grep MAC_ADB /boot/*

Вы получите список файлов настройки для ядер, которые вы можете загрузить. Если в этом списке имеется пункт типа

/boot/config-2.4.12-powerpc:CONFIG_MAC_ADBKEYCODES=y

то ваше ядро скомпилировано с поддержкой кодов ADB. Если последняя буква — n, это ядро с поддержкой кодов клавиш linux.

Как это исправить

Как только вам удалось выключить вашу систему, вам всё ещё нужно починить её. Как определить, что нужно? Вы можете использовать ваш диск для аварийного восстановления или загрузиться с другого раздела, чтобы исправить проблему.

Если ваша проблема состоит в том, что ядро, скомпилированное с поддержкой ADB, пытается использовать раскладку на основе кодов клавиш linux, просто добавьте

keyboard_sends_linux_keycodes=1

при загрузке в диалог после ввода ярлыка вашего образа ядра. Но это исправление только на один раз; вам нужно сделать исправление постоянным, отредактировав файл настройки загрузки и сохранить его в загрузчик.

Если вы столкнулись с обратной проблемой (ядро с поддержкой кодов linux пытается использовать раскладку ADB), вам нужно избавиться от раскладки ADB. Вы можете скопировать любую раскладку из каталога /usr/share/keymaps/i386, там много из чего можно выбрать. Например

cd /usr/share/keymaps/i386/qwerty/
cp mac-usb-us.kmap.gz /etc/console/boottime.kmap.gz