<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    
    <title>MH блог (Entries tagged as kernel)</title>
    <link>/</link>
    <description></description>
    <dc:language>ru</dc:language>
    <generator>Serendipity 2.4.0 - http://www.s9y.org/</generator>
    <pubDate>Sat, 28 Aug 2021 21:15:08 GMT</pubDate>

    <image>
    <url>/templates/2k11-mh/img/s9y_banner_small.png</url>
    <title>RSS: MH блог - </title>
    <link>/</link>
    <width>100</width>
    <height>21</height>
</image>

<item>
    <title>FreeBSD драйвер для приёмника кодов с пульта управления 433МГц (или 315 МГц)</title>
    <link>/archives/17-FreeBSD_drajver_dlJa_prijomnika_kodov_s_pulta_upravleniJa_433MGc_ili_315_MGc.html</link>
            <category>Allwinner</category>
            <category>FreeBSD</category>
            <category>SoC</category>
    
    <comments>/archives/17-FreeBSD_drajver_dlJa_prijomnika_kodov_s_pulta_upravleniJa_433MGc_ili_315_MGc.html#comments</comments>
    <wfw:comment>/wfwcomment.php?cid=17</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>/rss.php?version=2.0&amp;type=comments&amp;cid=17</wfw:commentRss>
    

    <author>nospam@example.com (Александр Мишин)</author>
    <content:encoded>
    &lt;a class=&quot;serendipity_image_link&quot; title=&quot;FreeBSD kernel driver for gpio based remote control codes receiver.&quot; href=&#039;https://gitlab.com/alexandermishin13/rcrecv-kmod&#039; target=&quot;_blank&quot;&gt;&lt;!-- s9ymdb:23 --&gt;&lt;img class=&quot;serendipity_image_left&quot; width=&quot;400&quot; height=&quot;300&quot;  src=&quot;/uploads/images/RC_Receiver_433MHz.serendipityThumb.jpeg&quot; title=&quot;FreeBSD kernel driver for gpio based remote control codes receiver.&quot; alt=&quot;FreeBSD kernel driver for gpio based remote control codes receiver.&quot;&gt;&lt;/a&gt; Я рад представить свой новый &lt;strong&gt;FreeBSD&lt;/strong&gt; драйвер для радиомодуля &lt;strong&gt;MX-RM-5V&lt;/strong&gt;. Хочу заострить внимание, что это приёмник радио сигнала - моя задача была именно в получении кода нажатой кнопки с пульта управления и выполнения соответствующей этому коду задачи. Драйвер, как раз, и занимается получением и декодированием радио импульсов до того момента, пока не сочтёт, что получилось что-то похожее на RC-код. Поиском соответствующей задачи и её выполнением будет заниматься отдельный сервис (aka &lt;strong&gt;daemon&lt;/strong&gt;), который большую часть времени проводит в ожидании события &lt;strong&gt;kevent&lt;/strong&gt; (или &lt;strong&gt;poll&lt;/strong&gt;) от драйвера. Получение данного события для демона означает, что у драйвера для него есть новый код, который можно считать непосредственно с символьного устройства драйвера или с помощью вызова ioctl(). В моём случае, пара драйвер и демон, служит для ручного включения и выключения света и аэрации аквариума, которые в обычном режиме управляются по расписанию моим &lt;strong&gt;OrangePI Zero&lt;/strong&gt;. &quot;Апельсинка&quot; скрыта от посторонних глаз за аквариумом, а для ручного управления используется 4х-кнопочный пульт rf-433МГц от китайских настенных выключателей &quot;miniTiger&quot;, закреплённый в распечатанном на 3D-принтере держателе.&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;/archives/17-FreeBSD_drajver_dlJa_prijomnika_kodov_s_pulta_upravleniJa_433MGc_ili_315_MGc.html#extended&quot;&gt;Продолжить чтение &quot;FreeBSD драйвер для приёмника кодов с пульта управления 433МГц (или 315 МГц)&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sat, 28 Aug 2021 18:22:00 +0000</pubDate>
    <guid isPermaLink="false">/archives/17-guid.html</guid>
    <category>433mhz</category>
<category>arm</category>
<category>driver</category>
<category>freebsd</category>
<category>kernel</category>
<category>kmod</category>
<category>orange pi</category>
<category>overlay</category>
<category>remote control</category>

