Hatred's Log Place

DON'T PANIC!

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!

Dec 13, 2023 - 1 minute read - Life

Добавил ссылку на канал в Telegram

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

PS всего-то 4 года прошло, как канал появился :-D

Dec 5, 2023 - 5 minute read - Programming

Проброс последовательного порта по сети

Сетап:

  • Удалённое устройство, подключенное к серверу на Linux
  • Управление через COM порт
  • Управление тулом под Windows
  • Есть SSH доступ
  • Само устройство успешно удалённо программируется и отлаживается по JTAG

Нужно:

  • Запустить тул локально под Virtual Box (локальная машина тоже Linux)
  • Пробросить удалённый последовательный порт локально
  • Пробросить его в Virtual Box

Поиск в интернете даёт сходу два результата:

Оба пакета имеются в наличии в Manjaro/ArchLinux и поставить просто:

pacman -S socat ser2net

socat, к слову, уже был поставлен как зависимость kwallet-pam.

ser2net реализует RFC2217.

Nov 7, 2023 - 9 minute read - Туризм

Снежная с севера

На ноябрьские праздники группой единомышленников сгоняли Снежную по маршруту с севера. Хотя, если смотреть карту, то больше похоже на маршрут с Запада :)

map.jpg

Oct 22, 2023 - 1 minute read - Туризм

Семейная Фалаза или путешествие в зимнюю сказку

Выбрались в очередной раз на Фалазу с сыном. На этот раз собралась целая компания отцов:

  1. Я с Андреем
  2. Валентин со Львом
  3. Стас с Марком
  4. и Паша с Арсением

Сходили душевно. Пацаны залетели на вершину на одном дыхании, уже за ними нужно поспевать. Попали в зимнюю сказку, при этом на вершине вышло, как по заказу солнце и было очень тепло. Немного поиграли даже в снежки :)

Фото: https://disk.yandex.ru/a/3bEPHunfJyViAg

Oct 15, 2023 - 7 minute read - Туризм

Гора Сестра

Полторы недели назад в группе пролетел анонос, что компания ищет попутчиков на г.Сестру. Маршрут классический, пешка в один день с ночёвкой в приюте в Лазо. В понедельник вписался в эту затею, так как до этого времени ещё не дошёл до этой горы.

map

Oct 9, 2023 - 8 minute read - Туризм

Традиционная Читинза

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

map.jpg

Oct 2, 2023 - 2 minute read - programming

mdns vs libmicrodns

Потребовалось сделать в приложении анонсирование и поиск себе подобных. Причём без завязки на системный Avahi.

Выбор пал на три реализации mDNS/DNS-SD:

Первый отбросил из рассмотрения, так как показался слишком переусложнённым. Потом пошёл смотреть на libmicrodns - получилось собрать прототип очень быстро - мало кода. Но… жирный крест поставило то, что они до сих пор не исправили косяк, что нужно JOIN TO GROUP делать. Без этого анонсирование работает нормально, а вот запросы/поиск будет только на неком дефолтном, первом интерфейсе.

Пошёл на mdns. Для интеграции нужно больше кода, но почти весь можно как есть взять из примера mdns.c, библиотека без внутренних аллокаций. И очень неплохо дружится с внешними event-loop’ами, будь то libev или asio.

В общем, мой выбор - mdns.

А под катом - небольшая табличка сравнительная. Жирным - критерий преобладающий над соперником. Если ничто не выделено - нет приоритета.

Sep 6, 2023 - 2 minute read - programming

Временные метки на файловых системах

Короткая заметка и ссылки. Возможно потом дополню информацией о разрешении (resolution) временных меток.

  • FAT/FAT32
    • Хранит локальное время, без указания Timezone. Поменяешь в системе зону - время создания файлов останется без изменений. Т.е. нужно помнить в какой ТЗ они создавались.
    • Windows сохраняет вот прям вот локальное время
    • Linux добавляет час, при переводе часов
    • timestamp:
      • дата 16 битное число: 7 бит - год, 4 бита - месяца, 5 бит - день. Год в диапазоне 1980-2107.
      • время 16 битное число для часов, минут, секунд
  • exFAT:
    • Время хранится локальное. Но есть нюанс.
    • Временная зона хранится в 1 байте. Vista SP1 не использует его. Что бы нормально жилось, старший бит сигнализирует - применять или нет смещение зоны. 0 - не применять. 1 - применять. Остальные 7 бит - 15минутные интервалы для смещения. Положительное направление - на восток.
    • Т.е. если бит 7 в TZ поднят, то система будет пересчитывать время файла в UTC, что бы корректно отобразить в системе при смене часового пояса. Эдакая обратная совместимость.
  • NTFS
    • Время хранится в UTC
  • EXTx (EXT2/3/4)
    • Время хранится в UTC

