Livrar-se de um console serial no Respeaker Core V2

0

Eu tenho um Respeaker Core v2.0 e gostaria de usar o UART interface (esta placa tem um adaptador USB para TTL conectado à porta Uart) para fazer com que esta placa se comunique com outra.

CONFIGURAÇÃO [EDITADO]

Eu conectei um serial ao conversor TTL para laptop e conectei-o aos pinos TX, RX e GND do RespeakerCore. Em seguida, abri um console de miniterm (com as configurações de porta e velocidade de transmissão corretas) no meu laptop e outro no Respeaker. Eu liguei o Respeaker e o seguinte aparece no miniterm:

Starting kernel ...

[    0.065704] /cpus/cpu@f00 missing clock-frequency property
[    0.071689] /cpus/cpu@f01 missing clock-frequency property
[    0.077712] /cpus/cpu@f02 missing clock-frequency property
[    0.083677] /cpus/cpu@f03 missing clock-frequency property
[    0.829278] rk-vcodec 20020000.vpu-service: could not find power_model node
[    0.856875] rockchip-vop 20050000.vop: invalid resource
[    0.862758] rockchip-vop 20050000.vop: invalid resource
[    0.868586] rockchip-vop 20050000.vop: missing rockchip,grf property
[    0.876380] i2c i2c-0: of_i2c: modalias failure on /hdmi@200a0000/ports
[    2.037851] cpu cpu0: Failed to get pvtm
[    2.122396] rockchip-dmc dmc: Failed to get pvtm
[    2.128437] rockchip-dmc dmc: failed to get vop bandwidth to dmc rate
[    2.139954] rknandbase v1.2 2018-05-08
[    2.612237] rk_gmac-dwmac 30200000.ethernet: Can not read property: tx_delay.
[    2.620241] rk_gmac-dwmac 30200000.ethernet: set tx_delay to 0x30
[    2.627017] rk_gmac-dwmac 30200000.ethernet: Can not read property: rx_delay.
[    2.635007] rk_gmac-dwmac 30200000.ethernet: set rx_delay to 0x10
[    2.642046] rk_gmac-dwmac 30200000.ethernet: cannot get clock clk_mac_speed
[    5.638765] get ac108 regulator name failed 
[    5.749516] get ac108 regulator name failed 
[    5.760861] mali-utgard 20001000.gpu: Failed to get pvtm
[    5.938710] devfreq 20001000.gpu: Couldn't update frequency transition information.
[    6.153327] ac108_write error->[REG-0x00,val-0x12]
[    6.175033] ac108_write error->[REG-0x00,val-0x12]
[    9.971169] rk_gmac-dwmac 30200000.ethernet: rk_get_eth_addr: mac address: 72:1c:0a:8e:4a:4a

Debian GNU/Linux 9 glutamate ttyS2

respeaker.io Debian Image 20180801

Support/FAQ: http://respeaker.io

glutamate login:

Os pinos TX e RX são usados como console serial.

userk@glutamate:~$ setserial -g /dev/ttyS[0123]
/dev/ttyS0, UART: 16550A, Port: 0x0000, IRQ: 29
/dev/ttyS1, UART: 16550A, Port: 0x0000, IRQ: 30
/dev/ttyS2, UART: 16550A, Port: 0x0000, IRQ: 31
/dev/ttyS3, UART: unknown, Port: 0x0000, IRQ: 0

E há um serviço que está usando o dispositivo ttyS2 que me interessa.

userk@glutamate:~$ sudo systemctl status | grep tty
           │ ├─system-serial\x2dgetty.slice
           │ │ ├─[email protected]
           │ │ │ └─721 /sbin/agetty --keep-baud 115200,38400,9600 ttyS2 vt220
           │ │ └─[email protected]
           │ │   └─747 /sbin/agetty --keep-baud 115200,38400,9600 ttyGS0 vt220
           │ │ └─767 brcm_patchram_plus --enable_hci --no2bytes --use_baudrate_for_download --tosleep 200000 --baudrate 1500000 --patchram /system/etc/firmware/bcm43438a0.hcd /dev/ttyS1
           │ ├─system-getty.slice
           │ │ └─[email protected]
           │ │   └─720 /sbin/agetty --noclear tty1 linux
               │ ├─1050 grep tty

O que tentei

Eu tentei parar o serviço com o seguinte comando:

sudo systemctl stop [email protected]

mas depois de 5 segundos ele reinicia automaticamente.

O problema

Após um curto período de tempo, o sistema começa a enviar a saída do console novamente para a porta ttyS2.

É possível remover completamente o console serial ligado ao ttyS2?

Solução

Basta interromper e desativar o serviço:

sudo systemctl stop [email protected]
sudo systemctl disable [email protected]

e a comunicação funciona nos dois sentidos.

    
por UserK 12.10.2018 / 11:53

1 resposta

1

Você está procurando no lugar errado.

O item de configuração fundamental que impulsiona isso é a configuração console que é fornecida na linha de comando para o kernel por meio do carregador de boot. É isso que diz ao gerador que serviços de console serial devem ser iniciados. É isso que diz ao kernel onde enviar a saída do console do kernel. É isso que diz ao kernel para onde enviar /dev/console output. Se você não quer que seu dispositivo serial seja um console, é isso que você precisa ajustar.

No entanto, observe que você não tem um serviço [email protected] . Você tem um serviço [email protected] e um serviço [email protected] . Então o sistema acha que ttyGS0 é seu dispositivo de console serial, e aparentemente já não acha que ttyS2 é.

Você provavelmente fez [email protected] manualmente em algum momento. Não é algo que o systemd faça como padrão; porque está incorreto. O modelo [email protected] não é adequado para dispositivos seriais e foi projetado para dispositivos terminais virtuais do kernel. Observe que o modelo correto, [email protected] , foi instanciado contra o outro dispositivo que o sistema faz como seu console.

Então, desative [email protected] .

Leitura adicional

por 12.10.2018 / 13:57