<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Записи on Maquefel's Stash</title><link>https://maquefel.me/ru/posts/</link><description>Recent content in Записи on Maquefel's Stash</description><generator>Hugo</generator><language>ru</language><lastBuildDate>Wed, 15 Dec 2021 12:53:54 +0000</lastBuildDate><atom:link href="https://maquefel.me/ru/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Использование git pw</title><link>https://maquefel.me/ru/using_git_pw/</link><pubDate>Wed, 15 Dec 2021 12:53:54 +0000</pubDate><guid>https://maquefel.me/ru/using_git_pw/</guid><description>&lt;p>При bleeding edge разработке или просто в рамках экспериментов, приходится добавлять патчи прямиком из maillists.&lt;/p>
&lt;p>Скачивать серию вручную и сохранять в mbox можно действительно озвереть даже не смотря на то, что, например в mutt, можно спокойно выделить патчи по одному и сохранить всю пачку (ключевое слово здесь &lt;strong>спокойно&lt;/strong>).&lt;/p></description></item><item><title>Создание образа Ubuntu для ARM «from scratch»</title><link>https://maquefel.me/ru/ubuntu-arm-from-scratch/</link><pubDate>Thu, 10 Dec 2020 13:13:01 +0000</pubDate><guid>https://maquefel.me/ru/ubuntu-arm-from-scratch/</guid><description>&lt;p>Когда разработка только начинается часто еще непонятно какие именно пакеты пойдут в целевую rootfs.&lt;/p>
&lt;p>Иными словами хвататься за LFS, buildroot или yocto (или еще что-то) еще рано, а начинать уже нужно. Для богатых (у меня на пилотных образцах 4GB eMMC) есть выход раздать разработчикам дистрибутив, который позволит оперативно доставить что-то чего не хватает в данный момент, а затем мы всегда можем собрать списки пакетов и сформировать список для целевой rootfs.&lt;/p></description></item><item><title>Функция buildargv с помощью Ragel</title><link>https://maquefel.me/ru/buildargv-ragel/</link><pubDate>Wed, 15 Jan 2020 10:09:10 +0000</pubDate><guid>https://maquefel.me/ru/buildargv-ragel/</guid><description>&lt;p>Забавное использование Ragel State Machine Compiler для создания функции разбора строки на int argc, char *argv[].&lt;/p>
&lt;p>Все началось с того, что понадобилась функция buildargv, чтобы разбирать строку для последующей передачи в&lt;/p>
&lt;p>int main (int argc, char *argv[]) { body }&lt;/p>
&lt;p>Ну ладно подумал я, не может быть, чтобы нигде нельзя было позаимствовать, сейчас найдем&amp;hellip; И не нашёл&amp;hellip;&lt;/p></description></item><item><title>auto git bisect на примере ядра Linux</title><link>https://maquefel.me/ru/auto-git-bisect-%D0%BD%D0%B0-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B5-%D1%8F%D0%B4%D1%80%D0%B0-linux/</link><pubDate>Wed, 15 Jan 2020 10:05:08 +0000</pubDate><guid>https://maquefel.me/ru/auto-git-bisect-%D0%BD%D0%B0-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B5-%D1%8F%D0%B4%D1%80%D0%B0-linux/</guid><description>&lt;p>Данная заметка имеет собой цель продемонстрировать автоматический &lt;strong>git bisect&lt;/strong> на примере ядра Linux. С последующим поиском официальной версии начиная с которой всё поломалось и последней хорошей версии.&lt;/p>
&lt;h1 id="описание-инструментария">Описание инструментария&lt;/h1>
&lt;p>Инструментарий&lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup> представляет собой простой проект для сборки ядра и модулей с минимальным конфигом достаточным для запуска в qemu, минимального busybox, конфигурационных файлов и небольшого количества скриптов.&lt;/p></description></item><item><title>Вся правда о linux epoll</title><link>https://maquefel.me/ru/%D0%B2%D1%81%D1%8F-%D0%BF%D1%80%D0%B0%D0%B2%D0%B4%D0%B0-%D0%BE-linux-epoll/</link><pubDate>Wed, 18 Jul 2018 10:26:49 +0000</pubDate><guid>https://maquefel.me/ru/%D0%B2%D1%81%D1%8F-%D0%BF%D1%80%D0%B0%D0%B2%D0%B4%D0%B0-%D0%BE-linux-epoll/</guid><description>&lt;p>Ну или почти вся&amp;hellip;&lt;/p>
&lt;p>&lt;img loading="lazy" src="https://cdn-images-1.medium.com/max/1600/1*TP1smt6FsYqSVmW7Yi_foA.png">&lt;/p>
&lt;p>Я считаю, что проблема в современном интернете — это переизбыток информации разного качества. Найти материал по интересующей теме не проблема, проблема отличить хороший материал от плохого, если у вас мало опыта в данной области. Я наблюдаю картину, когда очень много обзорной информации &amp;ldquo;по верхам&amp;rdquo; (практически на уровне простого перечисления), очень мало углубленных статей и совсем нет переходных статей от простого к сложному. Тем не менее именно знание особенностей того или иного механизма и позволяет нам сделать осознанный выбор при разработке.&lt;/p></description></item><item><title>Заметка о новом интерфейсе linux kernel — gpio uapi</title><link>https://maquefel.me/ru/linux-kernel-gpio-uapi/</link><pubDate>Tue, 27 Mar 2018 06:15:47 +0000</pubDate><guid>https://maquefel.me/ru/linux-kernel-gpio-uapi/</guid><description>&lt;p>Начиная с версии ядра 4.6-r1 нам стал доступен новый интерфейс для взаимодействия с подсистемой ядра gpio. Теперь существует три официальных способа работы с gpio и получения от них прерываний. Нет смысла углубляться в потребности для данной подсистемы, для малой части это суровые будни, для другой части веселое хобби, и для всех вместе в ядре была предоставлена новая возможность взаимодействия.&lt;/p></description></item><item><title>Использование gpio-generic и irq_chip_generic для драйвера gpio</title><link>https://maquefel.me/ru/%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-gpio-generic-%D0%B8-irq_chip_generic-%D0%B4%D0%BB%D1%8F-%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80%D0%B0-gpio/</link><pubDate>Thu, 26 Jan 2017 20:26:21 +0000</pubDate><guid>https://maquefel.me/ru/%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-gpio-generic-%D0%B8-irq_chip_generic-%D0%B4%D0%BB%D1%8F-%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80%D0%B0-gpio/</guid><description>&lt;h1 id="введение">Введение&lt;/h1>
&lt;p>Данная статья является логичным продолжением предыдущей и её прочтение рекомендуется после ознакомления с &lt;a href="https://habrahabr.ru/post/303060/">предшествующим материалом&lt;/a>. Текущая заметка необходима для понимания последующего материала, дополнительного понимания подсистемы gpio в целом и способствует разработке собственных gpio драйверов. Положения данной статьи уже применимы не только к нашему виртуальному драйверу gpio, но и к любому mmio gpio драйверу в целом. Речь пойдет об упомянутой в предыдущей части &amp;ldquo;оптимизации&amp;rdquo;.&lt;/p></description></item><item><title>Драйвер виртуальных GPIO с контроллером прерываний на базе QEMU ivshmem для Linux</title><link>https://maquefel.me/ru/%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80-%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-gpio-%D1%81-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D0%BE%D0%BC/</link><pubDate>Thu, 07 Jul 2016 18:54:32 +0000</pubDate><guid>https://maquefel.me/ru/%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80-%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-gpio-%D1%81-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D0%BE%D0%BC/</guid><description>&lt;p>&lt;img alt="Природа прерываний" loading="lazy" src="https://maquefel.me/ru/%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80-%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-gpio-%D1%81-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D0%BE%D0%BC/77860c29e6024e7e818a102b55319904.jpg">&lt;/p>
&lt;p>Трудно недооценить роль &lt;strong>GPIO&lt;/strong>, особенно в мире встраиваемых систем ARM. Помимо того, что это крайне популярный материал для всех руководств для начинающих, &lt;strong>GPIO&lt;/strong> обеспечивают способ для управления многими периферийными устройствами, выступают в качестве источника ценных прерываний, или даже могут быть единственным доступным способом общения с миром для SOC.&lt;/p></description></item></channel></rss>