Top / Old / PowerpcKeycords

少し古い情報ですが、一応残しておきます。

PowerPC Keycords Change 日本語訳

原文 http://www.jp.debian.org/ports/powerpc/keycodes

注意:この文書は非公式です。自己責任にて使用して下さい。
(この文書は「LinuxPPCユーザー、集え」スレッド870-886 より転記したものです。)


PowerPC Linux Keycodes Alert!

2001年の4月あたりより前にビルドされたカーネルを利用していて、 woodyへのアップグレード、カーネルのアップグレード、またはキー マップを変更しようとしている場合、woodyのPowerPC版のキーコード 変更には十分注意してください。

何が起きたのかというと:powerpc版をLinuxのメインストリームに 引っ張ってきて、現在とこれから先のコンフリクトを消すために、 woodyのconsole-dataパッケージはインストール時にADBキーコード マップ(これまでpowerpc版カーネルで一般的だったもの)のかわり に現在のLinuxのキーコードマップに変更されました。ADBキーコード マップはもう公式にはDebianでのサポートをしません。

インストールシステムのカーネルはそれ用のパスを追いかける ように変更されたので、新インストール用カーネルはADBキー コードではなくLinuxキーコードを利用します。つまり、ADB キーコードのサポートなしにコンパイルされたカーネルでは ADBキーコードを利用することはできません。Linuxキーコード は'New Input Layer'のひとつの特徴で、2.4系カーネル バージョンのサイクルの後の全アーキテクチャでの全入力 デバイスの標準となるよう設定されています。

まだADBキーコードを使っていたくて、使いたいカーネルが CONFIG_MAC_ADBKEYCODES=nなしでコンパイルされている場合は CONFIG_MAC_ADBKEYCODES=yにしてリコンパイルすればADBキー マップを使いつづけることができます。

Mac/AppleのADB用キーボードマップとLinuxキーコードはぜんぜん 違っています。そのため、準備が必要になるのです。ブート インストラクションやカーネル、キーマップを設定しないと、 いつか「root」と入力してもログインプロンプトには「sswj」 と表示されているのを見る羽目になるでしょう。不満だらけの 状態といえます。

Planning Ahead

このような状況に陥るのにいちばんありがちなのはpotatoから woodyにアップグレードする時です。この場合、console-dataが アップグレードされたときにあるダイアログが組み込まれてい ます。アップグレードが行われる際にカーネルがチェックを 作成し、ADBカーネルを走らせている場合はその状況について 警告され、どちらを選ぶか決めるよう尋ねられます。

この問題についてすでに全部分かっていれば、選択は簡単です。 新しいブート時のキーマップを入力して、それからアップ グレードを完了させ(再起動の前に!)、ブート設定を修正して (quick.confかyaboot.confで)、ブートするカーネルイメージの セクションに下の行を追加します:

append="keyboard_sends_linux_keycodes=1"

もうすでに append= という行があれば、"の中に下のような行を 付け加えます:

append="video=ofonly keyboard_sends_linux_keycodes=1"

編集が終ったら quick か ybin を実行して本物のブートローダー に設定を保存するのを忘れずに。

この状況が発生するもうひとつの事例はXを4.0.xから4.1.xに ADBキーコードのカーネルでアップグレードする場合です。 あなたのXF86Config-4ではXkbModelが"macintosh"になっている はずですが、この変更によりmacintoshキーボードというのは 新しいLinuxキーコードだというようになってしまっています。 ADBキーコードのままにしたい場合はXkbModelを"macintosh_old" にしなければいけません。

New Woody Installations

新規にwoodyをインストールする場合は、linux-keycode keymapに なり、linux-keycodeカーネルがインストールされます。二つとも マッチしているので、問題はありません。以下を除けば、 ですが。

インストール後にカーネルを変更して、それがADBカーネル だった場合、同じ問題が逆になって発生します。さらに・・・

 /usr/share/keymaps/macから選択してキーマップを手動で変更 した場合、これらは全てADBキーマップですので、linux-keycode のカーネルにマッチしません!

It Won't Happen To Me -- But When It Does

