Como evitar o DTR no open para cdc_acm?

2

Eu tenho um Arduino Uno conectado via USB, usando o driver cdc_acm . Está disponível em /dev/ttyACM0 .

A convenção para a interface serial do Arduino é que o sinal DTR seja usado para um sinal de reinicialização - ao usar o adaptador serial-para-USB integrado, o sinal DTR / RTS / DSR / CTS; ou, ao usar um cabo RS-232, os pinos 4 ou 5 (e possivelmente 6 ou 8) são conectados ao pino RESET .

Essa opção de redefinição tem a importante vantagem de ser, se não realmente fora de banda, pelo menos muito próxima -failsafe (devido a ser implementada por meio do sempre -out-of-band serial controller em conjunção com o circuito watchdog não-normalmente-controlável pelo usuário), e enquanto ele pode ser fisicamente desabilitado (via fiação ou um capacitor ou um resistor, dependendo do modelo, para o RESET pin), para fazer isso, estraga completamente este importante killswitch e toda a utilidade associada.

Infelizmente, parece que , atualmente, o Linux sempre envia este sinal quando qualquer programa anexa a um dispositivo ACM por qualquer motivo, e ( ao contrário do Windows ), não fornece vagamente Uma maneira confiável e conhecida para evitar isso.

(Atualmente ambos -hupcl , "enviam um sinal de desligamento quando o último processo fecha o tty" e -clocal , "desativa sinais de controle do modem" do < strong> not impede que este sinal seja enviado todas as vezes o dispositivo é aberto .

tl: dr: O que eu preciso fazer para acessar o /dev/ttyACM0 sem enviar um sinal DTR / RTS / DSR / CTS (sem bloquear o sinal no nível do hardware)?

    
por JamesTheAwesomeDude 26.05.2018 / 03:04

0 respostas