Tilpasninger ] [ Debian til PowerPC ] [ Installering ] [ Dokumentation ] [ Udvikling ]

Advarsel vedrørende Linux-tastekoder på PowerPC!

Hvis du kører med en kerne oversat før april 2001 og overvejer at opgradere til woody, en kerne-opgradering eller skifte tasteudformning (keymap), så er det AFGØRENDE at du er opmærksom på Debians ændring tastekoder til PowerPC i woody.

Der skete følgende: for at få powerpc ind i Linux' "hovedstrømning" og udelukke nuværende og fremtidige konflikter, blev woodys console-data-pakke ændret til at anvende Linux' tastekodeudforminger i stedet for ADB-tastekodeudforminger (som var normen i powerpc-kerner). ADB-tastekodeudformningen understøttes ikke længere officielt af Debian.

Installationssytemets kerne blev ændret til at følge trop, hvorfor den nye installationskerne anvender Linux' tastekoder, ikke ADB-tastekoder. Dette er en permanent ændring; en kerne oversat uden understøttelse af ADB-tastekoder kan ikke anvende ADB-tastekoder. Linux-tastekoder er en egenskab ved det "nye inddatalag" ("New Input Layer") som vil blive standard for alle inddata-enheder under alle arkitekturer i forbindelse med kernecyklussen efter version 2.4.

Hvis du vil fortsætte med at bruge ADB-tastekoder indtil videre, og kernen du ønsker at bruge er oversat med CONFIG_MAC_ADBKEYCODES=n, kan du genoversætte den med CONFIG_MAC_ADBKEYCODES=y og fortsætte med at bruge en ADB-tasteudformning.

Macs/Apples tastaturudforming til ADB-tasteudformninger og Linux' tasteudformninger er meget forskellige. Derfor skal du være forberedt. Hvis du ikke koordinerer dine startinstruktioner, din kerne, og din tasteudformning, vil du måske skrive "root" ved login-prompten og i stedet se "sswj". En meget foruroligende ting.

Forhåndsplanlægning

En meget almindelig situation hvor dette er aktuelt, er ved opgradering fra potato til woody. I den situation er en særlig dialog blevet tilføjet når console-data bliver opgraderet. Der undersøges hvilken kernen man kører mens opgraderingen sker, og hvis man kører med en ADB-kerne bliver man advaret og bedt om at træffe et valg.

Da du allerede ved alt om denne problemstilling, er valget enkelt. Installér den nye tasteudformning til brug under start af systemet, dernæst når opgraderingen er udført (FØR genstart), skal din start-opsætning ændres (quik.conf eller yaboot.conf) ved at tilføje en linie som følger til sektionen hørende til den kerne du starter fra:

append="keyboard_sends_linux_keycodes=1"

Hvis du allerede har en "append="-linie, så tilføj det nye parameter indenfor et sæt anførselstegn, eksempelvis

append="video=ofonly keyboard_sends_linux_keycodes=1"

Glem ikke at køre quik eller ybin efter du er færdig med at redigere, for at gemme opsætningsændringen i den rigtige bootloaders filer.

En anden sitaution hvor denne problemstilling kan blive aktuel er ved opgradering fra X 4.0.x til 4.1.x med en kerne som anvender ADB-tastekoder. I din XF86Config-4 er XkbModel sikkert sat til "macintosh", men betydningen af dette har ændret sig, så det bliver antaget at der skal anvendes Linux-tastekoder. Hvis du fortsætter med ADB-tastekoder, skal du ændre XkbModel til "macintosh_old".

Nye installeringer af woody

Ved en nyinstallering af woody vil et Linux-tastekodeudforming og en Linux-tastekodekerne blive installeret for dig. De vil passe sammen og du vil ikke have problemer. Medmindre...

Medmindre du ændrer kernen efter installationen, og det viser sig at være en ADB-kerne. I så fald vil det have det samme problem, men omvendt. Eller medmindre...

Medmindre du ændrer tasteudformningen manuelt ved at vælge fra /usr/share/keymaps/mac. Disse er alle ADB-tasteudformninger og de vil ikke svare til din Linux-tastekode-kerne!

Det sker ikke for mig - men hvad nu hvis det sker alligevel

Hvad gør man hvis man skriver "root" og ser "sswj"? Eller hvis det modsatte sker når man skriver "(tab)ssw" og ser "root"?

