web-dev-qa-db-ja.com

SysRqをラップトップで動作させる方法は?

ぼくの /proc/sys/kernel/sysrqには番号502が含まれていますが、Alt + SysRq + ...は私のHP Pavilionラップトップでは機能しないようです。どうすれば修正できますか?

更新1:ちなみに、私のprint-screen-keyも他のキーも "SysRq"のような追加のラベルはありません。

アップデート2:

  • ハードウェアモデル:HP Pavilion 17 Notebook PC
  • キーボードレイアウト:ドイツ語、QWERTZ
12
Al Klimov

ほとんどのラップトップは押す必要があります Fn を取得する SysRq キー。押す Fn 通常は影響しません Alt キー(少なくとも左側のもの)ですが、後で押す文字に影響する可能性があります SysRq。幸い、押す必要はありません SysRq と3番目のキーを一緒に、保持するのに十分です Alt ダウン。次のシーケンスは、私が見たすべてのラップトップで機能します。

  1. 押したまま Alt
  2. 押す Fn、 SysRq キーを押して、両方を離します。
  3. 簡単に言うと、文字や句読点のキー。 S 同期します。
  4. 解放する Alt

の SysRq キーは通常、同じキーです PrintScreen。キーボードにラベルの付いたキーがない場合 SysRq または PrintScreen、Linuxが期待するスキャンコードを送信するキーがない可能性があります。魔法のSysRqの目的のために、 SysRq keyは、スキャンコード99を送信するキーです。

PS/2キーボード(ラップトップの内蔵キーボードを含む)で、キーが送信するスキャンコードを確認するには、テキストコンソールにログインします( Ctrl+Alt+F1 テキストコンソールに切り替えるには Ctrl+Alt+F7 GUIに戻るには)、コマンド showkey -s を実行します。 showkey -sを入力すると、各キーのスキャンコードが表示されます。これは通常、キーを押すための1バイト(2桁の16進数)であり、次にキーを離すための別のバイトです。いくつかのキーの場合、e0で始まる2バイトで構成されるバイトシーケンスを取得します。興味のあるキーを押してから、10秒待つとshowkeyが終了します。

スキャンコードを特定したら、ルートとして setkeycodes … 99 を実行して、そのスキャンコードをキーコード99に割り当てます。たとえば、showkey -s0xe0 0x6f 0xe0 0xefを出力する場合選択したキーに対して、setkeycodes e06f 99を実行します。

この変更を永続的にするには、setkeycodesコマンドを/etc/rc.localに追加するか、または キーコードマッピングを変更するようにudevを構成します のいずれかです。 USBキーボードの唯一のソリューションはudevの設定です。setkeycodesはUSBキーボードには影響しません。

同じ問題で、新しいHPパビリオンラップトップを使用しています。私にとってうまくいったことは、AltGrキーをprintscreenキーで押すことでした

1
oliver