Hatred's Log Place

DON'T PANIC!

Sep 1, 2017 - 1 minute read - programming

Bioshock 1, 2 Localization reverse

Вроде не делал анонс…

Серия старых скринкастов, описывающая процесс разбора формата файлов локализации игр Boishock 1 и 2, создания библиотеки для распаковки/паковки и графического кросс-платформенного архиватора.

Залито на ютуб, что бы не занимало место на диске. Плюс ценность сомнительная, что бы делать более правильный бекап :wink:

Ссыль: https://www.youtube.com/playlist?list=PLUrplWzJ_-EupzIVpgfRlarNjN0zcarpr

Aug 25, 2017 - 3 minute read -

Qt Creator, Baremetal и связка GDB>=7.7.1+OpenOCD

Если коротко, то эта связка криво работает. Поймано на ARM GDB 8.0, но воспроизводится и на 7.12.1. При наличии на борту устройства какой-либо RTOS. У меня это ThreadX. Хотя, возможно, для других всё отработает нормально. Но это мало что меняет: на старом GDB 7.7.1 тот же OpenOCD работает.

Суть проблемы и способ её решения без вмешивания в код под катом.

Aug 25, 2017 - 1 minute read -

Проблема с зависанием при выходе из сна

Проблема на ядрах 4.12 и 4.13 в Manjaro. На ядре 4.11 проблема не наблюдается. Засыпание в память, не на диск.

Пока окончательного решения не найдено. Ниже ссылки, которые будут определять направление движения:

  1. https://forum.manjaro.org/t/linux-4-12/27111/74 * тут много чего: и отказ от blk-mq и игра с модулями ядра для virtualbox host и рекомендация остановить tlp (не мой случай). * Отказ от blk-mq:
  2. https://forum.manjaro.org/t/kernel-4-12-crashes-when-resuming-from-suspending/28435/52 * название говорит само за себя:
    • отказ от blk-mq
    • замена bfq-mq на bfq-sq
    • отказ от bfq в пользу deadline или cfq
  3. https://digi-merc.org/blog/2017-05-16-archlinux-freeze-resume/ и https://www.reddit.com/r/archlinux/comments/4ytogl/suspend_to_ram_would_randomly_freeze_the_computer/ * замена асинхронного засыпания, последовательным. Возможно может решить часть проблем связанhttps://01.org/blogs/rzhang/2015/best-practice-debug-linux-suspend/hibernate-issuesные с железом и гонками.

После пары перезагрузок, включения bfq-mq на HDD вместо mq-deadline и установки не-DKMS версии virtualbox host, проблему не получается решить.

Для отладки использую следующую методику:

  1. логин на первой консоли и: while true; do dmesg | tail -n 30; sleep 1; done
  2. логин на второй консоли и: sudo tail -f /var/log/everything | grep -v 'Tor<br/>['
  3. логин на третьей консоли, ничего не вводим, используем как дисплей, но SysRq командой повышаем уровень логирования до максимального: Alt+SysRq+9 (для T530: Alt+Fn[press]+S[press]+S[release]+Fn[release]+9)

После чего работает в обычном режиме.

Прочее полезное:

Aug 10, 2017 - 1 minute read - USB

Онлайн парсер для USB дескрипторов и запросов

Собственно полезно при отладке и разборе:

Запросов - подразумевается SETUP. Разбирает только стандартные запросы. Специфичные для интерфейсов, даже стандартных функций - нет.

Умеет:

  • разбор дескрипторов
  • разбор SETUP запросов
  • разбор HID дескрипторов (не проверял)

Чумовой особенностью этого парсера является:

The page uses Javascript, so it must be enabled. This page can be downloaded and used offline, because it does not depend on any external or online resources.

Так что…

Aug 5, 2017 - 1 minute read -

OpenRC и русский в консоли

Чисто декларативная заметка.

  1. Добавляем в загрузку сервисы:``` sudo rc-update add consolefont boot sudo rc-update add keymaps boot
  1. Для настройки шрифта правим `/etc/conf.d/consolefont`, устанавливаем параметр `consolefont=`, остальное не трогаем:```
consolefont="UniCyr_8x16"
* Прочие варианты шрифтов можно посмотреть:```

ls /usr/share/kbd/consolefonts

    * Поиграться с установкой шрифта можно при помощи команды `sudo setfont <FontName>`.
  1. Для настройки раскладки и переключателя правим `/etc/conf.d/keymaps`, устанавливаем параметр `keymap=`, остальное - по желанию:```