</item>
<item>
    <title>И снова про tm1637 на FreeBSD</title>
    <link>/archives/14-I_snova_pro_tm1637_na_FreeBSD.html</link>
            <category>Allwinner</category>
            <category>FreeBSD</category>
            <category>RPI</category>
            <category>SoC</category>
    
    <comments>/archives/14-I_snova_pro_tm1637_na_FreeBSD.html#comments</comments>
    <wfw:comment>/wfwcomment.php?cid=14</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>/rss.php?version=2.0&amp;type=comments&amp;cid=14</wfw:commentRss>
    

    <author>nospam@example.com (Александр Мишин)</author>
    <content:encoded>
    &lt;!-- s9ymdb:19 --&gt;&lt;img class=&quot;serendipity_image_left&quot; width=&quot;400&quot; height=&quot;240&quot;  src=&quot;/uploads/images/tm1637.jpeg&quot;  alt=&quot;tm1637 4-digit 7-segment display&quot;&gt;Сегодня снова речь пойдёт про недрогой 7 сегментный дисплей tm1637, пригодный для отображения 4х цифр и двоеточия, характерного для электронных часов. Особенность дисплея в том, что он не следует стандарту i2c, хотя подключение его к GPIO шине и протокол передачи данных по ней очень похож.&lt;br /&gt;
Несмотря на то, что я уже написал &lt;a href=&quot;https://gitlab.com/alexandermishin13/tm1637-display&quot; title=&quot;библиотека tm1637 на FreeBSD&quot;&gt;библиотеку для tm1637&lt;/a&gt; на FreeBSD и в целом она меня вполне устраивает (два года на этом дисплее моя &quot;малинка&quot; показывала время), отчасти из-за некоей обиды, что такое простое устройство для простого общения с ним требует весьма непростых усилий, а отчасти из-за желания попробовать свои силы, я решил написать простенький драйвер для символьного устройства, на которое можно было бы просто отправить строку цифр.&lt;br /&gt;
Теперь же, с помощью этого драйвера, отображение на этом дисплее возможно и из &lt;strong&gt;PHP&lt;/strong&gt;, и из &lt;strong&gt;Python&lt;/strong&gt;, и, даже, из &lt;strong&gt;bash&lt;/strong&gt; с помощью команды &lt;strong&gt;echo&lt;/strong&gt;.&lt;br /&gt;
&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;/archives/14-I_snova_pro_tm1637_na_FreeBSD.html#extended&quot;&gt;Продолжить чтение &quot;И снова про tm1637 на FreeBSD&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 26 Apr 2020 13:44:00 +0000</pubDate>
    <guid isPermaLink="false">/archives/14-guid.html</guid>
    <category>arm</category>
<category>driver</category>
<category>freebsd</category>
<category>kernel</category>
<category>kmod</category>
<category>orange pi</category>
<category>raspberry pi</category>
<category>rpi</category>
<category>tm1637</category>

