FreeBSD 6.2-RELEASEとDELLのUSBキーボードの組み合わせで、アンダースコア(_)が入力できない不具合に遭遇しました。
この不具合の回避方法について、以下にまとめましたので、参考になれば幸いです。
一部のDELLのUSBキーボードでは、アンダースコア(_)の押下時に、「0xe0」のプレフィックス付きでキーコード「0x64」が通知されるようです。
kernelのキーコード処理ルーチン(/usr/src/sys/dev/kbdmux.c)では、指定された以外のキーコードは捨てられていますので、上記のキーコードが通知されたときに、正しくアンダースコア(_)のキーコード「0x73」が設定されるよう、ソースコードを修正します。
パッチファイルを作成しましたので、kernelのソースコードを展開後、以下の手順でパッチをダウンロードし、適用してください。
$ cd /usr/src $ fetch http://www.kishiro.com/FreeBSD/patch/usbkbd0602.patch $ patch < usbkbd0602.patch |
上記の設定を実施後、kernelを構築し直すことにより、アンダースコア(_)が入力できるようになります。
