24 февраля 2026

Перепаковка бинарного пакета SDR++

После экспериментов с Gqrx решил попробовать SDR++. Бинарный пакет который предлагается для Debian 13 зависит от пакетов разработки и на моём ноутбуке конфликтует с Wine. Разбираться что там не так мне не хочется - проще перепаковать бинарный пакет sdrpp чтобы он зависел только от нужных библиотек.

Как найти от каких библиотек он зависит? В Debian есть dh_shlibdeps из debhelper, но он работает с локальными файлами. Т.е. если зависимость ещё не установлена, то dh_shlibdeps не сможет определить её.

Я распаковывал бинарный пакет и прошёлся ldd по всем исполняемым файлам и разделяемым библиотекам. Затем через apt-file нашёл в каких пакетах находятся отсутствующие зависимости и установил их.

$ PKG_FILE=sdrpp_debian_trixie_amd64.deb

$ wget https://github.com/AlexandreRouma/SDRPlusPlus/releases/download/nightly/$PKG_FILE

$ PKG_TMP=$(mktemp -d)
$ PKG_BINARY="$PKG_TMP/binary"
$ PKG_BUILD="$PKG_TMP/build"
$ PKG_NAME=$(dpkg-deb -f $PKG_FILE Package)
$ PKG_VERSION=$(dpkg-deb -f $PKG_FILE Version)
$ mkdir -p $PKG_BINARY $PKG_BUILD

$ dpkg-deb -R $PKG_FILE $PKG_BINARY

$ env LD_LIBRARY_PATH=$PKG_BINARY/usr/lib ldd $PKG_BINARY/usr/bin/sdrpp
	linux-vdso.so.1 (0x00007f8810a5b000)
	libsdrpp_core.so => /tmp/tmp.R2Fe3Rsnwm/binary/usr/lib/libsdrpp_core.so (0x00007f88103ff000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f88101e7000)
	libglfw.so.3 => not found
	libGL.so.1 => /lib/x86_64-linux-gnu/libGL.so.1 (0x00007f8810160000)
	libfftw3f.so.3 => /lib/x86_64-linux-gnu/libfftw3f.so.3 (0x00007f880fe00000)
	libvolk.so.3.2 => /lib/x86_64-linux-gnu/libvolk.so.3.2 (0x00007f880fa00000)
	libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007f8810094000)
	libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f880f600000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f880f910000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f8810067000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f8810a5d000)
	libGLdispatch.so.0 => /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007f880fd47000)
	libGLX.so.0 => /lib/x86_64-linux-gnu/libGLX.so.0 (0x00007f880fd13000)
	liborc-0.4.so.0 => /lib/x86_64-linux-gnu/liborc-0.4.so.0 (0x00007f880f549000)
	libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007f880f401000)
	libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f880f8e5000)
	libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007f881005e000)
	libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f8810056000)

$ apt-file search libglfw.so.3
libglfw3: /usr/lib/x86_64-linux-gnu/libglfw.so.3
libglfw3: /usr/lib/x86_64-linux-gnu/libglfw.so.3.4

$ sudo apt-get install libglfw3

21 февраля 2026

Сборка SDRAngel для Debian 13

Собрал бинарный пакет для свежего релиза SDRAngel под Debian 13. Бинарные пакеты в GitHub релизе предназначены для Ubuntu и не устанавливаются в Debian.

Пересборка пакета через pbuilder завершилась с ошибкой:

-- Build files have been written to: /build/sdrangel-7.23.2/obj-x86_64-linux-gnu
make[1]: Leaving directory '/build/sdrangel-7.23.2'
   dh_auto_build -O--buildsystem=cmake\+ninja
	cd obj-x86_64-linux-gnu && LC_ALL=C.UTF-8 ninja -j4 -v
