web-dev-qa-db-ja.com

タッチスクリーンはマウスとして認識されています

Linux PCに3Mタッチスクリーンを接続しました。マウスとして認識されるように表示されます。これが私のxinput出力です。

xinput
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech USB Optical Mouse                id=13   [slave  pointer  (2)]
⎜   ↳ 3M 3M USB Touchscreen - 36955             id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ Logitech USB Keyboard                     id=10   [slave  keyboard (3)]
    ↳ Logitech USB Keyboard                     id=11   [slave  keyboard (3)]
    ↳ HP WMI hotkeys                            id=14   [slave  keyboard (3)

# modprobe -r usbtouchscreenに触れた後、デバイスのタッチが機能しなくなります。

Windows 7では、 このサイト からドライバーをインストールした後に機能するため、ここ(Linux、シングルタッチ、64ビット)からLinuxドライバーをインストールしようとしました。ライセンスを受け入れるとすぐに中断するため、インストールプロセスは失敗すると思います(終了コード0)。

Qt FingerPaint example でタッチスクリーンをテストします(Windowsでも動作しますが、Ubuntuでは動作しません)。デバッグは、マルチタッチ入力がマウスイベントを生成することを示しています。

Ubuntu 16.04をカーネル4.10.0-35-genericで使用し、UnityとCinnamonの両方の環境を試しました。プログラミングの目的でこれが必要です。

編集:

いくつかの診断ツールの出力:

# lsinput
...some other devices...
/dev/input/event12
bustype : BUS_USB
vendor  : 0x596
product : 0x1
version : 1088
name    : "3M 3M USB Touchscreen - 36955"
phys    : "usb-0000:00:14.0-3/input0"
bits ev : EV_SYN EV_KEY EV_ABS


# mtdev-test /dev/input/event12
015ee1f66c7c 00 1 014a 1
015ee1f66c7c 00 3 0000 12183
015ee1f66c7c 00 3 0001 7962
015ee1f66c7c 00 0 0000 0
015ee1f66c80 00 3 0000 12193
... etc ...

編集:

$ xinput list-props 12
Device '3M 3M USB Touchscreen - 36955':
    Device Enabled (143):   1
    Coordinate Transformation Matrix (145): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (268): 0
    Device Accel Constant Deceleration (269):   1.000000
    Device Accel Adaptive Deceleration (270):   1.000000
    Device Accel Velocity Scaling (271):    10.000000
    Device Product ID (262):    1430, 1
    Device Node (263):  "/dev/input/event12"
    Evdev Axis Inversion (272): 0, 0
    Evdev Axis Calibration (273):   <no items>
    Evdev Axes Swap (274):  0
    Axis Labels (275):  "Abs X" (266), "Abs Y" (267)
    Button Labels (276):    "Button Unknown" (265), "Button Unknown" (265), "Button Unknown" (265), "Button Wheel Up" (149), "Button Wheel Down" (150)
    Evdev Scrolling Distance (277): 0, 0, 0
    Evdev Middle Button Emulation (278):    0
    Evdev Middle Button Timeout (279):  50
    Evdev Third Button Emulation (280): 0
    Evdev Third Button Emulation Timeout (281): 1000
    Evdev Third Button Emulation Button (282):  3
    Evdev Third Button Emulation Threshold (283):   20
    Evdev Wheel Emulation (284):    0
    Evdev Wheel Emulation Axes (285):   0, 0, 4, 5
    Evdev Wheel Emulation Inertia (286):    10
    Evdev Wheel Emulation Timeout (287):    200
    Evdev Wheel Emulation Button (288): 4
    Evdev Drag Lock Buttons (289):  0

そしてevtest:

Sudo evtest /dev/input/event12
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x596 product 0x1 version 0x440
Input device name: "3M 3M USB Touchscreen - 36955"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 330 (BTN_TOUCH)
  Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value   6684
      Min        0
      Max    16384
    Event code 1 (ABS_Y)
      Value   6185
      Min        0
      Max    16384
Properties:
Testing ... (interrupt to exit)
Event: time 1507280785.112401, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1507280785.112401, type 3 (EV_ABS), code 0 (ABS_X), value 5971
Event: time 1507280785.112401, type 3 (EV_ABS), code 1 (ABS_Y), value 6240
Event: time 1507280785.112401, -------------- SYN_REPORT ------------
Event: time 1507280785.116364, type 3 (EV_ABS), code 0 (ABS_X), value 5953
Event: time 1507280785.116364, -------------- SYN_REPORT ------------
Event: time 1507280785.118359, type 3 (EV_ABS), code 0 (ABS_X), value 5968
Event: time 1507280785.118359, -------------- SYN_REPORT ------------
# ...........
Event: time 1507280785.156333, -------------- SYN_REPORT ------------
Event: time 1507280785.158356, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1507280785.158356, -------------- SYN_REPORT ------------
3
jaskmar

新しいカーネルにファームウェアがインストールされているかどうかを確認するには、新しいカーネルをインストールする必要があります。まず、次のコマンドを使用して、システムの現在のカーネルを確認します

uname -a

カーネル4.13を現在の安定版として手動でインストールできます。

ステップ1: buntu kernel 4.1 に進む

ステップ2:uname -a出力に基づいて、システム/ OS Archが何であるかを確認します。X86_64の場合は64ビット、X86の場合は32ビット.

ステップ3:システム内のどこかに4.13という名前のフォルダーを作成します。コマンドを使用することもできます

mkdir 4.13

ステップ4:4.13ディレクトリに入り、Archに基づいてファイルを選択します


64ビットリスト

64ビットがこれを選択する場合、つまりX86_64の場合:

http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13/linux-headers-4.13.0-041300_4.13.0-041300.201709031731_all.deb

http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13/linux-headers-4.13.0-041300-generic_4.13.0-041300.201709031731_AMD64.deb

http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13/linux-image-4.13.0-041300-generic_4.13.0-041300.201709031731_AMD64.deb


32ビットリスト

32ビット(別名X86)の場合、これを選択します。

http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13/linux-headers-4.13.0-041300_4.13.0-041300.201709031731_all.deb

http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13/linux-headers-4.13.0-041300-generic_4.13.0-041300.201709031731_i386.deb

http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13/linux-image-4.13.0-041300-generic_4.13.0-041300.201709031731_i386.deb


どちらのリストも、たとえば「kernel_files.list」などのテキストファイルに保存できます。ターミナルでwgetを使用してこのファイルをダウンロードします。

wget -i kernel_files.list

これにより、wgetを使用してリスト全体がダウンロードされます。

ステップ5:それらのインストールを続行します

Sudo dpkg -i *.deb

これにより、3つのカーネルコンポーネントすべてが一緒にインストールされ、最後にすべてのカーネルがコンパイルされたことがわかります。

ステップ6:システムを再起動して、新しいカーネルを使用します

reboot

ステップ7:コマンドを発行して、新しいカーネルのインストールを確認します

uname -a

次に、タッチスクリーンが正常に機能するかどうかを確認します。

を使用してシステムが入力を取得しているかどうかを確認します

dmesg

それでも失敗する場合は、インストールします

make,gcc,g++,build-utils 

コマンドを発行することにより

Sudo apt install make gcc g++ build-utils

その後、タッチスクリーンドライバを再度インストールします。

注#1:新しいカーネルを手動でインストールする自信がない場合は、代わりにukuuを使用できます。

Ukuuのインストール用

Sudo apt-add-repository -y ppa:teejee2008/ppa
Sudo apt-get update
Sudo apt-get install ukuu

次に、ukuuを実行し、ukuuダッシュボードを使用して4.13カーネルをインストールします。

注#2:Ubuntuベースのマシンの起動中にCを発行することにより、いつでも以前のカーネルに切り替えることができます。

注3。タッチスクリーンとスクリーンにほこりが付かないようにし、湿気、油、汚れなどが入らないようにしてください。

注#4:タッチペンを使用するのは、指よりも正確です。

注#5:カーネル4.14はテスト中のため、インストールしないでください

1
SIDDHARTH