Показаны сообщения с ярлыком linux. Показать все сообщения
Показаны сообщения с ярлыком linux. Показать все сообщения

09 июля 2026

Chromium падает с ошибкой при запуске

Принесли ноутбук с Debian 13 на котором перестал запускаться браузер Chromium. Когда он работал в последний раз ответить затруднялись, но предположим что это было в прошлом месяце. Если выполнить команду chromium в консоли, то появляется ошибка

[0709/162448.238320:ERROR:third_party/crashpad/crashpad/snapshot/elf/elf_dynamic_array_reader.h:64] tag not found
Ловушка трассировки/останова

Если запустить с временным профилем (chromium --temp-profile), то браузер запускается но теряются все закладки, история просмотра и прочее.

Поиск по багтрекеру Debian вывел на #1141488 chromium: 150.0.7871.46-1~deb13u1 crashes on startup в котором описана эта проблема. Оставалось только запустить sudo apt --update upgrade чтобы chromium обновился до версии 150.0.7871.100-1~deb13u1. После обновления Chromium снова запускается и работает.

Так что если у вас установлена версия 150.0.7871.46-1~deb13u1 и Chromium перестал запускаться, то нужно обновиться до 150.0.7871.100-1~deb13u1.


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

02 июня 2026

Исправление nagios-nrpe-server в Debian 13

Дошли руки поправить старую проблему с nagios-nrpe-server, которая появилась после обновления серверов на Debian 13 и воспроизводилась после каждой перезагрузки сервера. Последнее время обновления ядра выходят довольно часто и надоело перезагружать этот сервис руками.

DISK CRITICAL - /run/credentials/getty@tty1.service is not accessible: No such file or directory

В Debian 13 используется версия systemd в которой добавили ImportCredentials из systemd-creds для getty. В сочетании с опцией privateTmp=true для nagios-nrpe-server.service это приводит к такой ошибке.

В самом сервисе есть указание запускаться перед getty@tty1.service, но в моём случае это не даёт нужного эффекта. Чтобы ошибка не возникала при каждой перезагрузке достаточно выключить privateTmp для nagios-nrpe-server.service.

$ sudo systemctl edit nagios-nrpe-server.service

И переопределить значение privateTmp с true на false. Нужно добавить нужные строки до строки "### Edits below this comment will be discarded", примерно так:

08 мая 2026

Установка OpenWebRX+ на Raspberry PI 3 Model B

Если SDR приёмник подключается к rtl_tcp, который запущен на Raspberry PI 3 Model B через Wi-Fi сеть (эта модель поддерживает только 2.4 ГГц Wi-Fi), то её скорости иногда не хватает чтобы принимать сигнал без запинок. Решил попробовать OpenWebRX+ чтобы декодирование I/Q сигнала выполнялось локально на Raspberry а по сети передавалось меньше данных.

Записал образ Debian 13 для Raspberry на microSD карту которая подключена через USB считыватель и видна в системе как /dev/sda

curl -fsSLO https://cloud.debian.org/images/cloud/trixie/daily/latest/debian-13-raspi-arm64-daily.tar.xz

tar -xzf debian-13-raspi-arm64-daily.tar.xz

sudo dd if=disk.raw of=/dev/sda bs=10M oflag=direct status=progress

После записи образа установил microSD карту в одноплатник, подключил проводную сеть, клавиатуру и монитор и загрузился в систему (при первой загрузке попросит задать пароль для root пользователя и часовой пояс).

Далее поставил минимальный набор пакетов, настроил имя хоста, локаль и отключил проверку дубликатов IP адресов в Network Manager.

sudo apt --update install network-manager openssh-server openssh-client locales vim less

echo pi3 | sudo tee /etc/hostname

echo '127.0.1.1 pi3.local pi3' | sudo tee -a /etc/hosts

sudo hostname -F /etc/hostname

cat << _EOF_ | sudo tee /etc/locale.gen
en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8
_EOF_

sudo locale-gen

cat <<_EOF_ | sudo tee /etc/NetworkManager/conf.d/50-no-ipv4-dad.conf
[connection-dad-default]
ipv4.dad-timeout=0
_EOF_

sudo systemctl restart NetworkManager.service

