端末を使用しているときに面倒な問題がありますが、どのように表現するのかわからないため、Googleで解決策を見つけることができません。
端末にテキストを読み込み(たとえば、dmesgの後)、目的のテキストビットを見つけるために上にスクロールしようとすると、ランダムな時間が経過すると、端末は自動的にカーソルのある位置まで下にスクロールします。
また、xscreensaverが実行されているときにキーボード入力なしでログインGUIが表示されることがわかりました。 xscreensaverに入力を開始すると、より多くの時間(熱が増加する)を提供する「経過時間」列があることをご存知ですか?まあ、私が入力しないと、一度増えます...
キーボードにランダムな入力があると思いましたが、この迷惑な問題をどのように解決できますか?
xevによって生成されたイベントを追跡しようとしましたが、非常に難しいです。
端末で「キーボードを押したときにスクロール」を選択解除して一時的に問題を解決しましたが、これは合理的に恒久的な解決策ではありません。 xscreensaverが確認したように、システム全体が影響を受けました。
Acer Aspire e1-571g ノートパソコン。最近Funtooをインストールしました。まだ各ハードウェアの一時的な構成を完了しています。
Funtooをインストールする前に、Arch Linuxがあり、すべてがうまく機能していたので、ハードウェアには何の問題もなく、現在の構成にのみ問題があると思いました。
cpu:
Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz, 1383 MHz
Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz, 1400 MHz
Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz, 1350 MHz
Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz, 1472 MHz
keyboard:
/dev/input/event4 AT Translated Set 2 keyboard
mouse:
/dev/input/mice SynPS/2 Synaptics TouchPad
graphics card:
Intel 3rd Gen Core processor Graphics Controller
nVidia VGA compatible controller
sound:
Intel 7 Series/C210 Series Chipset Family High Definition Audio Controller
storage:
Intel 7 Series Chipset Family 6-port SATA Controller [AHCI mode]
network:
eth0 Broadcom NetLink BCM57785 Gigabit Ethernet PCIe
wlan0 Intel Centrino Wireless-N 105 BGN
network interface:
wlan0 WLAN network interface
lo Loopback network interface
eth0 Ethernet network interface
sit0 Network Interface
disk:
/dev/sda KINGSTON SH103S3
partition:
/dev/sda1 Partition
/dev/sda2 Partition
/dev/sda3 Partition
/dev/sda4 Partition
cdrom:
/dev/sr0 HL-DT-ST DVDRAM GT51N
usb controller:
Intel 7 Series/C210 Series Chipset Family USB xHCI Host Controller
Intel 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2
Intel 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1
bios:
BIOS
bridge:
Intel 3rd Gen Core processor DRAM Controller
Intel Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port
Intel 7 Series/C210 Series Chipset Family PCI Express Root Port 1
Intel 7 Series/C210 Series Chipset Family PCI Express Root Port 2
Intel HM77 Express Chipset LPC Controller
hub:
Linux 4.3.0-gentoo ehci_hcd EHCI Host Controller
Hub
Linux 4.3.0-gentoo ehci_hcd EHCI Host Controller
Hub
Linux 4.3.0-gentoo xhci-hcd xHCI Host Controller
Linux 4.3.0-gentoo xhci-hcd xHCI Host Controller
memory:
Main Memory
unknown:
FPU
DMA controller
PIC
Keyboard controller
PS/2 Controller
Intel 7 Series/C210 Series Chipset Family MEI Controller #1
Intel 7 Series/C210 Series Chipset Family SMBus Controller
Broadcom NetXtreme BCM57765 Memory Card Reader
Broadcom System peripheral
Broadcom System peripheral
Chicony Electronics HD WebCam
どんなアイデア/ソリューションがありますか?
修正する:Stéphaneのおかげで、偽のイベントを生成するデバイスがid = 5であることがわかりました。
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
...そして確認するために私もこれをしました。
xinput test-xi2 --root 5
出力は次のとおりです
EVENT type 13 (RawKeyPress)
device: 5 (5)
detail: 255
valuators:
EVENT type 14 (RawKeyRelease)
device: 5 (5)
detail: 255
valuators:
...まだ解決策がわかりません。無効にしようとしましたが、エラーが発生しました。
答え1
これは実際のキーボードの問題ではなく、偽のキーイベントが送信される問題ですxfce4-power-manager
。
xfce4-power-manager
ふりをする偽(キーコード255、割り当てられていません)プレゼンテーションモード(通常は映画を見たりプレゼンテーションをするとき)でスクリーンセーバーが起動しないようにするキーボードイベント(キーを押した後にキーを離します。ソースコードに応じて20秒ごとに回)プロモーション会議)。
この動作は1.5.2(2015-01-06現在の最新バージョン)に追加されて修正されました。このエラーデモモードで可能なすべての種類のスクリーンセーバーを無効にします。
これはあなたに影響を与える副作用を持つことができますすでにそのエラーを発見しました。。
だから置きたいと?デモモード問題を避けるために。この問題はxfce4-power-managerのバグとして提起され、変更を元に戻すか、#11083のより良い修正を見つけることができるようにする必要があります。
問題の説明と同じくらい興味深いのは、最終的に犯人をどのように見つけたかです。
xinput test-xi2 --root
すべてのX入力イベントを報告し、そのイベントのソースと性質を伝えます。その結果は次のとおりです。
EVENT type 13 (RawKeyPress)
device: 5 (5)
detail: 255
valuators:
EVENT type 14 (RawKeyRelease)
device: 5 (5)
detail: 255
valuators:
キーコードが255のデバイス5のキーリリースイベントです。
xinput list
入力デバイスを識別してみましょう。
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
id=5 デバイスは、ソフトウェア生成イベントのソースとして機能する仮想デバイスです。次のコマンドを使用してイベントを生成できます。
xdotool key x
または
xte 'key x'
xte
以下でコマンドを実行すると、ltrace
次のような結果が出ることを確認できます。
XStringToKeysym(0x7ffed76983e0, 0x7ffed76983e0, 0, 0x7f34e491deb0) = 120
XKeysymToKeycode(0x23abfe0, 120, 120, 0x7f34e4ce7139) = 53
XTestFakeKeyEvent(0x23abfe0, 53, 1, 0) = 1
XTestFakeKeyEventは、これらのキーイベントを送信するための標準X APIです。
今、私たちは何が255の主要なイベントを送ったのか知りたいです。現在実行中のアプリケーションのうち、このAPIを使用しているアプリケーションを参照できます。
sudo lsof -Fn -nPd txt | sed -n '/proc/!s/^n//p' | sort -u | xargs grep -l XTestFakeKeyEvent
またはより強力な同等物:
sudo lsof -Fn -nPd txt | sed -n '/^n\/proc/!s/^n//p' |
sort -u | xargs -d '\n' grep -l XTestFakeKeyEvent
txt
現在開いていて実行可能ファイル()ですべてのプロセス(ライブラリと実行可能ファイルを含む)にマップされているファイルを一覧表示し、XTestFakeKeyEventに対してそのファイル内でgrepを実行します。
xfce4-power-managerを返します。
今残っているのは、プロセスがこれらのXTestFakeKeyEventを実行する理由をソースコードで見つけることです。