Hatred's Log Place

DON'T PANIC!

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 и… получил кирпич.

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

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

May 14, 2024 - 3 minute read - Linux

KDE 6 и HiDPI

Дошёл до Manjaro и переезд на KDE6. В лучших традициях жанра, альтернативы в виде KDE5 не оставили.

Но не так страшен чёрт оказался. Правда, при моих 141 DPI (1080p при мониторе 15.6", скрипт для Octave для расчёта тут) пришлось повозиться.

Если ничего не менять, то всё мелко. Если следовать рекомендациям и ставил глобальное масштабирование в 150%, которое и даёт DPI 144, то всё становится адово огромным. При этом установка DPI меняет не только шрифты, но и размеры элементов интерфейса (б$@). В результате вспомнил, что как только у меня QtC стал собираться с Qt6 в какой-то апдейт он тоже стал на моих 141, полез в мой родной .qtc-override (это моя самодеятельность, не обращайте внимание) и выставил теперь для всей системы то, что стояло для Qt Creator:

export QT_SCALE_FACTOR_ROUNDING_POLICY=RoundPreferFloor

что дало то, что мне прямо вот нужно!

Прописал этот параметр в ~/.config/plasma-workspace/env/dpi.sh. Для других окружений можно, например, в ~/.profile или в ~/.config/environment.d/dpi-plasma.conf, но в виде без export:

QT_SCALE_FACTOR_ROUNDING_POLICY=RoundPreferFloor

Детали:

При этом ложка дёгтя остаётся. Глобальное масштабирование рьяно требует шага в 6.25% (на X11). Как я выше писал: для 15.6" монитора при FullHD матрице - это 141 DPI. Два ближайшие значения глобального скалирования, кратные 6.25% это:

  • 150%, что даёт DPI 144
  • 143.75%, что даёт DPI 138

И мои 141 аккурат по середине: 3 пункта вверх и 3 пункта вниз. Ни туда, ни сюда. 138 DPI подходит, наиболее близко для новых матриц в 16". Но для X11 остаётся возможность вручную скорректировать DPI на вкладке Fonts, хотя они и не рекомендуют делать этого. На Wayland сессии этой возможности нет, но, вроде, нет и ограничения на кратность 6.25% (а ещё можно кратность меньше 100% задать). Wayland сильно не тыкал палочкой, так как там нужный мне VirtualBox тупо не работает (точнее гостевые OS с GUI, типа Windows 10).

Короче, что-то у них хреново с промежуточными DPI отличными от 100..200..300% но хоть такие ручки есть.

Ну и резюмируя:

  1. Указываем переменную QT_SCALE_FACTOR_ROUNDING_POLICY (у меня в RoundPreferFloor)
  2. На X11:
    1. Ставим глобальный масштаб (“Input & Output” → “Display & Monitor” → “Display Configuration”) в ближайшее значение, что даёт 141 DPI, для простоты пусть будет 150%
    2. Корректируем DPI в 141 в настройках шрифтов (“Appearance & Style” → “Fonts” → “Fonts” и “Force Font DPI” в нужное значение). Или не трогаем, если вас всё устраивает. Плюсом не трогать: per-monitor работа.
  3. На Wayland:
    1. Судя по всему, только ручками глобального масштаба.

ЗЫ да, напоминаю, что 100% - это 96 DPI, поэтому все множители отсюда и пляшут. Исторически сложилось. Хотя на странице со скриптом-калькулятором физически у мониторов может быть любая дичь.

May 10, 2024 - 7 minute read - Туризм

Кривая Литовка нонстоп

В субботу 13 апреля Женя Воеводский анонсировал лёгкую прогулку от электрички до электрички на хр.Большой Воробей. В результате мы и сходили от электрички до электрички, но есть нюанс.

Apr 12, 2024 - 3 minute read - Programming C++

Conan vs vcpkg

UPD 2024-04-15 vcpkg поборол, причём статику сгенерил как при помощи системного MinGW из Manjaro, так и с тулчёном из MXE. Подробности чуть позже. Conan в пролёте. UPD 2024-04-23 а вот и подробности: Conan vs vcpkg, действие второе

дискас.

А вообще, мне нужно было кросс-компильнуть максимально статический бинарник из-под Linux в Windows. Оба не справились, но vcpkg продвинулся дальше.

Не без мук, но дальше. Настолько дальше, что бинарь он отстроил… но в конце он зачем-то пытается сделать:

/bin/sh: строка 1: powershell.exe: команда не найдена  
ninja: build stopped: subcommand failed.

o_O

А быстрее всего и с минимальными телодвижениями справился MXE, но он чисто под MinGW кросс-компиляцию и создаёт свой sysroot. Понятно, что как универсально средство - не очень подходит.

MXE можно использовать и только собрать тулчейн (make cc), а остальное отдать на откуп пакетникам. vcpkg частично справляется (см выше). Conan на рецепте iconv свалился из-за косяка в рецепте (жёстко ищет RC компилятор с именем windres, причём не понятно по каким путям), а что-то сходу как его заоверлеить я не нашёл (MXE и vcpkg позволяют это и достаточно лехко).

ЗЫ у меня в системном MinGW тулчейне сломали статическую сборку.

Apr 8, 2024 - 2 minute read - Linux

Гибридная графика: проблема с wine и не только

Итак, список проблем:

  • При запуске Wine, даже обычного winecfg система блочится, что-то далает, потом отдупляется, но приложение не запускается. Если при этом запустить быстро повторно, то запуск происходит
  • Долго запускается geeqie, прям вот сильно долго для простого приложения
  • В хоте разбирательств выяснилось, что долго отрабатывает с блоком системы и банальный вывод xrandr --listproviders

Методом проб выяснилось: проблема в драйвере modesettings для Xorg. Переключение на Intel в настройках решает проблему.

UPD 2024-05-19: установка драйвера nvidia-open-beta-dkms из AUR так же решает проблему и позволяет работу с modesetting.

Но. Блин, всегда эти но. Я не сильно часто делаю скриншоты, но тут оказалось, что это дело поломано. А раз поломано, то использовать так и тянет. Поломка заключается в том, что при смене настроек на использование драйвера на Intel приводит к тому, что время от времени скриншотилки делают снимок какого-то кадра из прошлого o_O. Переключение эффектов выкл/вкл временно решает проблему.

Аналогичные артефакты при трансляции экрана: Google Meeting, Telegram, Яндекс.Телемост, да, думаю, во всех. Переключение эффектов так же временно решает проблему.

В ходе дальнейших исследований и экспериментов, показало, что принудительное выключение DRI3 решает проблему, ну или очень сильно её скрывает.

Свои изыскания выложил изначально на форуме Manjaro, где чувак столкнулся с той же проблемой, а ему начали накидывать какой-то бред:

Итоговый конфиг для Xorg /etc/X11/xorg.conf.d/20-intel.conf:

Section "Device"
    Identifier "Intel Graphics"
    #Driver "modesetting"
    Driver "intel"
    Option "Backlight" "intel_backlight"

    # integrated intel
    BusId "PCI:0:2:0"

    Option "DRI" "2" # Turn Off DRI3 here
    Option "TearFree" "true"
EndSection

BusId нужно будет скорректировать под вашу систему. Значение полностью соответствует выводу lspci, без лидирующих нулей.

Ну и связанные ссылки:

Apr 8, 2024 - 1 minute read - IT Linux

Wayland and...

Я тут решил попытаться запуститься с Wayland.

Потыкал перекодирование с CUDA (nvenc), вроде работает. А потом запустил VirtualBox (у меня там несколько билд-окружений на MSVS)… Короче, в гостевой системе напрочь неработает мышь. Не знаю кто виноват, но в одном случае оно работает, а в другом - нет. Проблема обозначена уже 4 года как.

Мелочи, типа увеличенного мышиного курсора в Firefox, по сравнению с другими окружениями не рассматриваю.

А, ну и из прошлых попыток - падение kwin вызывало падение сессии, что для меня, расслабленного X11 выглядит дико. Базару ноль, софт писать нужно так, что бы не падал. Но… но быстро поднятое упавшим не считается и если такое случилось, то пусть труды останутся живыми.

Apr 3, 2024 - 1 minute read - Programming

Git: выключение вывода через pager для отдельных команд

В последнее время обратил внимание, что Git пытается использовать вывод через Pager, типа less, к месту и не к месту. К примеру, вывод diff мне даром через него не нужен, как и вывод git branch. Судя по всему, не мне одному такое не нравится.

Ответ там же по ссылке. Если коротко: для каждой подкоманды можно настроить использование pager индивидуально:

git config --global pager.branch false
git config --global pager.diff false

Mar 19, 2024 - 1 minute read - Life IT

Acer Laptop: выключаем Secure Boot

Заметка касается Acer Aspire ES 11, но судя по всему, касается многих других ноутбуков.

Итак, нужно поставить Manjaro, захожу, что бы выключить Secure Boot, который включен по умолчанию, но настройка затенена. WTF!?

Так же практически ничего не доступно на вкладке Security, кроме Set Supervisor Password и Set HDD Password. Так вот, что бы поменять все остальные настройки, нужно обязательно установить Set Supervisor Password! Более того, как настроите, что нужно, его можно сбросить: просто вместо нового пароля ввести оба раза пустой. Помимо настроек на этой вкладке становится доступна для изменения опция Secure Boot на вкладке Boot.

В общем:

  1. Ставим Supervisor Password
  2. Ставим Secure Boot в Disabled
  3. Сбрасываем Supervisor Password
  4. Сохраняемся, перезагружаемся
  5. Enjoy!