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 тулчейне сломали статическую сборку.
Итак, список проблем:
- При запуске 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
, без лидирующих нулей.
Ну и связанные ссылки:
Я тут решил попытаться запуститься с Wayland.
Потыкал перекодирование с CUDA (nvenc), вроде работает. А потом запустил VirtualBox (у меня там несколько билд-окружений на MSVS)… Короче, в гостевой системе напрочь неработает мышь. Не знаю кто виноват, но в одном случае оно работает, а в другом - нет.
Проблема обозначена уже 4 года как.
Мелочи, типа увеличенного мышиного курсора в Firefox, по сравнению с другими окружениями не рассматриваю.
А, ну и из прошлых попыток - падение kwin вызывало падение сессии, что для меня, расслабленного X11 выглядит дико. Базару ноль, софт писать нужно так, что бы не падал. Но… но быстро поднятое упавшим не считается и если такое случилось, то пусть труды останутся живыми.
В последнее время обратил внимание, что Git пытается использовать вывод через Pager, типа less, к месту и не к месту. К примеру, вывод diff мне даром через него не нужен, как и вывод git branch
.
Судя по всему, не мне одному такое не нравится.
Ответ там же по ссылке. Если коротко: для каждой подкоманды можно настроить использование pager индивидуально:
git config --global pager.branch false
git config --global pager.diff false
Заметка касается Acer Aspire ES 11, но судя по всему, касается многих других ноутбуков.
Итак, нужно поставить Manjaro, захожу, что бы выключить Secure Boot, который включен по умолчанию, но настройка затенена. WTF!?
Так же практически ничего не доступно на вкладке Security, кроме Set Supervisor Password и Set HDD Password. Так вот, что бы поменять все остальные настройки, нужно обязательно установить Set Supervisor Password! Более того, как настроите, что нужно, его можно сбросить: просто вместо нового пароля ввести оба раза пустой. Помимо настроек на этой вкладке становится доступна для изменения опция Secure Boot на вкладке Boot.
В общем:
- Ставим Supervisor Password
- Ставим Secure Boot в Disabled
- Сбрасываем Supervisor Password
- Сохраняемся, перезагружаемся
- Enjoy!
16.03.2016, помним.
Справа в ссылках на ресурсы добавил ссылку на
канал в Telegram куда автоматом перекладываются статьи из бложика. Помимо этого, завёл шаблон Instant View, и ссылка фильтруется через него, так что читать статью на мобильных устройствах можно прямо из телеги. Дискуссии тоже открыты.
PS всего-то 4 года прошло, как канал появился :-D
Сетап:
- Удалённое устройство, подключенное к серверу на Linux
- Управление через COM порт
- Управление тулом под Windows
- Есть SSH доступ
- Само устройство успешно удалённо программируется и отлаживается по JTAG
Нужно:
- Запустить тул локально под Virtual Box (локальная машина тоже Linux)
- Пробросить удалённый последовательный порт локально
- Пробросить его в Virtual Box
Поиск в интернете даёт сходу два результата:
Оба пакета имеются в наличии в Manjaro/ArchLinux и поставить просто:
socat
, к слову, уже был поставлен как зависимость kwallet-pam
.
ser2net
реализует RFC2217.
На ноябрьские праздники группой единомышленников сгоняли Снежную по маршруту с севера. Хотя, если смотреть карту, то больше похоже на маршрут с Запада :)
Идея сделать, а если быть точнее, то закрыть этот траверс родилась в моей голове как шутка, переросшая в навязчивую идею.
Выбрались в очередной раз на Фалазу с сыном. На этот раз собралась целая компания отцов:
- Я с Андреем
- Валентин со Львом
- Стас с Марком
- и Паша с Арсением
Сходили душевно. Пацаны залетели на вершину на одном дыхании, уже за ними нужно поспевать. Попали в зимнюю сказку, при этом на вершине вышло, как по заказу солнце и было очень тепло. Немного поиграли даже в снежки :)
Фото:
https://disk.yandex.ru/a/3bEPHunfJyViAg
Полторы недели назад в группе пролетел анонос, что компания ищет попутчиков на г.Сестру. Маршрут классический, пешка в один день с ночёвкой в приюте в Лазо. В понедельник вписался в эту затею, так как до этого времени ещё не дошёл до этой горы.
Как обычно, на первые выходные октября собрал группу на мой традиционный выход. Правда традиция оказалась больше традицией для меня, но всё же: назвался груздем - полезай в кузов, или: назвал традицией - чти :)
Потребовалось сделать в приложении анонсирование и поиск себе подобных. Причём без завязки на системный Avahi.
Выбор пал на три реализации mDNS/DNS-SD:
Первый отбросил из рассмотрения, так как показался слишком переусложнённым. Потом пошёл смотреть на libmicrodns - получилось собрать прототип очень быстро - мало кода. Но… жирный крест поставило то, что они до сих пор не исправили косяк, что нужно JOIN TO GROUP делать. Без этого анонсирование работает нормально, а вот запросы/поиск будет только на неком дефолтном, первом интерфейсе.
Пошёл на mdns. Для интеграции нужно больше кода, но почти весь можно как есть взять из примера mdns.c, библиотека без внутренних аллокаций. И очень неплохо дружится с внешними event-loop’ами, будь то libev или asio.
В общем, мой выбор - mdns.
А под катом - небольшая табличка сравнительная. Жирным - критерий преобладающий над соперником. Если ничто не выделено - нет приоритета.
Короткая заметка и ссылки. Возможно потом дополню информацией о разрешении (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
- EXTx (EXT2/3/4)