Hatred's Log Place

DON'T PANIC!

Jan 24, 2025 - 1 minute read - Linux Programming

Туннелирование TCP в AnyDesk

Просто заметка по версиям.

В AnyDesk есть возможность туннелирования TCP. Да, вот прям как в SSH. Очень удобно для использования в “чужом” или неподготовленном окружении. Использовал, например, для удалённой отладки кода на устройствах очень сильно далеко от меня (вплоть до другого континента)

Доступна в бесплатной версии, но с нюансом:

  • до версии 6.2.1 включительно оно доступно из коробки
  • после, доступно только после регистрации аккаунта (?)

При этом версия 6.2.1 пока работает. FYI.

Ну и сразу. Есть RustDesk. Возможности форвардинга есть. Плюс можно свой сервер разворачивать. В реальных условиях пока не проверял.

Jan 21, 2025 - 1 minute read - Programming Linux

QtCreator Remote Linux Debug session does not start

Не стартует удалённая отладка. Причём без какого-то фидбека. Если включить логи: export QT_LOGGING_RULES='*=true;qt.*=false;qtc.*=true;qtc.clang*=true' и запустить сессию QtC, то при запуске отладки можно увидеть что-то вроде: qtc.utils.process: Process 162 starting (non blocking, main thread): --multi :10000 qtc.utils.process: Process 162 finished: result=3, ex=255, 0 bytes stdout: "", 0 bytes stderr: "", 0 ms elapsed Суть проблемы в том, что на удалённой стороне просто не установлен gdbserver. Соответственно нужно его установить и всё починится.

Nov 29, 2024 - 3 minute read - Electronic Programming

easyeda2kicad

Веб-сервисы вещь хорошая и удобная… Пока их не блокируют. Поэтому предпочитаю для своих домашний поделок использовать KiCAD. Естественно, что не всегда хватает какого-то символа, посадочного места или 3D вида компонента. При этом в той же EasyEDA есть куча оных уже в готовом виде. Если не вдаваться в подробности соответствия каким-то стандартам, то было бы неплохо, стащить оную и использовать у себя.

Первым тулом, которым я пользовался был (да и останется на всякий случай) - lc2kicad поставить, пока, можно из AUR:

yay -S lc2kicad

но репозиторий уже в архиве, а автор отписался, что проект всё.

И вот сегодня открыл для себя новый проект: easyeda2kicad.

И основная его фишка в том, что по указанному ID он может скачать сразу символ, посадочное место и 3D модель. Положить это в единое место к которому можно настроить пути и потом пользоваться централизованно.

Oct 29, 2024 - 2 minute read - Linux

Очень мелкая печать из Inkscape

Столкнулся с проблемой: при печати из Inkscape изображения получаются очень мелкими.

Гуглинг навёл на то, что это проблема с xdg-desktop-portal-kde. Парень из форма создал Bug Report в котором есть возможный WA. И там же есть отсылка на репорт в самом проекте Inkscape.

Если коротко: xdg-desktop-portal это некая сущность (или сучность?) которая позволяет приложениям на различных тулкитах более бесшовно интегрироваться в “неродные” окружения рабочего стола: Gtk в окружение KDE и Qt в окружения на базе Gtk (Gnome, Cinnamon, Mate & etc). Интеграция по большей части затрагивает только переиспользование стандартных системных диалогов, типа диалогов открытия файлов, сохранения, вывода окон предупреждений, диалогов печати (тут отдельный акцент). В общем, все те вещи, которые вроде более приятны глазу, но жить без них можно (“вам шашечки или ехать?”). Но и дополнительный слой абстракции, который сам по себе может нести баги.

Собственно проблема как раз и заключается в стыке разных сред при использовании диалога печати. Причём сначала поддержку Desktop Portal реализовали в Inkscape и сразу же это вызвало проблемы.

Ладно, теперь к сути. Мне ехать нужно. Решение в лоб это общесистемно заявить:

export GTK_USE_PORTAL=0

Собственно после чего все приложения Gtk в окружении KDE станут использовать Gtk диалоги. Как оказалось, если использовать в массе, так себе. К визуалу тоже быстро привыкаешь :)

Поэтому достаточно сделать следующее:

  1. Меню
  2. Находим Inkscape
  3. ПКМ → Изменить приложение…
  4. Вкладка Приложение
  5. В поле “Переменные окружения” вставляем GTK_USE_PORTAL=0
  6. OK

Теперь:

  1. если открыть Inkscape через меню или быстрый запуск, он запустится с этим значением
  2. если открыть SVG файл через Dolphin, то он тоже откроется с этим флагом

Если открывать через терминал ручками: inkscape file.svg, то имеет смысл завести alias с установкой переменной окружения в нужное значение. Если в скриптах (хммм), то указать явно в скрипте.

Oct 13, 2024 - 2 minute read - Туризм

Капитанский мостик по хребту

Когда ходили нонстоп после нефтебазы немного не туда сунулись по пути на Капитанский мостик, но возникло жаление по осени прогуляться тут с сыном, просто посмотреть, куда идут дороги. Сентябрь пришёл, время реализовывать планы. Что бы долго не тянуть выбрали 7 сентября.

map.webp

Oct 12, 2024 - 5 minute read - Туризм

Внезапный Лысый Дед

Внезапный поход на вершину, которую ещё не доводилось сходить. Сходили 17-18 августа, но руки написать дошли только сейчас.

map.webp

Sep 12, 2024 - 1 minute read - Programming Life