Aug 18, 2023 - 1 minute read - programming

QtC: снова про отображение всех файлов в стоковом плагине CMake

Это логическое продолжение этого с учётом нововвидений по добавлению файлов.

Весь “код” разместил на GitHub: qtc-other-files-helper. Там же есть и детальное описание.

Тезисно:

  • Так же используем вспомогательный файл
  • Так же используем кастомный таргет
  • Но уже не сканируем дерево: отдаём на откуп пользователю, что добавить, что убрать. Что бы не конфликтовать с существующими файлами.
  • Не используется CMAKE_TOOLCHAIN_FILE, вместо него - CMAKE_PROJECT_INCLUDE.
  • Доработано решение для использования как на уровне per-project, так и глобально, на уровне Kit. Но бросить файлик второй в директорию с проектом всё равно нужно будет.

Из косяков:

  • При добавлении файлов, QtC стремиться создать новую запись target_sources() в CMakeLists.txt верхнего уровня. Приходится вручную вырезать и вставлять в qtc-other-files.cmake

Ну и в старом способе была проблема, что эти файлы попадали в кодовую модель и мешали парсеру. Детально не разбирался в новых реалиях.

Jun 23, 2023 - 1 minute read - Linux

ArchLinux: получение исходников системного пакета

Как обычно в мемориз.

Раньше был тул abs, потом вся структура мигрировала на Git. Теперь что бы получить пакет нужен тул Arch Build Source Management Toolили коротко - asp. Не путать с ASPLinux… Да был когда-то такой.

Ставится:

sudo pacman -S asp

Получить PKGBUILD:

asp checkout PKGNAME

или:

asp export PKGNAME

Например:

asp checkout kdiff3

Далее работам как обычно с PKGBUILD: makepkg с полезными опциями. Сам спек правим по необходимости.

На чистом Arch Linux ещё есть пакет devtools, который содержит тул pkgctl, который позволяет достичь той же цели: получить PKGBUILD для сборки:

pkgctl repo clone PKGNAME

На производных, типа Manjaro (мой случай) этого тула может не быть. А вот asp - есть.

Полезные ссылки:

  1. Arch Build System

May 4, 2023 - 2 minute read - programming projects

Qt Creator & CMake: завезли добавление/удаление/переименование файлов

Итак, обновляю свой CMakeProjectManager2 и что я вижу:

  • 71eb0ab9f8e98df9bd021c1c49d7ec00a66492cb - завезли парсер CMake в стоковый плагин.
  • d41365610ff80478d8c6c2812299d95d139561ec - его интегрировали в билд.
  • d8be2491a5f5cfdc512f63c766a550dd43694063 / 13 апреля 2023 - реализовали добавление новых и существующих файлов к таргету, причём файл пытается добавляться прямо в CMakeLists.txt: файл будет добавлен последним элементов к соответствующей “well-known” функции (они захардкожены) типа add_executable(), add_library(), qt_add_executable(), qt_add_library(), qt6_add_executable(), qt6_add_library(). Для кастомных функций будет добавлен вызов target_sources(), что тоже неплохо. Уже можно начинать пользоваться.
  • 039baab6e70160bc8130ef95e499141f7c875225 / 20 апреля 2023 - реализовали вышеперечисленное для QtQuick проектов, в список “well-known” функций добавились: qt_add_qml_module(), qt6_add_qml_module()
  • 54af6bd5b3f5ba5e3396f5cb9eb539f198abafff / 21 апреля 2023 - разрешили переименовывать файлы. Работает как для явно указанных файлов, так и для добавленных через file(GLOB|GLOB_RECOURSE).
  • 411b2e05b8ac4442d1ef179381dc7c37492ab37b / 24 апреля 2023 - разрешили удалять файлы.
  • 5c2b2966e78129dcbd220e35e15f6278a1b3d05d / 27 апреля 2023 - разрешили добавлять существующую директорию. Пока, как я понял, добавляются все файлы, а не add_subdirectory(). Что, по мне, более логично: все операции target-ориентированные.
  • 874b1133d9cfaef179851aa925b7d6b96e85019b / 26 апреля 2023 - пофиксили удаление и переименование, что бы оно срабатывало и с файлами, которые указываются через переменные для таргета.

Ну и пачка мелких фиксов.

На текущий момент, меня огорчает отсутствие вывода всех файлов их проектной директории (например, README.md или скрипты вспомогательные, которые вполне можно редактировать в QtC), но уже можно начинать пытаться нормально работать.

Собственно в рамках CMakeProjectManager2 я теперь попытаюсь реализовать возможность отобразить всех файлов, по аналогии с текущей реализацией и подключить добавление файлов из апстрима.

А вообще, тенденция к тому, что CMakeProjectManager2 можно будет выкинуть меня радует!