</item>
<item>
    <title>FreeBSD на armv7. Подключение датчиков dht11/dht22 и ds18b20</title>
    <link>/archives/13-FreeBSD_na_armv7._Podkljuchenie_datchikov_dht11dht22_i_ds18b20.html</link>
            <category>Allwinner</category>
            <category>FreeBSD</category>
            <category>SoC</category>
    
    <comments>/archives/13-FreeBSD_na_armv7._Podkljuchenie_datchikov_dht11dht22_i_ds18b20.html#comments</comments>
    <wfw:comment>/wfwcomment.php?cid=13</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>/rss.php?version=2.0&amp;type=comments&amp;cid=13</wfw:commentRss>
    

    <author>nospam@example.com (Александр Мишин)</author>
    <content:encoded>
    &lt;a target=&quot;_blank&quot; href=&quot;https://gitlab.com/alexandermishin13/relay-pi-webui&quot; title=&quot;WebUI for relays control via GPIO&quot;&gt;&lt;img class=&quot;serendipity_image_left&quot; width=&quot;385&quot; height=&quot;562&quot; src=&quot;https://www.mh.net.ru/uploads/images/relay-pi-webui.png&quot; alt=&quot;Аквариум&quot;&gt;&lt;/a&gt;Идея подключить термометр к &lt;strong&gt;arm&lt;/strong&gt;-платформе, да ещё и под управлением ОС &lt;strong&gt;FreeBSD&lt;/strong&gt; появилась у меня в процессе автоматизации управления аквариумом. Не буду углубляться в причины выбора &lt;strong&gt;FreeBSD&lt;/strong&gt;, тогда как выбор платформы мне видится очевидным большинству (невысокая стоимость, удобство разработки, привычное ПО, многообразие доступных датчиков, да и моду на &lt;strong&gt;SoC&lt;/strong&gt; следует упомянуть). Собрав воедино &lt;strong&gt;Orange PI Zero&lt;/strong&gt;, 4-хканальное реле на 250в и четыре розетки, написав ПО на &lt;strong&gt;python&lt;/strong&gt; для управления ими по 7-дневному расписанию и визуализировав управляемые события с помощью веб-связки &lt;strong&gt;nginx&lt;/strong&gt; + &lt;strong&gt; php-fpm&lt;/strong&gt; я с удивлением осознал &quot;... что это хорошо&quot; (копирайт не указываю). Захотелось добавить рюшечек и цветочков. Отображение температуры воды в банке стало одной из таких рюшечек. Беда в том, что информация о том, как подключить разнообразные устройства к ПК под &lt;strong&gt;FreeBSD&lt;/strong&gt; значительно глубже закопана и найти её сложнее, чем аналогичные примеры и даже уроки по подключению устройств к &lt;strong&gt;Linux Armbian&lt;/strong&gt; и &lt;strong&gt;Raspbian&lt;/strong&gt;.&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;/archives/13-FreeBSD_na_armv7._Podkljuchenie_datchikov_dht11dht22_i_ds18b20.html#extended&quot;&gt;Продолжить чтение &quot;FreeBSD на armv7. Подключение датчиков dht11/dht22 и ds18b20&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 13 Jan 2020 16:18:00 +0000</pubDate>
    <guid isPermaLink="false">/archives/13-guid.html</guid>
    <category>aquarium</category>
<category>arm</category>
<category>dht11</category>
<category>dht22</category>
<category>ds18b20</category>
<category>freebsd</category>
<category>kernel</category>
<category>kmod</category>
<category>onewire</category>
<category>orange pi</category>
<category>raspberry pi</category>
<category>rpi</category>

</item>
<item>
    <title>Температура процессора на Orange Pi Zero под FreeBSD</title>
    <link>/archives/12-Temperatura_processora_na_Orange_Pi_Zero_pod_FreeBSD.html</link>
            <category>Allwinner</category>
            <category>FreeBSD</category>
    
    <comments>/archives/12-Temperatura_processora_na_Orange_Pi_Zero_pod_FreeBSD.html#comments</comments>
    <wfw:comment>/wfwcomment.php?cid=12</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>/rss.php?version=2.0&amp;type=comments&amp;cid=12</wfw:commentRss>
    

    <author>nospam@example.com (Александр Мишин)</author>
    <content:encoded>
    &lt;strong&gt;Внимание!!!&lt;/strong&gt;&lt;br /&gt;
