Portierungen ] [ Debian für PowerPC ] [ Installation ] [ Dokumentation ] [ Entwicklung ]

PowerPC Linux Tastencode Warnung!

Wenn Sie einen Kernel verwenden, der vor ungefähr April 2001 übersetzt wurde und auf Woody aktualisieren wollen, eine Kernel-Aktualisierung oder Tastaturbelegungs-Änderung vorhaben, ist es UNVERZICHTBAR, dass Sie sich über die Debian-Tastencode-Änderung für PowerPC in Woody bewusst sind.

Was passiert ist: Um PowerPC in die Linux-Hauptlinie zu bekommen und aktuelle und zukünftige Konflikte auszumerzen wurde das console-data Paket in Woody dahingehend verändert, bei der Installation Linux-Tastencodes zu verwenden statt der ADB-Tastencode-Belegung (die die Norm für PowerPC-Kernel war). Die ADB-Tastencode-Belegungen werden nicht länger in Debian unterstützt.

Der Kernel des Installationssystems wurde geändert, um diesen Weg zu unterstützen, daher verwendet der neue Installations-Kernel Linux-Tastencodes und keine ADB-Tastencodes. Linux-Tastencodes sind eine Eigenschaft des `Neuen Input Layers', der der Standard für alle Eingabe-Geräte auf allen Architekturen während des nach-2.4 Kernel-Versions-Zyklus werden wird.

Wenn Sie jedoch vorerst die ADB-Keycodes behalten wollen, und der Kernel, den Sie verwenden, mit CONFIG_MAC_ADBKEYCODES=n übersetzt wurde, können Sie ihn mit CONFIG_MAC_ADBKEYCODES=y neu übersetzen und weiterhin eine ADB-Belegung verwenden.

Die Mac/Apple-Tastaturbelegung für ADB-Tastencodes sind zu den Linux-Tastencodes sehr unterschiedlich. Das ist der Grund, warum Sie vorbereitet sein müssen. Wenn Sie Ihre Boot-Anweisungen, Ihren Kernel und Ihre Tastaturbelegung nicht koordinieren, könnten Sie eines Tages 'root' am Login-Prompt eintippen und stattdessen 'sswj' sehen. Ein sehr peinlicher Umstand.

Vorausplanen

Ein sehr häufiger Umstand dafür ist eine Aktualisierung von Potato auf Woody. Für diesen Fall wurde ein spezieller Dialog eingebaut, wenn console-data aktualisiert wird. Eine Überprüfung des laufenden Kernels während der Aktualisierung wird durchgeführt, und falls Sie einen ADB-Kernel am Laufen haben, werden Sie vor der Situation gewarnt und um eine Wahl gebeten.

Da Sie bereits alles über die Situation wissen, wird es eine einfache Wahl sein. Legen Sie eine neue boottime-Tastenbelegung an, und modifizieren Sie Ihre Boot-Konfiguration (quik.conf oder yaboot.conf), nachdem die Aktualisierung beendet ist (BEVOR Sie rebooten), um eine Zeile wie die folgende zur Kernel-Image Sektion hinzuzufügen, die Sie booten:

append="keyboard_sends_linux_keycodes=1"

Falls Sie bereits eine append= Zeile haben, fügen Sie die neue Anweisung in die Anführungszeichen ein, wie folgt:

append="video=ofonly keyboard_sends_linux_keycodes=1"

Vergessen Sie nicht, quik oder ybin aufzurufen, nachdem Sie die Änderungen vorgenommen haben, um die Konfigurationsänderungen in die tatsächlichen Bootloader-Dateien zu speichern.

Eine weiterer Vorgang, bei dem diese Situation eintreten kann, ist es, X von 4.0.x auf 4.1.x mit einem ADB-Tastencode-Kernel zu aktualisieren. Ihre XF86Config-4 hat möglicherweise XkbModel auf "macintosh" eingestellt, aber die Bedeutung davon hat sich geändert, so dass angenommen wird, dass eine Macintosh-Tastatur die neuen Linux-Tastencodes verwendet. Wenn Sie bei den ADB-Tastencodes bleiben, müssen Sie das XkbModel auf "macintosh_old" ändern.

Neue Woody Installationen

Bei einer neuen Woody Installation werden Ihnen die Linux-Tastencode-Belegungen und ein Linux-Tastencode-Kernel installiert. Daher werden sie zusammenpassen und keine Probleme machen. Außer ...

Außer Sie ändern den Kernel nach der Installation und es stellt sich heraus, dass es ein ADB-Kernel ist. Dann werden Sie das gleiche Problem in der anderen Richtung haben. Oder außer ...

Außer Sie ändern die Tastenbelegung manuell und wählen von /usr/share/keymaps/mac aus. Das sind alles ADB-Tastenbelegungen und werden nicht mit Ihrem Linux-Tastencode-Kernel zusammenpassen!

Das wird mir nicht passieren -- aber falls doch

Also, wie ziehen Sie sich selbst heraus, wenn Sie root tippen und sswj sehen? Oder im umgekehrten Fall, tippen (tab)ssw und root sehen?

Linux-Leute hassen es, ihre Computer abzudrehen. Und es gibt immer einige Dateisystem-Fehler, wenn Sie das tun, die korrekt repariert werden können, oder auch nicht. Daher sind hier einige Vorschläge, das System sorgfältig herunterzufahren, wenn es passiert.

Wenn Sie ssh auf Ihrem System installiert haben und sich von einem anderem Computer damit verbinden können, können Sie das Problem temporär fern korrigieren. Loggen Sie sich in den root-Account ein und führen das folgende aus:

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

Ihre Tastatur wird sich dann normal verhalten, bis Sie neu booten. Nutzen Sie die Gelegenheit, um Ihre Tastaturbelegung, Kernel und Bootloader aufeinander abzustimmen!

Falls Ihr System eine Tasten-Kombination als reboot oder shutdown Befehl verwendet, können Sie versuchen, die unten angegebenen Tabellen zu verwenden, um herauszufinden, was die Kombination ist und sie verwenden. Auf PowerPC ist eine gängige Tasten-Kombination Control-Shift-Delete. Mit einer geladene ADB-Tastenbelegung würde das Control-F6-F12 sein. Mit einer Linux-Tastencode-Belegung, von einem ADB-belegten Kernel benötigen Sie Shift-AltGr-IstGleich. Viel Glück.

Meine Tastatur hat keine Delete-Taste, und als ich eine Linux-Tastencode-Belegung mit einem ADB-konfigurierten Kernel verwendet habe, hab ich durch die Tabelle herausgefunden, wie ich mich als root einloggen konnte ( 2==3 gefolgt von F5 ). Für mein root Passwort benutzte ich die Tabelle unterhalb. Zum rebooten tippte ich ( 21 Tabulator == 3 gefolgt von F5 ). Sie können auch halt ( p]j3 gefolgt von F5 ) verwenden.

Einige Zeichen können mit der falschen Tastaturbelegung nicht eingegeben werden. Diese sind leer gelassen oder fehlen in den Tabellen.

Linux-Tastencode-Belegung geladen, Kernel für ADB konfiguriert

 

wollen Sie:   a b   c d e f g h i j      k l m n     o p q r s t u v w
drücken Sie:  ] 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

Kernel für Linux-Tastencodes konfiguriert, ADB-Tastenbelegung geladen

wollen Sie:   a b c d e         f g h i j k l m n o p q r   s   t u v w
drücken Sie:    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

Wie Sie Ihren aktuellen Status herausfinden

Die Tastenbelegungen haben im Moment keine Kommentare dabei, falls Sie sich daher wundern, welche Belegung aktiv ist, können Sie es durch einen Blick auf die keycode 1 Zeile herausfinden, mit

zgrep 'keycode *1 =' /etc/console/boottime.kmap.gz
Wenn keycode 1 = Escape ist, handelt es sich um die Linux (tatsächlich i386) Tastencode-Belegung. Wenn keycode 1 = s ist, handelt es sich um ADB (ausgenommen ADB dvorak, keycode 1 = o).

Die config-XXXXX Dateien in /boot offenbart, ob der Kernel, mit dem Sie booten, mit ADB-Tastencode-Unterstützung übersetzt wurde oder nicht. Um das herauszufinden, verwenden Sie

grep MAC_ADB /boot/*

Sie sollten eine Liste von Konfigurations-Dateien für Kernel erhalten, die Sie booten können: Wenn es einen Eintrag wie

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

gibt, dann ist Ihr Kernel mit ADB-Code-Unterstützung übersetzt. Wenn das letzte Zeichen ein n ist, ist es ein Linux-Tastencode-Kernel.

Wie man es beheben kann

Wenn Sie Ihr fehlerhaftes System heruntergefahren haben, müssen Sie es immer noch reparieren. Wie wissen Sie, was zu tun ist? Sie müssten Ihre Rettungsdiskette verwenden oder eine andere Partition booten, um die Dinge beheben zu können.

Wenn Ihr Problem ein ADB-übersetzter Kernel ist, der eine Linux-Code-Belegung verwenden will, fügen Sie einfach

keyboard_sends_linux_keycodes=1

am boot: Prompt ein, nachdem Sie das Label Ihres Kernel-Images eingegeben haben. Das ist jedoch nur eine Behebung fürs aktuelle booten; Sie machen diese Änderung permanent, wenn Sie Ihre boot-Konfigurations-Datei editieren und für den Bootloader abspeichern.

Wenn Ihr Problem das umgekehrte ist (Linux-Tastencode-Kernel, der eine ADB-Tastaturbelegung verwenden will), müssen Sie sich der ADB-Tastaturbelegung entledigen. Sie können jede Tastaturbelegung aus dem /usr/share/keymaps/i386 Verzeichnis kopieren, es gibt viele zur Auswahl. Zum Beispiel

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