
Ubuntu日本語フォーラム

ログインしていません。
お世話になります。
どなたか、下記の件で、アドバイスをいただけるでしょうか。
今日、起動するとキーボード入力がまったく受け付けなくなっていました。
最近、10.04から11.04、数日後に11.10へとアップデートしたところで、現在の11.10にアップデートした際には使えておりました。
今は別のPCから投稿しています。
・ログイン画面では使えます。
・リカバリーモードでも使えました。
・キーボードはノートPCのキーボードで、USBではありません。
・マウス操作は問題ありません。
・昨日のアップデートはソフトウェアセンターからのものがいくらかありましたが、アップデート後は使えておりましたし、再起動しても
問題ありませんでした。
・昨日インストールしたのはguakeのみだったと思いますが、これをアンインストールして再起動しても変わりません。
・dmesgの結果は以下のとおりです。
$ dmesg | grep keyboard
[ 1.555176] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input4
復旧の方法についてご指導いただければ幸いです。
よろしくお願いします。
オフライン
えーと、申し上げにくいのですが、わかった!と思ったのも束の間、またわからなくなってきましたので、
どなたか、ご教示くださるでしょうか。
どうも、今回の原因は、以前に私自身が投稿しました以下の内容と関係しているのではないかと思います。
https://forums.ubuntulinux.jp/viewtopic.php?id=8859
私は、タッチパッドの無効化のために、前回教えていただいた内容をもとにして、以下のようなシェルスクリプトを作成し、
そのショートカットをパネルに配置し、更に自動起動するアプリケーションにも加えて利用しておりました。
#!/bin/bash
if [ `xinput list-props "ETPS/2 Elantech Touchpad" | grep -c "Device Enabled (132): 1"` = '1' ]; then
xinput set-int-prop 13 "Device Enabled" 8 0
else
xinput set-int-prop 13 "Device Enabled" 8 1
fi
それが、今回のアップデートをきっかけにidなどの変更があったのではないかと思い、この自動起動を停めて再起動してみました。
そうすると、入力できるようになり、バンザーイと喜んだものの・・・。
いざ、原因を探していくとidなんて変わってないし、しかも、もう一度自動起動するように設定して再起動しても
キーボード入力できるではないか、ということで、問題の再現ができなくなってしまいました。
一応解決したものの原因がわからずじまいです。
それともxinputでのidは再起動の度に変更の可能性もあるのでしょうか?
10.04のときは、 "Device Enabled (132)ではなく "Device Enabled (127)でした。
ですので、これらが何か関係していそうに思っていたのですが・・・。
また、何かわかれば続けてあげさせていただきたいと思います。
よろしくお願いいたします。
オフライン
ちゃんとソースを読んだわけではないので本当の挙動は分かりませんが、接続されているデバイスの数や、デバイスそのものが変わった場合、もしかしたら、タイミングの微妙なずれや接続ポート変更でデバイスの認識の順番が変わるなどということもあるのかも知れません。
なので、デバイスIDを決め打ちするのではなく、デバイス名で指定するか、デバイス名からIDを動的に取得する方がよいかと思います。
あくまで一例ですが、下記のような感じではいかがでしょうか。
#!/bin/bash
get_device_id () {
_DEVID=`xinput list | grep -i touchpad | sed -e 's/.*id=\([0-9]*\).*/\1/'`
echo $_DEVID
}
get_device_status () {
_STATUS=`xinput --list-props $1 | grep "Device Enabled" | sed -e 's/.*\([0-9]\+\)$/\1/'`
echo $_STATUS
}
DEVID=`get_device_id`
STATUS=`get_device_status $DEVID`
echo $STATUS
if [ "$STATUS" = "1" ]
then
xinput --set-prop $DEVID "Device Enabled" 0
else
xinput --set-prop $DEVID "Device Enabled" 1
fi対象が「touchpadに引っかかるもの」なので、そのまま実行すると、複数のtouchpadにマッチするものがあると期待どおりに動かなかったりしますので、あくまで参考程度とお考え下さい。
オフライン
hmatsueさん
お返事ありがとうございます。
そういえばその時は、いつも接続していないマイクを接続していたはずです。
そのせいでしょうか。
スクリプトを書き換えることにします。
正規表現はまだよくわかっていないのですが、これを機会に上記のスクリプトの意味をきっちり
勉強してみます。
こうやって教えて頂けるとトラブル解決の度に少しずつ解っていけるのが楽しく、感謝の限りです。
本当にありがとうございます。
オフライン