Wiki source code of Установка и настройка EAX в среде LINUX
Last modified by UT2UK on 2025/12/26 15:29
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 1 | |||
| 2 | |||
| 3 | Для работы с Linux используется стнадартная аудиподсистема ALSA. Для обмена аудипотоков необходимо установить специальные loopback аудиокарты и сконфигурировать их ([[https:~~/~~/alsa-project.org/wiki/Matrix:Module-aloop>>url:https://alsa-project.org/wiki/Matrix:Module-aloop||shape="rect"]]) | ||
| 4 | |||
| 5 | В Ubuntu и Debian дистрибутивах ([[https:~~/~~/www.sdrutah.org/info/high_rate_loopback_websdr.html>>url:https://www.sdrutah.org/info/high_rate_loopback_websdr.html||shape="rect"]]) | ||
| 6 | |||
| 7 | {{code language="bash"}} | ||
| 8 | $ sudo apt-get install linux-sound-base alsa-base alsa-utils | ||
| 9 | $ sudo apt-get install libasound-dev | ||
| 10 | $ sudo apt install linux-modules-extra-$(uname -r) | ||
| 11 | {{/code}} | ||
| 12 | |||
| 13 | Для Fedora32 и выше | ||
| 14 | |||
| 15 | {{code language="bash"}} | ||
| 16 | $ sudo dnf install linux-sound-base alsa-base alsa-utils | ||
| 17 | {{/code}} | ||
| 18 | |||
| 19 | Для проверки наличия модуля в системе | ||
| 20 | |||
| 21 | {{code language="bash"}} | ||
| 22 | $ modinfo snd-aloop | ||
| 23 | filename: /lib/modules/5.11.22-100.fc32.x86_64/kernel/sound/drivers/snd-aloop.ko.xz | ||
| 24 | license: GPL | ||
| 25 | description: A loopback soundcard | ||
| 26 | author: Jaroslav Kysela <perex@perex.cz> | ||
| 27 | depends: snd,snd-pcm,snd-timer | ||
| 28 | retpoline: Y | ||
| 29 | intree: Y | ||
| 30 | name: snd_aloop | ||
| 31 | vermagic: 5.11.22-100.fc32.x86_64 SMP mod_unload | ||
| 32 | sig_id: PKCS#7 | ||
| 33 | signer: Fedora kernel signing key | ||
| 34 | sig_key: 5B:27:E3:B7:61:D2:FB:F5:2C:B1:EF:06:ED:31:9A:25:06:A9:3F:7F | ||
| 35 | sig_hashalgo: sha256 | ||
| 36 | signature: 98:A0:4C:89:1B:E2:6B:FF:14:1F:18:AE:83:22:61:3D:F1:21:11:2D: | ||
| 37 | D9:01:D9:08:39:92:AA:36:AA:4B:A0:34:46:C9:BA:B7:34:98:9D:66: | ||
| 38 | 7F:82:5E:AE:AE:DD:12:B1:2C:9A:AC:B5:50:A3:A7:D9:41:44:53:60: | ||
| 39 | F3:7B:13:97:12:61:30:A1:76:F3:2F:4C:EA:82:C7:FE:70:6D:6C:CA: | ||
| 40 | 8E:BE:5E:2D:84:EA:34:CC:AF:28:98:13:02:CF:A3:F4:2B:58:C9:EF: | ||
| 41 | 95:66:3F:CF:40:D1:71:1D:8F:39:0D:21:47:97:7F:9A:BF:C1:F1:0B: | ||
| 42 | 58:B5:9F:A9:B7:9F:BB:38:B7:21:29:EC:B7:6F:58:B4:B7:DF:25:32: | ||
| 43 | BB:D4:5D:4C:47:58:26:D5:D2:D6:C6:DF:66:3A:68:1C:FC:D7:A5:E7: | ||
| 44 | E2:12:0D:4D:9E:2D:A0:D0:65:67:C9:9F:4E:6D:F6:E4:EA:C1:37:F6: | ||
| 45 | 7A:C6:DF:F0:04:A7:50:C6:4F:EF:0D:7E:C0:03:8D:F6:FA:5F:A4:94: | ||
| 46 | 71:B0:1F:EA:65:1A:B6:89:23:EC:C6:29:D0:A8:9E:26:40:57:CA:EC: | ||
| 47 | A4:ED:BF:A5:D5:6D:B4:8E:B8:F5:D3:84:A6:D3:EF:AD:EB:98:55:CD: | ||
| 48 | 67:6E:AF:F4:0B:C7:97:46:7A:F1:AF:9D:8C:36:CB:46:82:41:B1:80: | ||
| 49 | 50:D9:DA:8F:37:B3:26:AB:47:FF:6D:B2:20:22:62:5C:92:1C:55:6A: | ||
| 50 | 41:B2:B2:1B:84:A1:C5:45:CB:CE:8D:DA:73:63:4A:50:34:1E:A3:4F: | ||
| 51 | 9E:BC:F2:3B:4C:3B:2A:DD:36:70:47:CE:4C:BE:26:F9:40:8D:CC:59: | ||
| 52 | D7:4A:E3:8E:2C:BC:EC:B5:8F:1F:16:EE:BA:DD:F5:B2:BB:17:A1:62: | ||
| 53 | 85:97:4D:E0:49:07:DA:23:53:FD:FE:5F:88:A1:AE:59:9F:E3:F8:A8: | ||
| 54 | 89:78:8D:F3:AA:42:28:26:FD:C8:DC:A8:5A:6C:21:F3:F1:A7:17:74: | ||
| 55 | E6:96:43:AA:C4:DC:1B:18:0B:04:D3:6A:0B:ED:66:E6:C1:35:33:35: | ||
| 56 | 26:BF:45:E8:81:20:A2:4A:46:31:73:3A:B2:42:94:87:BB:A7:3A:DA: | ||
| 57 | EC:A5:99:C7:D2:29:07:4F:F8:C3:25:FF:7B:73:6E:78:C9:15:DF:DD: | ||
| 58 | 41:A2:45:2A:A2:F1:F3:57:2A:5F:DE:C7:51:93:32:AB:F6:5C:7D:53: | ||
| 59 | DE:EB:0B:FC:AF:B5:D2:1B:CF:8A:DB:D0:5F:77:59:F6:8F:1A:AC:65: | ||
| 60 | 76:8C:FC:B7:19:79:E5:D5:EB:E9:F6:1E:1B:6A:03:47:FB:81:B8:5B: | ||
| 61 | BB:27:95:01:07:36:A9:98:CC:96:9C:C2 | ||
| 62 | parm: index:Index value for loopback soundcard. (array of int) | ||
| 63 | parm: id:ID string for loopback soundcard. (array of charp) | ||
| 64 | parm: enable:Enable this loopback soundcard. (array of bool) | ||
| 65 | parm: pcm_substreams:PCM substreams # (1-8) for loopback driver. (array of int) | ||
| 66 | parm: pcm_notify:Break capture when PCM format/rate/channels changes. (array of int) | ||
| 67 | parm: timer_source:Sound card name or number and device/subdevice number of timer to be used. Empty string for jiffies timer [default]. (array of charp) | ||
| 68 | {{/code}} | ||
| 69 | |||
| 70 | Теперь необходимо сконфигурировать автоматическую загурзку модулей в процессе старта системы. | ||
| 71 | |||
| 72 | Под sudo создаем два файла**/etc/modprobe.d/alsa.conf **и **/etc/modules-load.d/snd-aloop.conf:** | ||
| 73 | |||
| 74 | {{code language="bash"}} | ||
| 75 | $ touch /etc/modprobe.d/alsa.conf | ||
| 76 | $ vi /etc/modprobe.d/alsa.conf | ||
| 77 | |||
| 78 | # | ||
| 79 | # /etc/modprobe.d/alsa.conf | ||
| 80 | # | ||
| 81 | alias snd-card-0 snd-aloop | ||
| 82 | options snd-aloop enable=1,1 index=10,11 pcm_substreams=2,2 | ||
| 83 | # | ||
| 84 | :wq | ||
| 85 | {{/code}} | ||
| 86 | |||
| 87 | {{code language="bash"}} | ||
| 88 | $ touch /etc/modules-load.d/snd-aloop.conf | ||
| 89 | $ vi /etc/modules-load.d/snd-aloop.conf | ||
| 90 | |||
| 91 | snd-aloop | ||
| 92 | :wq | ||
| 93 | {{/code}} | ||
| 94 | |||
| 95 | В домашней директории юзера создаем файл .asoundrc | ||
| 96 | |||
| 97 | {{code language="bash"}} | ||
| 98 | $ touch ~/.asoundrc | ||
| 99 | $ vi ~/.asoundrc | ||
| 100 | |||
| 101 | pcm.!default { | ||
| 102 | type hw | ||
| 103 | card 0 | ||
| 104 | } | ||
| 105 | |||
| 106 | ctl.!default { | ||
| 107 | type hw | ||
| 108 | card 0 | ||
| 109 | } | ||
| 110 | |||
| 111 | pcm.ERMAK_OUT { | ||
| 112 | type plug | ||
| 113 | slave { | ||
| 114 | pcm "hw:10,0,0" | ||
| 115 | format S16_LE | ||
| 116 | rate 48000 | ||
| 117 | channels 2 | ||
| 118 | } | ||
| 119 | |||
| 120 | hint { | ||
| 121 | show on | ||
| 122 | description "Ermak EAX VAC RX" | ||
| 123 | } | ||
| 124 | } | ||
| 125 | |||
| 126 | pcm.ERMAK_OUT_RESERVED { | ||
| 127 | type plug | ||
| 128 | slave { | ||
| 129 | pcm "hw:10,1,0" | ||
| 130 | format S16_LE | ||
| 131 | rate 48000 | ||
| 132 | channels 2 | ||
| 133 | } | ||
| 134 | hint { | ||
| 135 | show on | ||
| 136 | description "Ermak EAX VAC TX" | ||
| 137 | } | ||
| 138 | } | ||
| 139 | |||
| 140 | pcm.ERMAK_IN { | ||
| 141 | type plug | ||
| 142 | slave { | ||
| 143 | pcm "hw:11,1,0" | ||
| 144 | format S16_LE | ||
| 145 | rate 48000 | ||
| 146 | channels 1 | ||
| 147 | } | ||
| 148 | |||
| 149 | hint { | ||
| 150 | show on | ||
| 151 | description "Ermak EAX VAC RX 1" | ||
| 152 | } | ||
| 153 | } | ||
| 154 | |||
| 155 | pcm.ERMAK_IN_RESERVED { | ||
| 156 | type plug | ||
| 157 | slave { | ||
| 158 | pcm "hw:11,0,0" | ||
| 159 | format S16_LE | ||
| 160 | rate 48000; | ||
| 161 | channels 1 | ||
| 162 | } | ||
| 163 | hint { | ||
| 164 | show on | ||
| 165 | description "Ermak EAX VAC TX 1" | ||
| 166 | } | ||
| 167 | } | ||
| 168 | {{/code}} | ||
| 169 | |||
| 170 | Таким образом , при последующей перезагрузку системы будут созадны две дополнитеальные виртуальные аудиокарты 10 и 11 | ||
| 171 | |||
| 172 | Перегружаем компьютер, проверяем наличие новых аудиоустройств | ||
| 173 | |||
| 174 | {{code language="bash"}} | ||
| 175 | $ aplay -l | ||
| 176 | **** List of PLAYBACK Hardware Devices **** | ||
| 177 | card 0: Device [USB Audio Device], device 0: USB Audio [USB Audio] | ||
| 178 | Subdevices: 1/1 | ||
| 179 | Subdevice #0: subdevice #0 | ||
| 180 | card 1: sofhdadsp [sof-hda-dsp], device 0: HDA Analog (*) [] | ||
| 181 | Subdevices: 0/1 | ||
| 182 | Subdevice #0: subdevice #0 | ||
| 183 | card 1: sofhdadsp [sof-hda-dsp], device 1: HDA Digital (*) [] | ||
| 184 | Subdevices: 1/1 | ||
| 185 | Subdevice #0: subdevice #0 | ||
| 186 | card 1: sofhdadsp [sof-hda-dsp], device 3: HDMI1 (*) [] | ||
| 187 | Subdevices: 1/1 | ||
| 188 | Subdevice #0: subdevice #0 | ||
| 189 | card 1: sofhdadsp [sof-hda-dsp], device 4: HDMI2 (*) [] | ||
| 190 | Subdevices: 1/1 | ||
| 191 | Subdevice #0: subdevice #0 | ||
| 192 | card 1: sofhdadsp [sof-hda-dsp], device 5: HDMI3 (*) [] | ||
| 193 | Subdevices: 1/1 | ||
| 194 | Subdevice #0: subdevice #0 | ||
| 195 | card 10: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM] | ||
| 196 | Subdevices: 2/2 | ||
| 197 | Subdevice #0: subdevice #0 | ||
| 198 | Subdevice #1: subdevice #1 | ||
| 199 | card 10: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM] | ||
| 200 | Subdevices: 1/2 | ||
| 201 | Subdevice #0: subdevice #0 | ||
| 202 | Subdevice #1: subdevice #1 | ||
| 203 | card 11: Loopback_1 [Loopback], device 0: Loopback PCM [Loopback PCM] | ||
| 204 | Subdevices: 2/2 | ||
| 205 | Subdevice #0: subdevice #0 | ||
| 206 | Subdevice #1: subdevice #1 | ||
| 207 | card 11: Loopback_1 [Loopback], device 1: Loopback PCM [Loopback PCM] | ||
| 208 | Subdevices: 1/2 | ||
| 209 | Subdevice #0: subdevice #0 | ||
| 210 | Subdevice #1: subdevice #1 | ||
| 211 | {{/code}} | ||
| 212 | |||
| 213 | == {{id name="УстановкаинастройкаEAXвсредеLINUX-НастройкапрограммыEAXcontrolpanel"/}}Настройка программы EAX control panel == | ||
| 214 | |||
| 215 | Запускаем EAX control panel и настриваем входные/выходные виртуальные аудиустройства и аудиустройство по умолчанию для воспроивзведения аудио на спикерах компьютера: | ||
| 216 | |||
| 217 | [[image:attach:eax4.png]] | ||
| 218 | |||
| 219 | Вводим IP адрес и порт трансивера (4002) | ||
| 220 | |||
| 221 | [[image:attach:eax5.png]] | ||
| 222 | |||
| 223 | Запускаем утилиту. Если призошло подключение, в строке состояния будет отоброажаться скорость текущих потоков с трансивера и на него | ||
| 224 | |||
| 225 | [[image:attach:eax6.png]] | ||
| 226 | |||
| 227 | Если подключение не происходит, необходимо проверить IP адрес трансивера и и убедиться, что в настройках удаленных подключений EAX интерфейс разрешен. | ||
| 228 | |||
| 229 | Для выбора аудио источника на передачу необходимо выбрать** NET **в настройках аудиомикшера трансивера | ||
| 230 | |||
| 231 | Для работы с FT8 программами необходимо в трансивере разрещить подключение по протоколу **RigCTL** | ||
| 232 | |||
| 233 | == {{id name="УстановкаинастройкаEAXвсредеLINUX-НастройкапрограммыWSJT-X(JTDX)controlpanel"/}}Настройка программы WSJT-X (JTDX) control panel == | ||
| 234 | |||
| 235 | В настройках **Audio** необходимо правильно выбрать аудикарты и потоки | ||
| 236 | |||
| 237 | [[image:attach:wsjatx2.png]] | ||
| 238 | |||
| 239 | В настройках **Radio** | ||
| 240 | |||
| 241 | **[[image:attach:wsjtx.png]]** | ||
| 242 | |||
| 243 | == {{id name="УстановкаинастройкаEAXвсредеLINUX-СозданиеИконкидялзапускавGNOMe"/}}Создание Иконки дял запуска в GNOMe == | ||
| 244 | |||
| 245 | Необходимо установить программу дял ручного создания файлов desctop | ||
| 246 | |||
| 247 | {{code language="bash"}} | ||
| 248 | $ sudo apt|dnf install alacarte | ||
| 249 | {{/code}} | ||
| 250 | |||
| 251 | Иконка для приложения (необходимо прописать в desktop файле) | ||
| 252 | |||
| 253 | [[image:attach:10384113.png||thumbnail="true" height="250"]] | ||
| 254 | |||
| 255 | Для обновления списка приложений - запустить в терминале | ||
| 256 | |||
| 257 | {{code language="bash"}} | ||
| 258 | $ update-desktop-database ~/.local/share/applications/ | ||
| 259 | {{/code}} |