С версии &lt;em&gt;r354736&lt;/em&gt; разработчиками дополнен оверлей &lt;em&gt;sun8i-h3-sid.dtso&lt;/em&gt; и добавлен оверлей &lt;em&gt;sun8i-h3-ths.dtso&lt;/em&gt;. Для чипсета &lt;em&gt;h2+&lt;/em&gt;, по-прежнему, рекомендуется исправить объявление совместимости с &quot;allwinner,sun8i-h3&quot; на &quot;allwinner,sun8i-h2-plus&quot;, предварительно скопировав файлы с новыми именами. Статья утратила актуальность.&lt;br /&gt;
&lt;hr /&gt; &lt;br /&gt;
Просто не смог пройти мимо интересной информации...&lt;br /&gt;
&lt;br /&gt;
Угнетающе неторопливое реализация возможностей SoC-платформ под FreeBSD стимулирует поиск крупиц информации по этой тематике в поисковых системах. Уж не помню, что я искал, но натолкнулся на обсуждение патча к дереву устройств (DT), предлагаемого FreeBSD коммитером по имени &lt;span style=&quot;font-style:italic&quot;&gt;Emmanuel Vadot&lt;/span&gt;, для объявления устройства &lt;span style=&quot;font-weight:bold&quot;&gt;aw_thermal&lt;/span&gt; - датчика температуры для ряда процессоров семейства &lt;span style=&quot;font-weight:bold&quot;&gt;Allwinner&lt;/span&gt;. Несмотря на десяток неудачных попыток реализовать DT-оверлей, используя патчи разной достоверности от разных авторов, этот патч все-же показался интересным тем, что, вдобавок к примелькавшимся описаниям устройства &lt;span style=&quot;font-weight:bold&quot;&gt;aw_thermal&lt;/span&gt;, содержал дополнительный фрагмент кода к устройству &lt;span style=&quot;font-weight:bold&quot;&gt;aw_sid&lt;/span&gt;. Вот этот фрагмент:&lt;br /&gt;
&lt;div class=&quot;bb-code-title&quot;&gt;CODE:&lt;/div&gt;&lt;div class=&quot;bb-code&quot;&gt;---&amp;#160;a/arch/arm/boot/dts/sun8i-h3.dtsi
+++&amp;#160;b/arch/arm/boot/dts/sun8i-h3.dtsi
@@&amp;#160;-145,6&amp;#160;+145,25&amp;#160;@@
&amp;#160;		sid&amp;#58;&amp;#160;eeprom@1c14000&amp;#160;{
&amp;#160;			compatible&amp;#160;=&amp;#160;&quot;allwinner,sun8i-h3-sid&quot;;
&amp;#160;			reg&amp;#160;=&amp;#160;&amp;#60;0x1c14000&amp;#160;0x400&amp;#62;;
+
+			ths_calib&amp;#58;&amp;#160;calib@234&amp;#160;{
+				reg&amp;#160;=&amp;#160;&amp;#60;0x234&amp;#160;0x2&amp;#62;;
+			};
+		};
+
+		ths&amp;#58;&amp;#160;thermal_sensor@1c25000&amp;#160;{
+			compatible&amp;#160;=&amp;#160;&quot;allwinner,sun8i-h3-ths&quot;;
+			reg&amp;#160;=&amp;#160;&amp;#60;0x01c25000&amp;#160;0x100&amp;#62;;
+			interrupts&amp;#160;=&amp;#160;&amp;#60;GIC_SPI&amp;#160;31&amp;#160;IRQ_TYPE_LEVEL_HIGH&amp;#62;;
+			clocks&amp;#160;=&amp;#160;&amp;#60;&amp;amp;ccu&amp;#160;CLK_BUS_THS&amp;#62;,&amp;#160;&amp;#60;&amp;amp;ccu&amp;#160;CLK_THS&amp;#62;;
+			clock-names&amp;#160;=&amp;#160;&quot;apb&quot;,&amp;#160;&quot;ths&quot;;
+			resets&amp;#160;=&amp;#160;&amp;#60;&amp;amp;ccu&amp;#160;RST_BUS_THS&amp;#62;;
+			reset-names&amp;#160;=&amp;#160;&quot;apb&quot;;
+			#thermal-sensor-cells&amp;#160;=&amp;#160;&amp;#60;0&amp;#62;;
+			status&amp;#160;=&amp;#160;&quot;disabled&quot;;
+
+			nvmem-cells&amp;#160;=&amp;#160;&amp;#60;&amp;amp;ths_calib&amp;#62;;
+			nvmem-cell-names&amp;#160;=&amp;#160;&quot;ths-calib&quot;;
&amp;#160;		};
&amp;#160;
&amp;#160;		mali&amp;#58;&amp;#160;gpu@1c40000&amp;#160;{&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Thanks to &lt;span style=&quot;font-style:italic&quot;&gt;Emmanuel Vadot&lt;/span&gt; for this thread: &lt;a target=&quot;_blank&quot; href=&quot;http://https://lkml.org/lkml/2018/8/4/38&quot;&gt;[PATCH 2/7] ARM: dts: sun8i: h3: Add thermal sensor controller node&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;/archives/12-Temperatura_processora_na_Orange_Pi_Zero_pod_FreeBSD.html#extended&quot;&gt;Продолжить чтение &quot;Температура процессора на Orange Pi Zero под FreeBSD&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 13 May 2019 15:39:00 +0000</pubDate>
    <guid isPermaLink="false">/archives/12-guid.html</guid>
    <category>arm</category>
<category>freebsd</category>
<category>kernel</category>
<category>orange pi</category>

