Configurare nod bazat pe CM108: Diferență între versiuni
| Linia 113: | Linia 113: | ||
Unde <code>my_custom_dev_entry</code> e setarea din <code>udev</code>. | Unde <code>my_custom_dev_entry</code> e setarea din <code>udev</code>. | ||
Grijă la utilizarea majusculelor pentru <code>SQL_DET</code> și <code>PTT_TYPE</code> | Grijă la utilizarea majusculelor pentru <code>SQL_DET</code> și <code>PTT_TYPE</code> | ||
=Link-uri externe= | |||
* [http://kb.amft-it.de/doku.php?id=kb-afu:shari-hs SOLUȚIA !!!] - Shari cu svxlink | |||
* [https://opensource.com/article/18/11/udev An introduction to Udev] | |||
* [https://www.reddit.com/r/archlinux/comments/ega9ix/udev_rule_for_hid_usb_device/ udev rule for hid usb device] | |||
* [https://groups.io/g/SHARI/topic/svxlink_on_a_shari_node/100717081 SvxLink on a SHARI Node] → important !! | |||
* [https://groups.io/g/svxlink/attachment/275/0/Hidraw_Serial%20Permissions%20Scripts.pdf Hidraw/Serial Permissions Scripts] | |||
* [https://unix.stackexchange.com/questions/85379/dev-hidraw-read-permissions /dev/hidraw: read permissions] | |||
* [https://www.google.com/search?client=safari&rls=en&q=raspberry+display+kernel+module+for+a+certain+audio+device&ie=UTF-8&oe=UTF-8 raspberry display kernel module for a certain audio device] | |||
<syntaxhighlight lang="console"> | |||
sudo udevadm control --reload-rules && sudo udevadm trigger | |||
</syntaxhighlight> | |||
Versiunea de la data 1 august 2025 23:39
Introducere
Pentru secțiunea principală legată de instalarea și configurarea svxlink, vezi acest link.
Verificări hardware
Verificare recunoaștere chip CM108
După conectarea fizică (prin lipire) a pinilor D+ și D- în paralel cu port-ul USB 2.0 al plăcii-mamă, trebuie verificat că sistemul recunoaște chip-ul CM108 ca subsistem audio.
Se rulează comanda lsusb:
tom@raspberrypi:~ $ lsusb
În răspunsul sistemului trebuie să se regăsească C-Media Electronics, Inc. USB Audio Device:
tom@raspberrypi:~ $ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0d8c:0012 C-Media Electronics, Inc. USB Audio Device
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Ia aminte la VID și PID (vendor ID și Product ID 0d8c:0012. Aceste informații trebuie folosite la crearea regulilor din udev.
Verificarea se mai poate face și cu comanda cat:
tom@raspberrypi:~ $ cat /proc/asound/cards
0 [Device ]: USB-Audio - USB Audio Device
C-Media Electronics Inc. USB Audio Device at usb-0000:01:00.0-1.3, full speed
Verificare stack HID (Human Interface Device)
Setarea regulilor în udev
udev este un subsistem Linux pentru gestionarea evenimentelor-dispozitiv. Pentru utilizarea nodurilor bazate pe CM108 prin intermediul HIDRAW, este necesarea crearea unor reguli de gestionare a evenimentelor legate de acest dispozitiv.
Creare fișier reguli
Pentru nodurile realizate cu CM108 trebuie creat un fișier de reguli în udev pentru a încărca modului CM108 ca dispozitiv audio hidraw
# block pulseaudio using the soundcard for SVXLINK
# astea sunt foarte importante
ATTRS{idVendor}=="0d8c", ATTRS{idProduct}=="013c", ENV{PULSE_IGNORE}="1"
ATTRS{idVendor}=="0d8c", ATTRS{idProduct}=="000c", ENV{PULSE_IGNORE}="1"
ATTRS{idVendor}=="0d8c", ATTRS{idProduct}=="0012", ENV{PULSE_IGNORE}="1"
# create a symlink /dev/hidrawX to /dev/cm108gpio
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0d8c", ATTRS{idProduct}=="013c", SYMLINK+="my_custom_dev_entry", MODE="0666"
# 0d8c:000c
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0d8c", ATTRS{idProduct}=="000c", SYMLINK+="my_custom_dev_entry", MODE="0666"
# 0d8c:0012 CM108B
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0d8c", ATTRS{idProduct}=="0012", SYMLINK+="my_custom_dev_entry", MODE="0666"
Secvența ATTRS{idVendor}=="0d8c", ATTRS{idProduct}=="0012" trebuie să corespundă cu informația dată de lsusb.
Eu folosesc doar liniile evidențiate.
În cazul meu, creez un fișier în /etc/udev/rules.d. L-am numit 55-cm108.rules. Numărul de la începutul denumirii asigură prioritatea.
Acest fișier conține:
# block pulseaudio using the soundcard for SVXLINK
# astea sunt foarte importante
ATTRS{idVendor}=="0d8c", ATTRS{idProduct}=="0012", ENV{PULSE_IGNORE}="1"
# creez un symlink /dev/hidrawX la /dev/yo3iti
# 0d8c:0012 CM108B
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0d8c", ATTRS{idProduct}=="0012", SYMLINK+="yo3iti", MODE="0666"
Actualizarea udev se face cu comanda:
tom@raspberrypi:~ $ sudo udevadm control --reload-rules && sudo udevadm trigger
Setări svxlink.conf
Izolarea nodului doar în mod Echolink
Nodul poate fi configurat doar pentru conectare la Echolink. Trebuie eliminată intrarea ReflectorLogic din secțiunea [GLOBAL] a fișierului de configurare:
[GLOBAL]
...
LOGICS=SimplexLogic
#,ReflectorLogic
...
TIMESTAMP_FORMAT="%Y-%m-%d %H:%M:%S"
CARD_SAMPLE_RATE=48000
CARD_CHANNELS=1
#LINKS=ReflectorLink
LOCATION_INFO=LocationInfo
Configurarea Tx și Rx
Apoi se modifică secțiunile Rx și Tx cu setările necesare pentru hidraw:
[Rx1]
...
SQL_DET=HIDRAW
HID_DEVICE=/dev/yo3iti
HID_SQL_PIN=VOL_DN
...
[Tx1]
...
PTT_TYPE=Hidraw
HID_DEVICE=/dev/yo3iti
HID_PTT_PIN=GPIO3
...
Unde my_custom_dev_entry e setarea din udev.
Grijă la utilizarea majusculelor pentru SQL_DET și PTT_TYPE
Link-uri externe
- SOLUȚIA !!! - Shari cu svxlink
- An introduction to Udev
- udev rule for hid usb device
- SvxLink on a SHARI Node → important !!
- Hidraw/Serial Permissions Scripts
- /dev/hidraw: read permissions
- raspberry display kernel module for a certain audio device
sudo udevadm control --reload-rules && sudo udevadm trigger