Porta serial - sem saída Penmount DMC9000

1

Estou tentando ler alguns dados de algumas portas seriais (preciso deles para lidar com um controlador de tela sensível ao toque).

O que basicamente estou fazendo é cat /dev/ttyS0 para ver o que a série fornece como saída ao tocar na tela. Eu posso cat (ou screen ou minicom ) todas as 4 portas seriais: /dev/ttyS0 to /dev/ttyS3 , mas para todas elas eu não recebo saída, mesmo quando fisicamente tocando a tela.

cat /dev/ttyS0 (ou qualquer outro ttyS *) apenas trava e não dá saída

Nenhum cat /dev/ttyS0 | xxd fornece saída. Eu tenho que terminar cat com CTRL + C

screen /dev/ttyS0 trava sem saída, mesmo para os outros ttyS *

Informações úteis

SO

CentOS 7

ttyS no dmesg

[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

Lista de 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

saída 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

Kernel

[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

Por favor, note que PCI: 004: 002 é realmente e leitor de RFID ligado ao sistema. Então não é a série que eu preciso lidar - no momento.

Chip serial

Fintek F81866

Sistema

Touch Panel Incorporado da Iei - AFL2-W10A-N28 Página do produto e Folha de dados

Controlador de tela sensível ao toque

Penmount DMC9000 (anexado via serial, suponho, já que não está na lista da lsusb)

    
por Denys Vitali 29.12.2015 / 10:30

1 resposta

0

Consegui corrigir o problema. A porta serial não foi detectada corretamente devido a um problema de irq.

Aqui está como eu corrigi:

  1. Comutado do CentOS 7 para o Debian 8.2 (jessie) Com o seguinte kernel (mais recente disponível): 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. Temporariamente ativou a tela de toque por meio do setserial /dev/ttyS3 irq 0 (essa é a solução)
  3. Os drivers da Penmount foram baixados do site , configuraram a penumbra .ini para desabilitar o som de bipe barulhento (via BeepType=0 ) e instalar o módulo do driver via ./install.sh
  4. Calibrou a tela sensível ao toque via gCal 9 /etc/penmount/penmount.dat (teve que iniciar o servidor X, é um aplicativo GTK, obviamente)
  5. Tornou as alterações permanentes adicionando um script /usr/share/penmount/penmount.sh contendo o comando setserial acima e inseriu-o na seção /etc/init.d/lightdm start) . Eu sei que é sujo, mas estou planejando mudar isso em breve.

Obrigado pela ajuda, agora meu Penmount DMC9000 funciona como um encanto!

    
por 07.01.2016 / 10:46