일부 직렬 포트에서 일부 데이터를 읽으려고 합니다(터치스크린 컨트롤러를 처리하려면 직렬 포트가 필요합니다).
기본적으로 제가 하는 일은 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이 매우 원활하게 작동하고 있습니다!