最近、QPADからMK-85メカニカルUSBキーボードを購入しました。キーボードはWindowsで完全に動作します。 Syslinuxでは完璧に動作します。 Linuxではほぼ完全に動作します。 Linuxの唯一の問題は、単一のキーが奇妙に機能することです(Gentoo(3.6.11)、Arch Linux、およびLinux Mint(2.6.38)がすべて影響を受けます)。
キーボードは105キーのドイツ語レイアウトキーボードですが、問題のキーはäとenterの間にあります。アメリカのレイアウトではキーに対応し、\ドイツ語のレイアウトではに対応#し、スカンジナビアのレイアウトではに対応します'。
このキーを他のキーと一緒に押すと、同時に押す各キーに対して追加のキー押下が生成されます。たとえば、スカンジナビアのレイアウトでは、いいえ「私はすぐに結論に達しました。いいえ」
この動作はshowkeysプログラムを使用して観察できます。
kb mode was UNICODE
[ if you are trying this under X, it might not work
since the X server is also reading /dev/console ]
press any key (program terminates 10s after last keypress)...
keycode 28 release
keycode 32 press // d pressed
keycode 24 press // o pressed
keycode 49 press // n pressed
keycode 32 release // d released
keycode 43 press // ' pressed
keycode 24 release // o released
keycode 43 release // ' released
keycode 43 press // ' pressed, extra ' produced
keycode 49 release // n released
keycode 43 release // ' released
keycode 43 press // ' pressed, extra ' produced
keycode 20 press // t pressed
keycode 43 release // ' released
keycode 43 press // ' pressed, extra ' produced
keycode 20 release // t released
keycode 43 release // ' released
keycode 43 press // ' pressed, extra ' produced
keycode 43 release // ' released (REAL)
キーボードのレイアウトに関係なく、この単一のキーでのみ発生します。これが現れるもう1つの方法は、キーを押し続けると繰り返され、別のキーを押し続けると繰り返しが開始されることです。
aaaaaaaaaakkkkkkkkkkkkk (works as intended)
¨¨¨¨¨¨¨¨¨¨fffffffffffff (works as intended)
''''''''''a'''''''''''' (a is not repeated, instead ' continues)
Windowsではこの問題は発生しません。
OnKeyDown, Key code=68, Control keys=, Key name d
OnKeyPress d
OnKeyDown, Key code=79, Control keys=, Key name o
OnKeyPress o
OnKeyDown, Key code=78, Control keys=, Key name n
OnKeyPress n
OnKeyup, Key code=68, Control keys=, Key name d
OnKeyDown, Key code=191, Control keys=, Key name ........OEM specific
OnKeyPress '
OnKeyup, Key code=79, Control keys=, Key name o
OnKeyup, Key code=78, Control keys=, Key name n
OnKeyDown, Key code=84, Control keys=, Key name t
OnKeyPress t
OnKeyup, Key code=191, Control keys=, Key name ........OEM specific
OnKeyup, Key code=84, Control keys=, Key name t
SEについてどう思いますか?ハードウェアの問題? Syslinuxではうまく動作するので、Linux側に問題があると思います。これをデバッグするためのアドバイス、アイデア、またはより良い方法はありますか?動作させるためにカーネルをパッチする必要がある場合は、それを喜んで行います。
ベストアンサー1
私はこのバグの適切なパッチを作成しようとしました。これはキーボードの問題ではなくカーネルの問題です。しかし、キーボードが奇妙な方法で動作すると言うこともできます。それにもかかわらず、パッチはレビューのためにLinux入力リストに提出されましたが、まだコメントはありません。
これにより、ここで言及されているQPAD MK-85の問題が解決されますが、Corsair K70、Gigabyte Osmium、およびその他の同様のキーボードにも同じ問題があります。キーボードにバグがある場合は、パッチをテストできれば良いでしょう。テストするときに動作するか、どのキーボードを持っているか教えてください。使用している言語のバージョンも重要です。アメリカのキーボードと米国以外のキーボードは異なる動作をします。アメリカのキーボードのバックスラッシュキーは、異なるバージョンのキーボードで異なるラベルを持っています。
以下は、linux-inputのパッチを含むEメールです。