一部のシリアルポートから一部のデータを読み取ろうとします(タッチスクリーンコントローラを処理するにはシリアルポートが必要です)。
基本的に私がすることは、cat /dev/ttyS0
画面に触れるときにシリアルポートが提供する出力を確認することです。 4つのシリアルポートをすべて取得できます: to 。ただし、画面を物理的にタッチしても出力はまったく表示されませんcat
。screen
minicom
/dev/ttyS0
/dev/ttyS3
cat /dev/ttyS0
(または他のttyS *)が中断され、出力は提供されません。
どちらもcat /dev/ttyS0 | xxd
出力を提供しません。私はしなければcat
ならないCTRL + C
screen /dev/ttyS0
他のttyS *と同様に、出力なしで中断されます。
役に立つ情報
オペレーティングシステム
オペレーティングシステム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
シリアル出力設定
[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
LSSB
[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リーダーです。だから今すぐ扱うべきシリーズではありません。
シリアルチップ
ペンテック F81866
システム
Iei組み込みタッチスクリーン-AFL2-W10A-N28製品ページそしてデータシート
タッチスクリーンコントローラ
Penmount DMC9000(シリアルを介して接続されたlsusbリストにないために推測)
ベストアンサー1
この問題を解決しました。 irq の問題により、シリアルポートが正しく検出されませんでした。
私が解決した方法は次のとおりです。
- CentOS 7からDebian 8.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
- 一時的にタッチスクリーンパススルーを有効にします
setserial /dev/ttyS3 irq 0
(実際にはこれが回避策です)。 - 以下からPenmountドライバをダウンロードしてください。このウェブサイト、騒々しいビープ音を無効にするようにpenmount.iniを設定し、
BeepType=0
ドライバモジュールをインストールします。./install.sh
- タッチスクリーンを校正して
gCal 9 /etc/penmount/penmount.dat
(Xサーバーを起動する必要があり、当然GTKアプリケーションです) /usr/share/penmount/penmount.sh
setserial
上記のコマンドを含むスクリプトを追加し、それをセクションに挿入して/etc/init.d/lightdm
start)
変更を永久にします。汚いのは分かりますが、すぐに交換する予定です。
助けてくれてありがとう。今Penmount DMC9000は非常にスムーズに動作しています!