Linux-folk hader at slukke deres computere. Og der opstår altid nogle fejl i filsystemet når man gør det, hvilket måske, måske ikke, kan repareres uden problemer. Her er nogle forslag til hvordan man får systemet til at lukke på en pæn måde hvis dette sker.

Hvis du har installeret ssh på dit system og kan forbinde dig til systemet fra en anden computer, kan du midlertidigt løse problemet fra den anden computer. Login til "root"-kontoen og udfør følgende:

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

Det får dit tastatur til at reagere normalt indtil maskinen genstartes. Udnyt lejligheden til at synkronisere dine tasteudformninger, kerne og bootloader!

Hvis dit system har en tastekombination som anvendes som en genstart- eller stop-kommando, kan du prøve at bruge tabellerne nedenfor til at finde ud af hvad kombinationen er og hvordan den anvendes. På PowerPC er en almindelig tastekombination Control-Shift-Delete. Hvis en aktiv ADB-tasteudformning tolkes som Linux-tastekoder, bliver det Control-F6-F12. Med en Linux-tastekodeudformning, tolket af en ADB-kerne, skal du bruge Shift-AltGr-Equals. Held og lykke.

Mit tastatur har ikke en Delete-tast, så når en Linux-tastekodeudformning var aktiv sammen med en ADB-opsat kerne, tyede jeg til tabellen for at finde ud af hvordan jeg kunne logge på som root ( 2==3 efterfulgt af F5 ). Med hensyn til min root-adgangskode bruger jeg tabellen nedenfor. For at genstarte trykkede jeg på ( 21 tab-tasten ==3 efterfulgt af F5 ). Man kan også bruge "halt" ( p]j3 efterfulgt af F5 ).

Nogle tegn kan ikke skrives med den forkerte tasteudformning. Disse er blanke og mangler i tabellerne.

Med aktiv Linux-tastekodeudformning, kerne opsat til ADB

 

Hvis du ønsker: a b   c d e f g h i j      k l m n     o p q r s t u v w
skriv i stedet: ] 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

Kerne opsat til Linux-tastekoder, med aktiv ADB-tasteudformning

Hvis du ønsker: a b c d e         f g h i j k l m n o p q r   s   t u v w
skriv i stedet:   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

Hvordan man finder ud af sin aktuelle status

Tasteudformningerne indeholder pt. ingen kommentarer, så hvis du spekulerer på hvilken type udformning der er aktiv, kan du finde ud af det ved at kigge på linien "keycode 1" med

zgrep 'keycode *1 =' /etc/console/boottime.kmap.gz

Hvis "keycode 1 = Escape" er det Linux' (faktisk i386's) tastekodeudformning. Hvis "keycode 1 = s" er det ADB (bortset fra ADB-dvorak som er "keycode 1 = o").

Filerne config-XXXXX i /boot afslører hvorvidt kernen du starter med er oversat med understøttelse af ADB-tastekoder eller ej. For at finde ud af dette bruges

grep MAC_ADB /boot/*

Det skulle give en liste over opsætningsfiler til kerne du kan starte med. Hvis der er en post som denne

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

er din kerne oversat med understøttelse af ADB-tastekoder. Hvis det sidste bogstaver er "n", er det en kerne med Linux-tastekoder.

Hvordan man retter der

Når det fejlbehæftede system er blevet stoppet, skal det stadig tilrettes. Hvordan finder man ud af hvad der skal gøres? Det kan være nødvendigt at bruge en rescue-diskette eller starte fra en anden partition for at få rettet tingene op.

Hvis dit problem er en ADB-oversat kerne som prøver at bruge en Linux-tastekodeudformning, skal du blot føje

keyboard_sends_linux_keycodes=1

til "boot:"-prompten efter at have skrevet kernens "label". Dette fungerer dog kun ved den aktuelle start af systemet; du er nødt til at gøre ændringen permanent ved at redigere din startopsætningsfil og gemme den så bootloader'en kan anvende ændringen.

Hvis dit problem er det omvendte (kerne med Linux-tastekoder som prøver at bruge en ADB-tasteudformning), er du nødt til at slippe af ADB-tasteudformningen. Du kan kopiere en hvilken som helst tasteudformning fra mappen /usr/share/keymaps/i386, der er mange af vælge imellem. Eksempelvis

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