256

$ date +%j                    
256

С праздником всех причастных!

Sep 12, 2024 - 1 minute read - Linux

Команда timeout

Век живи, век учись, а дураком помрёшь.

Открыл для себя чудную утилиту timeout из состава coreutils.

Делает ровно то, что описывает её название: запускает команду, переданную как аргумент, на заданное время в секундах (s), минутах (m), часах (h) или днях (d):

timeout 10s ping ya.ru
sudo timeout 10s tcpdump -i wlan0 -Q in -A udp 

Обратите внимание: если команда должна быть выполнена под sudo, то sudo должно стоять перед timeout.

По истечении таймаута передаётся сигнал TERM в дочерний процесс. Если нужен другой, то укажите его через аргумент -s SIGNAL. Утилита дополнительно может послать сигнал KILL, если команда не отреагировала на сигнал TERM по истечении таймаута, указанного через параметр -k TIMEOUT. Прочие вкусности смотреть через --help, хотя их там, по большей части, и нет.

Jul 20, 2024 - 1 minute read - linux

Docker prune

Заметка в мемориз, на случай когда /var/lib/docker/overlay2 весит неприлично много.

Первое:

docker system df

вывод такой:

$ docker system df                                         
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE  
Images          2         0         4.467GB   4.467GB (100%)  
Containers      0         0         0B        0B  
Local Volumes   6         0         0B        0B  
Build Cache     193       0         21.39GB   21.39GB

Images - тут скорее то, что нужно. Чистим стандартными средствами:

  1. Смотрим образы: docker images
  2. Удаляем ненужные: docker rmi <IMAGE_ID>

Containers - аналогично:

  1. Смотрим через: docker ps -a
  2. Удаляем: docker rm <IMAGE_ID>

Local Volumes:

  1. Чистим: docker volume prune

Build Cache:

  1. Чистим: docker buildx prune

У меня большую часть занимал именно Build Cache. При последущей перестройке образов будет дольше. Но у меня этот процесс не частый, так что не критично.

Jun 19, 2024 - 1 minute read - Linux

Ошибка "is_real_array undefined" в пакете Quaternion для GNU Octave

Короткая заметка касательно пакета Quaternion для Octave. И, скорее всего, специфичная для ArchLinux/Manjaro.

Итак, пакет ставится из AUR:

yay -S octave-quaternion

Для использования в Octave нужно выполнить:

pkg load quaternion

Ну а дальше всё согласно документации:

octave:2> q = quaternion(1)  
q = 1 + 0i + 0j + 0k

Но где-то на этом шаге можно получить ошибку:

is_real_array undefined

Происходит это, обычно, после обновления Octave, когда меняется версия API: пакет собирает библиотеку для текущей версии API Octave и помещает её в то место, где Octave может её найти согласно версии API:

/usr/lib/octave/packages/quaternion-2.4.0/x86_64-pc-linux-gnu-api-v59/

Решение: просто пересобрать пакет после обновления Octave:

yay -S --rebuild octave-quaternion

May 19, 2024 - 12 minute read - Туризм

Белый город. Вдп. Зуевский. Еломовские водопады

28 апреля - 1 мая 2024.

19 марта началось составление планов на первые майские по части похода с простого, но ёмкого вопроса-предложения Ксюши в нашем походном чатике:

Давайте замутим поход на майские?

Сразу же поступила пара предложений от Жени. Точнее одно, но с вариациями. Вариация первая - совсем по лайту. Но места интересные, для меня ещё нехоженные. Вариация вторая - при прочих вводных разведать дорогу и подняться на г.Синяя… не по Икрянкам.

Других предложений не было (у меня вообще с идеями в последние годы как-то не очень), поэтому по отсутствию возражений остановились на первом варианте: водопад Зуевский, скальный массив “Белый город”, Еломовские водопады и радиальный выход на гору Лысая.

Группа собралась из пяти человек:

  • Я, т.е. Саша
  • Женя
  • Маша
  • Ксюша
  • Алина

May 19, 2024 - 1 minute read - Linux

Thinkpad P15Gen2: Linux Vendor Firmware Service (LVFS)

Как-то забывал сделать заметку, что данный ноутбук поддерживает обновления встроенных прошивок (как минимум BIOS и далее по накату: UEFI, System firmware, EC и так далее) через через Linux Vendor Firmware Service (LVFS), для его используется пакет fwupd.

Несколько месяцев назад у меня на ровном месте перестала работать Ethernet карточка, обновление FW решило вопрос в положительном русле.

У меня последовательность обновлений выглядит так:

sudo fwupdmgr get-devices
sudo fwupdmgr refresh --force
sudo fwupdmgr get-updates
sudo fwupdmgr update

Перед началом лучше закрыть всё лишнее и быть готовым к запросу на перезагрузку. Ну и питание от сети лучше не отключать.

May 15, 2024 - 4 minute read - Linux

Восстановление через U-Boot

Хотел на Khadas VIM3 выключить DWC3 (USB Host controller), сделал оверлей, поместил в /boot/dtb/overlays/kvim3, добавил запись в /boot/env.txt и… получил кирпич.

Оверлей простой и, вроде, правильный (в конце приведу), но система отказалась загружаться. Возможно на его клоки или ещё что что-то завязано, что не даёт ядру загружаться дальше. Но возникает резонный вопрос: “Шо делать!?”

Дальше посмотрим один из вариантов, как это можно решить. Возможно пригодится и на других платформах.