regra udev executando low_latency setserial não funciona

2

Meu servidor roda o Ubuntu 14.04.1. Criei as regras do udev em /etc/udev/rules.d/09-pps.rules para obter o GPS com o trabalho de suporte do PPS.

KERNEL=="ttyS0", SYMLINK+="gps0", MODE="0666"
KERNEL=="ttyS0", RUN+="/bin/setserial -q /dev/%k low_latency"
KERNEL=="ttyS0", RUN+="/usr/sbin/ldattach pps /dev/%k"

/dev/pps0 aparecerá na inicialização. Tudo certo. Se eu marcar o sinalizador _low_latency_, parece que

$ sudo setserial -a /dev/ttyS0
/dev/ttyS0, Line 0, UART: 16550A, Port: 0x03f8, IRQ: 4
        Baud_base: 115200, close_delay: 50, divisor: 0
        closing_wait: 3000
        Flags: spd_normal skip_test

$ sudo setserial /dev/ttyS0 low_latency
$ sudo setserial -a /dev/ttyS0
/dev/ttyS0, Line 0, UART: 16550A, Port: 0x03f8, IRQ: 4
        Baud_base: 115200, close_delay: 50, divisor: 0
        closing_wait: 3000
        Flags: spd_normal skip_test low_latency

Por que o low_latency está sempre ausente após a inicialização?

    
por wenzul 19.10.2014 / 02:43

1 resposta

1

Eu uso o seguinte:

KERNEL=="ttyS0", RUN+="/bin/setserial /dev/ttyS0 low_latency"
KERNEL=="ttyS0", SYMLINK+="gps0", RUN+="/usr/sbin/ldattach pps /dev/ttyS0"
KERNEL=="pps0", OWNER="root", GROUP="dialout", MODE="0660", SYMLINK+="gpspps0"

Você testou sua regra do udev com o udevadm:?

 # udevadm  test  /sys/class/tty/ttyS0

Atualizar

Sua configuração de setserial pode ser um problema. Verifique a configuração do setserial:

 # dpkg-reconfigure -p low setserial

Eu selecionei "autosave sempre". Tente "salvar automaticamente sempre" e, em seguida, verifique a configuração de low_latency antes de reinicializar. Se isso não funcionar, tente selecionar "kernel" quando fizer o dpkg-reconfigure

Você pode verificar se as coisas correspondem pesquisando / var / lib / setserial.

Quando reinicializo, o setserial diz:

 # setserial -G /dev/ttyS0
 /dev/ttyS0 uart 16550A port 0x03f8 irq 4 baud_base 115200 spd_normal skip_test low_latency

Que corresponde ao que é encontrado em / var / lib / setserial

 # cat /var/lib/setserial/autoserial.conf |grep -v ^\#
 /dev/ttyS0 uart 16550A port 0x03f8 irq 4 baud_base 115200 spd_normal skip_test low_latency

NB: Às vezes, a entrada em setserial dirá 8250 em vez de 16550A. Eu não sei porque isso acontece em algumas máquinas, mas nunca foi um problema para mim quando elas diferem.

    
por 19.10.2014 / 04:23