では、rootと入力してsswjと表示されるようになったら、 どうやってそこから脱出しますか?または、その逆に(tab)sswと 入れてrootと表示される場合は?

Linuxを使っている人たちはコンピュータの電源を落すことを 嫌います。それをやるといつも何らかのファイルシステムが 壊れ、ちゃんと復元されることもあればそうでないこともある からです。そこで、このような事態になった場合に正しく システムをシャットダウンする方法についていくつか提案 します。

sshをシステムにインストールしてあり、別のコンピュータから ログインできる場合は、とりあえずリモートで問題を修復する ことができます。rootアカウントでログインして、以下を実行 しましょう:

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

再起動するまでキーボードは通常どおり動きます。これで カーネルとブートローダーのキーマップをシンクロさせる 機会ができるので、利用しましょう!

システムに再起動やシャットダウン用コマンドのキーコンビ ネーションがあれば、次を参照してどのコンビネーションに なるか弾き出して適用しましょう。PowerPCでは、ADBキー マップがロードされていれば通常のキーの組み合わせは Control-Shift-Deleteです。これをLinuxのキーコードにすると Control-F6-F12になります。Linuxのキーコードがロードされて いる場合は、ADBのマップになっているカーネルでは Shift-AltGr-Equalsです。ではグッドラック。

私のキーボードにはDeleteキーがありませんので、ADBに設定 されたカーネルでlinux-keycodesマップがロードされた場合、 下の表からroot(2==3に続いてF5)でログインする方法を導き だしました。 rootパスワードも下の表を使って 21 tab-key ==3続いてF5とタイプしました。または halt(p]j3続いてF5)を使うこともできます。

間違ったキーマップでは使用できない文字もあります。表では それらは空白になっています。

Linux-keycodes keymap loaded, kernel configured for ADB

(Linux-keycodes keymap がロードされて、カーネルの設定が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

Kernel configured for Linux-keycodes, ADB keymap loaded

(カーネルが Linux-keycodes に設定され、 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

How To Figure Out Your Current Status

キーマップには今のところ内部にコメントがないので、もし どちらのマップがアクティブになっているのかわからない場合 は、keycode 1 の行を次のコマンドで見て調べられます。

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

keycode 1 = Escape の場合はlinux(実際にはi386)のキーコード マップです。keycode 1 = s ならADB(ADB dvorakの場合は keycode 1 = o)です。

 /boot 内の config-XXXXX ファイルでブートに使っている カーネルがADBキーコードのサポートありでコンパイルされて いるかいないかを見られます。調べるには次のコマンドを 使います。

grep MAC_ADB /boot/*

ブート可能なカーネル用のconfigファイルのリストを手に入れ なければいけません。以下のようなエントリーがあれば

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

あなたのカーネルはADBコードのサポートありでコンパイルされ ています。もし最後の文字がnなら、linux-keycodeカーネルです。

How To Fix It

いったんおかしくなったシステムをシャットダウンしたら、 今度は修復しなければいけません。どうすればいいかって? rescueディスクを使うか修復用に別パーティションから ブートさせなければいけないかもしれませんね。

もし問題がADB向けにコンパイルされたカーネルがlinux用 コードのキーマップであれば、単純に

keyboard_sends_linux_keycodes=1

カーネルイメージのラベルを入力した後にこれをboot: プロンプトに入力しましょう。ただしこれは一度の起動のみの 修復ですから、ブート設定ファイルを編集してブートローダー に保存して変更をそのまま継続させるようにしましょう。

問題がその逆の場合(linuxのキーコードのカーネルにADBの キーマップ)は、ADBキーマップを取り除く必要があります。/usr/share/keymaps/i386の中のどのキーマップもコピー できます。選択肢はたくさんあります。たとえば

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

です。


訳者注

バグ報告は誰かやってほしいなあ。

あと、上の和訳は勝手に使ってもらってOK。公式ページ に追加されると鼻高々。クレジットは、追加の際に作業して くれた人になってOK。(チェックもしてくれるだろうから)



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-06-15 (水) 23:28:34 (4545d)