</item>
<item>
    <title>Обновление FreeBSD на Raspberry Pi 2</title>
    <link>/archives/7-Obnovlenie_FreeBSD_na_Raspberry_Pi_2.html</link>
            <category>FreeBSD</category>
            <category>RPI</category>
            <category>SoC</category>
    
    <comments>/archives/7-Obnovlenie_FreeBSD_na_Raspberry_Pi_2.html#comments</comments>
    <wfw:comment>/wfwcomment.php?cid=7</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>/rss.php?version=2.0&amp;type=comments&amp;cid=7</wfw:commentRss>
    

    <author>nospam@example.com (Александр Мишин)</author>
    <content:encoded>
    &lt;!-- s9ymdb:15 --&gt;&lt;img class=&quot;serendipity_image_left&quot; width=&quot;400&quot; height=&quot;200&quot;  src=&quot;/uploads/images/RaspberryPI_FreeBSD.serendipityThumb.jpeg&quot;  alt=&quot;&quot;&gt;В сети есть много руководств по созданию образа MicroSD с FreeBSD для Raspberry Pi 2. Это очень полезный опыт в плане разворачивания этой ОС из исходников, со своим ядром (Да! Там и для ARM есть что менять!). Но, для меня уже ясны пара моментов: во-первых, обновление ОС через чистый образ диска - не самая лучшая затея в плане сохранения предыдущих наработок на RPI2. Если у Вас не релизная ветка, то этот вопрос вас волнует. Во-вторых, не очевидно, но техника, используемая для создания образа диска, с небольшой коррекцией прекрасно подходит и для обновления ОС, как мы это обычно делаем на &quot;взрослых&quot; платформах.&lt;br /&gt;
Давайте определимся с некоторыми необходимыми пунктами:
&lt;ul class=&quot;bb-list-ordered bb-list-ordered-d&quot;&gt;&lt;li class=&quot;bb-listitem&quot;&gt; Подразумеваем, что у Вас уже есть установленная FreeBSD на Raspberry PI 2, например, с помощью готового образа с оффициального сайта &lt;a target=&quot;_blank&quot; href=&quot;https://download.freebsd.org/ftp/snapshots/arm/armv6/ISO-IMAGES/&quot; title=&quot;FreeBSD.org downloads page&quot;&gt;FreeBSD.org&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;bb-listitem&quot;&gt; Сборка мира и ядра производится кросс-компиляцией на той самой &quot;взрослой&quot; платформе (Она же &quot;хост&quot;);&lt;/li&gt;
&lt;li class=&quot;bb-listitem&quot;&gt; Для сборки мы будем использовать дерево исходников &lt;span style=&quot;font-weight:bold&quot;&gt;/usr/src&lt;/span&gt; на хосте. Оно же у Вас есть, правда?&lt;/li&gt;
&lt;li class=&quot;bb-listitem&quot;&gt; Обновление производится на хосте на смонтированный диск RPI2 (MicroSD). Я для себя отвел папку &lt;span style=&quot;font-weight:bold&quot;&gt;/mnt/rpi2&lt;/span&gt;;&lt;/li&gt;
&lt;li class=&quot;bb-listitem&quot;&gt; Для процесса инсталляции на MicroSD требуется установить порт &lt;span style=&quot;font-weight:bold&quot;&gt;sysutils/u-boot-rpi2&lt;/span&gt;;&lt;/li&gt;
&lt;li class=&quot;bb-listitem&quot;&gt; Исходя из вышеупомянутых учебников по сборке образа, у нас на MicroSD два раздела: &lt;span style=&quot;font-weight:bold&quot;&gt;/&lt;/span&gt; (&lt;span style=&quot;font-style:italic&quot;&gt;/dev/da0s2a&lt;/span&gt;) ufs2 и &lt;span style=&quot;font-weight:bold&quot;&gt;/boot/msdos&lt;/span&gt; (&lt;span style=&quot;font-style:italic&quot;&gt;/dev/da0s1&lt;/span&gt;) msdosfs. При условии, что флешка единственная, предполагаем, что она монтируется как &lt;span style=&quot;font-style:italic&quot;&gt;/dev/da0&lt;/span&gt;.&lt;/li&gt;
&lt;/ul&gt;
Приступим.&lt;br /&gt;
&lt;br /&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;/archives/7-Obnovlenie_FreeBSD_na_Raspberry_Pi_2.html#extended&quot;&gt;Продолжить чтение &quot;Обновление FreeBSD на Raspberry Pi 2&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 31 Jul 2017 12:48:00 +0000</pubDate>
    <guid isPermaLink="false">/archives/7-guid.html</guid>
    <category>arm</category>
<category>freebsd</category>
<category>kernel</category>
<category>orange pi</category>
<category>raspberry pi</category>
<category>rpi</category>

</item>

</channel>
</rss>