keymap="ruwin_cplk-UTF-8"
* Прочие варианты раскладки можно посмотреть:```

ls /usr/share/kbd/keymaps/i386/qwerty

    * Поиграться с установкой раскладки можно при помощи команды `sudo loadkeys <KeymapName>`

Опционально можно перезагрузиться или запустить сервисы вручную:

sudo service consolefont restart sudo service keymaps restart

Aug 3, 2017 - 2 minute read -

Тюнинг перьевой ручки

Недавно случилась беда: грохнул о бетонный пол свою Platinum Balance F. Пером. Которое сломалось. Осталась такая же ручка с пером M, которая, вроде, всем хороша, но сильно большая подача у неё.

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

Но когда не стало ручки, чьё письмо меня более чем устраивало, пришлось выводить из резерва M-ку. И вопрос уменьшения подачи чернил стал очень остро.

Jun 29, 2017 - 2 minute read -

AUR helpers и отладочные данные

Спека PKGBUILD позволяет сделать финт ушами и автоматически сгенерировать пакет с отладочной информацией, которую можно ставить, а можно и не ставить (занимает приличное количество места в распакованном виде).

Ещё эта спека позволяет в один проход создать несколько пакетов. Допустим разделить на основную часть и документацию или общие библиотеки, которые могут использоваться другими приложениями и бинарники.

Всё это становится очень интересным в контексте использования с AUR. Когда я ушёл с Arch Linux, разделённые (split) пакеты в нём были роскошью. Сейчас они поддерживаются. А вот как обстоят дела с помощниками (helpers, далее по тексту: хелперы), которые собирают и устанавливают в систему?

Jun 23, 2017 - 1 minute read -

[Memo] Manjaro OpenRC: персистентные сетевые настройки

Можно сделать при помощи Netifrc:

Три шага:

  1. правим /etc/conf.d/net, настраиваем свой интерфейс IFACE.
  2. для нужного сетевого интерфейса (IFACE) делаем симлинк:ln -s /etc/init.d/net.lo /etc/init.d/net.IFACE
  3. если нужно стартовать автоматом: rc-update add net.IFACE default * вручную: service net.IFACE start/stop/restart

Jun 8, 2017 - 1 minute read -

Manjaro OpenRC: обновление elogind ломает Network Manager после выхода из сна [FIXED]

Собственно вот такое обновление:

[2017-05-28 10:33] [ALPM] upgraded libelogind (228.3-1 -> 229.3-1)
[2017-05-28 10:34] [ALPM] upgraded elogind (227.2-1 -> 229.3-1)

Самый простой вариант: откатиться. Прочие смотрятся тут:

Прицепом:

UPD: Последнее обновление (2017-06-20) починило проблему:

  • elogind -> 229.6-1
  • libelogind -> 229.6-1

Apr 24, 2017 - 1 minute read - linux programming USB

Идея для BadUSB

Если создать USB-устройство, которое реализует интерфейс пера или тачскрина с абсолютными координатами, задать для осей X и Y значения:

  • min = 0
  • max = 65535

и сделать (эмуляция) хотя бы одно перемещение, то, как минимум, Windows 8, 8.1 и 10 реагируют BSOD и перезагрузкой. Linux работает нормально.

Mar 23, 2017 - 1 minute read -

Корпуса SMD компонентов

Они же - компоненты для поверхностного монтажа. Мне они в последнее время всё больше нравятся для домашнего прототипирования и поделок: меньше занимают места при хранении и если руки дошли до печатной платы, не нужно сверлить кучу дырок. Но маркировка и обилие корпусов - это адъ.

Вот хорошая PDF которая может помочь разобраться:

Дополнительные ссылки:

  • https://en.wikipedia.org/wiki/Surface-mount_technology - тут есть про размеры корпусов в метрических и имперских единицах (становится понятно откуда берутся обозначения типа 1206, 0805), расшифровки аббревиатур (SMD/SMA/SMT/etc)
  • http://www.smd.ru/ - можно использовать как каталог, что бы сориентироваться
  • на Али можно поискать наборы для диодов, стабилитронов, транзисторов (китайских популярных)

Mar 22, 2017 - 1 minute read - programming c++

C++17 Features

Пока лучший, что я нашёл, обзор новых фич C++17 с примерами и информацией о поддержке в компиляторах:

А вот обзор от команды Яндекса, которая теперь представляет РГ21 C++ Россия:

Вот и другие авторы начинают подтягиваться, в том числе - официальные источники: