web-dev-qa-db-ja.com

シリアルポート-出力なしペンマウントDMC9000

いくつかのシリアルポートからいくつかのデータを読み取ろうとしています(タッチスクリーンコントローラーを処理するために必要です)。

私が基本的に行っているのはcat /dev/ttyS0で、画面に触れたときにシリアルが出力として何を与えるかを確認します。 4つのシリアルポートすべてをcat(またはscreenまたはminicom)できます:/dev/ttyS0から/dev/ttyS3、しかしそれらすべてについて出力が得られません、画面に物理的に触れている場合でも。

cat /dev/ttyS0(またはその他のttyS *)がハングし、出力が表示されない

どちらのcat /dev/ttyS0 | xxdも出力を提供しません。 catCTRL + Cで終了する必要があります

screen /dev/ttyS0は、他のttyS *と同じように、出力なしでハングします。

役立つ情報

OS

CentOS 7

dmesgのttyS

[root@centos-t1 ~]# dmesg | grep -i 'ttys'
[    1.530144] 00:08: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    1.551401] 00:09: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[    1.572603] 00:0a: ttyS2 at I/O 0x3e8 (irq = 10) is a 16550A
[    1.593818] 00:0b: ttyS3 at I/O 0x2e8 (irq = 11) is a 16550A

TtyS *のリスト

[root@centos-t1 ~]# ls -la /dev/ttyS*
crw-rw----. 1 root dialout 4, 64 29 dic 09.57 /dev/ttyS0
crw-rw----. 1 root dialout 4, 65 29 dic 09.57 /dev/ttyS1
crw-rw----. 1 root dialout 4, 66 29 dic 09.57 /dev/ttyS2
crw-rw----. 1 root dialout 4, 67 29 dic 09.57 /dev/ttyS3

setserial出力

[root@centos-t1 ~]# setserial -g /dev/ttyS*
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3
/dev/ttyS2, UART: 16550A, Port: 0x03e8, IRQ: 10
/dev/ttyS3, UART: 16550A, Port: 0x02e8, IRQ: 11

カーネル

[root@centos-t1 ~]# uname -a
Linux centos-t1 3.10.0-327.3.1.el7.x86_64 #1 SMP Wed Dec 9 14:09:15 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

lsusb

[root@centos-t1 ~]# lsusb
Bus 003 Device 004: ID 05e3:0723 Genesys Logic, Inc. GL827L SD/MMC/MS Flash Card Reader
Bus 003 Device 005: ID 058f:5608 Alcor Micro Corp. 
Bus 003 Device 006: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 004 Device 002: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Bus 004 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

PCI:004:002は実際には、RFIDリーダーがシステムに接続されていることに注意してください。ですから、私が扱う必要のあるシリアルではありません-現時点では。

シリアルチップ

Fintek F81866

システム

Ieiによる組み込みタッチパネル-AFL2-W10A-N28 製品ページ および データシート

タッチスクリーンコントローラー

Penmount DMC9000(lsusbリストにないため、シリアル経由で接続されていると思います)

1
Denys Vitali

私はなんとか問題を解決することができました。 irqの問題が原因で、シリアルポートが正しく検出されませんでした。

これが私がそれを修正した方法です:

  1. CentOS7からDebian8.2(jessie)に切り替えました。次のカーネル(最新のものが利用可能)を使用します:Linux debian-term1 3.16.0-4-AMD64 #1 SMP Debian 3.16.7-ckt20-1+deb8u1 (2015-12-14) x86_64 GNU/Linux
  2. setserial /dev/ttyS3 irq 0を介してタッチスクリーンを一時的に有効にしました(これが実際の解決策です)
  3. このWebサイト からPenmountドライバーをダウンロードし、(BeepType=0を介して)ノイズの多いビープ音を無効にするようにpenmount.iniを構成し、./install.shを介してドライバーモジュールをインストールしました。
  4. gCal 9 /etc/penmount/penmount.datを介してタッチスクリーンを調整しました(Xサーバーを起動する必要がありました。明らかにGTKアプリケーションです)
  5. 上記のsetserialコマンドを含む/usr/share/penmount/penmount.shスクリプトを追加し、それを/etc/init.d/lightdmstart)セクションに挿入することにより、変更を永続的にしました。汚れているのは知っていますが、すぐに交換する予定です。

助けてくれてありがとう、今私のペンマウントDMC9000は魅力のように機能します!

0
Denys Vitali