12 марта 2026

Обновление ключа подписи репозитария GitLab

При установке обновлений APT выдал ошибку об устаревании ключа, которым подписан репозитарий Gitlab:

Get:5 https://packages.gitlab.com/gitlab/gitlab-ce/debian trixie InRelease [16.9 kB]
Err:5 https://packages.gitlab.com/gitlab/gitlab-ce/debian trixie InRelease
  Sub-process /usr/bin/sqv returned an error code (1), error message is: Signing key on F6403F6544A38863DAA0B6E03F01618A51312F3F is bad:            The primary key is not live   because: Expired on 2026-02-27T20:15:41Z
Fetched 239 kB in 1s (361 kB/s)
1 package can be upgraded. Run 'apt list --upgradable' to see it.
gitlab-ce is already the newest version (18.7.5-ce.0).
Selected version '18.7.5-ce.0' (gitlab-ce:1/trixie [amd64]) for 'gitlab-ce'
Summary:
  Upgrading: 0, Installing: 0, Removing: 0, Not Upgrading: 0
Warning: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. OpenPGP signature verification failed: https://packages.gitlab.com/gitlab/gitlab-ce/debian trixie InRelease: Sub-process /usr/bin/sqv returned an error code (1), error message is: Signing key on F6403F6544A38863DAA0B6E03F01618A51312F3F is bad:            The primary key is not live   because: Expired on 2026-02-27T20:15:41Z
Warning: Failed to fetch https://packages.gitlab.com/gitlab/gitlab-ce/debian/dists/trixie/InRelease  Sub-process /usr/bin/sqv returned an error code (1), error message is: Signing key on F6403F6544A38863DAA0B6E03F01618A51312F3F is bad:            The primary key is not live   because: Expired on 2026-02-27T20:15:41Z
Warning: Some index files failed to download. They have been ignored, or old ones used instead.

Чтобы обновить ключ достаточно следовать инструкции. У меня не установлен curl, поэтому немного изменил команду для дистрибутива Debian Trixie

$ sudo mkdir -p /etc/apt/keyrings

$ sudo wget -O /etc/apt/keyrings/gitlab-keyring.asc https://packages.gitlab.com/gpg.key

$ echo 'deb [signed-by=/etc/apt/keyrings/gitlab-keyring.asc] https://packages.gitlab.com/gitlab/gitlab-ce/debian/ trixie main' | sudo tee /etc/apt/sources.list.d/gitlab-ce.list

$ sudo apt-get update

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

10 марта 2026

Ремонт подсветки телевизора LG 32LF562V

Прошлая неделя выдалась неудачной для домашней техники - сначала сломался телевизор (звук есть, а изображения нет), потом перестала работать боковая щётка у пылесоса (ошибка C5). Для пылесоса пришлось проделать замену мотора щётки для последнего оригинального моторчика. А с ремонтом телевизора пришлось немного повозиться.

Сначала проверил что дело в подсветке - для этого в экран нужно посветить фонариком, если видно изображение (меню например), то можно заказывать новую подсветку. Я брал на озоне полный комплект подсветки с рассеивателями и клипсами (клипсы стоит взять, т.к. хотя я и старался снимать их аккуратно, но одна всё же сломалась).

Сразу после снятия задней крышки нужно проверить что на разъёме подсветки (выделен красным) есть напряжение. Это выход источника тока и при неисправной подсветке на этом разъёме было 249 В.

07 марта 2026

Магнитная рамочная антенна из алюминиевого обруча

Собрал новую магнитную рамочную антенну из алюминиевого гимнастического обруча для продолжения работы над апконвертером и SDR приёмником. Прошлый вариант антенны, который я использовал для тестирования апконвертера, был наскоро сделан из коаксиального кабеля и не имел какой-либо механической прочности.


Основа новой антенны - гимнастический обруч диаметром 94 см. Чтобы разомкнуть его достаточно высверлить заклёпки и извлечь перемычку. После этого смоделировал и распечатал заглушки для обруча чтобы при стягивании винтами трубка обруча не сминалась.

05 марта 2026

FreeCAD: Camera settings failed to read

Моделирую магнитную рамочную антенну. Тестовая лицензия на Компас-3D истекла ещё в прошлом году, а продажи Компас-3D Home ещё не начались. Пришлось выбирать между OpenSCAD и FreeCAD - в итоге решил дать второй шанс FreeCAD.

Установил AppImage для версии FreeCAD 1.1RC3 (в Trixie сейчас версия 1.0.0). На моделирование стойки КПЕ (конденсатор переменной ёмкости), пластины крепления рамки и скобы для крепления всего к мачте была потрачена добрая часть выходного дня. Одна из причин это отсутствие навыков работы во FreeCAD, а вторая - ошибки самой программы.

FreeCAD "вылетает" случайным образом и надёжно воспроизвести такое поведение не получается. В противном случае можно хотя бы завести отчёт об ошибке и описать последовательность действий для воспроизведения проблемы. В общем пока постоянное сохранение наше всё.

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.