キーを押さずにノートパソコンのキーボードの正しいスキャンコードを取得するにはどうすればよいですか?

キーを押さずにノートパソコンのキーボードの正しいスキャンコードを取得するにはどうすればよいですか?

ノートパソコンのキーボードに問題があり、正常に動作しません。ただし、SSHを使用してラップトップを完全に制御できます。問題は、独自の暗号化ディスク(Samsung 840 Pro)を使用することです。ノートパソコンをシャットダウンすると、キーボードの問題によりログインできなくなる可能性があります(ハードウェアの問題かもしれません)。だから、再起動する前にsshとhdparmを介してataパスワードをオフにしたいと思います。その後、SSDを別のPCに挿入して問題なくアクセスできます。

問題は次のとおりです。

hdparm --security-disable password /dev/sda

ところで、私のラップトップ(Dell Latitude E6400、ドイツ語キーボード)が文字をスキャンコードに変換しているようで、次のように試しました。

hdparm --security-disable $(printf 'password' | tr '1234567890qwertyuiopasdfghjklzxcvbnm' '\2-\13\20-\31\36-\46\54-\62') /dev/sda 

上記のようにここ

しかし、これはうまくいきません。その理由は正しいスキャンコードの翻訳が必要だからです(上記の翻訳はアメリカのキーボード用のようです)。

それでは、ラップトップにキーを入力せずにSSHを介して正しいスキャンコードを取得するにはどうすればよいですか?

SSH経由でパスワードを無効にする方法に関する他の提案はありますか?

答え1

スキャンコードはすべてのPCキーボードで同じです(マルチメディアキーは異なります)。これは、キーのラベル(実際にキーボードから送信される電気信号とは関係ありません)ではなく、キーの位置によって決まります。

したがって、ドイツ語(QWERTZ)キーボードの場合とyを変更するだけですz

hdparm --security-disable $(printf 'password' | tr '1234567890qwertzuiopasdfghjklyxcvbnm' '\2-\13\20-\31\36-\46\54-\62') /dev/sda 

フランス語またはベルギーのAZERTYキーボードの場合:

hdparm --security-disable $(printf 'password' | tr '1234567890azertyuiopqsdfghjklmwxcvbn' '\2-\13\20-\31\36-\47\54-\61') /dev/sda 

関連情報