[1/2548] cd /build/sdrangel-7.23.2/obj-x86_64-linux-gnu/external && /usr/bin/cmake -Dcfgdir= -P /build/sdrangel-7.23.2/obj-x86_64-linux-gnu/external/serialdv/tmp/serialdv-mkdirs.cmake && /usr/bin/cmake -E touch /build/sdrangel-7.23.2/obj-x86_64-linux-gnu/external/serialdv/src/serialdv-stamp/serialdv-mkdir
[2/2548] cd /build/sdrangel-7.23.2/obj-x86_64-linux-gnu/external && /usr/bin/cmake -Dcfgdir= -P /build/sdrangel-7.23.2/obj-x86_64-linux-gnu/external/limesuite/tmp/limesuite-mkdirs.cmake && /usr/bin/cmake -E touch /build/sdrangel-7.23.2/obj-x86_64-linux-gnu/external/limesuite/src/limesuite-stamp/limesuite-mkdir
[3/2548] cd /build/sdrangel-7.23.2/obj-x86_64-linux-gnu/external && /usr/bin/cmake -Dcfgdir= -P /build/sdrangel-7.23.2/obj-x86_64-linux-gnu/external/mbelib/tmp/mbelib-mkdirs.cmake && /usr/bin/cmake -E touch /build/sdrangel-7.23.2/obj-x86_64-linux-gnu/external/mbelib/src/mbelib-stamp/mbelib-mkdir
[4/2548] cd /build/sdrangel-7.23.2/obj-x86_64-linux-gnu/external && /usr/bin/cmake -Dcfgdir= -P /build/sdrangel-7.23.2/obj-x86_64-linux-gnu/external/libsigmf/tmp/libsigmf-mkdirs.cmake && /usr/bin/cmake -E touch /build/sdrangel-7.23.2/obj-x86_64-linux-gnu/external/libsigmf/src/libsigmf-stamp/libsigmf-mkdir
[5/2548] cd /build/sdrangel-7.23.2/obj-x86_64-linux-gnu/external/serialdv/src && /usr/bin/cmake -DCMAKE_MESSAGE_LOG_LEVEL=VERBOSE -P /build/sdrangel-7.23.2/obj-x86_64-linux-gnu/external/serialdv/tmp/serialdv-gitclone.cmake && /usr/bin/cmake -E touch /build/sdrangel-7.23.2/obj-x86_64-linux-gnu/external/serialdv/src/serialdv-stamp/serialdv-download
FAILED: external/serialdv/src/serialdv-stamp/serialdv-download /build/sdrangel-7.23.2/obj-x86_64-linux-gnu/external/serialdv/src/serialdv-stamp/serialdv-download 
cd /build/sdrangel-7.23.2/obj-x86_64-linux-gnu/external/serialdv/src && /usr/bin/cmake -DCMAKE_MESSAGE_LOG_LEVEL=VERBOSE -P /build/sdrangel-7.23.2/obj-x86_64-linux-gnu/external/serialdv/tmp/serialdv-gitclone.cmake && /usr/bin/cmake -E touch /build/sdrangel-7.23.2/obj-x86_64-linux-gnu/external/serialdv/src/serialdv-stamp/serialdv-download
Cloning into 'serialdv'...
fatal: unable to access 'https://github.com/f4exb/serialDV.git/': Could not resolve host: github.com
Cloning into 'serialdv'...
fatal: unable to access 'https://github.com/f4exb/serialDV.git/': Could not resolve host: github.com
Cloning into 'serialdv'...
fatal: unable to access 'https://github.com/f4exb/serialDV.git/': Could not resolve host: github.com
Had to git clone more than once: 3 times.
CMake Error at /build/sdrangel-7.23.2/obj-x86_64-linux-gnu/external/serialdv/tmp/serialdv-gitclone.cmake:50 (message):
  Failed to clone repository: 'https://github.com/f4exb/serialDV.git'

Скачивание чего-либо из сети при сборке запрещено политикой Debian в разделе 4.9:

17 февраля 2026

Как завершить зависшее SSH соединение

 Если по какой-либо причине SSH соединение зависает (например сменился внешний IP адрес) то такое соединение не получится завершить через Ctrl+D или Ctrl+C. Обычно я убивал локальный SSH процесс и заново логинился на сервер.

Оказывается есть способ проще - нужно использовать escape последовательность и для завершения соединения последовательно нажать <Enter> "~" и ".".

OpenSSH клиент поддерживает больше escape последовательностей, справку по которым можно получить через <Enter> "~" и "?".

Supported escape sequences:
     ~.   - terminate connection (and any multiplexed sessions)
     ~B   - send a BREAK to the remote system
     ~C   - open a command line
     ~R   - request rekey
     ~V/v - decrease/increase verbosity (LogLevel)
     ~^Z  - suspend ssh
     ~#   - list forwarded connections
     ~&   - background ssh (when waiting for connections to terminate)
     ~?   - this message
     ~~   - send the escape character by typing it twice
(Note that escapes are only recognized immediately after newline.)

Вы можете следить за обновлениями блога с помощью Atom/RSS и Telegram.

16 февраля 2026

