Em linux, ou no projecto descrito nestes posts, quando tentamos ligar 2 ou mais rádios deixamos de saber que periféricos foram atribuidos a cada ligação USB, porta ou placa de som, seja para fazer modos digitais JS8Call, FT8, SSTV, AX.25 ou para controlar remotamente os rádios…
Qual a solução?
Para as portas série é relativemente fácil.
Quando listamos as portas ttyUSB* aparecem-me 3. Uma relativa ao IC-7300 e 2 do IC-9700.
crw-rw----+ 1 pi-star dialout 188, 0 Mar 9 18:01 /dev/ttyUSB0
crw-rw----+ 1 pi-star dialout 188, 1 Mar 9 17:39 /dev/ttyUSB1
crw-rw----+ 1 pi-star dialout 188, 2 Mar 9 17:39 /dev/ttyUSB2
Mas não sabemos a que rádio foi atribuído o ttyUSB0, ou o 1 ou o 2!
Para resolver este problema vamos dar nomes a cada ttyUSB, para que cada rádio seja reconhecido pelo sistema, independentemente da ordem de ligação dos rádios ao computador, ou raspberry pi…
Atribuir nomes a devices
1. Listamos os devices USB para conhecer as variáveis idVendor e idProduct.
Escreva na janela terminal,
Bus 001 Device 010: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP2102/CP2109 UART Bridge Controller [CP210x family]
Bus 001 Device 025: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP2102/CP2109 UART Bridge Controller [CP210x family]
Bus 001 Device 024: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP2102/CP2109 UART Bridge Controller [CP210x family]
Entre outros dispositivos identifique algo idêntico a,
Bus 001 Device 076: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP2102/CP2109 UART Bridge Controller [CP210x family]
Percebemos que para qualquer um dos rádios o idVendor="10c4" e o idProduct="ea60".
2. Agora pretende-se conhecer o serial number de cada rádio.
Numa janela terminal como sudo ou root escreva,
iSerial 3 IC-7300 06002344
iSerial 3 IC-9700 13005928 B
iSerial 3 IC-9700 13005928 A
Conhecendo estes valores, criamos uma regra para lhe atribuir um nome, ou melhor um symlink.
Crie então um ficheiro, escrevendo na janela terminal com sudo ou root e substitua os valores que obteve pelos que aqui mostro,
# IC-7300 SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ATTRS{serial}=="IC-7300 06002344", SYMLINK+="ic7300" # IC-9700 SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ATTRS{serial}=="IC-9700 13005928 A", SYMLINK+="ic9700a" SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ATTRS{serial}=="IC-9700 13005928 B", SYMLINK+="ic9700b"
…e agora, se a aplicação o permitir podemos definir nas suas configurações, no separador de ligação aos rádios, por ic7300 ou ic9700a ou b em vez de ttyUSB...
Desligue e volte a ligar os cabos USB aos rádios e escreva no terminal,
e obtém agora os nomes dos rádios e os devices ttyUSB correspondentes,
lrwxrwxrwx 1 root root 7 Mar 9 17:35 /dev/ic7300 -> ttyUSB0 lrwxrwxrwx 1 root root 7 Mar 9 19:07 /dev/ic9700a -> ttyUSB1 lrwxrwxrwx 1 root root 7 Mar 9 19:07 /dev/ic9700b -> ttyUSB2
Continua...