Использование git pw

При bleeding edge разработке или просто в рамках экспериментов, приходится добавлять патчи прямиком из maillists. Скачивать серию вручную и сохранять в mbox можно действительно озвереть даже не смотря на то, что, например в mutt, можно спокойно выделить патчи по одному и сохранить всю пачку (ключевое слово здесь спокойно). ...

15 декабря 2021 г. · 3 минуты · maquefel

Создание образа Ubuntu для ARM «from scratch»

Когда разработка только начинается часто еще непонятно какие именно пакеты пойдут в целевую rootfs. Иными словами хвататься за LFS, buildroot или yocto (или еще что-то) еще рано, а начинать уже нужно. Для богатых (у меня на пилотных образцах 4GB eMMC) есть выход раздать разработчикам дистрибутив, который позволит оперативно доставить что-то чего не хватает в данный момент, а затем мы всегда можем собрать списки пакетов и сформировать список для целевой rootfs. ...

10 декабря 2020 г. · 6 минут · maquefel

Функция buildargv с помощью Ragel

Забавное использование Ragel State Machine Compiler для создания функции разбора строки на int argc, char *argv[]. Все началось с того, что понадобилась функция buildargv, чтобы разбирать строку для последующей передачи в int main (int argc, char *argv[]) { body } Ну ладно подумал я, не может быть, чтобы нигде нельзя было позаимствовать, сейчас найдем… И не нашёл… ...

15 января 2020 г. · 3 минуты · maquefel

auto git bisect на примере ядра Linux

Данная заметка имеет собой цель продемонстрировать автоматический git bisect на примере ядра Linux. С последующим поиском официальной версии начиная с которой всё поломалось и последней хорошей версии. Описание инструментария Инструментарий1 представляет собой простой проект для сборки ядра и модулей с минимальным конфигом достаточным для запуска в qemu, минимального busybox, конфигурационных файлов и небольшого количества скриптов. ...

15 января 2020 г. · 6 минут · maquefel

Вся правда о linux epoll

Ну или почти вся… Я считаю, что проблема в современном интернете — это переизбыток информации разного качества. Найти материал по интересующей теме не проблема, проблема отличить хороший материал от плохого, если у вас мало опыта в данной области. Я наблюдаю картину, когда очень много обзорной информации “по верхам” (практически на уровне простого перечисления), очень мало углубленных статей и совсем нет переходных статей от простого к сложному. Тем не менее именно знание особенностей того или иного механизма и позволяет нам сделать осознанный выбор при разработке. ...

18 июля 2018 г. · 11 минут · maquefel

Заметка о новом интерфейсе linux kernel — gpio uapi

Начиная с версии ядра 4.6-r1 нам стал доступен новый интерфейс для взаимодействия с подсистемой ядра gpio. Теперь существует три официальных способа работы с gpio и получения от них прерываний. Нет смысла углубляться в потребности для данной подсистемы, для малой части это суровые будни, для другой части веселое хобби, и для всех вместе в ядре была предоставлена новая возможность взаимодействия. ...

27 марта 2018 г. · 7 минут · maquefel

Использование gpio-generic и irq_chip_generic для драйвера gpio

Введение Данная статья является логичным продолжением предыдущей и её прочтение рекомендуется после ознакомления с предшествующим материалом. Текущая заметка необходима для понимания последующего материала, дополнительного понимания подсистемы gpio в целом и способствует разработке собственных gpio драйверов. Положения данной статьи уже применимы не только к нашему виртуальному драйверу gpio, но и к любому mmio gpio драйверу в целом. Речь пойдет об упомянутой в предыдущей части “оптимизации”. ...

26 января 2017 г. · 6 минут · maquefel

Драйвер виртуальных GPIO с контроллером прерываний на базе QEMU ivshmem для Linux

Трудно недооценить роль GPIO, особенно в мире встраиваемых систем ARM. Помимо того, что это крайне популярный материал для всех руководств для начинающих, GPIO обеспечивают способ для управления многими периферийными устройствами, выступают в качестве источника ценных прерываний, или даже могут быть единственным доступным способом общения с миром для SOC. ...

7 июля 2016 г. · 19 минут · maquefel