Апконвертер: тестирование

Это продолжение серии постов про постройку апконвертера для RTL-SDR приёмника. Собраны и отдельно проверены все компоненты апконвертера: смеситель, ФНЧ, гетеродин и диплексер. Теперь можно соединить их вместе и подключить к SDR приёмнику. Для этого я использовал переходники SMA(папа)—SMA(папа) - они короткие и придают конструкции жёсткость на столе.

В SDR приёмнике заменил разъём на SMA. На плату гетеродина добавил линейный стабилизатор 78L05 и разъём XT60 чтобы питать от аккумулятора. Это позволит немного снизить уровень импульсных помех в и без того шумной городской среде. 

15 февраля 2026

Замена разъёма в SDR приёмнике

 В моём SDR приёмнике на базе RTL2838U антенна подключалась через ВЧ разъём который используют телевизоры для подключения эфирной антенны. Если я не ошибаюсь, то такой разъём называется IEC 60169-2, хотя в магазинах электроники он часто называется PAL.

Чтобы подключить к нему что-то с разъёмами BNC или SMA мне приходилось использовать длинную цепочку из переходников для разъёмов типа F (используются для подключения спутниковых антенн к телевизорам):

  • TV—F (мама) + F (папа)—F (папа) + F (мама)—SMA (папа) 
  • TV—F (мама) + F (папа)—F (папа) + F (мама)—BNС (папа)

Если с другой стороны тоже разъём "папа", то добавлялся соответствующий переходник "мама—мама".  Найти переходник TV—BNC или TV—SMA в местных магазинах не удалось. Такие переходники есть на AliExpress, но ждать месяц или больше на доставку это слишком.

11 февраля 2026

Апконвертер: диплексер

Это продолжение серии постов про постройку апконвертера для RTL-SDR приёмника. После смесителя, ФНЧ и гетеродина приступил к постройке диплексера. Когда начинал этот проект, то планировал подключить к выходу смесителя полосовой фильтр, который будет пропускать от 48 МГц до 78 МГц. Но в итоге решил ставить диплексер, т.к. полосовой фильтр будет отражать обратно в смеситель фильтруемые частоты, а диплексер гасит их на согласованной нагрузке.

Вначале посчитал диплексер по схеме bridged-tee в онлайн калькуляторе и затем смоделировал его в Qucs-S.

На второй гармонике гетеродина (96 МГц) ослабление составило около 7 дБ что сильно хуже результата моделирования полосового фильтра.

07 февраля 2026

Обновление прошивки tinySA Ultra+ ZS407 в Linux

В этом посте описан процесс обновления прошивки для анализатора спектра tinySA Ultra+ ZS407, для других версий стоит свериться с инструкцией на сайте tinysa.org.

Если до этого не обновляли прошивку, то до обновления прошивки стоит выполнить процедуру самопроверки (self-test) чтобы не гадать о причинах если она не пройдёт после обновления. Сайт tinysa.org предупреждает о подделках tinySA которые не пройдут самопроверку после установки официальной прошивки.

Для обновления прошивки понадобится сам tinySA, USB Type-C кабель и утилита dfu-util. В Debian 13 она есть в репозитарии и её можно установить через APT

$ sudo apt install --update -y dfu-util

Далее выключить tinySA, зажать джойстик и включить снова (экран ничего не будет показывать). Затем подключить tinySA к USB порту (я использовал порт USB 2.0 без всяких хабов) и убедиться что в логе ядра появились сообщения о подключении нового устройства.

Feb 05 22:04:32 dragoncore kernel: usb 1-1: new full-speed USB device number 14 using xhci_hcd
Feb 05 22:04:32 dragoncore kernel: usb 1-1: New USB device found, idVendor=0483, idProduct=df11, bcdDevice=22.00
Feb 05 22:04:32 dragoncore kernel: usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Feb 05 22:04:32 dragoncore kernel: usb 1-1: Product: STM32  BOOTLOADER
Feb 05 22:04:32 dragoncore kernel: usb 1-1: Manufacturer: STMicroelectronics
Feb 05 22:04:32 dragoncore kernel: usb 1-1: SerialNumber: 205D38572036

Скачать файл прошивки с расширением .bin с сайта http://athome.kaashoek.com/tinySA4/DFU/ (на момент написания это tinySA4_v1.4-217-gc5dd31f.bin выпущенная 18 декабря 2025). Прежние версии прошивки лежат в http://athome.kaashoek.com/tinySA4/DFU/old/