Дальше настроил подключение к Wi-Fi точке через nmtui и установил сервис для управления антенной из SDR приложения.

15 марта 2026

Обновление прошивки HP ProBook 440 G8

Сменил свой домашний ноутбук с Dell Latitude E7470 на HP ProBook 440 G8. Переставил NVME SSD диск из Dell в HP и заодно решил обновить последнему прошивку.

До обновления была установлена версия прошивки T85 Ver. 01.22.00 от 22 августа 2025:

$ sudo dmidecode -t 0      
# dmidecode 3.6
Getting SMBIOS data from sysfs.
SMBIOS 3.3 present.

Handle 0x0000, DMI type 0, 26 bytes
BIOS Information
	Vendor: HP
	Version: T85 Ver. 01.22.00
	Release Date: 08/22/2025
	Address: 0xF0000
	Runtime Size: 64 kB
	ROM Size: 32 MB
	Characteristics:
		PCI is supported
		PC Card (PCMCIA) is supported
		BIOS is upgradeable
		BIOS shadowing is allowed
		Boot from CD is supported
		Selectable boot is supported
		EDD is supported
		Print screen service is supported (int 5h)
		8042 keyboard services are supported (int 9h)
		Serial services are supported (int 14h)
		Printer services are supported (int 17h)
		ACPI is supported
		USB legacy is supported
		Smart battery is supported
		BIOS boot specification is supported
		Function key-initiated network boot is supported
		Targeted content distribution is supported
		UEFI is supported
	BIOS Revision: 22.0
	Firmware Revision: 51.44

HP предлагает обновление прошивки в виде исполняемого файла для Windows, который можно скачать со страницы поддержки продукта. На момент написания этой заметки доступна версия 01.23.00 Rev.A от 16 января 2026 (имя файла sp168956.exe).

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.

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.

31 декабря 2025

Эксперимент с обновлением Raspbian через QEMU

Прошлое обновление сервера печати, который построен на базе Raspberry Pi 1B и Raspbian, с Bullseye на Bookworm заняло несколько часов. В нём установлена micro SD карта на 4 гигабайта, которая работает довольно медленно, но для печати быстрее и не нужно. Debian Trixie вышел в начале августа, но обновить эту систему руки дошли только сейчас.

Тогда обновление системы напомнило былые времена с Gentoo. Тогда и появилась идея попробовать запустить образ SD карты в QEMU, обновить систему и записать его обратно на карту.

Поставил SD карту из сервера печати в ноутбук и сделал её образ в двух экземплярах - один будет использоваться для обновления, а второй будет в качестве резервной копии если после обновления он не начнёт работать.

$ sudo dd if=/dev/mmcblk0 of=sdcard-20251230.orig.bin bs=1M iflag=direct
3849+0 records in
3849+0 records out
4035969024 bytes (4,0 GB, 3,8 GiB) copied, 300,146 s, 13,4 MB/s

$ cp sdcard-20251230.orig.bin sdcard.img

Теперь нужно выровнять размер образа для эмуляции иначе QEMU будет ругаться "qemu-system-arm: Invalid SD card size: 3.76 GiB SD card size has to be a power of 2, e.g. 4 GiB."

$ qemu-img resize -f raw sdcard.img 4096M
Image resized.

Не вынимая SD карту из ноутбука копирую ядро (kernel7.img) и device tree (bcm2709-rpi-2-b.dtb) в директорию с образом накопителя.

Чтобы обновление прошло быстрее я использовал эмуляцию Raspberry PI 2B в QEMU. С подбором опций пришлось повозиться, т.к. загрузка висла когда включалась сетевая карта. В итоге нашёл что для эмуляции Raspberry PI 2B рекомендуют передать ядру параметр dwc_otg.fiq_fsm_enable=0 и после этого система загрузилась.

25 декабря 2025

Установка NanoVNA-Saver в Debian 13

Понадобилось снять характеристику с самодельного аттенюатора и для этого хотел использовать приложение NanoVNA-Saver которое есть в репозитарии Debian 13. После установки оказалось что оно не запускается из-за неверно указанных зависимостей для пакета (подробности в #1123607).

Чтобы приложение запустилось нужно дополнительно установить несколько библиотек

$ sudo apt-get install -y python3-pyside6 python3-pyside6.qtcore python3-pyside6.qtgui python3-pyside6.qtwidgets

После этого приложение запускается и работает


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

14 декабря 2025

NetworkManager перестал принимать одинаковый IP для проводной и беспроводной сетей

Подключил проводную сеть к ноутбуку для обновления OpenWrt в домашней Wifi сети и заметил что NetworkManager долго "крутит" иконку настройки нового подключения в трее. Полез в логи посмотреть что там происходит и нашёл такое

Dec 13 11:29:34 XXXXXXXXXX NetworkManager[978]: <warn>  [1765614574.8401] device (enp0s31f6): IP address 192.168.XX.XX cannot be configured because it is already in use in the network by host XX:XX:XX:XX:XX:XX
Dec 13 11:30:04 XXXXXXXXXX NetworkManager[978]: <warn>  [1765614604.9456] device (enp0s31f6): IP address 192.168.XX.XX cannot be configured because it is already in use in the network by host XX:XX:XX:XX:XX:XX

Т.е. он отказывается назначить IP адрес, который ему выдал DHCP сервер, т.к. этот адрес уже используется на беспроводном интерфейсе.

Тут нужно сделать пояснение что такое назначение адресов сделано намеренно и одинаковый IP выдаётся на проводной и беспроводной интерфейсы (не все DHCP сервера позволяют делать такое). В настройках маршрутизации у интерфейсов разный приоритет и при наличии подключения через проводную сеть будет использоваться она, а при отключении пакеты идут через беспроводной интерфейс без разрыва соединений.

20 ноября 2025

Апгрейд SSD в ноутбуке

В процессе установки пакета разработки для STM32 в очередной раз закончилось место на домашнем разделе (/home) в ноутбуке. Походил с du по директориям, но больше 4 GB освободить не получилось. Заниматься радикальной чисткой или перемещением части данных на домашний сервер было лениво и в итоге был заказан новый NVME SSD на 1 TB от Kingston (SNV3S1000G).

Т.к. новый диск заметно больше прежнего, то перенос системы не вызывает вопросов. Подключил новый диск через USB-NVME переходник и скопировал данные

$ sudo dd if=/dev/nvme0n1 of=/dev/sda bs=1M iflag=direct oflag=direct conv=notrunc status=progress

Дальше переставил новый диск в ноутбук и загрузился с LiveCD чтобы увеличить размер домашнего раздела. У меня система стоит на LVM поверх LUKS поэтому команды специфичны для этого варианта установки.

$ sudo parted /dev/nvme0n1 resizepart 3 100%

$ sudo cryptsetup luksOpen /dev/nvme0n1p3 nvme0n1p3_crypt

$ sudo cryptsetup resize nvme0n1p3_crypt

$ sudo pvresize /dev/mapper/nvme0n1p3_crypt

$ sudo vgchange -ay dragoncore

$ sudo fsck -Cf /dev/dragoncore/home

$ sudo lvextend -L+650G dragoncore/home

$ sudo resize2fs -p /dev/dragoncore/home

$ sudo vgchange -an dragoncore

$ sudo cryptsetup close nvme0n1p3_crypt

02 октября 2025

Установка КОМПАС-3D v24 Beta в Debian 13

Стартовало бета тестирование Linux версии КОМПАС-3D v24, которое проходит с 1 октября по 30 ноября 2025. В списке официально поддерживаемых систем нет Debian 13, но поставить это приложение оказалось несложно.

Я взял за основу инструкции по установке для Astra Linux 1.8 и немного доработал в районе зависимостей. В настольной системе эти зависимости скорее всего уже будут установлены, но на всякий случай приведу их список

$ sudo apt-get install --update -y curl gnupg locales desktop-file-utils libxcb-res0 libxcb-xkb1 libxcb-xinput0

Далее подключить репозитарий АСКОН для Astra Linux 1.8 и установить полную версию

$ curl -fsSL https://repo.ascon.ru/beta/deb/ascon.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/ascon.gpg
$ echo "deb [signed-by=/etc/apt/trusted.gpg.d/ascon.gpg] https://repo.ascon.ru/beta/deb 1.8_x86-64 main" | sudo tee /etc/apt/sources.list.d/ascon-beta.list

$ sudo apt-get install --update -y ascon-kompas3d-v24-full

Запуск из командной строки

$ kompas-v24

На встроенном видео Intel HD Graphics 520 работает довольно шустро, хотя сложные модели я пока не пробовал загружать.

Добавлено 2025-12-21

Бета-тестирование закончилось 30 ноября и пакеты убрали из репозитария Аскон. Полная версия КОМПАС-3D v24 для Linux уже продаётся, а КОМПАС-3D v24 Home обещают выпустить в первой половине 2026 года.

 


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

17 сентября 2025

Снимок экрана генератора сигналов Uni-T UTG932E

 Разобрался как сохранять снимки экрана в генераторе сигналов Uni-T UTG932E. Я использую Linux и последовательность действий будет для этой системы. Для начала настроить правило UDEV для выдачи прав при подключении генератора к компьютеру.

В моём случае настройки UDEV находятся в файле /etc/udev/rules.d/99-utg932e.rules, но имя может быть и другим

ACTION!="add|change", GOTO="utg932e_rules_end"
SUBSYSTEM!="usb", GOTO="utg932e_rules_end"

# Uni-T UTG932E
ATTRS{idVendor}=="6656", ATTRS{idProduct}=="0834", MODE="660", GROUP="plugdev", TAG+="uaccess"

LABEL="utg932e_rules_end"

Далее перечитать настройки UDEV и переподключить устройство

$ sudo udevadm control --reload-rules

Для сохранения скриншотов я использовал https://github.com/renaatd/utg962/

$ git clone https://github.com/renaatd/utg962.git
$ cd utg962/
$ sudo apt-get install -y python3-pyvisa-py python3-pil
$ python3 utg962/save_display.py sine-wave.png

Результат


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

24 августа 2025

Система тормозит на SSD

Какое-то время назад заметил что домашний ноутбук тормозит когда ставятся обновления системы и при этом постоянно горит индикатор активности диска (индикатор продолжает непрырывно светиться даже в меню Grub).

В выводе iostat видна максимальная утилизация диска при небольшом количестве операций ввода-вывода

$ iostat -x sda
Linux 6.1.0-38-amd64 (dragoncore)       22/08/25        _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,50    0,25   40,85   38,35    0,00   20,05

Device            r/s     rkB/s   rrqm/s  %rrqm r_await rareq-sz     w/s     wkB/s   wrqm/s  %wrqm w_await wareq-sz     d/s     dkB/s   drqm/s  %drqm d_await dareq-sz     f/s f_await  aqu-sz  %util
sda              1,00      0,50     0,00   0,00  251,00     0,50   40,00    459,00    20,00  33,33  146,22    11,47    0,00      0,00     0,00   0,00    0,00     0,00    7,00  133,29    7,03 105,20

В ноутбуке установлен SSD накопитель LITEON CV3-8D256-11 SATA 256GB формата M.2.

Посмотрел в атрибуты S.M.A.R.T.

$ sudo smartctl -A /dev/sda
smartctl 7.3 2022-02-28 r5338 [x86_64-linux-6.1.0-38-amd64] (local build)
Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0003   100   100   000    Pre-fail  Always       -       0
  9 Power_On_Hours          0x0002   100   100   000    Old_age   Always       -       5763
 12 Power_Cycle_Count       0x0003   100   100   000    Pre-fail  Always       -       3819
175 Program_Fail_Count_Chip 0x0003   100   100   000    Pre-fail  Always       -       0
176 Erase_Fail_Count_Chip   0x0003   100   100   000    Pre-fail  Always       -       0
177 Wear_Leveling_Count     0x0003   100   100   000    Pre-fail  Always       -       768
178 Used_Rsvd_Blk_Cnt_Chip  0x0003   100   100   000    Pre-fail  Always       -       0
179 Used_Rsvd_Blk_Cnt_Tot   0x0003   100   100   000    Pre-fail  Always       -       0
180 Unused_Rsvd_Blk_Cnt_Tot 0x0033   100   100   005    Pre-fail  Always       -       1248
181 Program_Fail_Cnt_Total  0x0003   100   100   000    Pre-fail  Always       -       0
182 Erase_Fail_Count_Total  0x0003   100   100   000    Pre-fail  Always       -       0
187 Reported_Uncorrect      0x0003   100   100   000    Pre-fail  Always       -       0
194 Temperature_Celsius     0x0003   100   100   000    Pre-fail  Always       -       79
195 Hardware_ECC_Recovered  0x0003   100   100   000    Pre-fail  Always       -       0
199 UDMA_CRC_Error_Count    0x0003   100   100   000    Pre-fail  Always       -       1
238 Unknown_Attribute       0x0003   061   100   000    Pre-fail  Always       -       39
241 Total_LBAs_Written      0x0003   100   100   000    Pre-fail  Always       -       30759792686
242 Total_LBAs_Read         0x0003   100   100   000    Pre-fail  Always       -       48997828952

15 июля 2025

Привилегии приложений в контейнерах

Хорошей практикой является принцип наименьших привилегий (давать только те права которые нужны для выполнения задачи). На практике разработчики зачастую идут путём наименьшего сопротивления и копируют "рецепты" из интернета.

Далее несколько частых случаев с которыми мне доводится сталкиваться и варианты их решения.

Прослушивание портов ниже 1024

Если программа требует повышения привилегий для прослушивания портов 80 и 443 (или любых других до 1024), то можно изменить конфигурацию для прослушивания портов выше 1024 (например 8080 и 8443), а на балансировщике сделать преобразование портов. Если переназначение портов невозможно, то можно воспользоваться Linux capabilities и выдать только CAP_NET_BIND_SERVICE вместо выдачи прав пользователя root.

12 июля 2025

Java программа не видит переменных окружения с точкой в имени

 Столкнулся с интересной проблемой когда внедрял сборку контейнеров под ARM64 процессоры. Есть программа на Java контейнер которой использовал образ "eclipse-temurin:17-jre-alpine" в качестве базового. Для этого базового образа отсутствует вариант для платформы linux/arm64 и стоял вопрос что безопаснее сделать:

  • перейти на "eclipse-temurin:17-jre-noble" который использует Ubuntu вместо Alpine
  • перейти на "eclipse-temurin:21-jre-alpine" который влечёт обновление Java с 17 на 21

Разработчик выбрал первый вариант (перейти на "eclipse-temurin:17-jre-noble"), т.к. обновление версии Java выглядит рискованным (может повлечь неожиданные эффекты в какой-либо из библиотек) и требует полного цикла тестирования которое провести сейчас нет возможности.

Я также считал что замена Alpine на Ubuntu при сохранении версии Java является менее рискованным, хотя и повлечёт увеличение размера образа контейнера и возможные риски из-за замены musl на libc (хотя я не особо верю в вероятность таких неприятностей). Забегая вперёд, мы потратили несколько часов разбираясь почему программа перестала запускаться.

06 июля 2025

Исправление ошибки QIDIStudio при отправке на печать

Если отправить модель на печать напрямую из QIDIStudio, то программа аварийно завершится.

Чтобы этого не случалось QIDI рекомендует добавить несколько переменных окружения

$ export WEBKIT_DISABLE_COMPOSITING_MODE=0
$ export WEBKIT_DISABLE_DMABUF_RENDERER=0
$ ./QIDIStudio_1.10.02.76_Linux_Ubuntu_20.AppImage

В описании этого способа указано что будет работать только в Ubuntu 24, но на самом деле отлично работает в Debian 12.

Альтернативный варианты:

  • добавить в адрес принтера порт 7125, но перестанет работать подключение к Fluidd из QIDIStudio.
  • Сохранять файл gcode на флешку и запускать печать с принтера.

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

05 июля 2025

Загрузка модуля ядра в LibreELEC

 Чтобы node_exporter мог считывать показания оборотов вентилятора в HTPC системе на базе Gigabyte Brix и дистрибутива LibreELEC нужно загрузить дополнительный модуль ядра it87.

# echo it87 >> /storage/.config/modules-load.d/sensors.conf

После перезагрузки станут доступны новые метрики

# wget -qO- localhost:9100/metrics | grep ^node_hwmon_fan_rpm
node_hwmon_fan_rpm{chip="platform_it87_2592",sensor="fan1"} 0
node_hwmon_fan_rpm{chip="platform_it87_2592",sensor="fan2"} 2848
node_hwmon_fan_rpm{chip="platform_it87_2592",sensor="fan3"} 0

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