- 33 名前:login:Penguin [01/10/13 22:01 ID:Q/kw9Cxc]
- たぶん結構知られた問題。
本当にそれでいいのかどうかわからんが、 linux/driver/input/keybdev.cのx86_keycodesのテーブルを 修正すると直る。 こんな感じのパッチを当ててkeybdev.oをリコンパイル。 モジュールにしてないなら、カーネル全体を再make --- linux.org/drivers/input/keybdev.c Thu Apr 26 06:35:25 2001 +++ linux/drivers/input/keybdev.c Wed Aug 22 22:27:41 2001 @@ -59,7 +59,7 @@ 360, 93, 94, 95, 98,376,100,101,357,316,354,304,289,102,351,355, 103,104,105,275,281,272,306,106,274,107,288,364,358,363,362,361, 291,108,381,290,287,292,279,305,280, 99,112,257,258,113,270,114, - 118,117,125,374,379,259,260,261,262,263,264,265,266,267,268,269, + 118,117,125,374,379,115,112,125,121,123,264,265,266,267,268,269, 271,273,276,277,278,282,283,295,296,297,299,300,301,302,303,307, 308,310,313,314,315,317,318,319,320,321,322,323,324,325,326,330, 332,340,341,342,343,344,345,346,356,359,365,368,369,370,371,372 }; でも、カーネルにパッチを当てるのを良く忘れるので、 #!/usr/bin/perl @ARGV == 1 || die "No file specified"; open(IN, $ARGV[0]) || die "Read open error"; read(IN, $target, 100000) || die "Read error"; close(IN); $match = pack("v*", 118,117,125,374,379, 259,260,261,262,263, 264,265,266,267,268,269); ($p = index($target, $match)) >= 0 || die "Search error"; $p == rindex($target, $match) || die "Search error"; substr($target, $p + 10, 10, pack("v*", 115,112,125,121,123)); open(OUT, ">$ARGV[0]") || die "Write open error"; print OUT $target; close(OUT); のようなスクリプトを書いて気が付いたら keybdev.oを直接書き換えてる。
|

|