diff options
32 files changed, 4153 insertions, 56 deletions
diff --git a/.body_end.template b/.body_end.template new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/.body_end.template @@ -28,7 +28,7 @@ global_analytics_file="" # Leave this empty (i.e. "") if you don't want to use feedburner, # or change it to your own URL -global_feedburner="" +global_feedburner="https://www.lotigara.ru/blog/feed.rss" # Change this to your username if you want to use twitter for comments global_twitter_username="" @@ -83,7 +83,7 @@ footer_file=".footer.template" # and before the actual blog content body_begin_file=".body_begin.template" # extra content to add just before we close </body> -body_end_file="" +body_end_file=".body_end.template" # extra content to ONLY on the index page AFTER `body_begin_file` contents # and before the actual content body_begin_file_index="" diff --git a/.footer.template b/.footer.template index ca22778..aa18b46 100644 --- a/.footer.template +++ b/.footer.template @@ -1,3 +1,8 @@ +<script data-isso-css-url="https://www.lotigara.ru/css/isso.css" data-isso="//isso.lotigara.ru/" src="//isso.lotigara.ru/js/embed.min.js"></script> +<section id="isso-thread"> + <noscript>Javascript needs to be activated to view comments.</noscript> +</section> + <div class="section_header section_header_last"> <p>(c) Ivan Davydov 2025. Делайте с этим документом всё, что хотите!</p><hr/> <a href="https://www.lotigara.ru/blog">Веб-сайт самохостера Lotigara</a> сгенерирован при помощи <a href="https://github.com/jakimfett/bashblog">Bashblog</a>. Исходные коды этой версии Bashblog можно найти <a href="https://www.lotigara.ru/files/bashblog">здесь</a>.</div> @@ -1,4 +1 @@ -*.xml -all*.html -tag*.html .*.tar.gz @@ -1,6 +0,0 @@ -Title on this line - -The rest of the text file is a **Markdown** blog post. The process will continue -as soon as you exit your editor. - -Метки: keep-this-tag-format, tags-are-optional, beware-with-underscores-in-markdown, example diff --git a/.title.template b/.title.template index 5921699..ef21fee 100644 --- a/.title.template +++ b/.title.template @@ -4,7 +4,7 @@ <div class="floating_element"> <h4 style="display:inline"><a style="color:white" href="/">главная|main page</a></h4> <h4 style="display:inline"><a style="color:white" href="/status.php">состояние|status</a></h4> - <p style="display:inline">блог|blog</p> + <p style="display:inline">журнал|journal</p> <h4 style="display:inline"><a style="color:white" href="/files">файлы|files</a></h4> <h4 style="display:inline"><a style="color:white" href="https://git.lotigara.ru">программы|software</a></h4> <label id="switch-label" for="theme-switch"></label> diff --git a/all_posts.html b/all_posts.html new file mode 100644 index 0000000..c8c4e4c --- /dev/null +++ b/all_posts.html @@ -0,0 +1,57 @@ +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <link href="/css/main.css" rel="stylesheet" /> + <link href="/css/theme.css" rel="stylesheet" /> + <link href="/css/third-party.css" rel="stylesheet" /> + <link href="/css/responsivity.css" rel="stylesheet" /> +<title>Блог самохостера Lotigara — Все заметки</title> +</head><body> +<input type="checkbox" id="theme-switch"> +<div id="divbodyholder"><div class="inner_page"> +<div class="headerholder"><div class="header"> +<div id="title"> +<div class="page_header floating_element"> + <h1 class="floating_element">Блог самохостера Lotigara</h1> +</div> +<div class="floating_element"> + <h4 style="display:inline"><a style="color:white" href="/">главная|main page</a></h4> + <h4 style="display:inline"><a style="color:white" href="/status.php">состояние|status</a></h4> + <p style="display:inline">журнал|journal</p> + <h4 style="display:inline"><a style="color:white" href="/files">файлы|files</a></h4> + <h4 style="display:inline"><a style="color:white" href="https://git.lotigara.ru">программы|software</a></h4> + <label id="switch-label" for="theme-switch"></label> +</div> +</div></div></div> +<div id="divbody"><div class="content"> +<h3>Все заметки</h3> +<h4 class='allposts_header'>июня 2025</h4> +<ul> +<li><a href="./download-mods-for-a-steam-game-from-the-steam-workshop.html">Download mods for a Steam game from the Steam Workshop</a> — июня 07, 2025</li> +</ul> +<h4 class='allposts_header'>мая 2025</h4> +<ul> +<li><a href="./pubnix----prosody--pam-.html">Pubnix - Установка Prosody с PAM-авторизацией</a> — мая 04, 2025</li> +</ul> +<h4 class='allposts_header'>апреля 2025</h4> +<ul> +<li><a href="./openwrt-24101------keenetic-launcher-kn-1221.html">OpenWrt 24.10.1 - исправление, добавляющее поддержку Keenetic Launcher (KN-1221)</a> — апреля 28, 2025</li> +</ul> +<h4 class='allposts_header'>марта 2025</h4> +<ul> +<li><a href="./fast-transition-wi-fi-roaming-with-openwrt-and-keeneticos.html">Fast Transition (Wi-Fi Roaming) with OpenWrt and KeeneticOS</a> — марта 07, 2025</li> +</ul> +<div id="all_posts"><a href="./index.html">Вернуться к начальной странице</a></div> +</div> +<script data-isso-css-url="https://www.lotigara.ru/css/isso.css" data-isso="//isso.lotigara.ru/" src="//isso.lotigara.ru/js/embed.min.js"></script> +<section id="isso-thread"> + <noscript>Javascript needs to be activated to view comments.</noscript> +</section> + +<div class="section_header section_header_last"> + <p>(c) Ivan Davydov 2025. Делайте с этим документом всё, что хотите!</p><hr/> + <a href="https://www.lotigara.ru/blog">Веб-сайт самохостера Lotigara</a> сгенерирован при помощи <a href="https://github.com/jakimfett/bashblog">Bashblog</a>. Исходные коды этой версии Bashblog можно найти <a href="https://www.lotigara.ru/files/bashblog">здесь</a>.</div> +</div> +</div></div></div> +</body></html> diff --git a/all_tags.html b/all_tags.html new file mode 100644 index 0000000..47da597 --- /dev/null +++ b/all_tags.html @@ -0,0 +1,55 @@ +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <link href="/css/main.css" rel="stylesheet" /> + <link href="/css/theme.css" rel="stylesheet" /> + <link href="/css/third-party.css" rel="stylesheet" /> + <link href="/css/responsivity.css" rel="stylesheet" /> +<title>Блог самохостера Lotigara — Все метки</title> +</head><body> +<input type="checkbox" id="theme-switch"> +<div id="divbodyholder"><div class="inner_page"> +<div class="headerholder"><div class="header"> +<div id="title"> +<div class="page_header floating_element"> + <h1 class="floating_element">Блог самохостера Lotigara</h1> +</div> +<div class="floating_element"> + <h4 style="display:inline"><a style="color:white" href="/">главная|main page</a></h4> + <h4 style="display:inline"><a style="color:white" href="/status.php">состояние|status</a></h4> + <p style="display:inline">журнал|journal</p> + <h4 style="display:inline"><a style="color:white" href="/files">файлы|files</a></h4> + <h4 style="display:inline"><a style="color:white" href="https://git.lotigara.ru">программы|software</a></h4> + <label id="switch-label" for="theme-switch"></label> +</div> +</div></div></div> +<div id="divbody"><div class="content"> +<h3>Все метки</h3> +<ul> +<li><a href="tag_keeneticos.html">keeneticos</a> — 1 заметка</li> +<li><a href="tag_openwrt.html">openwrt</a> — 2 заметки</li> +<li><a href="tag_prosody.html">prosody</a> — 1 заметка</li> +<li><a href="tag_pubnix.html">pubnix</a> — 1 заметка</li> +<li><a href="tag_sh.html">sh</a> — 1 заметка</li> +<li><a href="tag_steam.html">steam</a> — 1 заметка</li> +<li><a href="tag_wifi-roaming.html">wifi-roaming</a> — 1 заметка</li> +<li><a href="tag_wifi.html">wifi</a> — 1 заметка</li> +<li><a href="tag_xmpp.html">xmpp</a> — 1 заметка</li> +<li><a href="tag_изменённые.html">изменённые</a> — 1 заметка</li> +<li><a href="tag_прошивки.html">прошивки</a> — 1 заметка</li> +<li><a href="tag_разработка.html">разработка</a> — 1 заметка</li> +</ul> +<div id="all_posts"><a href="./index.html">Вернуться к начальной странице</a></div> +</div> +<script data-isso-css-url="https://www.lotigara.ru/css/isso.css" data-isso="//isso.lotigara.ru/" src="//isso.lotigara.ru/js/embed.min.js"></script> +<section id="isso-thread"> + <noscript>Javascript needs to be activated to view comments.</noscript> +</section> + +<div class="section_header section_header_last"> + <p>(c) Ivan Davydov 2025. Делайте с этим документом всё, что хотите!</p><hr/> + <a href="https://www.lotigara.ru/blog">Веб-сайт самохостера Lotigara</a> сгенерирован при помощи <a href="https://github.com/jakimfett/bashblog">Bashblog</a>. Исходные коды этой версии Bashblog можно найти <a href="https://www.lotigara.ru/files/bashblog">здесь</a>.</div> +</div> +</div></div></div> +</body></html> @@ -972,6 +972,7 @@ make_sitemap() { mv "$sitemapfile" "$blog_sitemap" chmod 644 $blog_sitemap + [[ $git_repo == true ]] && git add $blog_sitemap } # Generate the feed file diff --git a/download-mods-for-a-steam-game-from-the-steam-workshop.html b/download-mods-for-a-steam-game-from-the-steam-workshop.html new file mode 100644 index 0000000..24e3b7e --- /dev/null +++ b/download-mods-for-a-steam-game-from-the-steam-workshop.html @@ -0,0 +1,56 @@ +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <link href="/css/main.css" rel="stylesheet" /> + <link href="/css/theme.css" rel="stylesheet" /> + <link href="/css/third-party.css" rel="stylesheet" /> + <link href="/css/responsivity.css" rel="stylesheet" /> +<title>Download mods for a Steam game from the Steam Workshop</title> +</head><body> +<input type="checkbox" id="theme-switch"> +<div id="divbodyholder"><div class="inner_page"> +<div class="headerholder"><div class="header"> +<div id="title"> +<div class="page_header floating_element"> + <h1 class="floating_element">Блог самохостера Lotigara</h1> +</div> +<div class="floating_element"> + <h4 style="display:inline"><a style="color:white" href="/">главная|main page</a></h4> + <h4 style="display:inline"><a style="color:white" href="/status.php">состояние|status</a></h4> + <p style="display:inline">журнал|journal</p> + <h4 style="display:inline"><a style="color:white" href="/files">файлы|files</a></h4> + <h4 style="display:inline"><a style="color:white" href="https://git.lotigara.ru">программы|software</a></h4> + <label id="switch-label" for="theme-switch"></label> +</div> +</div></div></div> +<div id="divbody"><div class="content"> +<!-- entry begin --> +<div class="section_header"><a class="ablack" href="download-mods-for-a-steam-game-from-the-steam-workshop.html"> +Download mods for a Steam game from the Steam Workshop +</a></div> +<!-- bashblog_timestamp: #202506072028.51# --> +<div class="subtitle">июня 07, 2025 — +Ivan Davydov +</div> +<!-- text begin --> + +<pre alt="sh"> +steamcmd "+login $USERID" $(for i in $MODLIST; do echo "+download_item $APPID $i"; done) +</pre> + +<p>Метки: <a href='tag_sh.html'>sh</a>, <a href='tag_steam.html'>steam</a></p> +<!-- text end --> +<!-- entry end --> +</div> +<script data-isso-css-url="https://www.lotigara.ru/css/isso.css" data-isso="//isso.lotigara.ru/" src="//isso.lotigara.ru/js/embed.min.js"></script> +<section id="isso-thread"> + <noscript>Javascript needs to be activated to view comments.</noscript> +</section> + +<div class="section_header section_header_last"> + <p>(c) Ivan Davydov 2025. Делайте с этим документом всё, что хотите!</p><hr/> + <a href="https://www.lotigara.ru/blog">Веб-сайт самохостера Lotigara</a> сгенерирован при помощи <a href="https://github.com/jakimfett/bashblog">Bashblog</a>. Исходные коды этой версии Bashblog можно найти <a href="https://www.lotigara.ru/files/bashblog">здесь</a>.</div> +</div> +</div></div></div> +</body></html> diff --git a/download-mods-for-a-steam-game-from-the-steam-workshop.md b/download-mods-for-a-steam-game-from-the-steam-workshop.md new file mode 100644 index 0000000..e4ba50f --- /dev/null +++ b/download-mods-for-a-steam-game-from-the-steam-workshop.md @@ -0,0 +1,7 @@ +Download mods for a Steam game from the Steam Workshop + +<pre alt="sh"> +steamcmd "+login $USERID" $(for i in $MODLIST; do echo "+download_item $APPID $i"; done) +</pre> + +Метки: sh, steam diff --git a/fast-transition-wi-fi-roaming-with-openwrt-and-keeneticos.html b/fast-transition-wi-fi-roaming-with-openwrt-and-keeneticos.html index f687688..b0c2a53 100644 --- a/fast-transition-wi-fi-roaming-with-openwrt-and-keeneticos.html +++ b/fast-transition-wi-fi-roaming-with-openwrt-and-keeneticos.html @@ -18,7 +18,7 @@ <div class="floating_element"> <h4 style="display:inline"><a style="color:white" href="/">главная|main page</a></h4> <h4 style="display:inline"><a style="color:white" href="/status.php">состояние|status</a></h4> - <p style="display:inline">блог|blog</p> + <p style="display:inline">журнал|journal</p> <h4 style="display:inline"><a style="color:white" href="/files">файлы|files</a></h4> <h4 style="display:inline"><a style="color:white" href="https://git.lotigara.ru">программы|software</a></h4> <label id="switch-label" for="theme-switch"></label> @@ -35,7 +35,7 @@ Ivan Davydov </div> <!-- text begin --> -<h5>tested on KeeneticOS v3.8.7 & OpenWrt v23.05.5</h5> +<h5>tested to not work on KeeneticOS v3.8.7 & OpenWrt v23.05.5</h5> <p>First, set up FT on your OpenWrt devices.</p> @@ -50,25 +50,14 @@ Ivan Davydov <p>Press the "Save" button. Now you have a so-called "Wi-Fi system" with use of both KeeneticOS and OpenWrt!</p> <p>Метки: <a href='tag_keeneticos.html'>keeneticos</a>, <a href='tag_openwrt.html'>openwrt</a>, <a href='tag_wifi.html'>wifi</a>, <a href='tag_wifi-roaming.html'>wifi-roaming</a></p> - - - - - - - - - - - - - - - - <!-- text end --> <!-- entry end --> </div> +<script data-isso-css-url="https://www.lotigara.ru/css/isso.css" data-isso="//isso.lotigara.ru/" src="//isso.lotigara.ru/js/embed.min.js"></script> +<section id="isso-thread"> + <noscript>Javascript needs to be activated to view comments.</noscript> +</section> + <div class="section_header section_header_last"> <p>(c) Ivan Davydov 2025. Делайте с этим документом всё, что хотите!</p><hr/> <a href="https://www.lotigara.ru/blog">Веб-сайт самохостера Lotigara</a> сгенерирован при помощи <a href="https://github.com/jakimfett/bashblog">Bashblog</a>. Исходные коды этой версии Bashblog можно найти <a href="https://www.lotigara.ru/files/bashblog">здесь</a>.</div> diff --git a/fast-transition-wi-fi-roaming-with-openwrt-and-keeneticos.md b/fast-transition-wi-fi-roaming-with-openwrt-and-keeneticos.md index fd26836..776172f 100644 --- a/fast-transition-wi-fi-roaming-with-openwrt-and-keeneticos.md +++ b/fast-transition-wi-fi-roaming-with-openwrt-and-keeneticos.md @@ -1,6 +1,6 @@ Fast Transition (Wi-Fi Roaming) with OpenWrt and KeeneticOS -##### tested on KeeneticOS v3.8.7 & OpenWrt v23.05.5 +##### tested to not work on KeeneticOS v3.8.7 & OpenWrt v23.05.5 First, set up FT on your OpenWrt devices. @@ -2,44 +2,427 @@ <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel><title>Блог самохостера Lotigara</title><link>https://www.lotigara.ru/blog/index.html</link> <description>Заметки какого-то школьника на тему ИТ</description><language>en</language> -<lastBuildDate>Mon, 28 Apr 2025 15:59:51 +0300</lastBuildDate> -<pubDate>Mon, 28 Apr 2025 15:59:51 +0300</pubDate> +<lastBuildDate>Wed, 11 Jun 2025 16:45:45 +0300</lastBuildDate> +<pubDate>Wed, 11 Jun 2025 16:45:45 +0300</pubDate> <atom:link href="https://www.lotigara.ru/blog/feed.rss" rel="self" type="application/rss+xml" /> <item><title> -Fast Transition (Wi-Fi Roaming) with OpenWrt and KeeneticOS +Download mods for a Steam game from the Steam Workshop </title><description><![CDATA[ -<h5>tested on KeeneticOS v3.8.7 & OpenWrt v23.05.5</h5> +<pre alt="sh"> +steamcmd "+login $USERID" $(for i in $MODLIST; do echo "+download_item $APPID $i"; done) +</pre> -<p>First, set up FT on your OpenWrt devices.</p> +<p>Метки: <a href='tag_sh.html'>sh</a>, <a href='tag_steam.html'>steam</a></p> +<!-- text end --> +]]></description><link>https://www.lotigara.ru/blog/download-mods-for-a-steam-game-from-the-steam-workshop.html</link> +<guid>https://www.lotigara.ru/blog/./download-mods-for-a-steam-game-from-the-steam-workshop.html</guid> +<dc:creator>Ivan Davydov</dc:creator> +<pubDate>Sat, 07 Jun 2025 20:28:51 +0300</pubDate></item> +<item><title> +Pubnix - Установка Prosody с PAM-авторизацией +</title><description><![CDATA[ -<p>Then, change the mode of your Keenetic (?) devices to Extender (there are Repeater/Extender and Access Point/Extender, the last is the recommended).</p> +<h1>Использованные источники</h1> -<p>Go to the <code>Access Point/Extender (Repeater/Extender) > Home segment</code> menu. Change the settings of the Wi-Fi network to those ones in OpenWrt.</p> +<ul> +<li><a href="https://blog.desdelinux.net/en/prosody-im-local-users-SME-networks">DesdeLinux</a></li> +<li><a href="https://landchad.net/prosody">LandChad</a></li> +<li><a href="https://prosody.im">Prosody</a></li> +</ul> -<p>Scroll below to the "Roaming for wireless devices" section. Enable "Fast transition (802.11r)" and write your mobility domain ID converted to the ASCII format.</p> +<h1>0. Системные требования</h1> -<p>You can use an online converter like this one: <a href="https://www.rapidtables.com/convert/number/hex-to-ascii.html">https://www.rapidtables.com/convert/number/hex-to-ascii.html</a>. Keep the "Mobility domain key" field unedited.</p> +<ul> +<li>Firewall с следующими открытыми портами:</li> +<li><ul> +<li>5000/tcp (передача файлов)</li> +</ul></li> +<li><ul> +<li>5222/tcp (подключение клиента)</li> +</ul></li> +<li><ul> +<li>5269/tcp (федерация, подключение сервера к серверу)</li> +</ul></li> +<li><ul> +<li>5281/tcp (по желанию, но рекомендуется)</li> +</ul></li> +<li><p>Debian 12 с последними обновлениями</p></li> +</ul> -<p>Press the "Save" button. Now you have a so-called "Wi-Fi system" with use of both KeeneticOS and OpenWrt!</p> +<hr /> +]]></description><link>https://www.lotigara.ru/blog/pubnix----prosody--pam-.html</link> +<guid>https://www.lotigara.ru/blog/./pubnix----prosody--pam-.html</guid> +<dc:creator>Ivan Davydov</dc:creator> +<pubDate>Sun, 04 May 2025 21:46:43 +0300</pubDate></item> +<item><title> +OpenWrt 24.10.1 - исправление, добавляющее поддержку Keenetic Launcher (KN-1221) +</title><description><![CDATA[ -<p>Метки: <a href='tag_keeneticos.html'>keeneticos</a>, <a href='tag_openwrt.html'>openwrt</a>, <a href='tag_wifi.html'>wifi</a>, <a href='tag_wifi-roaming.html'>wifi-roaming</a></p> +<p>Вот оно: +<summary> +<details></p> + +<pre> +From ef20327e33fb38220ba0bca4418464749305e555 Mon Sep 17 00:00:00 2001 +From: Ivan Davydov <lotigara@lotigara.ru> +Date: Tue, 4 Mar 2025 23:54:13 +0300 +Subject: [PATCH] ramips: mt76x8: add support for Keenetic Launcher (KN-1221) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +Specification: +SoC: MediaTek MT7628AN +RAM: 128M DDR2, ESMT M14D128168A (2Y) +Flash: 32M, cFeon EN25QH256A (Dual Boot on OEM, concatenated on OpenWrt, +SPI) +Switch: MediaTek MT7628AN, 3 ports 100 Mbps +WiFi: MediaTek MT7628AN 2.4 GHz 802.11n +USB: 1 port USB 2.0 +GPIO: 1 button (Wi-Fi & Reset on OEM, Reset on OpenWrt), 3 LEDs (Power, +Internet, Wi-Fi), USB port power controls +Disassembly: +There are 2 screws at the bottom near the LEDs hidden by rubber mounts. +After removing the screws, pry the gray plastic part around (it is secured +with latches) and remove it. +UART Interface: +The UART interface can be connected to the 5 pin located between LAN +ports and the WAN one. +Pins (from the second LAN port to the WAN one): VCC, TX, RX, NC, GND +Settings: 115200, 8N1 +Flashing via TFTP: +1. Connect your PC and router to the first LAN port, configure PC +interface using IP 192.168.1.2, mask 255.255.255.0 +2. Serve the firmware image (for OpenWrt it is *-squashfs-factory.bin) +renamed to KN-1221_recovery.bin via TFTP +3. Power up the router while pressing Wi-Fi button +4. Release Wi-Fi button when Power LED starts blinking +To revert back to OEM firmware: +The return to the OEM firmware is carried out by using the methods +described above with the help of the appropriate firmware image found on +osvault.keenetic.net. +When using OEM bootloader, the firmware image size cannot exceed the size +of one OEM «Firmware_x» partition or Kernel + rootFS size. +Signed-off-by: Ivan Davydov <lotigara@lotigara.ru> +Link: https://github.com/openwrt/openwrt/pull/18164 +Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> +--- + .../ramips/dts/mt7628an_keenetic_kn-1221.dts | 209 ++++++++++++++++++ + target/linux/ramips/image/mt76x8.mk | 12 + + .../mt76x8/base-files/etc/board.d/01_leds | 1 + + .../mt76x8/base-files/etc/board.d/02_network | 5 + + 4 files changed, 227 insertions(+) + create mode 100644 target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts +diff --git a/target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts b/target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts +new file mode 100644 +index 00000000000000..6f5cf96856ed21 +--- /dev/null ++++ b/target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts +@@ -0,0 +1,209 @@ ++// SPDX-License-Identifier: GPL-2.0-or-later OR MIT ++ ++#include "mt7628an.dtsi" ++ ++#include <dt-bindings/gpio/gpio.h> ++#include <dt-bindings/input/input.h> ++#include <dt-bindings/leds/common.h> ++ ++/ { ++ compatible = "keenetic,kn-1221", "mediatek,mt7628an-soc"; ++ model = "Keenetic KN-1221"; ++ ++ aliases { ++ label-mac-device = ðernet; ++ ++ led-boot = &led_power; ++ led-failsafe = &led_power; ++ led-running = &led_power; ++ led-upgrade = &led_power; ++ }; ++ ++ chosen { ++ bootargs = "console=ttyS0,115200"; ++ }; ++ ++ regulator-usb { ++ compatible = "regulator-fixed"; ++ regulator-name = "USB-power"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ gpios = <&gpio 6 GPIO_ACTIVE_HIGH>; ++ enable-active-high; ++ regulator-always-on; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ led_power: power { ++ function = LED_FUNCTION_POWER; ++ color = <LED_COLOR_ID_GREEN>; ++ gpios = <&gpio 11 GPIO_ACTIVE_LOW>; ++ }; ++ ++ internet { ++ function = LED_FUNCTION_WAN; ++ color = <LED_COLOR_ID_GREEN>; ++ gpios = <&gpio 38 GPIO_ACTIVE_LOW>; ++ }; ++ ++ fn { ++ function = LED_FUNCTION_WLAN; ++ color = <LED_COLOR_ID_GREEN>; ++ gpios = <&gpio 4 GPIO_ACTIVE_LOW>; ++ linux,default-trigger = "phy0tpt"; ++ }; ++ }; ++ ++ keys { ++ compatible = "gpio-keys"; ++ ++ reset { ++ label = "restart"; ++ gpios = <&gpio 37 GPIO_ACTIVE_LOW>; ++ linux,code = <KEY_RESTART>; ++ }; ++ }; ++ ++ virtual_flash { ++ compatible = "mtd-concat"; ++ devices = <&firmware1 &firmware2>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ compatible = "denx,uimage"; ++ label = "firmware"; ++ reg = <0x0 0x1cc0000>; ++ }; ++ }; ++ }; ++}; ++ ++&state_default { ++ gpio { ++ groups = "i2c", "spi cs1", "gpio", "refclk", "wdt"; ++ function = "gpio"; ++ }; ++}; ++ ++&spi0 { ++ status = "okay"; ++ ++ flash@0 { ++ compatible = "jedec,spi-nor"; ++ reg = <0>; ++ spi-max-frequency = <32000000>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ label = "u-boot"; ++ reg = <0x0 0x30000>; ++ read-only; ++ }; ++ ++ partition@30000 { ++ label = "u-config"; ++ reg = <0x30000 0x10000>; ++ read-only; ++ }; ++ ++ partition@40000 { ++ label = "rf-eeprom"; ++ reg = <0x40000 0x10000>; ++ read-only; ++ ++ nvmem-layout { ++ compatible = "fixed-layout"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ eeprom_factory_0: eeprom@0 { ++ reg = <0x0 0x400>; ++ }; ++ ++ macaddr_factory_4: macaddr@4 { ++ reg = <0x4 0x6>; ++ }; ++ }; ++ }; ++ ++ firmware1: partition@50000 { ++ label = "firmware_1"; ++ reg = <0x50000 0xe60000>; ++ }; ++ ++ partition@eb0000 { ++ label = "config_1"; ++ reg = <0xeb0000 0x40000>; ++ read-only; ++ }; ++ ++ partition@ef0000 { ++ label = "storage"; ++ reg = <0xef0000 0x100000>; ++ read-only; ++ }; ++ ++ partition@ff0000 { ++ label = "dump"; ++ reg = <0xff0000 0x10000>; ++ read-only; ++ }; ++ ++ partition@1000000 { ++ label = "u-state"; ++ reg = <0x1000000 0x30000>; ++ read-only; ++ }; ++ ++ partition@1030000 { ++ label = "u-config_res"; ++ reg = <0x1030000 0x10000>; ++ read-only; ++ }; ++ ++ partition@1040000 { ++ label = "rf-eeprom_res"; ++ reg = <0x1040000 0x10000>; ++ read-only; ++ }; ++ ++ firmware2: partition@1050000 { ++ label = "firmware_2"; ++ reg = <0x1050000 0xe60000>; ++ }; ++ ++ partition@1eb0000 { ++ label = "Config_2"; ++ reg = <0x1eb0000 0x40000>; ++ read-only; ++ }; ++ }; ++ }; ++}; ++ ++ðernet { ++ nvmem-cells = <&macaddr_factory_4>; ++ nvmem-cell-names = "mac-address"; ++}; ++ ++&esw { ++ mediatek,portmap = <0x3e>; ++ mediatek,portdisable = <0x38>; ++}; ++ ++&wmac { ++ status = "okay"; ++ ++ nvmem-cells = <&eeprom_factory_0>; ++ nvmem-cell-names = "eeprom"; ++}; +diff --git a/target/linux/ramips/image/mt76x8.mk b/target/linux/ramips/image/mt76x8.mk +index 8c8cfee23b6cfa..f442148d9ecf10 100644 +--- a/target/linux/ramips/image/mt76x8.mk ++++ b/target/linux/ramips/image/mt76x8.mk +@@ -366,6 +366,18 @@ define Device/jotale_js76x8-32m + endef + TARGET_DEVICES += jotale_js76x8-32m ++define Device/keenetic_kn-1221 ++ BLOCKSIZE := 64k ++ IMAGE_SIZE := 29440k ++ DEVICE_VENDOR := Keenetic ++ DEVICE_MODEL := KN-1221 ++ DEVICE_PACKAGES := kmod-usb2 ++ IMAGES += factory.bin ++ IMAGE/factory.bin := $$(sysupgrade_bin) | pad-to $$$$(BLOCKSIZE) | \ ++ check-size 14720k | zyimage -d 0x801221 -v "KN-1221" ++endef ++TARGET_DEVICES += keenetic_kn-1221 ++ + define Device/keenetic_kn-1613 + IMAGE_SIZE := 31488k + DEVICE_VENDOR := Keenetic +diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds +index b87062ae3c5ae5..79f78a2a459487 100644 +--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds ++++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds +@@ -58,4 +58,5 @@ hiwifi,hc5661a|\ + hiwifi,hc5761a) + ucidef_set_led_switch "internet" "internet" "blue:internet" "switch0" "0x10" + ;; ++keenetic,kn-1221|\ + keenetic,kn-1613) +diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network +index fbdc7fb5a2697a..6e6e1310d3495f 100644 +--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network ++++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network +@@ -131,5 +131,9 @@ ramips_setup_interfaces() + ucidef_add_switch "switch0" \ + "0:lan" "1:lan" "2:lan" "6@eth0" + ;; ++ keenetic,kn-1221) ++ ucidef_add_switch "switch0" \ ++ "1:lan" "2:lan" "0:wan" "6@eth0" ++ ;; + keenetic,kn-1613|\ + motorola,mwr03) +@@ -280,5 +280,6 @@ ramips_setup_macs() + totolink,lr1200) + wan_mac=$(mtd_get_mac_binary factory 0x2e) + ;; ++ keenetic,kn-1221|\ + keenetic,kn-1613|\ + zyxel,keenetic-extra-ii) +</pre> +<p></details> +</summary></p> +<p>Или в виде файла: <a href="/files/18164.patch.backport-24.10.1">18164.patch.backport-24.10.1</a>. +Готовые сборки тоже доступны в виде файлов: <a href="/files/openwrt-kn-1221-24.10">openwrt-kn-1221-24.10</a></p> +<p>Метки: <a href='tag_openwrt.html'>openwrt</a>, <a href='tag_разработка.html'>разработка</a>, <a href='tag_изменённые прошивки.html'>изменённые прошивки</a></p> +<!-- text end --> +]]></description><link>https://www.lotigara.ru/blog/openwrt-24101------keenetic-launcher-kn-1221.html</link> +<guid>https://www.lotigara.ru/blog/./openwrt-24101------keenetic-launcher-kn-1221.html</guid> +<dc:creator>Ivan Davydov</dc:creator> +<pubDate>Mon, 28 Apr 2025 16:01:09 +0300</pubDate></item> +<item><title> +Fast Transition (Wi-Fi Roaming) with OpenWrt and KeeneticOS +</title><description><![CDATA[ + +<h5>tested to not work on KeeneticOS v3.8.7 & OpenWrt v23.05.5</h5> + +<p>First, set up FT on your OpenWrt devices.</p> +<p>Then, change the mode of your Keenetic (?) devices to Extender (there are Repeater/Extender and Access Point/Extender, the last is the recommended).</p> + +<p>Go to the <code>Access Point/Extender (Repeater/Extender) > Home segment</code> menu. Change the settings of the Wi-Fi network to those ones in OpenWrt.</p> + +<p>Scroll below to the "Roaming for wireless devices" section. Enable "Fast transition (802.11r)" and write your mobility domain ID converted to the ASCII format.</p> +<p>You can use an online converter like this one: <a href="https://www.rapidtables.com/convert/number/hex-to-ascii.html">https://www.rapidtables.com/convert/number/hex-to-ascii.html</a>. Keep the "Mobility domain key" field unedited.</p> +<p>Press the "Save" button. Now you have a so-called "Wi-Fi system" with use of both KeeneticOS and OpenWrt!</p> +<p>Метки: <a href='tag_keeneticos.html'>keeneticos</a>, <a href='tag_openwrt.html'>openwrt</a>, <a href='tag_wifi.html'>wifi</a>, <a href='tag_wifi-roaming.html'>wifi-roaming</a></p> <!-- text end --> ]]></description><link>https://www.lotigara.ru/blog/fast-transition-wi-fi-roaming-with-openwrt-and-keeneticos.html</link> <guid>https://www.lotigara.ru/blog/./fast-transition-wi-fi-roaming-with-openwrt-and-keeneticos.html</guid> @@ -18,56 +18,447 @@ <div class="floating_element"> <h4 style="display:inline"><a style="color:white" href="/">главная|main page</a></h4> <h4 style="display:inline"><a style="color:white" href="/status.php">состояние|status</a></h4> - <p style="display:inline">блог|blog</p> + <p style="display:inline">журнал|journal</p> <h4 style="display:inline"><a style="color:white" href="/files">файлы|files</a></h4> <h4 style="display:inline"><a style="color:white" href="https://git.lotigara.ru">программы|software</a></h4> <label id="switch-label" for="theme-switch"></label> </div> </div></div></div> <div id="divbody"><div class="content"> -<div class="section_header"><a class="ablack" href="fast-transition-wi-fi-roaming-with-openwrt-and-keeneticos.html"> -Fast Transition (Wi-Fi Roaming) with OpenWrt and KeeneticOS +<div class="section_header"><a class="ablack" href="download-mods-for-a-steam-game-from-the-steam-workshop.html"> +Download mods for a Steam game from the Steam Workshop </a></div> -<!-- bashblog_timestamp: #202503071940.59# --> -<div class="subtitle">марта 07, 2025 — +<!-- bashblog_timestamp: #202506072028.51# --> +<div class="subtitle">июня 07, 2025 — Ivan Davydov </div> <!-- text begin --> -<h5>tested on KeeneticOS v3.8.7 & OpenWrt v23.05.5</h5> +<pre alt="sh"> +steamcmd "+login $USERID" $(for i in $MODLIST; do echo "+download_item $APPID $i"; done) +</pre> -<p>First, set up FT on your OpenWrt devices.</p> +<p>Метки: <a href='tag_sh.html'>sh</a>, <a href='tag_steam.html'>steam</a></p> +<!-- text end --> +<div class="section_header"><a class="ablack" href="pubnix----prosody--pam-.html"> +Pubnix - Установка Prosody с PAM-авторизацией +</a></div> +<!-- bashblog_timestamp: #202505042146.43# --> +<div class="subtitle">мая 04, 2025 — +Ivan Davydov +</div> +<!-- text begin --> -<p>Then, change the mode of your Keenetic (?) devices to Extender (there are Repeater/Extender and Access Point/Extender, the last is the recommended).</p> +<h1>Использованные источники</h1> -<p>Go to the <code>Access Point/Extender (Repeater/Extender) > Home segment</code> menu. Change the settings of the Wi-Fi network to those ones in OpenWrt.</p> +<ul> +<li><a href="https://blog.desdelinux.net/en/prosody-im-local-users-SME-networks">DesdeLinux</a></li> +<li><a href="https://landchad.net/prosody">LandChad</a></li> +<li><a href="https://prosody.im">Prosody</a></li> +</ul> -<p>Scroll below to the "Roaming for wireless devices" section. Enable "Fast transition (802.11r)" and write your mobility domain ID converted to the ASCII format.</p> +<h1>0. Системные требования</h1> -<p>You can use an online converter like this one: <a href="https://www.rapidtables.com/convert/number/hex-to-ascii.html">https://www.rapidtables.com/convert/number/hex-to-ascii.html</a>. Keep the "Mobility domain key" field unedited.</p> +<ul> +<li>Firewall с следующими открытыми портами:</li> +<li><ul> +<li>5000/tcp (передача файлов)</li> +</ul></li> +<li><ul> +<li>5222/tcp (подключение клиента)</li> +</ul></li> +<li><ul> +<li>5269/tcp (федерация, подключение сервера к серверу)</li> +</ul></li> +<li><ul> +<li>5281/tcp (по желанию, но рекомендуется)</li> +</ul></li> +<li><p>Debian 12 с последними обновлениями</p></li> +</ul> -<p>Press the "Save" button. Now you have a so-called "Wi-Fi system" with use of both KeeneticOS and OpenWrt!</p> +<p class="readmore"><a href="./pubnix----prosody--pam-.html">Читать далее...</a></p> +<div class="section_header"><a class="ablack" href="openwrt-24101------keenetic-launcher-kn-1221.html"> +OpenWrt 24.10.1 - исправление, добавляющее поддержку Keenetic Launcher (KN-1221) +</a></div> +<!-- bashblog_timestamp: #202504281601.09# --> +<div class="subtitle">апреля 28, 2025 — +Ivan Davydov +</div> +<!-- text begin --> -<p>Метки: <a href='tag_keeneticos.html'>keeneticos</a>, <a href='tag_openwrt.html'>openwrt</a>, <a href='tag_wifi.html'>wifi</a>, <a href='tag_wifi-roaming.html'>wifi-roaming</a></p> +<p>Вот оно: +<summary> +<details></p> + +<pre> +From ef20327e33fb38220ba0bca4418464749305e555 Mon Sep 17 00:00:00 2001 +From: Ivan Davydov <lotigara@lotigara.ru> +Date: Tue, 4 Mar 2025 23:54:13 +0300 +Subject: [PATCH] ramips: mt76x8: add support for Keenetic Launcher (KN-1221) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +Specification: +SoC: MediaTek MT7628AN +RAM: 128M DDR2, ESMT M14D128168A (2Y) +Flash: 32M, cFeon EN25QH256A (Dual Boot on OEM, concatenated on OpenWrt, +SPI) +Switch: MediaTek MT7628AN, 3 ports 100 Mbps +WiFi: MediaTek MT7628AN 2.4 GHz 802.11n +USB: 1 port USB 2.0 +GPIO: 1 button (Wi-Fi & Reset on OEM, Reset on OpenWrt), 3 LEDs (Power, +Internet, Wi-Fi), USB port power controls +Disassembly: +There are 2 screws at the bottom near the LEDs hidden by rubber mounts. +After removing the screws, pry the gray plastic part around (it is secured +with latches) and remove it. +UART Interface: +The UART interface can be connected to the 5 pin located between LAN +ports and the WAN one. +Pins (from the second LAN port to the WAN one): VCC, TX, RX, NC, GND +Settings: 115200, 8N1 +Flashing via TFTP: +1. Connect your PC and router to the first LAN port, configure PC +interface using IP 192.168.1.2, mask 255.255.255.0 +2. Serve the firmware image (for OpenWrt it is *-squashfs-factory.bin) +renamed to KN-1221_recovery.bin via TFTP +3. Power up the router while pressing Wi-Fi button +4. Release Wi-Fi button when Power LED starts blinking +To revert back to OEM firmware: +The return to the OEM firmware is carried out by using the methods +described above with the help of the appropriate firmware image found on +osvault.keenetic.net. +When using OEM bootloader, the firmware image size cannot exceed the size +of one OEM «Firmware_x» partition or Kernel + rootFS size. +Signed-off-by: Ivan Davydov <lotigara@lotigara.ru> +Link: https://github.com/openwrt/openwrt/pull/18164 +Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> +--- + .../ramips/dts/mt7628an_keenetic_kn-1221.dts | 209 ++++++++++++++++++ + target/linux/ramips/image/mt76x8.mk | 12 + + .../mt76x8/base-files/etc/board.d/01_leds | 1 + + .../mt76x8/base-files/etc/board.d/02_network | 5 + + 4 files changed, 227 insertions(+) + create mode 100644 target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts +diff --git a/target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts b/target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts +new file mode 100644 +index 00000000000000..6f5cf96856ed21 +--- /dev/null ++++ b/target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts +@@ -0,0 +1,209 @@ ++// SPDX-License-Identifier: GPL-2.0-or-later OR MIT ++ ++#include "mt7628an.dtsi" ++ ++#include <dt-bindings/gpio/gpio.h> ++#include <dt-bindings/input/input.h> ++#include <dt-bindings/leds/common.h> ++ ++/ { ++ compatible = "keenetic,kn-1221", "mediatek,mt7628an-soc"; ++ model = "Keenetic KN-1221"; ++ ++ aliases { ++ label-mac-device = ðernet; ++ ++ led-boot = &led_power; ++ led-failsafe = &led_power; ++ led-running = &led_power; ++ led-upgrade = &led_power; ++ }; ++ ++ chosen { ++ bootargs = "console=ttyS0,115200"; ++ }; ++ ++ regulator-usb { ++ compatible = "regulator-fixed"; ++ regulator-name = "USB-power"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ gpios = <&gpio 6 GPIO_ACTIVE_HIGH>; ++ enable-active-high; ++ regulator-always-on; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ led_power: power { ++ function = LED_FUNCTION_POWER; ++ color = <LED_COLOR_ID_GREEN>; ++ gpios = <&gpio 11 GPIO_ACTIVE_LOW>; ++ }; ++ ++ internet { ++ function = LED_FUNCTION_WAN; ++ color = <LED_COLOR_ID_GREEN>; ++ gpios = <&gpio 38 GPIO_ACTIVE_LOW>; ++ }; ++ ++ fn { ++ function = LED_FUNCTION_WLAN; ++ color = <LED_COLOR_ID_GREEN>; ++ gpios = <&gpio 4 GPIO_ACTIVE_LOW>; ++ linux,default-trigger = "phy0tpt"; ++ }; ++ }; ++ ++ keys { ++ compatible = "gpio-keys"; ++ ++ reset { ++ label = "restart"; ++ gpios = <&gpio 37 GPIO_ACTIVE_LOW>; ++ linux,code = <KEY_RESTART>; ++ }; ++ }; ++ ++ virtual_flash { ++ compatible = "mtd-concat"; ++ devices = <&firmware1 &firmware2>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ compatible = "denx,uimage"; ++ label = "firmware"; ++ reg = <0x0 0x1cc0000>; ++ }; ++ }; ++ }; ++}; ++ ++&state_default { ++ gpio { ++ groups = "i2c", "spi cs1", "gpio", "refclk", "wdt"; ++ function = "gpio"; ++ }; ++}; ++ ++&spi0 { ++ status = "okay"; ++ ++ flash@0 { ++ compatible = "jedec,spi-nor"; ++ reg = <0>; ++ spi-max-frequency = <32000000>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ label = "u-boot"; ++ reg = <0x0 0x30000>; ++ read-only; ++ }; ++ ++ partition@30000 { ++ label = "u-config"; ++ reg = <0x30000 0x10000>; ++ read-only; ++ }; ++ ++ partition@40000 { ++ label = "rf-eeprom"; ++ reg = <0x40000 0x10000>; ++ read-only; ++ ++ nvmem-layout { ++ compatible = "fixed-layout"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ eeprom_factory_0: eeprom@0 { ++ reg = <0x0 0x400>; ++ }; ++ ++ macaddr_factory_4: macaddr@4 { ++ reg = <0x4 0x6>; ++ }; ++ }; ++ }; ++ ++ firmware1: partition@50000 { ++ label = "firmware_1"; ++ reg = <0x50000 0xe60000>; ++ }; ++ ++ partition@eb0000 { ++ label = "config_1"; ++ reg = <0xeb0000 0x40000>; ++ read-only; ++ }; ++ ++ partition@ef0000 { ++ label = "storage"; ++ reg = <0xef0000 0x100000>; ++ read-only; ++ }; ++ ++ partition@ff0000 { ++ label = "dump"; ++ reg = <0xff0000 0x10000>; ++ read-only; ++ }; ++ ++ partition@1000000 { ++ label = "u-state"; ++ reg = <0x1000000 0x30000>; ++ read-only; ++ }; ++ ++ partition@1030000 { ++ label = "u-config_res"; ++ reg = <0x1030000 0x10000>; ++ read-only; ++ }; ++ ++ partition@1040000 { ++ label = "rf-eeprom_res"; ++ reg = <0x1040000 0x10000>; ++ read-only; ++ }; ++ ++ firmware2: partition@1050000 { ++ label = "firmware_2"; ++ reg = <0x1050000 0xe60000>; ++ }; ++ ++ partition@1eb0000 { ++ label = "Config_2"; ++ reg = <0x1eb0000 0x40000>; ++ read-only; ++ }; ++ }; ++ }; ++}; ++ ++ðernet { ++ nvmem-cells = <&macaddr_factory_4>; ++ nvmem-cell-names = "mac-address"; ++}; ++ ++&esw { ++ mediatek,portmap = <0x3e>; ++ mediatek,portdisable = <0x38>; ++}; ++ ++&wmac { ++ status = "okay"; ++ ++ nvmem-cells = <&eeprom_factory_0>; ++ nvmem-cell-names = "eeprom"; ++}; +diff --git a/target/linux/ramips/image/mt76x8.mk b/target/linux/ramips/image/mt76x8.mk +index 8c8cfee23b6cfa..f442148d9ecf10 100644 +--- a/target/linux/ramips/image/mt76x8.mk ++++ b/target/linux/ramips/image/mt76x8.mk +@@ -366,6 +366,18 @@ define Device/jotale_js76x8-32m + endef + TARGET_DEVICES += jotale_js76x8-32m ++define Device/keenetic_kn-1221 ++ BLOCKSIZE := 64k ++ IMAGE_SIZE := 29440k ++ DEVICE_VENDOR := Keenetic ++ DEVICE_MODEL := KN-1221 ++ DEVICE_PACKAGES := kmod-usb2 ++ IMAGES += factory.bin ++ IMAGE/factory.bin := $$(sysupgrade_bin) | pad-to $$$$(BLOCKSIZE) | \ ++ check-size 14720k | zyimage -d 0x801221 -v "KN-1221" ++endef ++TARGET_DEVICES += keenetic_kn-1221 ++ + define Device/keenetic_kn-1613 + IMAGE_SIZE := 31488k + DEVICE_VENDOR := Keenetic +diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds +index b87062ae3c5ae5..79f78a2a459487 100644 +--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds ++++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds +@@ -58,4 +58,5 @@ hiwifi,hc5661a|\ + hiwifi,hc5761a) + ucidef_set_led_switch "internet" "internet" "blue:internet" "switch0" "0x10" + ;; ++keenetic,kn-1221|\ + keenetic,kn-1613) +diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network +index fbdc7fb5a2697a..6e6e1310d3495f 100644 +--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network ++++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network +@@ -131,5 +131,9 @@ ramips_setup_interfaces() + ucidef_add_switch "switch0" \ + "0:lan" "1:lan" "2:lan" "6@eth0" + ;; ++ keenetic,kn-1221) ++ ucidef_add_switch "switch0" \ ++ "1:lan" "2:lan" "0:wan" "6@eth0" ++ ;; + keenetic,kn-1613|\ + motorola,mwr03) +@@ -280,5 +280,6 @@ ramips_setup_macs() + totolink,lr1200) + wan_mac=$(mtd_get_mac_binary factory 0x2e) + ;; ++ keenetic,kn-1221|\ + keenetic,kn-1613|\ + zyxel,keenetic-extra-ii) +</pre> +<p></details> +</summary></p> +<p>Или в виде файла: <a href="/files/18164.patch.backport-24.10.1">18164.patch.backport-24.10.1</a>. +Готовые сборки тоже доступны в виде файлов: <a href="/files/openwrt-kn-1221-24.10">openwrt-kn-1221-24.10</a></p> +<p>Метки: <a href='tag_openwrt.html'>openwrt</a>, <a href='tag_разработка.html'>разработка</a>, <a href='tag_изменённые прошивки.html'>изменённые прошивки</a></p> +<!-- text end --> +<div class="section_header"><a class="ablack" href="fast-transition-wi-fi-roaming-with-openwrt-and-keeneticos.html"> +Fast Transition (Wi-Fi Roaming) with OpenWrt and KeeneticOS +</a></div> +<!-- bashblog_timestamp: #202503071940.59# --> +<div class="subtitle">марта 07, 2025 — +Ivan Davydov +</div> +<!-- text begin --> +<h5>tested to not work on KeeneticOS v3.8.7 & OpenWrt v23.05.5</h5> +<p>First, set up FT on your OpenWrt devices.</p> +<p>Then, change the mode of your Keenetic (?) devices to Extender (there are Repeater/Extender and Access Point/Extender, the last is the recommended).</p> +<p>Go to the <code>Access Point/Extender (Repeater/Extender) > Home segment</code> menu. Change the settings of the Wi-Fi network to those ones in OpenWrt.</p> + +<p>Scroll below to the "Roaming for wireless devices" section. Enable "Fast transition (802.11r)" and write your mobility domain ID converted to the ASCII format.</p> + +<p>You can use an online converter like this one: <a href="https://www.rapidtables.com/convert/number/hex-to-ascii.html">https://www.rapidtables.com/convert/number/hex-to-ascii.html</a>. Keep the "Mobility domain key" field unedited.</p> + +<p>Press the "Save" button. Now you have a so-called "Wi-Fi system" with use of both KeeneticOS and OpenWrt!</p> + +<p>Метки: <a href='tag_keeneticos.html'>keeneticos</a>, <a href='tag_openwrt.html'>openwrt</a>, <a href='tag_wifi.html'>wifi</a>, <a href='tag_wifi-roaming.html'>wifi-roaming</a></p> <!-- text end --> -<div id="all_posts"><a href="all_posts.html">Больше заметок</a> — <a href="all_tags.html">Все метки</a> — <a href="feed.rss">Подписаться</a></div> +<div id="all_posts"><a href="all_posts.html">Больше заметок</a> — <a href="all_tags.html">Все метки</a> — <a href="https://www.lotigara.ru/blog/feed.rss">Подписаться</a></div> </div> +<script data-isso-css-url="https://www.lotigara.ru/css/isso.css" data-isso="//isso.lotigara.ru/" src="//isso.lotigara.ru/js/embed.min.js"></script> +<section id="isso-thread"> + <noscript>Javascript needs to be activated to view comments.</noscript> +</section> + <div class="section_header section_header_last"> <p>(c) Ivan Davydov 2025. Делайте с этим документом всё, что хотите!</p><hr/> <a href="https://www.lotigara.ru/blog">Веб-сайт самохостера Lotigara</a> сгенерирован при помощи <a href="https://github.com/jakimfett/bashblog">Bashblog</a>. Исходные коды этой версии Bashblog можно найти <a href="https://www.lotigara.ru/files/bashblog">здесь</a>.</div> diff --git a/openwrt-24101------keenetic-launcher-kn-1221.html b/openwrt-24101------keenetic-launcher-kn-1221.html new file mode 100644 index 0000000..148bca0 --- /dev/null +++ b/openwrt-24101------keenetic-launcher-kn-1221.html @@ -0,0 +1,391 @@ +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <link href="/css/main.css" rel="stylesheet" /> + <link href="/css/theme.css" rel="stylesheet" /> + <link href="/css/third-party.css" rel="stylesheet" /> + <link href="/css/responsivity.css" rel="stylesheet" /> +<title>OpenWrt 24.10.1 - исправление, добавляющее поддержку Keenetic Launcher (KN-1221)</title> +</head><body> +<input type="checkbox" id="theme-switch"> +<div id="divbodyholder"><div class="inner_page"> +<div class="headerholder"><div class="header"> +<div id="title"> +<div class="page_header floating_element"> + <h1 class="floating_element">Блог самохостера Lotigara</h1> +</div> +<div class="floating_element"> + <h4 style="display:inline"><a style="color:white" href="/">главная|main page</a></h4> + <h4 style="display:inline"><a style="color:white" href="/status.php">состояние|status</a></h4> + <p style="display:inline">журнал|journal</p> + <h4 style="display:inline"><a style="color:white" href="/files">файлы|files</a></h4> + <h4 style="display:inline"><a style="color:white" href="https://git.lotigara.ru">программы|software</a></h4> + <label id="switch-label" for="theme-switch"></label> +</div> +</div></div></div> +<div id="divbody"><div class="content"> +<!-- entry begin --> +<div class="section_header"><a class="ablack" href="openwrt-24101------keenetic-launcher-kn-1221.html"> +OpenWrt 24.10.1 - исправление, добавляющее поддержку Keenetic Launcher (KN-1221) +</a></div> +<!-- bashblog_timestamp: #202504281601.09# --> +<div class="subtitle">апреля 28, 2025 — +Ivan Davydov +</div> +<!-- text begin --> + +<p>Вот оно: +<summary> +<details></p> + +<pre> +From ef20327e33fb38220ba0bca4418464749305e555 Mon Sep 17 00:00:00 2001 +From: Ivan Davydov <lotigara@lotigara.ru> +Date: Tue, 4 Mar 2025 23:54:13 +0300 +Subject: [PATCH] ramips: mt76x8: add support for Keenetic Launcher (KN-1221) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Specification: +SoC: MediaTek MT7628AN +RAM: 128M DDR2, ESMT M14D128168A (2Y) +Flash: 32M, cFeon EN25QH256A (Dual Boot on OEM, concatenated on OpenWrt, +SPI) +Switch: MediaTek MT7628AN, 3 ports 100 Mbps +WiFi: MediaTek MT7628AN 2.4 GHz 802.11n +USB: 1 port USB 2.0 +GPIO: 1 button (Wi-Fi & Reset on OEM, Reset on OpenWrt), 3 LEDs (Power, +Internet, Wi-Fi), USB port power controls + +Disassembly: +There are 2 screws at the bottom near the LEDs hidden by rubber mounts. +After removing the screws, pry the gray plastic part around (it is secured +with latches) and remove it. + +UART Interface: +The UART interface can be connected to the 5 pin located between LAN +ports and the WAN one. +Pins (from the second LAN port to the WAN one): VCC, TX, RX, NC, GND +Settings: 115200, 8N1 + +Flashing via TFTP: +1. Connect your PC and router to the first LAN port, configure PC +interface using IP 192.168.1.2, mask 255.255.255.0 +2. Serve the firmware image (for OpenWrt it is *-squashfs-factory.bin) +renamed to KN-1221_recovery.bin via TFTP +3. Power up the router while pressing Wi-Fi button +4. Release Wi-Fi button when Power LED starts blinking + +To revert back to OEM firmware: +The return to the OEM firmware is carried out by using the methods +described above with the help of the appropriate firmware image found on +osvault.keenetic.net. + +When using OEM bootloader, the firmware image size cannot exceed the size +of one OEM «Firmware_x» partition or Kernel + rootFS size. + +Signed-off-by: Ivan Davydov <lotigara@lotigara.ru> +Link: https://github.com/openwrt/openwrt/pull/18164 +Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> +--- + .../ramips/dts/mt7628an_keenetic_kn-1221.dts | 209 ++++++++++++++++++ + target/linux/ramips/image/mt76x8.mk | 12 + + .../mt76x8/base-files/etc/board.d/01_leds | 1 + + .../mt76x8/base-files/etc/board.d/02_network | 5 + + 4 files changed, 227 insertions(+) + create mode 100644 target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts + +diff --git a/target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts b/target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts +new file mode 100644 +index 00000000000000..6f5cf96856ed21 +--- /dev/null ++++ b/target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts +@@ -0,0 +1,209 @@ ++// SPDX-License-Identifier: GPL-2.0-or-later OR MIT ++ ++#include "mt7628an.dtsi" ++ ++#include <dt-bindings/gpio/gpio.h> ++#include <dt-bindings/input/input.h> ++#include <dt-bindings/leds/common.h> ++ ++/ { ++ compatible = "keenetic,kn-1221", "mediatek,mt7628an-soc"; ++ model = "Keenetic KN-1221"; ++ ++ aliases { ++ label-mac-device = ðernet; ++ ++ led-boot = &led_power; ++ led-failsafe = &led_power; ++ led-running = &led_power; ++ led-upgrade = &led_power; ++ }; ++ ++ chosen { ++ bootargs = "console=ttyS0,115200"; ++ }; ++ ++ regulator-usb { ++ compatible = "regulator-fixed"; ++ regulator-name = "USB-power"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ gpios = <&gpio 6 GPIO_ACTIVE_HIGH>; ++ enable-active-high; ++ regulator-always-on; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ led_power: power { ++ function = LED_FUNCTION_POWER; ++ color = <LED_COLOR_ID_GREEN>; ++ gpios = <&gpio 11 GPIO_ACTIVE_LOW>; ++ }; ++ ++ internet { ++ function = LED_FUNCTION_WAN; ++ color = <LED_COLOR_ID_GREEN>; ++ gpios = <&gpio 38 GPIO_ACTIVE_LOW>; ++ }; ++ ++ fn { ++ function = LED_FUNCTION_WLAN; ++ color = <LED_COLOR_ID_GREEN>; ++ gpios = <&gpio 4 GPIO_ACTIVE_LOW>; ++ linux,default-trigger = "phy0tpt"; ++ }; ++ }; ++ ++ keys { ++ compatible = "gpio-keys"; ++ ++ reset { ++ label = "restart"; ++ gpios = <&gpio 37 GPIO_ACTIVE_LOW>; ++ linux,code = <KEY_RESTART>; ++ }; ++ }; ++ ++ virtual_flash { ++ compatible = "mtd-concat"; ++ devices = <&firmware1 &firmware2>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ compatible = "denx,uimage"; ++ label = "firmware"; ++ reg = <0x0 0x1cc0000>; ++ }; ++ }; ++ }; ++}; ++ ++&state_default { ++ gpio { ++ groups = "i2c", "spi cs1", "gpio", "refclk", "wdt"; ++ function = "gpio"; ++ }; ++}; ++ ++&spi0 { ++ status = "okay"; ++ ++ flash@0 { ++ compatible = "jedec,spi-nor"; ++ reg = <0>; ++ spi-max-frequency = <32000000>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ label = "u-boot"; ++ reg = <0x0 0x30000>; ++ read-only; ++ }; ++ ++ partition@30000 { ++ label = "u-config"; ++ reg = <0x30000 0x10000>; ++ read-only; ++ }; ++ ++ partition@40000 { ++ label = "rf-eeprom"; ++ reg = <0x40000 0x10000>; ++ read-only; ++ ++ nvmem-layout { ++ compatible = "fixed-layout"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ eeprom_factory_0: eeprom@0 { ++ reg = <0x0 0x400>; ++ }; ++ ++ macaddr_factory_4: macaddr@4 { ++ reg = <0x4 0x6>; ++ }; ++ }; ++ }; ++ ++ firmware1: partition@50000 { ++ label = "firmware_1"; ++ reg = <0x50000 0xe60000>; ++ }; ++ ++ partition@eb0000 { ++ label = "config_1"; ++ reg = <0xeb0000 0x40000>; ++ read-only; ++ }; ++ ++ partition@ef0000 { ++ label = "storage"; ++ reg = <0xef0000 0x100000>; ++ read-only; ++ }; ++ ++ partition@ff0000 { ++ label = "dump"; ++ reg = <0xff0000 0x10000>; ++ read-only; ++ }; ++ ++ partition@1000000 { ++ label = "u-state"; ++ reg = <0x1000000 0x30000>; ++ read-only; ++ }; ++ ++ partition@1030000 { ++ label = "u-config_res"; ++ reg = <0x1030000 0x10000>; ++ read-only; ++ }; ++ ++ partition@1040000 { ++ label = "rf-eeprom_res"; ++ reg = <0x1040000 0x10000>; ++ read-only; ++ }; ++ ++ firmware2: partition@1050000 { ++ label = "firmware_2"; ++ reg = <0x1050000 0xe60000>; ++ }; ++ ++ partition@1eb0000 { ++ label = "Config_2"; ++ reg = <0x1eb0000 0x40000>; ++ read-only; ++ }; ++ }; ++ }; ++}; ++ ++ðernet { ++ nvmem-cells = <&macaddr_factory_4>; ++ nvmem-cell-names = "mac-address"; ++}; ++ ++&esw { ++ mediatek,portmap = <0x3e>; ++ mediatek,portdisable = <0x38>; ++}; ++ ++&wmac { ++ status = "okay"; ++ ++ nvmem-cells = <&eeprom_factory_0>; ++ nvmem-cell-names = "eeprom"; ++}; +diff --git a/target/linux/ramips/image/mt76x8.mk b/target/linux/ramips/image/mt76x8.mk +index 8c8cfee23b6cfa..f442148d9ecf10 100644 +--- a/target/linux/ramips/image/mt76x8.mk ++++ b/target/linux/ramips/image/mt76x8.mk +@@ -366,6 +366,18 @@ define Device/jotale_js76x8-32m + endef + TARGET_DEVICES += jotale_js76x8-32m + ++define Device/keenetic_kn-1221 ++ BLOCKSIZE := 64k ++ IMAGE_SIZE := 29440k ++ DEVICE_VENDOR := Keenetic ++ DEVICE_MODEL := KN-1221 ++ DEVICE_PACKAGES := kmod-usb2 ++ IMAGES += factory.bin ++ IMAGE/factory.bin := $$(sysupgrade_bin) | pad-to $$$$(BLOCKSIZE) | \ ++ check-size 14720k | zyimage -d 0x801221 -v "KN-1221" ++endef ++TARGET_DEVICES += keenetic_kn-1221 ++ + define Device/keenetic_kn-1613 + IMAGE_SIZE := 31488k + DEVICE_VENDOR := Keenetic +diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds +index b87062ae3c5ae5..79f78a2a459487 100644 +--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds ++++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds +@@ -58,4 +58,5 @@ hiwifi,hc5661a|\ + hiwifi,hc5761a) + ucidef_set_led_switch "internet" "internet" "blue:internet" "switch0" "0x10" + ;; ++keenetic,kn-1221|\ + keenetic,kn-1613) +diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network +index fbdc7fb5a2697a..6e6e1310d3495f 100644 +--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network ++++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network +@@ -131,5 +131,9 @@ ramips_setup_interfaces() + ucidef_add_switch "switch0" \ + "0:lan" "1:lan" "2:lan" "6@eth0" + ;; ++ keenetic,kn-1221) ++ ucidef_add_switch "switch0" \ ++ "1:lan" "2:lan" "0:wan" "6@eth0" ++ ;; + keenetic,kn-1613|\ + motorola,mwr03) +@@ -280,5 +280,6 @@ ramips_setup_macs() + totolink,lr1200) + wan_mac=$(mtd_get_mac_binary factory 0x2e) + ;; ++ keenetic,kn-1221|\ + keenetic,kn-1613|\ + zyxel,keenetic-extra-ii) +</pre> + +<p></details> +</summary></p> + +<p>Или в виде файла: <a href="/files/18164.patch.backport-24.10.1">18164.patch.backport-24.10.1</a>. +Готовые сборки тоже доступны в виде файлов: <a href="/files/openwrt-kn-1221-24.10">openwrt-kn-1221-24.10</a></p> + +<p>Метки: <a href='tag_openwrt.html'>openwrt</a>, <a href='tag_разработка.html'>разработка</a>, <a href='tag_изменённые прошивки.html'>изменённые прошивки</a></p> +<!-- text end --> +<!-- entry end --> +</div> +<script data-isso-css-url="https://www.lotigara.ru/css/isso.css" data-isso="//isso.lotigara.ru/" src="//isso.lotigara.ru/js/embed.min.js"></script> +<section id="isso-thread"> + <noscript>Javascript needs to be activated to view comments.</noscript> +</section> + +<div class="section_header section_header_last"> + <p>(c) Ivan Davydov 2025. Делайте с этим документом всё, что хотите!</p><hr/> + <a href="https://www.lotigara.ru/blog">Веб-сайт самохостера Lotigara</a> сгенерирован при помощи <a href="https://github.com/jakimfett/bashblog">Bashblog</a>. Исходные коды этой версии Bashblog можно найти <a href="https://www.lotigara.ru/files/bashblog">здесь</a>.</div> +</div> +</div></div></div> +</body></html> diff --git a/openwrt-24101------keenetic-launcher-kn-1221.md b/openwrt-24101------keenetic-launcher-kn-1221.md new file mode 100644 index 0000000..9d2a52f --- /dev/null +++ b/openwrt-24101------keenetic-launcher-kn-1221.md @@ -0,0 +1,340 @@ +OpenWrt 24.10.1 - исправление, добавляющее поддержку Keenetic Launcher (KN-1221) + +Вот оно: +<summary> +<details> +<pre> +From ef20327e33fb38220ba0bca4418464749305e555 Mon Sep 17 00:00:00 2001 +From: Ivan Davydov <lotigara@lotigara.ru> +Date: Tue, 4 Mar 2025 23:54:13 +0300 +Subject: [PATCH] ramips: mt76x8: add support for Keenetic Launcher (KN-1221) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Specification: +SoC: MediaTek MT7628AN +RAM: 128M DDR2, ESMT M14D128168A (2Y) +Flash: 32M, cFeon EN25QH256A (Dual Boot on OEM, concatenated on OpenWrt, +SPI) +Switch: MediaTek MT7628AN, 3 ports 100 Mbps +WiFi: MediaTek MT7628AN 2.4 GHz 802.11n +USB: 1 port USB 2.0 +GPIO: 1 button (Wi-Fi & Reset on OEM, Reset on OpenWrt), 3 LEDs (Power, +Internet, Wi-Fi), USB port power controls + +Disassembly: +There are 2 screws at the bottom near the LEDs hidden by rubber mounts. +After removing the screws, pry the gray plastic part around (it is secured +with latches) and remove it. + +UART Interface: +The UART interface can be connected to the 5 pin located between LAN +ports and the WAN one. +Pins (from the second LAN port to the WAN one): VCC, TX, RX, NC, GND +Settings: 115200, 8N1 + +Flashing via TFTP: +1. Connect your PC and router to the first LAN port, configure PC +interface using IP 192.168.1.2, mask 255.255.255.0 +2. Serve the firmware image (for OpenWrt it is *-squashfs-factory.bin) +renamed to KN-1221_recovery.bin via TFTP +3. Power up the router while pressing Wi-Fi button +4. Release Wi-Fi button when Power LED starts blinking + +To revert back to OEM firmware: +The return to the OEM firmware is carried out by using the methods +described above with the help of the appropriate firmware image found on +osvault.keenetic.net. + +When using OEM bootloader, the firmware image size cannot exceed the size +of one OEM «Firmware_x» partition or Kernel + rootFS size. + +Signed-off-by: Ivan Davydov <lotigara@lotigara.ru> +Link: https://github.com/openwrt/openwrt/pull/18164 +Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> +--- + .../ramips/dts/mt7628an_keenetic_kn-1221.dts | 209 ++++++++++++++++++ + target/linux/ramips/image/mt76x8.mk | 12 + + .../mt76x8/base-files/etc/board.d/01_leds | 1 + + .../mt76x8/base-files/etc/board.d/02_network | 5 + + 4 files changed, 227 insertions(+) + create mode 100644 target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts + +diff --git a/target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts b/target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts +new file mode 100644 +index 00000000000000..6f5cf96856ed21 +--- /dev/null ++++ b/target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts +@@ -0,0 +1,209 @@ ++// SPDX-License-Identifier: GPL-2.0-or-later OR MIT ++ ++#include "mt7628an.dtsi" ++ ++#include <dt-bindings/gpio/gpio.h> ++#include <dt-bindings/input/input.h> ++#include <dt-bindings/leds/common.h> ++ ++/ { ++ compatible = "keenetic,kn-1221", "mediatek,mt7628an-soc"; ++ model = "Keenetic KN-1221"; ++ ++ aliases { ++ label-mac-device = ðernet; ++ ++ led-boot = &led_power; ++ led-failsafe = &led_power; ++ led-running = &led_power; ++ led-upgrade = &led_power; ++ }; ++ ++ chosen { ++ bootargs = "console=ttyS0,115200"; ++ }; ++ ++ regulator-usb { ++ compatible = "regulator-fixed"; ++ regulator-name = "USB-power"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ gpios = <&gpio 6 GPIO_ACTIVE_HIGH>; ++ enable-active-high; ++ regulator-always-on; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ led_power: power { ++ function = LED_FUNCTION_POWER; ++ color = <LED_COLOR_ID_GREEN>; ++ gpios = <&gpio 11 GPIO_ACTIVE_LOW>; ++ }; ++ ++ internet { ++ function = LED_FUNCTION_WAN; ++ color = <LED_COLOR_ID_GREEN>; ++ gpios = <&gpio 38 GPIO_ACTIVE_LOW>; ++ }; ++ ++ fn { ++ function = LED_FUNCTION_WLAN; ++ color = <LED_COLOR_ID_GREEN>; ++ gpios = <&gpio 4 GPIO_ACTIVE_LOW>; ++ linux,default-trigger = "phy0tpt"; ++ }; ++ }; ++ ++ keys { ++ compatible = "gpio-keys"; ++ ++ reset { ++ label = "restart"; ++ gpios = <&gpio 37 GPIO_ACTIVE_LOW>; ++ linux,code = <KEY_RESTART>; ++ }; ++ }; ++ ++ virtual_flash { ++ compatible = "mtd-concat"; ++ devices = <&firmware1 &firmware2>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ compatible = "denx,uimage"; ++ label = "firmware"; ++ reg = <0x0 0x1cc0000>; ++ }; ++ }; ++ }; ++}; ++ ++&state_default { ++ gpio { ++ groups = "i2c", "spi cs1", "gpio", "refclk", "wdt"; ++ function = "gpio"; ++ }; ++}; ++ ++&spi0 { ++ status = "okay"; ++ ++ flash@0 { ++ compatible = "jedec,spi-nor"; ++ reg = <0>; ++ spi-max-frequency = <32000000>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ label = "u-boot"; ++ reg = <0x0 0x30000>; ++ read-only; ++ }; ++ ++ partition@30000 { ++ label = "u-config"; ++ reg = <0x30000 0x10000>; ++ read-only; ++ }; ++ ++ partition@40000 { ++ label = "rf-eeprom"; ++ reg = <0x40000 0x10000>; ++ read-only; ++ ++ nvmem-layout { ++ compatible = "fixed-layout"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ eeprom_factory_0: eeprom@0 { ++ reg = <0x0 0x400>; ++ }; ++ ++ macaddr_factory_4: macaddr@4 { ++ reg = <0x4 0x6>; ++ }; ++ }; ++ }; ++ ++ firmware1: partition@50000 { ++ label = "firmware_1"; ++ reg = <0x50000 0xe60000>; ++ }; ++ ++ partition@eb0000 { ++ label = "config_1"; ++ reg = <0xeb0000 0x40000>; ++ read-only; ++ }; ++ ++ partition@ef0000 { ++ label = "storage"; ++ reg = <0xef0000 0x100000>; ++ read-only; ++ }; ++ ++ partition@ff0000 { ++ label = "dump"; ++ reg = <0xff0000 0x10000>; ++ read-only; ++ }; ++ ++ partition@1000000 { ++ label = "u-state"; ++ reg = <0x1000000 0x30000>; ++ read-only; ++ }; ++ ++ partition@1030000 { ++ label = "u-config_res"; ++ reg = <0x1030000 0x10000>; ++ read-only; ++ }; ++ ++ partition@1040000 { ++ label = "rf-eeprom_res"; ++ reg = <0x1040000 0x10000>; ++ read-only; ++ }; ++ ++ firmware2: partition@1050000 { ++ label = "firmware_2"; ++ reg = <0x1050000 0xe60000>; ++ }; ++ ++ partition@1eb0000 { ++ label = "Config_2"; ++ reg = <0x1eb0000 0x40000>; ++ read-only; ++ }; ++ }; ++ }; ++}; ++ ++ðernet { ++ nvmem-cells = <&macaddr_factory_4>; ++ nvmem-cell-names = "mac-address"; ++}; ++ ++&esw { ++ mediatek,portmap = <0x3e>; ++ mediatek,portdisable = <0x38>; ++}; ++ ++&wmac { ++ status = "okay"; ++ ++ nvmem-cells = <&eeprom_factory_0>; ++ nvmem-cell-names = "eeprom"; ++}; +diff --git a/target/linux/ramips/image/mt76x8.mk b/target/linux/ramips/image/mt76x8.mk +index 8c8cfee23b6cfa..f442148d9ecf10 100644 +--- a/target/linux/ramips/image/mt76x8.mk ++++ b/target/linux/ramips/image/mt76x8.mk +@@ -366,6 +366,18 @@ define Device/jotale_js76x8-32m + endef + TARGET_DEVICES += jotale_js76x8-32m + ++define Device/keenetic_kn-1221 ++ BLOCKSIZE := 64k ++ IMAGE_SIZE := 29440k ++ DEVICE_VENDOR := Keenetic ++ DEVICE_MODEL := KN-1221 ++ DEVICE_PACKAGES := kmod-usb2 ++ IMAGES += factory.bin ++ IMAGE/factory.bin := $$(sysupgrade_bin) | pad-to $$$$(BLOCKSIZE) | \ ++ check-size 14720k | zyimage -d 0x801221 -v "KN-1221" ++endef ++TARGET_DEVICES += keenetic_kn-1221 ++ + define Device/keenetic_kn-1613 + IMAGE_SIZE := 31488k + DEVICE_VENDOR := Keenetic +diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds +index b87062ae3c5ae5..79f78a2a459487 100644 +--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds ++++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds +@@ -58,4 +58,5 @@ hiwifi,hc5661a|\ + hiwifi,hc5761a) + ucidef_set_led_switch "internet" "internet" "blue:internet" "switch0" "0x10" + ;; ++keenetic,kn-1221|\ + keenetic,kn-1613) +diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network +index fbdc7fb5a2697a..6e6e1310d3495f 100644 +--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network ++++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network +@@ -131,5 +131,9 @@ ramips_setup_interfaces() + ucidef_add_switch "switch0" \ + "0:lan" "1:lan" "2:lan" "6@eth0" + ;; ++ keenetic,kn-1221) ++ ucidef_add_switch "switch0" \ ++ "1:lan" "2:lan" "0:wan" "6@eth0" ++ ;; + keenetic,kn-1613|\ + motorola,mwr03) +@@ -280,5 +280,6 @@ ramips_setup_macs() + totolink,lr1200) + wan_mac=$(mtd_get_mac_binary factory 0x2e) + ;; ++ keenetic,kn-1221|\ + keenetic,kn-1613|\ + zyxel,keenetic-extra-ii) +</pre> +</details> +</summary> + +Или в виде файла: [18164.patch.backport-24.10.1](/files/18164.patch.backport-24.10.1). +Готовые сборки тоже доступны в виде файлов: [openwrt-kn-1221-24.10](/files/openwrt-kn-1221-24.10) + +Метки: openwrt, разработка, изменённые прошивки diff --git a/pubnix----prosody--pam-.html b/pubnix----prosody--pam-.html new file mode 100644 index 0000000..5b95e38 --- /dev/null +++ b/pubnix----prosody--pam-.html @@ -0,0 +1,159 @@ +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <link href="/css/main.css" rel="stylesheet" /> + <link href="/css/theme.css" rel="stylesheet" /> + <link href="/css/third-party.css" rel="stylesheet" /> + <link href="/css/responsivity.css" rel="stylesheet" /> +<title>Pubnix - Установка Prosody с PAM-авторизацией</title> +</head><body> +<input type="checkbox" id="theme-switch"> +<div id="divbodyholder"><div class="inner_page"> +<div class="headerholder"><div class="header"> +<div id="title"> +<div class="page_header floating_element"> + <h1 class="floating_element">Блог самохостера Lotigara</h1> +</div> +<div class="floating_element"> + <h4 style="display:inline"><a style="color:white" href="/">главная|main page</a></h4> + <h4 style="display:inline"><a style="color:white" href="/status.php">состояние|status</a></h4> + <p style="display:inline">журнал|journal</p> + <h4 style="display:inline"><a style="color:white" href="/files">файлы|files</a></h4> + <h4 style="display:inline"><a style="color:white" href="https://git.lotigara.ru">программы|software</a></h4> + <label id="switch-label" for="theme-switch"></label> +</div> +</div></div></div> +<div id="divbody"><div class="content"> +<!-- entry begin --> +<div class="section_header"><a class="ablack" href="pubnix----prosody--pam-.html"> +Pubnix - Установка Prosody с PAM-авторизацией +</a></div> +<!-- bashblog_timestamp: #202505042146.43# --> +<div class="subtitle">мая 04, 2025 — +Ivan Davydov +</div> +<!-- text begin --> + +<h1>Использованные источники</h1> + +<ul> +<li><a href="https://blog.desdelinux.net/en/prosody-im-local-users-SME-networks">DesdeLinux</a></li> +<li><a href="https://landchad.net/prosody">LandChad</a></li> +<li><a href="https://prosody.im">Prosody</a></li> +</ul> + +<h1>0. Системные требования</h1> + +<ul> +<li>Firewall с следующими открытыми портами:</li> +<li><ul> +<li>5000/tcp (передача файлов)</li> +</ul></li> +<li><ul> +<li>5222/tcp (подключение клиента)</li> +</ul></li> +<li><ul> +<li>5269/tcp (федерация, подключение сервера к серверу)</li> +</ul></li> +<li><ul> +<li>5281/tcp (по желанию, но рекомендуется)</li> +</ul></li> +<li><p>Debian 12 с последними обновлениями</p></li> +</ul> + +<hr /> + +<p>Все команды выполняются пользователем <code>root</code>, если не указано иначе.</p> + +<h1>1. Установка</h1> + +<p>Выполните эти команды:</p> + +<pre> +# Установить Prosody +wget https://prosody.im/files/prosody.sources -O/etc/apt/sources.list.d/prosody.sources +apt update +apt install prosody lua5.4 liblua5.4-0 liblua5.4-dev luarocks certbot +# Добавить привилегии демону Prosody +usermod -aG shadow prosody +usermod -aG ssl-cert prosody +# Установить библиотеку для взаимодействия с POSIX-функциями +luarocks install luaposix +# Собрать библиотеку дл/ PAM-аутентификации +git clone https://github.com/devurandom/lua-pam && cd lua-pam +make LUA_VERSION=5.4 +cp pam.so /usr/lib/ +# Установить модуль для PAM-аутентификации +LUA_INCDIR=5.4 prosodyctl install --server=https://modules.prosody.im/rocks/ mod_auth_pam +</pre> + +<h1>2. Настройка</h1> + +<p>Начните редактировать файл <code>/etc/prosody/prosody.cfg.lua</code>. +Следуйте этим инструкциям, заменяя <code>example.net</code> на доменное имя, привязанное к вашему серверу.</p> + +<p>Найдите строку, начинающуюся с слова <code>admins</code>, и добавьте ваше будущее имя пользователя в фигурные скобки подобным образом:</p> + +<pre> +admins = { "admin@example.net" } +</pre> + +<p>Где <code>admin</code> - это ваше имя пользователя в вашей системе.</p> + +<p>Дальше найдите строку <code>--"mam";</code> и удалите два дефиса, сделайте то же самое с строкой <code>--"turn_external";</code>, находящейся ниже.</p> + +<p>Теперь перейдите к строке <code>authentication = "internal_hashed"</code> и замените <code>internal_hashed</code> на <code>pam</code>.</p> + +<p>Перейдите к строке, начинающейся с <code>storage</code> и поменяйте <code>sql</code> на <code>internal</code> (по желанию, в этой инструкции я не рассматриваю настройку с базами данных)</p> + +<p>По желанию в строке <code>archive_expires_after = "1w"</code> замените <code>1w</code> на <code>never</code>, чтобы истории переписок не удалялись каждую неделю.</p> + +<p>Найдите строку, начинающуюся с <code>VirtualHost</code> и замените <code>localhost</code> на <code>example.net</code>.</p> + +<p>Если вам нужны многопользовательские переписки, на следующей строке добавьте следущее:</p> + +<pre> +Component "muc.lotigara.ru" "muc" +modules_enabled = { "muc_mam", "vcard_muc" } +</pre> + +<p>Последнюю строку можете опустить, если вам не нужно сохранение истории многопользовательских переписок.</p> + +<p>Если нужна возможность загружать файлы на ваш сервер, дополните конфигурацию следующими строками:</p> + +<pre> +Component "uf.lotigara.ru" "http_file_share" +http_file_share_size_limit = 512 * 1024 * 1024 --измеряется в байтах +http_file_share_expire_after = 60 * 60 * 24 * 31 * 1000 --измеряется в секундах +</pre> + +<p>В данном случае, лимит размера файла - это 512 МиБ (0,5 ГиБ), а удаляться файлы будут через ~1000 лет. +Если требуется изменить какое-либо из этих свойств, смотрите комментарии (в Lua они начинаются с двух дефисов) и пробуйте изменять значения.</p> + +<h1>Смотрите также</h1> + +<ul> +<li><a href="https://stupin.su/blog/prosody-dovecot-sasl">Ещё один блог сисадмина - Настройка Jabber-сервера Prosody с аутентификацией пользователей через Dovecot SASL</a>. Статья немного старая, но если вы настраивали Dovecot так же, как и я (см. главную страницу), то это может вам пригодиться для, например, добавление доступа в XMPP только по группе. Также советую посмотреть конец раздела по настройке SSL (5-ый), там есть скрипт, который будет обновлять сертификаты в Prosody вместе с Certbot.</li> +<li><a href="https://blog.desdelinux.net/en/prosody-im-local-users-SME-networks">DesdeLinux - Prosody IM and local users - Networks PYMES</a>. Здесь тоже описывается авторизация PAM, но она выполнена с использованием ещё одного демона (т.е. серверной программы или службы, которая выполняется в фоне), что, конечно, неэффективно. Эта страница указана в начале, так как автор некоторое время использовал именно инструкцию по ссылке выше.</li> +</ul> + +<hr /> + +<p>В завершении статьи хочется обратить ваше внимание на то, что данная инструкция предоставляется БЕЗ каких-либо гарантий. Если при выполнении указаний из данной инструкции случилось что-то непредвиденное, вы можете обратиться ко мне, но не стоит ожидать какого-либо результата.</p> + +<p>Метки: <a href='tag_prosody.html'>prosody</a>, <a href='tag_pubnix.html'>pubnix</a>, <a href='tag_xmpp.html'>xmpp</a></p> +<!-- text end --> +<!-- entry end --> +</div> +<script data-isso-css-url="https://www.lotigara.ru/css/isso.css" data-isso="//isso.lotigara.ru/" src="//isso.lotigara.ru/js/embed.min.js"></script> +<section id="isso-thread"> + <noscript>Javascript needs to be activated to view comments.</noscript> +</section> + +<div class="section_header section_header_last"> + <p>(c) Ivan Davydov 2025. Делайте с этим документом всё, что хотите!</p><hr/> + <a href="https://www.lotigara.ru/blog">Веб-сайт самохостера Lotigara</a> сгенерирован при помощи <a href="https://github.com/jakimfett/bashblog">Bashblog</a>. Исходные коды этой версии Bashblog можно найти <a href="https://www.lotigara.ru/files/bashblog">здесь</a>.</div> +</div> +</div></div></div> +</body></html> diff --git a/pubnix----prosody--pam-.md b/pubnix----prosody--pam-.md new file mode 100644 index 0000000..f0cd5f9 --- /dev/null +++ b/pubnix----prosody--pam-.md @@ -0,0 +1,84 @@ +Pubnix - Установка Prosody с PAM-авторизацией + +# Использованные источники +* [DesdeLinux](https://blog.desdelinux.net/en/prosody-im-local-users-SME-networks) +* [LandChad](https://landchad.net/prosody) +* [Prosody](https://prosody.im) + +# 0. Системные требования +* Firewall с следующими открытыми портами: +* * 5000/tcp (передача файлов) +* * 5222/tcp (подключение клиента) +* * 5269/tcp (федерация, подключение сервера к серверу) +* * 5281/tcp (по желанию, но рекомендуется) + +* Debian 12 с последними обновлениями + +--- + +Все команды выполняются пользователем `root`, если не указано иначе. + +# 1. Установка +Выполните эти команды: +<pre> +# Установить Prosody +wget https://prosody.im/files/prosody.sources -O/etc/apt/sources.list.d/prosody.sources +apt update +apt install prosody lua5.4 liblua5.4-0 liblua5.4-dev luarocks certbot +# Добавить привилегии демону Prosody +usermod -aG shadow prosody +usermod -aG ssl-cert prosody +# Установить библиотеку для взаимодействия с POSIX-функциями +luarocks install luaposix +# Собрать библиотеку дл/ PAM-аутентификации +git clone https://github.com/devurandom/lua-pam && cd lua-pam +make LUA_VERSION=5.4 +cp pam.so /usr/lib/ +# Установить модуль для PAM-аутентификации +LUA_INCDIR=5.4 prosodyctl install --server=https://modules.prosody.im/rocks/ mod_auth_pam +</pre> + +# 2. Настройка +Начните редактировать файл `/etc/prosody/prosody.cfg.lua`. +Следуйте этим инструкциям, заменяя `example.net` на доменное имя, привязанное к вашему серверу. + +Найдите строку, начинающуюся с слова `admins`, и добавьте ваше будущее имя пользователя в фигурные скобки подобным образом: +<pre> +admins = { "admin@example.net" } +</pre> +Где `admin` - это ваше имя пользователя в вашей системе. + +Дальше найдите строку `--"mam";` и удалите два дефиса, сделайте то же самое с строкой `--"turn_external";`, находящейся ниже. + +Теперь перейдите к строке `authentication = "internal_hashed"` и замените `internal_hashed` на `pam`. + +Перейдите к строке, начинающейся с `storage` и поменяйте `sql` на `internal` (по желанию, в этой инструкции я не рассматриваю настройку с базами данных) + +По желанию в строке `archive_expires_after = "1w"` замените `1w` на `never`, чтобы истории переписок не удалялись каждую неделю. + +Найдите строку, начинающуюся с `VirtualHost` и замените `localhost` на `example.net`. + +Если вам нужны многопользовательские переписки, на следующей строке добавьте следущее: +<pre> +Component "muc.lotigara.ru" "muc" +modules_enabled = { "muc_mam", "vcard_muc" } +</pre> +Последнюю строку можете опустить, если вам не нужно сохранение истории многопользовательских переписок. + +Если нужна возможность загружать файлы на ваш сервер, дополните конфигурацию следующими строками: +<pre> +Component "uf.lotigara.ru" "http_file_share" +http_file_share_size_limit = 512 * 1024 * 1024 --измеряется в байтах +http_file_share_expire_after = 60 * 60 * 24 * 31 * 1000 --измеряется в секундах +</pre> +В данном случае, лимит размера файла - это 512 МиБ (0,5 ГиБ), а удаляться файлы будут через ~1000 лет. +Если требуется изменить какое-либо из этих свойств, смотрите комментарии (в Lua они начинаются с двух дефисов) и пробуйте изменять значения. + +# Смотрите также +- [Ещё один блог сисадмина - Настройка Jabber-сервера Prosody с аутентификацией пользователей через Dovecot SASL](https://stupin.su/blog/prosody-dovecot-sasl). Статья немного старая, но если вы настраивали Dovecot так же, как и я (см. главную страницу), то это может вам пригодиться для, например, добавление доступа в XMPP только по группе. Также советую посмотреть конец раздела по настройке SSL (5-ый), там есть скрипт, который будет обновлять сертификаты в Prosody вместе с Certbot. +- [DesdeLinux - Prosody IM and local users - Networks PYMES](https://blog.desdelinux.net/en/prosody-im-local-users-SME-networks). Здесь тоже описывается авторизация PAM, но она выполнена с использованием ещё одного демона (т.е. серверной программы или службы, которая выполняется в фоне), что, конечно, неэффективно. Эта страница указана в начале, так как автор некоторое время использовал именно инструкцию по ссылке выше. + +--- +В завершении статьи хочется обратить ваше внимание на то, что данная инструкция предоставляется БЕЗ каких-либо гарантий. Если при выполнении указаний из данной инструкции случилось что-то непредвиденное, вы можете обратиться ко мне, но не стоит ожидать какого-либо результата. + +Метки: prosody, pubnix, xmpp diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..1413139 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,79 @@ +<?xml version="1.0" encoding="UTF-8"?> +<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> +<url> +<loc>https://www.lotigara.ru/blog/all_tags.html</loc> +<lastmod>2025/06/11</lastmod> +</url> +<url> +<loc>https://www.lotigara.ru/blog/all_posts.html</loc> +<lastmod>2025/06/11</lastmod> +</url> +<url> +<loc>https://www.lotigara.ru/blog/index.html</loc> +<lastmod>2025/06/11</lastmod> +</url> +<url> +<loc>https://www.lotigara.ru/blog/tag_разработка.html</loc> +<lastmod>2025/06/11</lastmod> +</url> +<url> +<loc>https://www.lotigara.ru/blog/tag_изменённые.html</loc> +<lastmod>2025/06/11</lastmod> +</url> +<url> +<loc>https://www.lotigara.ru/blog/tag_прошивки.html</loc> +<lastmod>2025/06/11</lastmod> +</url> +<url> +<loc>https://www.lotigara.ru/blog/tag_openwrt.html</loc> +<lastmod>2025/06/11</lastmod> +</url> +<url> +<loc>https://www.lotigara.ru/blog/tag_prosody.html</loc> +<lastmod>2025/06/11</lastmod> +</url> +<url> +<loc>https://www.lotigara.ru/blog/tag_pubnix.html</loc> +<lastmod>2025/06/11</lastmod> +</url> +<url> +<loc>https://www.lotigara.ru/blog/tag_xmpp.html</loc> +<lastmod>2025/06/11</lastmod> +</url> +<url> +<loc>https://www.lotigara.ru/blog/tag_sh.html</loc> +<lastmod>2025/06/11</lastmod> +</url> +<url> +<loc>https://www.lotigara.ru/blog/tag_steam.html</loc> +<lastmod>2025/06/11</lastmod> +</url> +<url> +<loc>https://www.lotigara.ru/blog/tag_keeneticos.html</loc> +<lastmod>2025/06/11</lastmod> +</url> +<url> +<loc>https://www.lotigara.ru/blog/tag_wifi.html</loc> +<lastmod>2025/06/11</lastmod> +</url> +<url> +<loc>https://www.lotigara.ru/blog/tag_wifi-roaming.html</loc> +<lastmod>2025/06/11</lastmod> +</url> +<url> +<loc>https://www.lotigara.ru/blog/download-mods-for-a-steam-game-from-the-steam-workshop.html</loc> +<lastmod>2025/06/07</lastmod> +</url> +<url> +<loc>https://www.lotigara.ru/blog/pubnix----prosody--pam-.html</loc> +<lastmod>2025/05/04</lastmod> +</url> +<url> +<loc>https://www.lotigara.ru/blog/openwrt-24101------keenetic-launcher-kn-1221.html</loc> +<lastmod>2025/04/28</lastmod> +</url> +<url> +<loc>https://www.lotigara.ru/blog/fast-transition-wi-fi-roaming-with-openwrt-and-keeneticos.html</loc> +<lastmod>2025/03/07</lastmod> +</url> +</urlset> diff --git a/tag_keeneticos.html b/tag_keeneticos.html new file mode 100644 index 0000000..c1966fc --- /dev/null +++ b/tag_keeneticos.html @@ -0,0 +1,64 @@ +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <link href="/css/main.css" rel="stylesheet" /> + <link href="/css/theme.css" rel="stylesheet" /> + <link href="/css/third-party.css" rel="stylesheet" /> + <link href="/css/responsivity.css" rel="stylesheet" /> +<title>Блог самохостера Lotigara — Заметки с меткой "keeneticos"</title> +</head><body> +<input type="checkbox" id="theme-switch"> +<div id="divbodyholder"><div class="inner_page"> +<div class="headerholder"><div class="header"> +<div id="title"> +<div class="page_header floating_element"> + <h1 class="floating_element">Блог самохостера Lotigara</h1> +</div> +<div class="floating_element"> + <h4 style="display:inline"><a style="color:white" href="/">главная|main page</a></h4> + <h4 style="display:inline"><a style="color:white" href="/status.php">состояние|status</a></h4> + <p style="display:inline">журнал|journal</p> + <h4 style="display:inline"><a style="color:white" href="/files">файлы|files</a></h4> + <h4 style="display:inline"><a style="color:white" href="https://git.lotigara.ru">программы|software</a></h4> + <label id="switch-label" for="theme-switch"></label> +</div> +</div></div></div> +<div id="divbody"><div class="content"> +<div class="section_header"><a class="ablack" href="fast-transition-wi-fi-roaming-with-openwrt-and-keeneticos.html"> +Fast Transition (Wi-Fi Roaming) with OpenWrt and KeeneticOS +</a></div> +<!-- bashblog_timestamp: #202503071940.59# --> +<div class="subtitle">марта 07, 2025 — +Ivan Davydov +</div> +<!-- text begin --> + +<h5>tested to not work on KeeneticOS v3.8.7 & OpenWrt v23.05.5</h5> + +<p>First, set up FT on your OpenWrt devices.</p> + +<p>Then, change the mode of your Keenetic (?) devices to Extender (there are Repeater/Extender and Access Point/Extender, the last is the recommended).</p> + +<p>Go to the <code>Access Point/Extender (Repeater/Extender) > Home segment</code> menu. Change the settings of the Wi-Fi network to those ones in OpenWrt.</p> + +<p>Scroll below to the "Roaming for wireless devices" section. Enable "Fast transition (802.11r)" and write your mobility domain ID converted to the ASCII format.</p> + +<p>You can use an online converter like this one: <a href="https://www.rapidtables.com/convert/number/hex-to-ascii.html">https://www.rapidtables.com/convert/number/hex-to-ascii.html</a>. Keep the "Mobility domain key" field unedited.</p> + +<p>Press the "Save" button. Now you have a so-called "Wi-Fi system" with use of both KeeneticOS and OpenWrt!</p> + +<p>Метки: <a href='tag_keeneticos.html'>keeneticos</a>, <a href='tag_openwrt.html'>openwrt</a>, <a href='tag_wifi.html'>wifi</a>, <a href='tag_wifi-roaming.html'>wifi-roaming</a></p> +<!-- text end --> +</div> +<script data-isso-css-url="https://www.lotigara.ru/css/isso.css" data-isso="//isso.lotigara.ru/" src="//isso.lotigara.ru/js/embed.min.js"></script> +<section id="isso-thread"> + <noscript>Javascript needs to be activated to view comments.</noscript> +</section> + +<div class="section_header section_header_last"> + <p>(c) Ivan Davydov 2025. Делайте с этим документом всё, что хотите!</p><hr/> + <a href="https://www.lotigara.ru/blog">Веб-сайт самохостера Lotigara</a> сгенерирован при помощи <a href="https://github.com/jakimfett/bashblog">Bashblog</a>. Исходные коды этой версии Bashblog можно найти <a href="https://www.lotigara.ru/files/bashblog">здесь</a>.</div> +</div> +</div></div></div> +</body></html> diff --git a/tag_openwrt.html b/tag_openwrt.html new file mode 100644 index 0000000..df67bd9 --- /dev/null +++ b/tag_openwrt.html @@ -0,0 +1,414 @@ +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <link href="/css/main.css" rel="stylesheet" /> + <link href="/css/theme.css" rel="stylesheet" /> + <link href="/css/third-party.css" rel="stylesheet" /> + <link href="/css/responsivity.css" rel="stylesheet" /> +<title>Блог самохостера Lotigara — Заметки с меткой "openwrt"</title> +</head><body> +<input type="checkbox" id="theme-switch"> +<div id="divbodyholder"><div class="inner_page"> +<div class="headerholder"><div class="header"> +<div id="title"> +<div class="page_header floating_element"> + <h1 class="floating_element">Блог самохостера Lotigara</h1> +</div> +<div class="floating_element"> + <h4 style="display:inline"><a style="color:white" href="/">главная|main page</a></h4> + <h4 style="display:inline"><a style="color:white" href="/status.php">состояние|status</a></h4> + <p style="display:inline">журнал|journal</p> + <h4 style="display:inline"><a style="color:white" href="/files">файлы|files</a></h4> + <h4 style="display:inline"><a style="color:white" href="https://git.lotigara.ru">программы|software</a></h4> + <label id="switch-label" for="theme-switch"></label> +</div> +</div></div></div> +<div id="divbody"><div class="content"> +<div class="section_header"><a class="ablack" href="openwrt-24101------keenetic-launcher-kn-1221.html"> +OpenWrt 24.10.1 - исправление, добавляющее поддержку Keenetic Launcher (KN-1221) +</a></div> +<!-- bashblog_timestamp: #202504281601.09# --> +<div class="subtitle">апреля 28, 2025 — +Ivan Davydov +</div> +<!-- text begin --> + +<p>Вот оно: +<summary> +<details></p> + +<pre> +From ef20327e33fb38220ba0bca4418464749305e555 Mon Sep 17 00:00:00 2001 +From: Ivan Davydov <lotigara@lotigara.ru> +Date: Tue, 4 Mar 2025 23:54:13 +0300 +Subject: [PATCH] ramips: mt76x8: add support for Keenetic Launcher (KN-1221) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Specification: +SoC: MediaTek MT7628AN +RAM: 128M DDR2, ESMT M14D128168A (2Y) +Flash: 32M, cFeon EN25QH256A (Dual Boot on OEM, concatenated on OpenWrt, +SPI) +Switch: MediaTek MT7628AN, 3 ports 100 Mbps +WiFi: MediaTek MT7628AN 2.4 GHz 802.11n +USB: 1 port USB 2.0 +GPIO: 1 button (Wi-Fi & Reset on OEM, Reset on OpenWrt), 3 LEDs (Power, +Internet, Wi-Fi), USB port power controls + +Disassembly: +There are 2 screws at the bottom near the LEDs hidden by rubber mounts. +After removing the screws, pry the gray plastic part around (it is secured +with latches) and remove it. + +UART Interface: +The UART interface can be connected to the 5 pin located between LAN +ports and the WAN one. +Pins (from the second LAN port to the WAN one): VCC, TX, RX, NC, GND +Settings: 115200, 8N1 + +Flashing via TFTP: +1. Connect your PC and router to the first LAN port, configure PC +interface using IP 192.168.1.2, mask 255.255.255.0 +2. Serve the firmware image (for OpenWrt it is *-squashfs-factory.bin) +renamed to KN-1221_recovery.bin via TFTP +3. Power up the router while pressing Wi-Fi button +4. Release Wi-Fi button when Power LED starts blinking + +To revert back to OEM firmware: +The return to the OEM firmware is carried out by using the methods +described above with the help of the appropriate firmware image found on +osvault.keenetic.net. + +When using OEM bootloader, the firmware image size cannot exceed the size +of one OEM «Firmware_x» partition or Kernel + rootFS size. + +Signed-off-by: Ivan Davydov <lotigara@lotigara.ru> +Link: https://github.com/openwrt/openwrt/pull/18164 +Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> +--- + .../ramips/dts/mt7628an_keenetic_kn-1221.dts | 209 ++++++++++++++++++ + target/linux/ramips/image/mt76x8.mk | 12 + + .../mt76x8/base-files/etc/board.d/01_leds | 1 + + .../mt76x8/base-files/etc/board.d/02_network | 5 + + 4 files changed, 227 insertions(+) + create mode 100644 target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts + +diff --git a/target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts b/target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts +new file mode 100644 +index 00000000000000..6f5cf96856ed21 +--- /dev/null ++++ b/target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts +@@ -0,0 +1,209 @@ ++// SPDX-License-Identifier: GPL-2.0-or-later OR MIT ++ ++#include "mt7628an.dtsi" ++ ++#include <dt-bindings/gpio/gpio.h> ++#include <dt-bindings/input/input.h> ++#include <dt-bindings/leds/common.h> ++ ++/ { ++ compatible = "keenetic,kn-1221", "mediatek,mt7628an-soc"; ++ model = "Keenetic KN-1221"; ++ ++ aliases { ++ label-mac-device = ðernet; ++ ++ led-boot = &led_power; ++ led-failsafe = &led_power; ++ led-running = &led_power; ++ led-upgrade = &led_power; ++ }; ++ ++ chosen { ++ bootargs = "console=ttyS0,115200"; ++ }; ++ ++ regulator-usb { ++ compatible = "regulator-fixed"; ++ regulator-name = "USB-power"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ gpios = <&gpio 6 GPIO_ACTIVE_HIGH>; ++ enable-active-high; ++ regulator-always-on; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ led_power: power { ++ function = LED_FUNCTION_POWER; ++ color = <LED_COLOR_ID_GREEN>; ++ gpios = <&gpio 11 GPIO_ACTIVE_LOW>; ++ }; ++ ++ internet { ++ function = LED_FUNCTION_WAN; ++ color = <LED_COLOR_ID_GREEN>; ++ gpios = <&gpio 38 GPIO_ACTIVE_LOW>; ++ }; ++ ++ fn { ++ function = LED_FUNCTION_WLAN; ++ color = <LED_COLOR_ID_GREEN>; ++ gpios = <&gpio 4 GPIO_ACTIVE_LOW>; ++ linux,default-trigger = "phy0tpt"; ++ }; ++ }; ++ ++ keys { ++ compatible = "gpio-keys"; ++ ++ reset { ++ label = "restart"; ++ gpios = <&gpio 37 GPIO_ACTIVE_LOW>; ++ linux,code = <KEY_RESTART>; ++ }; ++ }; ++ ++ virtual_flash { ++ compatible = "mtd-concat"; ++ devices = <&firmware1 &firmware2>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ compatible = "denx,uimage"; ++ label = "firmware"; ++ reg = <0x0 0x1cc0000>; ++ }; ++ }; ++ }; ++}; ++ ++&state_default { ++ gpio { ++ groups = "i2c", "spi cs1", "gpio", "refclk", "wdt"; ++ function = "gpio"; ++ }; ++}; ++ ++&spi0 { ++ status = "okay"; ++ ++ flash@0 { ++ compatible = "jedec,spi-nor"; ++ reg = <0>; ++ spi-max-frequency = <32000000>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ label = "u-boot"; ++ reg = <0x0 0x30000>; ++ read-only; ++ }; ++ ++ partition@30000 { ++ label = "u-config"; ++ reg = <0x30000 0x10000>; ++ read-only; ++ }; ++ ++ partition@40000 { ++ label = "rf-eeprom"; ++ reg = <0x40000 0x10000>; ++ read-only; ++ ++ nvmem-layout { ++ compatible = "fixed-layout"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ eeprom_factory_0: eeprom@0 { ++ reg = <0x0 0x400>; ++ }; ++ ++ macaddr_factory_4: macaddr@4 { ++ reg = <0x4 0x6>; ++ }; ++ }; ++ }; ++ ++ firmware1: partition@50000 { ++ label = "firmware_1"; ++ reg = <0x50000 0xe60000>; ++ }; ++ ++ partition@eb0000 { ++ label = "config_1"; ++ reg = <0xeb0000 0x40000>; ++ read-only; ++ }; ++ ++ partition@ef0000 { ++ label = "storage"; ++ reg = <0xef0000 0x100000>; ++ read-only; ++ }; ++ ++ partition@ff0000 { ++ label = "dump"; ++ reg = <0xff0000 0x10000>; ++ read-only; ++ }; ++ ++ partition@1000000 { ++ label = "u-state"; ++ reg = <0x1000000 0x30000>; ++ read-only; ++ }; ++ ++ partition@1030000 { ++ label = "u-config_res"; ++ reg = <0x1030000 0x10000>; ++ read-only; ++ }; ++ ++ partition@1040000 { ++ label = "rf-eeprom_res"; ++ reg = <0x1040000 0x10000>; ++ read-only; ++ }; ++ ++ firmware2: partition@1050000 { ++ label = "firmware_2"; ++ reg = <0x1050000 0xe60000>; ++ }; ++ ++ partition@1eb0000 { ++ label = "Config_2"; ++ reg = <0x1eb0000 0x40000>; ++ read-only; ++ }; ++ }; ++ }; ++}; ++ ++ðernet { ++ nvmem-cells = <&macaddr_factory_4>; ++ nvmem-cell-names = "mac-address"; ++}; ++ ++&esw { ++ mediatek,portmap = <0x3e>; ++ mediatek,portdisable = <0x38>; ++}; ++ ++&wmac { ++ status = "okay"; ++ ++ nvmem-cells = <&eeprom_factory_0>; ++ nvmem-cell-names = "eeprom"; ++}; +diff --git a/target/linux/ramips/image/mt76x8.mk b/target/linux/ramips/image/mt76x8.mk +index 8c8cfee23b6cfa..f442148d9ecf10 100644 +--- a/target/linux/ramips/image/mt76x8.mk ++++ b/target/linux/ramips/image/mt76x8.mk +@@ -366,6 +366,18 @@ define Device/jotale_js76x8-32m + endef + TARGET_DEVICES += jotale_js76x8-32m + ++define Device/keenetic_kn-1221 ++ BLOCKSIZE := 64k ++ IMAGE_SIZE := 29440k ++ DEVICE_VENDOR := Keenetic ++ DEVICE_MODEL := KN-1221 ++ DEVICE_PACKAGES := kmod-usb2 ++ IMAGES += factory.bin ++ IMAGE/factory.bin := $$(sysupgrade_bin) | pad-to $$$$(BLOCKSIZE) | \ ++ check-size 14720k | zyimage -d 0x801221 -v "KN-1221" ++endef ++TARGET_DEVICES += keenetic_kn-1221 ++ + define Device/keenetic_kn-1613 + IMAGE_SIZE := 31488k + DEVICE_VENDOR := Keenetic +diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds +index b87062ae3c5ae5..79f78a2a459487 100644 +--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds ++++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds +@@ -58,4 +58,5 @@ hiwifi,hc5661a|\ + hiwifi,hc5761a) + ucidef_set_led_switch "internet" "internet" "blue:internet" "switch0" "0x10" + ;; ++keenetic,kn-1221|\ + keenetic,kn-1613) +diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network +index fbdc7fb5a2697a..6e6e1310d3495f 100644 +--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network ++++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network +@@ -131,5 +131,9 @@ ramips_setup_interfaces() + ucidef_add_switch "switch0" \ + "0:lan" "1:lan" "2:lan" "6@eth0" + ;; ++ keenetic,kn-1221) ++ ucidef_add_switch "switch0" \ ++ "1:lan" "2:lan" "0:wan" "6@eth0" ++ ;; + keenetic,kn-1613|\ + motorola,mwr03) +@@ -280,5 +280,6 @@ ramips_setup_macs() + totolink,lr1200) + wan_mac=$(mtd_get_mac_binary factory 0x2e) + ;; ++ keenetic,kn-1221|\ + keenetic,kn-1613|\ + zyxel,keenetic-extra-ii) +</pre> + +<p></details> +</summary></p> + +<p>Или в виде файла: <a href="/files/18164.patch.backport-24.10.1">18164.patch.backport-24.10.1</a>. +Готовые сборки тоже доступны в виде файлов: <a href="/files/openwrt-kn-1221-24.10">openwrt-kn-1221-24.10</a></p> + +<p>Метки: <a href='tag_openwrt.html'>openwrt</a>, <a href='tag_разработка.html'>разработка</a>, <a href='tag_изменённые прошивки.html'>изменённые прошивки</a></p> +<!-- text end --> +<div class="section_header"><a class="ablack" href="fast-transition-wi-fi-roaming-with-openwrt-and-keeneticos.html"> +Fast Transition (Wi-Fi Roaming) with OpenWrt and KeeneticOS +</a></div> +<!-- bashblog_timestamp: #202503071940.59# --> +<div class="subtitle">марта 07, 2025 — +Ivan Davydov +</div> +<!-- text begin --> + +<h5>tested to not work on KeeneticOS v3.8.7 & OpenWrt v23.05.5</h5> + +<p>First, set up FT on your OpenWrt devices.</p> + +<p>Then, change the mode of your Keenetic (?) devices to Extender (there are Repeater/Extender and Access Point/Extender, the last is the recommended).</p> + +<p>Go to the <code>Access Point/Extender (Repeater/Extender) > Home segment</code> menu. Change the settings of the Wi-Fi network to those ones in OpenWrt.</p> + +<p>Scroll below to the "Roaming for wireless devices" section. Enable "Fast transition (802.11r)" and write your mobility domain ID converted to the ASCII format.</p> + +<p>You can use an online converter like this one: <a href="https://www.rapidtables.com/convert/number/hex-to-ascii.html">https://www.rapidtables.com/convert/number/hex-to-ascii.html</a>. Keep the "Mobility domain key" field unedited.</p> + +<p>Press the "Save" button. Now you have a so-called "Wi-Fi system" with use of both KeeneticOS and OpenWrt!</p> + +<p>Метки: <a href='tag_keeneticos.html'>keeneticos</a>, <a href='tag_openwrt.html'>openwrt</a>, <a href='tag_wifi.html'>wifi</a>, <a href='tag_wifi-roaming.html'>wifi-roaming</a></p> +<!-- text end --> +</div> +<script data-isso-css-url="https://www.lotigara.ru/css/isso.css" data-isso="//isso.lotigara.ru/" src="//isso.lotigara.ru/js/embed.min.js"></script> +<section id="isso-thread"> + <noscript>Javascript needs to be activated to view comments.</noscript> +</section> + +<div class="section_header section_header_last"> + <p>(c) Ivan Davydov 2025. Делайте с этим документом всё, что хотите!</p><hr/> + <a href="https://www.lotigara.ru/blog">Веб-сайт самохостера Lotigara</a> сгенерирован при помощи <a href="https://github.com/jakimfett/bashblog">Bashblog</a>. Исходные коды этой версии Bashblog можно найти <a href="https://www.lotigara.ru/files/bashblog">здесь</a>.</div> +</div> +</div></div></div> +</body></html> diff --git a/tag_prosody.html b/tag_prosody.html new file mode 100644 index 0000000..d275187 --- /dev/null +++ b/tag_prosody.html @@ -0,0 +1,76 @@ +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <link href="/css/main.css" rel="stylesheet" /> + <link href="/css/theme.css" rel="stylesheet" /> + <link href="/css/third-party.css" rel="stylesheet" /> + <link href="/css/responsivity.css" rel="stylesheet" /> +<title>Блог самохостера Lotigara — Заметки с меткой "prosody"</title> +</head><body> +<input type="checkbox" id="theme-switch"> +<div id="divbodyholder"><div class="inner_page"> +<div class="headerholder"><div class="header"> +<div id="title"> +<div class="page_header floating_element"> + <h1 class="floating_element">Блог самохостера Lotigara</h1> +</div> +<div class="floating_element"> + <h4 style="display:inline"><a style="color:white" href="/">главная|main page</a></h4> + <h4 style="display:inline"><a style="color:white" href="/status.php">состояние|status</a></h4> + <p style="display:inline">журнал|journal</p> + <h4 style="display:inline"><a style="color:white" href="/files">файлы|files</a></h4> + <h4 style="display:inline"><a style="color:white" href="https://git.lotigara.ru">программы|software</a></h4> + <label id="switch-label" for="theme-switch"></label> +</div> +</div></div></div> +<div id="divbody"><div class="content"> +<div class="section_header"><a class="ablack" href="pubnix----prosody--pam-.html"> +Pubnix - Установка Prosody с PAM-авторизацией +</a></div> +<!-- bashblog_timestamp: #202505042146.43# --> +<div class="subtitle">мая 04, 2025 — +Ivan Davydov +</div> +<!-- text begin --> + +<h1>Использованные источники</h1> + +<ul> +<li><a href="https://blog.desdelinux.net/en/prosody-im-local-users-SME-networks">DesdeLinux</a></li> +<li><a href="https://landchad.net/prosody">LandChad</a></li> +<li><a href="https://prosody.im">Prosody</a></li> +</ul> + +<h1>0. Системные требования</h1> + +<ul> +<li>Firewall с следующими открытыми портами:</li> +<li><ul> +<li>5000/tcp (передача файлов)</li> +</ul></li> +<li><ul> +<li>5222/tcp (подключение клиента)</li> +</ul></li> +<li><ul> +<li>5269/tcp (федерация, подключение сервера к серверу)</li> +</ul></li> +<li><ul> +<li>5281/tcp (по желанию, но рекомендуется)</li> +</ul></li> +<li><p>Debian 12 с последними обновлениями</p></li> +</ul> + +<p class="readmore"><a href="pubnix----prosody--pam-.html">Читать далее...</a></p> +</div> +<script data-isso-css-url="https://www.lotigara.ru/css/isso.css" data-isso="//isso.lotigara.ru/" src="//isso.lotigara.ru/js/embed.min.js"></script> +<section id="isso-thread"> + <noscript>Javascript needs to be activated to view comments.</noscript> +</section> + +<div class="section_header section_header_last"> + <p>(c) Ivan Davydov 2025. Делайте с этим документом всё, что хотите!</p><hr/> + <a href="https://www.lotigara.ru/blog">Веб-сайт самохостера Lotigara</a> сгенерирован при помощи <a href="https://github.com/jakimfett/bashblog">Bashblog</a>. Исходные коды этой версии Bashblog можно найти <a href="https://www.lotigara.ru/files/bashblog">здесь</a>.</div> +</div> +</div></div></div> +</body></html> diff --git a/tag_pubnix.html b/tag_pubnix.html new file mode 100644 index 0000000..90a3720 --- /dev/null +++ b/tag_pubnix.html @@ -0,0 +1,76 @@ +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <link href="/css/main.css" rel="stylesheet" /> + <link href="/css/theme.css" rel="stylesheet" /> + <link href="/css/third-party.css" rel="stylesheet" /> + <link href="/css/responsivity.css" rel="stylesheet" /> +<title>Блог самохостера Lotigara — Заметки с меткой "pubnix"</title> +</head><body> +<input type="checkbox" id="theme-switch"> +<div id="divbodyholder"><div class="inner_page"> +<div class="headerholder"><div class="header"> +<div id="title"> +<div class="page_header floating_element"> + <h1 class="floating_element">Блог самохостера Lotigara</h1> +</div> +<div class="floating_element"> + <h4 style="display:inline"><a style="color:white" href="/">главная|main page</a></h4> + <h4 style="display:inline"><a style="color:white" href="/status.php">состояние|status</a></h4> + <p style="display:inline">журнал|journal</p> + <h4 style="display:inline"><a style="color:white" href="/files">файлы|files</a></h4> + <h4 style="display:inline"><a style="color:white" href="https://git.lotigara.ru">программы|software</a></h4> + <label id="switch-label" for="theme-switch"></label> +</div> +</div></div></div> +<div id="divbody"><div class="content"> +<div class="section_header"><a class="ablack" href="pubnix----prosody--pam-.html"> +Pubnix - Установка Prosody с PAM-авторизацией +</a></div> +<!-- bashblog_timestamp: #202505042146.43# --> +<div class="subtitle">мая 04, 2025 — +Ivan Davydov +</div> +<!-- text begin --> + +<h1>Использованные источники</h1> + +<ul> +<li><a href="https://blog.desdelinux.net/en/prosody-im-local-users-SME-networks">DesdeLinux</a></li> +<li><a href="https://landchad.net/prosody">LandChad</a></li> +<li><a href="https://prosody.im">Prosody</a></li> +</ul> + +<h1>0. Системные требования</h1> + +<ul> +<li>Firewall с следующими открытыми портами:</li> +<li><ul> +<li>5000/tcp (передача файлов)</li> +</ul></li> +<li><ul> +<li>5222/tcp (подключение клиента)</li> +</ul></li> +<li><ul> +<li>5269/tcp (федерация, подключение сервера к серверу)</li> +</ul></li> +<li><ul> +<li>5281/tcp (по желанию, но рекомендуется)</li> +</ul></li> +<li><p>Debian 12 с последними обновлениями</p></li> +</ul> + +<p class="readmore"><a href="pubnix----prosody--pam-.html">Читать далее...</a></p> +</div> +<script data-isso-css-url="https://www.lotigara.ru/css/isso.css" data-isso="//isso.lotigara.ru/" src="//isso.lotigara.ru/js/embed.min.js"></script> +<section id="isso-thread"> + <noscript>Javascript needs to be activated to view comments.</noscript> +</section> + +<div class="section_header section_header_last"> + <p>(c) Ivan Davydov 2025. Делайте с этим документом всё, что хотите!</p><hr/> + <a href="https://www.lotigara.ru/blog">Веб-сайт самохостера Lotigara</a> сгенерирован при помощи <a href="https://github.com/jakimfett/bashblog">Bashblog</a>. Исходные коды этой версии Bashblog можно найти <a href="https://www.lotigara.ru/files/bashblog">здесь</a>.</div> +</div> +</div></div></div> +</body></html> diff --git a/tag_sh.html b/tag_sh.html new file mode 100644 index 0000000..c695c11 --- /dev/null +++ b/tag_sh.html @@ -0,0 +1,54 @@ +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <link href="/css/main.css" rel="stylesheet" /> + <link href="/css/theme.css" rel="stylesheet" /> + <link href="/css/third-party.css" rel="stylesheet" /> + <link href="/css/responsivity.css" rel="stylesheet" /> +<title>Блог самохостера Lotigara — Заметки с меткой "sh"</title> +</head><body> +<input type="checkbox" id="theme-switch"> +<div id="divbodyholder"><div class="inner_page"> +<div class="headerholder"><div class="header"> +<div id="title"> +<div class="page_header floating_element"> + <h1 class="floating_element">Блог самохостера Lotigara</h1> +</div> +<div class="floating_element"> + <h4 style="display:inline"><a style="color:white" href="/">главная|main page</a></h4> + <h4 style="display:inline"><a style="color:white" href="/status.php">состояние|status</a></h4> + <p style="display:inline">журнал|journal</p> + <h4 style="display:inline"><a style="color:white" href="/files">файлы|files</a></h4> + <h4 style="display:inline"><a style="color:white" href="https://git.lotigara.ru">программы|software</a></h4> + <label id="switch-label" for="theme-switch"></label> +</div> +</div></div></div> +<div id="divbody"><div class="content"> +<div class="section_header"><a class="ablack" href="download-mods-for-a-steam-game-from-the-steam-workshop.html"> +Download mods for a Steam game from the Steam Workshop +</a></div> +<!-- bashblog_timestamp: #202506072028.51# --> +<div class="subtitle">июня 07, 2025 — +Ivan Davydov +</div> +<!-- text begin --> + +<pre alt="sh"> +steamcmd "+login $USERID" $(for i in $MODLIST; do echo "+download_item $APPID $i"; done) +</pre> + +<p>Метки: <a href='tag_sh.html'>sh</a>, <a href='tag_steam.html'>steam</a></p> +<!-- text end --> +</div> +<script data-isso-css-url="https://www.lotigara.ru/css/isso.css" data-isso="//isso.lotigara.ru/" src="//isso.lotigara.ru/js/embed.min.js"></script> +<section id="isso-thread"> + <noscript>Javascript needs to be activated to view comments.</noscript> +</section> + +<div class="section_header section_header_last"> + <p>(c) Ivan Davydov 2025. Делайте с этим документом всё, что хотите!</p><hr/> + <a href="https://www.lotigara.ru/blog">Веб-сайт самохостера Lotigara</a> сгенерирован при помощи <a href="https://github.com/jakimfett/bashblog">Bashblog</a>. Исходные коды этой версии Bashblog можно найти <a href="https://www.lotigara.ru/files/bashblog">здесь</a>.</div> +</div> +</div></div></div> +</body></html> diff --git a/tag_steam.html b/tag_steam.html new file mode 100644 index 0000000..b7837f0 --- /dev/null +++ b/tag_steam.html @@ -0,0 +1,54 @@ +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <link href="/css/main.css" rel="stylesheet" /> + <link href="/css/theme.css" rel="stylesheet" /> + <link href="/css/third-party.css" rel="stylesheet" /> + <link href="/css/responsivity.css" rel="stylesheet" /> +<title>Блог самохостера Lotigara — Заметки с меткой "steam"</title> +</head><body> +<input type="checkbox" id="theme-switch"> +<div id="divbodyholder"><div class="inner_page"> +<div class="headerholder"><div class="header"> +<div id="title"> +<div class="page_header floating_element"> + <h1 class="floating_element">Блог самохостера Lotigara</h1> +</div> +<div class="floating_element"> + <h4 style="display:inline"><a style="color:white" href="/">главная|main page</a></h4> + <h4 style="display:inline"><a style="color:white" href="/status.php">состояние|status</a></h4> + <p style="display:inline">журнал|journal</p> + <h4 style="display:inline"><a style="color:white" href="/files">файлы|files</a></h4> + <h4 style="display:inline"><a style="color:white" href="https://git.lotigara.ru">программы|software</a></h4> + <label id="switch-label" for="theme-switch"></label> +</div> +</div></div></div> +<div id="divbody"><div class="content"> +<div class="section_header"><a class="ablack" href="download-mods-for-a-steam-game-from-the-steam-workshop.html"> +Download mods for a Steam game from the Steam Workshop +</a></div> +<!-- bashblog_timestamp: #202506072028.51# --> +<div class="subtitle">июня 07, 2025 — +Ivan Davydov +</div> +<!-- text begin --> + +<pre alt="sh"> +steamcmd "+login $USERID" $(for i in $MODLIST; do echo "+download_item $APPID $i"; done) +</pre> + +<p>Метки: <a href='tag_sh.html'>sh</a>, <a href='tag_steam.html'>steam</a></p> +<!-- text end --> +</div> +<script data-isso-css-url="https://www.lotigara.ru/css/isso.css" data-isso="//isso.lotigara.ru/" src="//isso.lotigara.ru/js/embed.min.js"></script> +<section id="isso-thread"> + <noscript>Javascript needs to be activated to view comments.</noscript> +</section> + +<div class="section_header section_header_last"> + <p>(c) Ivan Davydov 2025. Делайте с этим документом всё, что хотите!</p><hr/> + <a href="https://www.lotigara.ru/blog">Веб-сайт самохостера Lotigara</a> сгенерирован при помощи <a href="https://github.com/jakimfett/bashblog">Bashblog</a>. Исходные коды этой версии Bashblog можно найти <a href="https://www.lotigara.ru/files/bashblog">здесь</a>.</div> +</div> +</div></div></div> +</body></html> diff --git a/tag_wifi-roaming.html b/tag_wifi-roaming.html new file mode 100644 index 0000000..59a1280 --- /dev/null +++ b/tag_wifi-roaming.html @@ -0,0 +1,64 @@ +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <link href="/css/main.css" rel="stylesheet" /> + <link href="/css/theme.css" rel="stylesheet" /> + <link href="/css/third-party.css" rel="stylesheet" /> + <link href="/css/responsivity.css" rel="stylesheet" /> +<title>Блог самохостера Lotigara — Заметки с меткой "wifi-roaming"</title> +</head><body> +<input type="checkbox" id="theme-switch"> +<div id="divbodyholder"><div class="inner_page"> +<div class="headerholder"><div class="header"> +<div id="title"> +<div class="page_header floating_element"> + <h1 class="floating_element">Блог самохостера Lotigara</h1> +</div> +<div class="floating_element"> + <h4 style="display:inline"><a style="color:white" href="/">главная|main page</a></h4> + <h4 style="display:inline"><a style="color:white" href="/status.php">состояние|status</a></h4> + <p style="display:inline">журнал|journal</p> + <h4 style="display:inline"><a style="color:white" href="/files">файлы|files</a></h4> + <h4 style="display:inline"><a style="color:white" href="https://git.lotigara.ru">программы|software</a></h4> + <label id="switch-label" for="theme-switch"></label> +</div> +</div></div></div> +<div id="divbody"><div class="content"> +<div class="section_header"><a class="ablack" href="fast-transition-wi-fi-roaming-with-openwrt-and-keeneticos.html"> +Fast Transition (Wi-Fi Roaming) with OpenWrt and KeeneticOS +</a></div> +<!-- bashblog_timestamp: #202503071940.59# --> +<div class="subtitle">марта 07, 2025 — +Ivan Davydov +</div> +<!-- text begin --> + +<h5>tested to not work on KeeneticOS v3.8.7 & OpenWrt v23.05.5</h5> + +<p>First, set up FT on your OpenWrt devices.</p> + +<p>Then, change the mode of your Keenetic (?) devices to Extender (there are Repeater/Extender and Access Point/Extender, the last is the recommended).</p> + +<p>Go to the <code>Access Point/Extender (Repeater/Extender) > Home segment</code> menu. Change the settings of the Wi-Fi network to those ones in OpenWrt.</p> + +<p>Scroll below to the "Roaming for wireless devices" section. Enable "Fast transition (802.11r)" and write your mobility domain ID converted to the ASCII format.</p> + +<p>You can use an online converter like this one: <a href="https://www.rapidtables.com/convert/number/hex-to-ascii.html">https://www.rapidtables.com/convert/number/hex-to-ascii.html</a>. Keep the "Mobility domain key" field unedited.</p> + +<p>Press the "Save" button. Now you have a so-called "Wi-Fi system" with use of both KeeneticOS and OpenWrt!</p> + +<p>Метки: <a href='tag_keeneticos.html'>keeneticos</a>, <a href='tag_openwrt.html'>openwrt</a>, <a href='tag_wifi.html'>wifi</a>, <a href='tag_wifi-roaming.html'>wifi-roaming</a></p> +<!-- text end --> +</div> +<script data-isso-css-url="https://www.lotigara.ru/css/isso.css" data-isso="//isso.lotigara.ru/" src="//isso.lotigara.ru/js/embed.min.js"></script> +<section id="isso-thread"> + <noscript>Javascript needs to be activated to view comments.</noscript> +</section> + +<div class="section_header section_header_last"> + <p>(c) Ivan Davydov 2025. Делайте с этим документом всё, что хотите!</p><hr/> + <a href="https://www.lotigara.ru/blog">Веб-сайт самохостера Lotigara</a> сгенерирован при помощи <a href="https://github.com/jakimfett/bashblog">Bashblog</a>. Исходные коды этой версии Bashblog можно найти <a href="https://www.lotigara.ru/files/bashblog">здесь</a>.</div> +</div> +</div></div></div> +</body></html> diff --git a/tag_wifi.html b/tag_wifi.html new file mode 100644 index 0000000..d9475ac --- /dev/null +++ b/tag_wifi.html @@ -0,0 +1,64 @@ +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <link href="/css/main.css" rel="stylesheet" /> + <link href="/css/theme.css" rel="stylesheet" /> + <link href="/css/third-party.css" rel="stylesheet" /> + <link href="/css/responsivity.css" rel="stylesheet" /> +<title>Блог самохостера Lotigara — Заметки с меткой "wifi"</title> +</head><body> +<input type="checkbox" id="theme-switch"> +<div id="divbodyholder"><div class="inner_page"> +<div class="headerholder"><div class="header"> +<div id="title"> +<div class="page_header floating_element"> + <h1 class="floating_element">Блог самохостера Lotigara</h1> +</div> +<div class="floating_element"> + <h4 style="display:inline"><a style="color:white" href="/">главная|main page</a></h4> + <h4 style="display:inline"><a style="color:white" href="/status.php">состояние|status</a></h4> + <p style="display:inline">журнал|journal</p> + <h4 style="display:inline"><a style="color:white" href="/files">файлы|files</a></h4> + <h4 style="display:inline"><a style="color:white" href="https://git.lotigara.ru">программы|software</a></h4> + <label id="switch-label" for="theme-switch"></label> +</div> +</div></div></div> +<div id="divbody"><div class="content"> +<div class="section_header"><a class="ablack" href="fast-transition-wi-fi-roaming-with-openwrt-and-keeneticos.html"> +Fast Transition (Wi-Fi Roaming) with OpenWrt and KeeneticOS +</a></div> +<!-- bashblog_timestamp: #202503071940.59# --> +<div class="subtitle">марта 07, 2025 — +Ivan Davydov +</div> +<!-- text begin --> + +<h5>tested to not work on KeeneticOS v3.8.7 & OpenWrt v23.05.5</h5> + +<p>First, set up FT on your OpenWrt devices.</p> + +<p>Then, change the mode of your Keenetic (?) devices to Extender (there are Repeater/Extender and Access Point/Extender, the last is the recommended).</p> + +<p>Go to the <code>Access Point/Extender (Repeater/Extender) > Home segment</code> menu. Change the settings of the Wi-Fi network to those ones in OpenWrt.</p> + +<p>Scroll below to the "Roaming for wireless devices" section. Enable "Fast transition (802.11r)" and write your mobility domain ID converted to the ASCII format.</p> + +<p>You can use an online converter like this one: <a href="https://www.rapidtables.com/convert/number/hex-to-ascii.html">https://www.rapidtables.com/convert/number/hex-to-ascii.html</a>. Keep the "Mobility domain key" field unedited.</p> + +<p>Press the "Save" button. Now you have a so-called "Wi-Fi system" with use of both KeeneticOS and OpenWrt!</p> + +<p>Метки: <a href='tag_keeneticos.html'>keeneticos</a>, <a href='tag_openwrt.html'>openwrt</a>, <a href='tag_wifi.html'>wifi</a>, <a href='tag_wifi-roaming.html'>wifi-roaming</a></p> +<!-- text end --> +</div> +<script data-isso-css-url="https://www.lotigara.ru/css/isso.css" data-isso="//isso.lotigara.ru/" src="//isso.lotigara.ru/js/embed.min.js"></script> +<section id="isso-thread"> + <noscript>Javascript needs to be activated to view comments.</noscript> +</section> + +<div class="section_header section_header_last"> + <p>(c) Ivan Davydov 2025. Делайте с этим документом всё, что хотите!</p><hr/> + <a href="https://www.lotigara.ru/blog">Веб-сайт самохостера Lotigara</a> сгенерирован при помощи <a href="https://github.com/jakimfett/bashblog">Bashblog</a>. Исходные коды этой версии Bashblog можно найти <a href="https://www.lotigara.ru/files/bashblog">здесь</a>.</div> +</div> +</div></div></div> +</body></html> diff --git a/tag_xmpp.html b/tag_xmpp.html new file mode 100644 index 0000000..1dd2fd3 --- /dev/null +++ b/tag_xmpp.html @@ -0,0 +1,76 @@ +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <link href="/css/main.css" rel="stylesheet" /> + <link href="/css/theme.css" rel="stylesheet" /> + <link href="/css/third-party.css" rel="stylesheet" /> + <link href="/css/responsivity.css" rel="stylesheet" /> +<title>Блог самохостера Lotigara — Заметки с меткой "xmpp"</title> +</head><body> +<input type="checkbox" id="theme-switch"> +<div id="divbodyholder"><div class="inner_page"> +<div class="headerholder"><div class="header"> +<div id="title"> +<div class="page_header floating_element"> + <h1 class="floating_element">Блог самохостера Lotigara</h1> +</div> +<div class="floating_element"> + <h4 style="display:inline"><a style="color:white" href="/">главная|main page</a></h4> + <h4 style="display:inline"><a style="color:white" href="/status.php">состояние|status</a></h4> + <p style="display:inline">журнал|journal</p> + <h4 style="display:inline"><a style="color:white" href="/files">файлы|files</a></h4> + <h4 style="display:inline"><a style="color:white" href="https://git.lotigara.ru">программы|software</a></h4> + <label id="switch-label" for="theme-switch"></label> +</div> +</div></div></div> +<div id="divbody"><div class="content"> +<div class="section_header"><a class="ablack" href="pubnix----prosody--pam-.html"> +Pubnix - Установка Prosody с PAM-авторизацией +</a></div> +<!-- bashblog_timestamp: #202505042146.43# --> +<div class="subtitle">мая 04, 2025 — +Ivan Davydov +</div> +<!-- text begin --> + +<h1>Использованные источники</h1> + +<ul> +<li><a href="https://blog.desdelinux.net/en/prosody-im-local-users-SME-networks">DesdeLinux</a></li> +<li><a href="https://landchad.net/prosody">LandChad</a></li> +<li><a href="https://prosody.im">Prosody</a></li> +</ul> + +<h1>0. Системные требования</h1> + +<ul> +<li>Firewall с следующими открытыми портами:</li> +<li><ul> +<li>5000/tcp (передача файлов)</li> +</ul></li> +<li><ul> +<li>5222/tcp (подключение клиента)</li> +</ul></li> +<li><ul> +<li>5269/tcp (федерация, подключение сервера к серверу)</li> +</ul></li> +<li><ul> +<li>5281/tcp (по желанию, но рекомендуется)</li> +</ul></li> +<li><p>Debian 12 с последними обновлениями</p></li> +</ul> + +<p class="readmore"><a href="pubnix----prosody--pam-.html">Читать далее...</a></p> +</div> +<script data-isso-css-url="https://www.lotigara.ru/css/isso.css" data-isso="//isso.lotigara.ru/" src="//isso.lotigara.ru/js/embed.min.js"></script> +<section id="isso-thread"> + <noscript>Javascript needs to be activated to view comments.</noscript> +</section> + +<div class="section_header section_header_last"> + <p>(c) Ivan Davydov 2025. Делайте с этим документом всё, что хотите!</p><hr/> + <a href="https://www.lotigara.ru/blog">Веб-сайт самохостера Lotigara</a> сгенерирован при помощи <a href="https://github.com/jakimfett/bashblog">Bashblog</a>. Исходные коды этой версии Bashblog можно найти <a href="https://www.lotigara.ru/files/bashblog">здесь</a>.</div> +</div> +</div></div></div> +</body></html> diff --git a/tag_изменённые.html b/tag_изменённые.html new file mode 100644 index 0000000..a2085a5 --- /dev/null +++ b/tag_изменённые.html @@ -0,0 +1,389 @@ +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <link href="/css/main.css" rel="stylesheet" /> + <link href="/css/theme.css" rel="stylesheet" /> + <link href="/css/third-party.css" rel="stylesheet" /> + <link href="/css/responsivity.css" rel="stylesheet" /> +<title>Блог самохостера Lotigara — Заметки с меткой "изменённые"</title> +</head><body> +<input type="checkbox" id="theme-switch"> +<div id="divbodyholder"><div class="inner_page"> +<div class="headerholder"><div class="header"> +<div id="title"> +<div class="page_header floating_element"> + <h1 class="floating_element">Блог самохостера Lotigara</h1> +</div> +<div class="floating_element"> + <h4 style="display:inline"><a style="color:white" href="/">главная|main page</a></h4> + <h4 style="display:inline"><a style="color:white" href="/status.php">состояние|status</a></h4> + <p style="display:inline">журнал|journal</p> + <h4 style="display:inline"><a style="color:white" href="/files">файлы|files</a></h4> + <h4 style="display:inline"><a style="color:white" href="https://git.lotigara.ru">программы|software</a></h4> + <label id="switch-label" for="theme-switch"></label> +</div> +</div></div></div> +<div id="divbody"><div class="content"> +<div class="section_header"><a class="ablack" href="openwrt-24101------keenetic-launcher-kn-1221.html"> +OpenWrt 24.10.1 - исправление, добавляющее поддержку Keenetic Launcher (KN-1221) +</a></div> +<!-- bashblog_timestamp: #202504281601.09# --> +<div class="subtitle">апреля 28, 2025 — +Ivan Davydov +</div> +<!-- text begin --> + +<p>Вот оно: +<summary> +<details></p> + +<pre> +From ef20327e33fb38220ba0bca4418464749305e555 Mon Sep 17 00:00:00 2001 +From: Ivan Davydov <lotigara@lotigara.ru> +Date: Tue, 4 Mar 2025 23:54:13 +0300 +Subject: [PATCH] ramips: mt76x8: add support for Keenetic Launcher (KN-1221) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Specification: +SoC: MediaTek MT7628AN +RAM: 128M DDR2, ESMT M14D128168A (2Y) +Flash: 32M, cFeon EN25QH256A (Dual Boot on OEM, concatenated on OpenWrt, +SPI) +Switch: MediaTek MT7628AN, 3 ports 100 Mbps +WiFi: MediaTek MT7628AN 2.4 GHz 802.11n +USB: 1 port USB 2.0 +GPIO: 1 button (Wi-Fi & Reset on OEM, Reset on OpenWrt), 3 LEDs (Power, +Internet, Wi-Fi), USB port power controls + +Disassembly: +There are 2 screws at the bottom near the LEDs hidden by rubber mounts. +After removing the screws, pry the gray plastic part around (it is secured +with latches) and remove it. + +UART Interface: +The UART interface can be connected to the 5 pin located between LAN +ports and the WAN one. +Pins (from the second LAN port to the WAN one): VCC, TX, RX, NC, GND +Settings: 115200, 8N1 + +Flashing via TFTP: +1. Connect your PC and router to the first LAN port, configure PC +interface using IP 192.168.1.2, mask 255.255.255.0 +2. Serve the firmware image (for OpenWrt it is *-squashfs-factory.bin) +renamed to KN-1221_recovery.bin via TFTP +3. Power up the router while pressing Wi-Fi button +4. Release Wi-Fi button when Power LED starts blinking + +To revert back to OEM firmware: +The return to the OEM firmware is carried out by using the methods +described above with the help of the appropriate firmware image found on +osvault.keenetic.net. + +When using OEM bootloader, the firmware image size cannot exceed the size +of one OEM «Firmware_x» partition or Kernel + rootFS size. + +Signed-off-by: Ivan Davydov <lotigara@lotigara.ru> +Link: https://github.com/openwrt/openwrt/pull/18164 +Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> +--- + .../ramips/dts/mt7628an_keenetic_kn-1221.dts | 209 ++++++++++++++++++ + target/linux/ramips/image/mt76x8.mk | 12 + + .../mt76x8/base-files/etc/board.d/01_leds | 1 + + .../mt76x8/base-files/etc/board.d/02_network | 5 + + 4 files changed, 227 insertions(+) + create mode 100644 target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts + +diff --git a/target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts b/target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts +new file mode 100644 +index 00000000000000..6f5cf96856ed21 +--- /dev/null ++++ b/target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts +@@ -0,0 +1,209 @@ ++// SPDX-License-Identifier: GPL-2.0-or-later OR MIT ++ ++#include "mt7628an.dtsi" ++ ++#include <dt-bindings/gpio/gpio.h> ++#include <dt-bindings/input/input.h> ++#include <dt-bindings/leds/common.h> ++ ++/ { ++ compatible = "keenetic,kn-1221", "mediatek,mt7628an-soc"; ++ model = "Keenetic KN-1221"; ++ ++ aliases { ++ label-mac-device = ðernet; ++ ++ led-boot = &led_power; ++ led-failsafe = &led_power; ++ led-running = &led_power; ++ led-upgrade = &led_power; ++ }; ++ ++ chosen { ++ bootargs = "console=ttyS0,115200"; ++ }; ++ ++ regulator-usb { ++ compatible = "regulator-fixed"; ++ regulator-name = "USB-power"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ gpios = <&gpio 6 GPIO_ACTIVE_HIGH>; ++ enable-active-high; ++ regulator-always-on; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ led_power: power { ++ function = LED_FUNCTION_POWER; ++ color = <LED_COLOR_ID_GREEN>; ++ gpios = <&gpio 11 GPIO_ACTIVE_LOW>; ++ }; ++ ++ internet { ++ function = LED_FUNCTION_WAN; ++ color = <LED_COLOR_ID_GREEN>; ++ gpios = <&gpio 38 GPIO_ACTIVE_LOW>; ++ }; ++ ++ fn { ++ function = LED_FUNCTION_WLAN; ++ color = <LED_COLOR_ID_GREEN>; ++ gpios = <&gpio 4 GPIO_ACTIVE_LOW>; ++ linux,default-trigger = "phy0tpt"; ++ }; ++ }; ++ ++ keys { ++ compatible = "gpio-keys"; ++ ++ reset { ++ label = "restart"; ++ gpios = <&gpio 37 GPIO_ACTIVE_LOW>; ++ linux,code = <KEY_RESTART>; ++ }; ++ }; ++ ++ virtual_flash { ++ compatible = "mtd-concat"; ++ devices = <&firmware1 &firmware2>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ compatible = "denx,uimage"; ++ label = "firmware"; ++ reg = <0x0 0x1cc0000>; ++ }; ++ }; ++ }; ++}; ++ ++&state_default { ++ gpio { ++ groups = "i2c", "spi cs1", "gpio", "refclk", "wdt"; ++ function = "gpio"; ++ }; ++}; ++ ++&spi0 { ++ status = "okay"; ++ ++ flash@0 { ++ compatible = "jedec,spi-nor"; ++ reg = <0>; ++ spi-max-frequency = <32000000>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ label = "u-boot"; ++ reg = <0x0 0x30000>; ++ read-only; ++ }; ++ ++ partition@30000 { ++ label = "u-config"; ++ reg = <0x30000 0x10000>; ++ read-only; ++ }; ++ ++ partition@40000 { ++ label = "rf-eeprom"; ++ reg = <0x40000 0x10000>; ++ read-only; ++ ++ nvmem-layout { ++ compatible = "fixed-layout"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ eeprom_factory_0: eeprom@0 { ++ reg = <0x0 0x400>; ++ }; ++ ++ macaddr_factory_4: macaddr@4 { ++ reg = <0x4 0x6>; ++ }; ++ }; ++ }; ++ ++ firmware1: partition@50000 { ++ label = "firmware_1"; ++ reg = <0x50000 0xe60000>; ++ }; ++ ++ partition@eb0000 { ++ label = "config_1"; ++ reg = <0xeb0000 0x40000>; ++ read-only; ++ }; ++ ++ partition@ef0000 { ++ label = "storage"; ++ reg = <0xef0000 0x100000>; ++ read-only; ++ }; ++ ++ partition@ff0000 { ++ label = "dump"; ++ reg = <0xff0000 0x10000>; ++ read-only; ++ }; ++ ++ partition@1000000 { ++ label = "u-state"; ++ reg = <0x1000000 0x30000>; ++ read-only; ++ }; ++ ++ partition@1030000 { ++ label = "u-config_res"; ++ reg = <0x1030000 0x10000>; ++ read-only; ++ }; ++ ++ partition@1040000 { ++ label = "rf-eeprom_res"; ++ reg = <0x1040000 0x10000>; ++ read-only; ++ }; ++ ++ firmware2: partition@1050000 { ++ label = "firmware_2"; ++ reg = <0x1050000 0xe60000>; ++ }; ++ ++ partition@1eb0000 { ++ label = "Config_2"; ++ reg = <0x1eb0000 0x40000>; ++ read-only; ++ }; ++ }; ++ }; ++}; ++ ++ðernet { ++ nvmem-cells = <&macaddr_factory_4>; ++ nvmem-cell-names = "mac-address"; ++}; ++ ++&esw { ++ mediatek,portmap = <0x3e>; ++ mediatek,portdisable = <0x38>; ++}; ++ ++&wmac { ++ status = "okay"; ++ ++ nvmem-cells = <&eeprom_factory_0>; ++ nvmem-cell-names = "eeprom"; ++}; +diff --git a/target/linux/ramips/image/mt76x8.mk b/target/linux/ramips/image/mt76x8.mk +index 8c8cfee23b6cfa..f442148d9ecf10 100644 +--- a/target/linux/ramips/image/mt76x8.mk ++++ b/target/linux/ramips/image/mt76x8.mk +@@ -366,6 +366,18 @@ define Device/jotale_js76x8-32m + endef + TARGET_DEVICES += jotale_js76x8-32m + ++define Device/keenetic_kn-1221 ++ BLOCKSIZE := 64k ++ IMAGE_SIZE := 29440k ++ DEVICE_VENDOR := Keenetic ++ DEVICE_MODEL := KN-1221 ++ DEVICE_PACKAGES := kmod-usb2 ++ IMAGES += factory.bin ++ IMAGE/factory.bin := $$(sysupgrade_bin) | pad-to $$$$(BLOCKSIZE) | \ ++ check-size 14720k | zyimage -d 0x801221 -v "KN-1221" ++endef ++TARGET_DEVICES += keenetic_kn-1221 ++ + define Device/keenetic_kn-1613 + IMAGE_SIZE := 31488k + DEVICE_VENDOR := Keenetic +diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds +index b87062ae3c5ae5..79f78a2a459487 100644 +--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds ++++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds +@@ -58,4 +58,5 @@ hiwifi,hc5661a|\ + hiwifi,hc5761a) + ucidef_set_led_switch "internet" "internet" "blue:internet" "switch0" "0x10" + ;; ++keenetic,kn-1221|\ + keenetic,kn-1613) +diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network +index fbdc7fb5a2697a..6e6e1310d3495f 100644 +--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network ++++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network +@@ -131,5 +131,9 @@ ramips_setup_interfaces() + ucidef_add_switch "switch0" \ + "0:lan" "1:lan" "2:lan" "6@eth0" + ;; ++ keenetic,kn-1221) ++ ucidef_add_switch "switch0" \ ++ "1:lan" "2:lan" "0:wan" "6@eth0" ++ ;; + keenetic,kn-1613|\ + motorola,mwr03) +@@ -280,5 +280,6 @@ ramips_setup_macs() + totolink,lr1200) + wan_mac=$(mtd_get_mac_binary factory 0x2e) + ;; ++ keenetic,kn-1221|\ + keenetic,kn-1613|\ + zyxel,keenetic-extra-ii) +</pre> + +<p></details> +</summary></p> + +<p>Или в виде файла: <a href="/files/18164.patch.backport-24.10.1">18164.patch.backport-24.10.1</a>. +Готовые сборки тоже доступны в виде файлов: <a href="/files/openwrt-kn-1221-24.10">openwrt-kn-1221-24.10</a></p> + +<p>Метки: <a href='tag_openwrt.html'>openwrt</a>, <a href='tag_разработка.html'>разработка</a>, <a href='tag_изменённые прошивки.html'>изменённые прошивки</a></p> +<!-- text end --> +</div> +<script data-isso-css-url="https://www.lotigara.ru/css/isso.css" data-isso="//isso.lotigara.ru/" src="//isso.lotigara.ru/js/embed.min.js"></script> +<section id="isso-thread"> + <noscript>Javascript needs to be activated to view comments.</noscript> +</section> + +<div class="section_header section_header_last"> + <p>(c) Ivan Davydov 2025. Делайте с этим документом всё, что хотите!</p><hr/> + <a href="https://www.lotigara.ru/blog">Веб-сайт самохостера Lotigara</a> сгенерирован при помощи <a href="https://github.com/jakimfett/bashblog">Bashblog</a>. Исходные коды этой версии Bashblog можно найти <a href="https://www.lotigara.ru/files/bashblog">здесь</a>.</div> +</div> +</div></div></div> +</body></html> diff --git a/tag_прошивки.html b/tag_прошивки.html new file mode 100644 index 0000000..20c36a3 --- /dev/null +++ b/tag_прошивки.html @@ -0,0 +1,389 @@ +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <link href="/css/main.css" rel="stylesheet" /> + <link href="/css/theme.css" rel="stylesheet" /> + <link href="/css/third-party.css" rel="stylesheet" /> + <link href="/css/responsivity.css" rel="stylesheet" /> +<title>Блог самохостера Lotigara — Заметки с меткой "прошивки"</title> +</head><body> +<input type="checkbox" id="theme-switch"> +<div id="divbodyholder"><div class="inner_page"> +<div class="headerholder"><div class="header"> +<div id="title"> +<div class="page_header floating_element"> + <h1 class="floating_element">Блог самохостера Lotigara</h1> +</div> +<div class="floating_element"> + <h4 style="display:inline"><a style="color:white" href="/">главная|main page</a></h4> + <h4 style="display:inline"><a style="color:white" href="/status.php">состояние|status</a></h4> + <p style="display:inline">журнал|journal</p> + <h4 style="display:inline"><a style="color:white" href="/files">файлы|files</a></h4> + <h4 style="display:inline"><a style="color:white" href="https://git.lotigara.ru">программы|software</a></h4> + <label id="switch-label" for="theme-switch"></label> +</div> +</div></div></div> +<div id="divbody"><div class="content"> +<div class="section_header"><a class="ablack" href="openwrt-24101------keenetic-launcher-kn-1221.html"> +OpenWrt 24.10.1 - исправление, добавляющее поддержку Keenetic Launcher (KN-1221) +</a></div> +<!-- bashblog_timestamp: #202504281601.09# --> +<div class="subtitle">апреля 28, 2025 — +Ivan Davydov +</div> +<!-- text begin --> + +<p>Вот оно: +<summary> +<details></p> + +<pre> +From ef20327e33fb38220ba0bca4418464749305e555 Mon Sep 17 00:00:00 2001 +From: Ivan Davydov <lotigara@lotigara.ru> +Date: Tue, 4 Mar 2025 23:54:13 +0300 +Subject: [PATCH] ramips: mt76x8: add support for Keenetic Launcher (KN-1221) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Specification: +SoC: MediaTek MT7628AN +RAM: 128M DDR2, ESMT M14D128168A (2Y) +Flash: 32M, cFeon EN25QH256A (Dual Boot on OEM, concatenated on OpenWrt, +SPI) +Switch: MediaTek MT7628AN, 3 ports 100 Mbps +WiFi: MediaTek MT7628AN 2.4 GHz 802.11n +USB: 1 port USB 2.0 +GPIO: 1 button (Wi-Fi & Reset on OEM, Reset on OpenWrt), 3 LEDs (Power, +Internet, Wi-Fi), USB port power controls + +Disassembly: +There are 2 screws at the bottom near the LEDs hidden by rubber mounts. +After removing the screws, pry the gray plastic part around (it is secured +with latches) and remove it. + +UART Interface: +The UART interface can be connected to the 5 pin located between LAN +ports and the WAN one. +Pins (from the second LAN port to the WAN one): VCC, TX, RX, NC, GND +Settings: 115200, 8N1 + +Flashing via TFTP: +1. Connect your PC and router to the first LAN port, configure PC +interface using IP 192.168.1.2, mask 255.255.255.0 +2. Serve the firmware image (for OpenWrt it is *-squashfs-factory.bin) +renamed to KN-1221_recovery.bin via TFTP +3. Power up the router while pressing Wi-Fi button +4. Release Wi-Fi button when Power LED starts blinking + +To revert back to OEM firmware: +The return to the OEM firmware is carried out by using the methods +described above with the help of the appropriate firmware image found on +osvault.keenetic.net. + +When using OEM bootloader, the firmware image size cannot exceed the size +of one OEM «Firmware_x» partition or Kernel + rootFS size. + +Signed-off-by: Ivan Davydov <lotigara@lotigara.ru> +Link: https://github.com/openwrt/openwrt/pull/18164 +Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> +--- + .../ramips/dts/mt7628an_keenetic_kn-1221.dts | 209 ++++++++++++++++++ + target/linux/ramips/image/mt76x8.mk | 12 + + .../mt76x8/base-files/etc/board.d/01_leds | 1 + + .../mt76x8/base-files/etc/board.d/02_network | 5 + + 4 files changed, 227 insertions(+) + create mode 100644 target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts + +diff --git a/target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts b/target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts +new file mode 100644 +index 00000000000000..6f5cf96856ed21 +--- /dev/null ++++ b/target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts +@@ -0,0 +1,209 @@ ++// SPDX-License-Identifier: GPL-2.0-or-later OR MIT ++ ++#include "mt7628an.dtsi" ++ ++#include <dt-bindings/gpio/gpio.h> ++#include <dt-bindings/input/input.h> ++#include <dt-bindings/leds/common.h> ++ ++/ { ++ compatible = "keenetic,kn-1221", "mediatek,mt7628an-soc"; ++ model = "Keenetic KN-1221"; ++ ++ aliases { ++ label-mac-device = ðernet; ++ ++ led-boot = &led_power; ++ led-failsafe = &led_power; ++ led-running = &led_power; ++ led-upgrade = &led_power; ++ }; ++ ++ chosen { ++ bootargs = "console=ttyS0,115200"; ++ }; ++ ++ regulator-usb { ++ compatible = "regulator-fixed"; ++ regulator-name = "USB-power"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ gpios = <&gpio 6 GPIO_ACTIVE_HIGH>; ++ enable-active-high; ++ regulator-always-on; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ led_power: power { ++ function = LED_FUNCTION_POWER; ++ color = <LED_COLOR_ID_GREEN>; ++ gpios = <&gpio 11 GPIO_ACTIVE_LOW>; ++ }; ++ ++ internet { ++ function = LED_FUNCTION_WAN; ++ color = <LED_COLOR_ID_GREEN>; ++ gpios = <&gpio 38 GPIO_ACTIVE_LOW>; ++ }; ++ ++ fn { ++ function = LED_FUNCTION_WLAN; ++ color = <LED_COLOR_ID_GREEN>; ++ gpios = <&gpio 4 GPIO_ACTIVE_LOW>; ++ linux,default-trigger = "phy0tpt"; ++ }; ++ }; ++ ++ keys { ++ compatible = "gpio-keys"; ++ ++ reset { ++ label = "restart"; ++ gpios = <&gpio 37 GPIO_ACTIVE_LOW>; ++ linux,code = <KEY_RESTART>; ++ }; ++ }; ++ ++ virtual_flash { ++ compatible = "mtd-concat"; ++ devices = <&firmware1 &firmware2>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ compatible = "denx,uimage"; ++ label = "firmware"; ++ reg = <0x0 0x1cc0000>; ++ }; ++ }; ++ }; ++}; ++ ++&state_default { ++ gpio { ++ groups = "i2c", "spi cs1", "gpio", "refclk", "wdt"; ++ function = "gpio"; ++ }; ++}; ++ ++&spi0 { ++ status = "okay"; ++ ++ flash@0 { ++ compatible = "jedec,spi-nor"; ++ reg = <0>; ++ spi-max-frequency = <32000000>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ label = "u-boot"; ++ reg = <0x0 0x30000>; ++ read-only; ++ }; ++ ++ partition@30000 { ++ label = "u-config"; ++ reg = <0x30000 0x10000>; ++ read-only; ++ }; ++ ++ partition@40000 { ++ label = "rf-eeprom"; ++ reg = <0x40000 0x10000>; ++ read-only; ++ ++ nvmem-layout { ++ compatible = "fixed-layout"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ eeprom_factory_0: eeprom@0 { ++ reg = <0x0 0x400>; ++ }; ++ ++ macaddr_factory_4: macaddr@4 { ++ reg = <0x4 0x6>; ++ }; ++ }; ++ }; ++ ++ firmware1: partition@50000 { ++ label = "firmware_1"; ++ reg = <0x50000 0xe60000>; ++ }; ++ ++ partition@eb0000 { ++ label = "config_1"; ++ reg = <0xeb0000 0x40000>; ++ read-only; ++ }; ++ ++ partition@ef0000 { ++ label = "storage"; ++ reg = <0xef0000 0x100000>; ++ read-only; ++ }; ++ ++ partition@ff0000 { ++ label = "dump"; ++ reg = <0xff0000 0x10000>; ++ read-only; ++ }; ++ ++ partition@1000000 { ++ label = "u-state"; ++ reg = <0x1000000 0x30000>; ++ read-only; ++ }; ++ ++ partition@1030000 { ++ label = "u-config_res"; ++ reg = <0x1030000 0x10000>; ++ read-only; ++ }; ++ ++ partition@1040000 { ++ label = "rf-eeprom_res"; ++ reg = <0x1040000 0x10000>; ++ read-only; ++ }; ++ ++ firmware2: partition@1050000 { ++ label = "firmware_2"; ++ reg = <0x1050000 0xe60000>; ++ }; ++ ++ partition@1eb0000 { ++ label = "Config_2"; ++ reg = <0x1eb0000 0x40000>; ++ read-only; ++ }; ++ }; ++ }; ++}; ++ ++ðernet { ++ nvmem-cells = <&macaddr_factory_4>; ++ nvmem-cell-names = "mac-address"; ++}; ++ ++&esw { ++ mediatek,portmap = <0x3e>; ++ mediatek,portdisable = <0x38>; ++}; ++ ++&wmac { ++ status = "okay"; ++ ++ nvmem-cells = <&eeprom_factory_0>; ++ nvmem-cell-names = "eeprom"; ++}; +diff --git a/target/linux/ramips/image/mt76x8.mk b/target/linux/ramips/image/mt76x8.mk +index 8c8cfee23b6cfa..f442148d9ecf10 100644 +--- a/target/linux/ramips/image/mt76x8.mk ++++ b/target/linux/ramips/image/mt76x8.mk +@@ -366,6 +366,18 @@ define Device/jotale_js76x8-32m + endef + TARGET_DEVICES += jotale_js76x8-32m + ++define Device/keenetic_kn-1221 ++ BLOCKSIZE := 64k ++ IMAGE_SIZE := 29440k ++ DEVICE_VENDOR := Keenetic ++ DEVICE_MODEL := KN-1221 ++ DEVICE_PACKAGES := kmod-usb2 ++ IMAGES += factory.bin ++ IMAGE/factory.bin := $$(sysupgrade_bin) | pad-to $$$$(BLOCKSIZE) | \ ++ check-size 14720k | zyimage -d 0x801221 -v "KN-1221" ++endef ++TARGET_DEVICES += keenetic_kn-1221 ++ + define Device/keenetic_kn-1613 + IMAGE_SIZE := 31488k + DEVICE_VENDOR := Keenetic +diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds +index b87062ae3c5ae5..79f78a2a459487 100644 +--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds ++++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds +@@ -58,4 +58,5 @@ hiwifi,hc5661a|\ + hiwifi,hc5761a) + ucidef_set_led_switch "internet" "internet" "blue:internet" "switch0" "0x10" + ;; ++keenetic,kn-1221|\ + keenetic,kn-1613) +diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network +index fbdc7fb5a2697a..6e6e1310d3495f 100644 +--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network ++++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network +@@ -131,5 +131,9 @@ ramips_setup_interfaces() + ucidef_add_switch "switch0" \ + "0:lan" "1:lan" "2:lan" "6@eth0" + ;; ++ keenetic,kn-1221) ++ ucidef_add_switch "switch0" \ ++ "1:lan" "2:lan" "0:wan" "6@eth0" ++ ;; + keenetic,kn-1613|\ + motorola,mwr03) +@@ -280,5 +280,6 @@ ramips_setup_macs() + totolink,lr1200) + wan_mac=$(mtd_get_mac_binary factory 0x2e) + ;; ++ keenetic,kn-1221|\ + keenetic,kn-1613|\ + zyxel,keenetic-extra-ii) +</pre> + +<p></details> +</summary></p> + +<p>Или в виде файла: <a href="/files/18164.patch.backport-24.10.1">18164.patch.backport-24.10.1</a>. +Готовые сборки тоже доступны в виде файлов: <a href="/files/openwrt-kn-1221-24.10">openwrt-kn-1221-24.10</a></p> + +<p>Метки: <a href='tag_openwrt.html'>openwrt</a>, <a href='tag_разработка.html'>разработка</a>, <a href='tag_изменённые прошивки.html'>изменённые прошивки</a></p> +<!-- text end --> +</div> +<script data-isso-css-url="https://www.lotigara.ru/css/isso.css" data-isso="//isso.lotigara.ru/" src="//isso.lotigara.ru/js/embed.min.js"></script> +<section id="isso-thread"> + <noscript>Javascript needs to be activated to view comments.</noscript> +</section> + +<div class="section_header section_header_last"> + <p>(c) Ivan Davydov 2025. Делайте с этим документом всё, что хотите!</p><hr/> + <a href="https://www.lotigara.ru/blog">Веб-сайт самохостера Lotigara</a> сгенерирован при помощи <a href="https://github.com/jakimfett/bashblog">Bashblog</a>. Исходные коды этой версии Bashblog можно найти <a href="https://www.lotigara.ru/files/bashblog">здесь</a>.</div> +</div> +</div></div></div> +</body></html> diff --git a/tag_разработка.html b/tag_разработка.html new file mode 100644 index 0000000..570846a --- /dev/null +++ b/tag_разработка.html @@ -0,0 +1,389 @@ +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <link href="/css/main.css" rel="stylesheet" /> + <link href="/css/theme.css" rel="stylesheet" /> + <link href="/css/third-party.css" rel="stylesheet" /> + <link href="/css/responsivity.css" rel="stylesheet" /> +<title>Блог самохостера Lotigara — Заметки с меткой "разработка"</title> +</head><body> +<input type="checkbox" id="theme-switch"> +<div id="divbodyholder"><div class="inner_page"> +<div class="headerholder"><div class="header"> +<div id="title"> +<div class="page_header floating_element"> + <h1 class="floating_element">Блог самохостера Lotigara</h1> +</div> +<div class="floating_element"> + <h4 style="display:inline"><a style="color:white" href="/">главная|main page</a></h4> + <h4 style="display:inline"><a style="color:white" href="/status.php">состояние|status</a></h4> + <p style="display:inline">журнал|journal</p> + <h4 style="display:inline"><a style="color:white" href="/files">файлы|files</a></h4> + <h4 style="display:inline"><a style="color:white" href="https://git.lotigara.ru">программы|software</a></h4> + <label id="switch-label" for="theme-switch"></label> +</div> +</div></div></div> +<div id="divbody"><div class="content"> +<div class="section_header"><a class="ablack" href="openwrt-24101------keenetic-launcher-kn-1221.html"> +OpenWrt 24.10.1 - исправление, добавляющее поддержку Keenetic Launcher (KN-1221) +</a></div> +<!-- bashblog_timestamp: #202504281601.09# --> +<div class="subtitle">апреля 28, 2025 — +Ivan Davydov +</div> +<!-- text begin --> + +<p>Вот оно: +<summary> +<details></p> + +<pre> +From ef20327e33fb38220ba0bca4418464749305e555 Mon Sep 17 00:00:00 2001 +From: Ivan Davydov <lotigara@lotigara.ru> +Date: Tue, 4 Mar 2025 23:54:13 +0300 +Subject: [PATCH] ramips: mt76x8: add support for Keenetic Launcher (KN-1221) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Specification: +SoC: MediaTek MT7628AN +RAM: 128M DDR2, ESMT M14D128168A (2Y) +Flash: 32M, cFeon EN25QH256A (Dual Boot on OEM, concatenated on OpenWrt, +SPI) +Switch: MediaTek MT7628AN, 3 ports 100 Mbps +WiFi: MediaTek MT7628AN 2.4 GHz 802.11n +USB: 1 port USB 2.0 +GPIO: 1 button (Wi-Fi & Reset on OEM, Reset on OpenWrt), 3 LEDs (Power, +Internet, Wi-Fi), USB port power controls + +Disassembly: +There are 2 screws at the bottom near the LEDs hidden by rubber mounts. +After removing the screws, pry the gray plastic part around (it is secured +with latches) and remove it. + +UART Interface: +The UART interface can be connected to the 5 pin located between LAN +ports and the WAN one. +Pins (from the second LAN port to the WAN one): VCC, TX, RX, NC, GND +Settings: 115200, 8N1 + +Flashing via TFTP: +1. Connect your PC and router to the first LAN port, configure PC +interface using IP 192.168.1.2, mask 255.255.255.0 +2. Serve the firmware image (for OpenWrt it is *-squashfs-factory.bin) +renamed to KN-1221_recovery.bin via TFTP +3. Power up the router while pressing Wi-Fi button +4. Release Wi-Fi button when Power LED starts blinking + +To revert back to OEM firmware: +The return to the OEM firmware is carried out by using the methods +described above with the help of the appropriate firmware image found on +osvault.keenetic.net. + +When using OEM bootloader, the firmware image size cannot exceed the size +of one OEM «Firmware_x» partition or Kernel + rootFS size. + +Signed-off-by: Ivan Davydov <lotigara@lotigara.ru> +Link: https://github.com/openwrt/openwrt/pull/18164 +Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> +--- + .../ramips/dts/mt7628an_keenetic_kn-1221.dts | 209 ++++++++++++++++++ + target/linux/ramips/image/mt76x8.mk | 12 + + .../mt76x8/base-files/etc/board.d/01_leds | 1 + + .../mt76x8/base-files/etc/board.d/02_network | 5 + + 4 files changed, 227 insertions(+) + create mode 100644 target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts + +diff --git a/target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts b/target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts +new file mode 100644 +index 00000000000000..6f5cf96856ed21 +--- /dev/null ++++ b/target/linux/ramips/dts/mt7628an_keenetic_kn-1221.dts +@@ -0,0 +1,209 @@ ++// SPDX-License-Identifier: GPL-2.0-or-later OR MIT ++ ++#include "mt7628an.dtsi" ++ ++#include <dt-bindings/gpio/gpio.h> ++#include <dt-bindings/input/input.h> ++#include <dt-bindings/leds/common.h> ++ ++/ { ++ compatible = "keenetic,kn-1221", "mediatek,mt7628an-soc"; ++ model = "Keenetic KN-1221"; ++ ++ aliases { ++ label-mac-device = ðernet; ++ ++ led-boot = &led_power; ++ led-failsafe = &led_power; ++ led-running = &led_power; ++ led-upgrade = &led_power; ++ }; ++ ++ chosen { ++ bootargs = "console=ttyS0,115200"; ++ }; ++ ++ regulator-usb { ++ compatible = "regulator-fixed"; ++ regulator-name = "USB-power"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ gpios = <&gpio 6 GPIO_ACTIVE_HIGH>; ++ enable-active-high; ++ regulator-always-on; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ led_power: power { ++ function = LED_FUNCTION_POWER; ++ color = <LED_COLOR_ID_GREEN>; ++ gpios = <&gpio 11 GPIO_ACTIVE_LOW>; ++ }; ++ ++ internet { ++ function = LED_FUNCTION_WAN; ++ color = <LED_COLOR_ID_GREEN>; ++ gpios = <&gpio 38 GPIO_ACTIVE_LOW>; ++ }; ++ ++ fn { ++ function = LED_FUNCTION_WLAN; ++ color = <LED_COLOR_ID_GREEN>; ++ gpios = <&gpio 4 GPIO_ACTIVE_LOW>; ++ linux,default-trigger = "phy0tpt"; ++ }; ++ }; ++ ++ keys { ++ compatible = "gpio-keys"; ++ ++ reset { ++ label = "restart"; ++ gpios = <&gpio 37 GPIO_ACTIVE_LOW>; ++ linux,code = <KEY_RESTART>; ++ }; ++ }; ++ ++ virtual_flash { ++ compatible = "mtd-concat"; ++ devices = <&firmware1 &firmware2>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ compatible = "denx,uimage"; ++ label = "firmware"; ++ reg = <0x0 0x1cc0000>; ++ }; ++ }; ++ }; ++}; ++ ++&state_default { ++ gpio { ++ groups = "i2c", "spi cs1", "gpio", "refclk", "wdt"; ++ function = "gpio"; ++ }; ++}; ++ ++&spi0 { ++ status = "okay"; ++ ++ flash@0 { ++ compatible = "jedec,spi-nor"; ++ reg = <0>; ++ spi-max-frequency = <32000000>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ label = "u-boot"; ++ reg = <0x0 0x30000>; ++ read-only; ++ }; ++ ++ partition@30000 { ++ label = "u-config"; ++ reg = <0x30000 0x10000>; ++ read-only; ++ }; ++ ++ partition@40000 { ++ label = "rf-eeprom"; ++ reg = <0x40000 0x10000>; ++ read-only; ++ ++ nvmem-layout { ++ compatible = "fixed-layout"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ eeprom_factory_0: eeprom@0 { ++ reg = <0x0 0x400>; ++ }; ++ ++ macaddr_factory_4: macaddr@4 { ++ reg = <0x4 0x6>; ++ }; ++ }; ++ }; ++ ++ firmware1: partition@50000 { ++ label = "firmware_1"; ++ reg = <0x50000 0xe60000>; ++ }; ++ ++ partition@eb0000 { ++ label = "config_1"; ++ reg = <0xeb0000 0x40000>; ++ read-only; ++ }; ++ ++ partition@ef0000 { ++ label = "storage"; ++ reg = <0xef0000 0x100000>; ++ read-only; ++ }; ++ ++ partition@ff0000 { ++ label = "dump"; ++ reg = <0xff0000 0x10000>; ++ read-only; ++ }; ++ ++ partition@1000000 { ++ label = "u-state"; ++ reg = <0x1000000 0x30000>; ++ read-only; ++ }; ++ ++ partition@1030000 { ++ label = "u-config_res"; ++ reg = <0x1030000 0x10000>; ++ read-only; ++ }; ++ ++ partition@1040000 { ++ label = "rf-eeprom_res"; ++ reg = <0x1040000 0x10000>; ++ read-only; ++ }; ++ ++ firmware2: partition@1050000 { ++ label = "firmware_2"; ++ reg = <0x1050000 0xe60000>; ++ }; ++ ++ partition@1eb0000 { ++ label = "Config_2"; ++ reg = <0x1eb0000 0x40000>; ++ read-only; ++ }; ++ }; ++ }; ++}; ++ ++ðernet { ++ nvmem-cells = <&macaddr_factory_4>; ++ nvmem-cell-names = "mac-address"; ++}; ++ ++&esw { ++ mediatek,portmap = <0x3e>; ++ mediatek,portdisable = <0x38>; ++}; ++ ++&wmac { ++ status = "okay"; ++ ++ nvmem-cells = <&eeprom_factory_0>; ++ nvmem-cell-names = "eeprom"; ++}; +diff --git a/target/linux/ramips/image/mt76x8.mk b/target/linux/ramips/image/mt76x8.mk +index 8c8cfee23b6cfa..f442148d9ecf10 100644 +--- a/target/linux/ramips/image/mt76x8.mk ++++ b/target/linux/ramips/image/mt76x8.mk +@@ -366,6 +366,18 @@ define Device/jotale_js76x8-32m + endef + TARGET_DEVICES += jotale_js76x8-32m + ++define Device/keenetic_kn-1221 ++ BLOCKSIZE := 64k ++ IMAGE_SIZE := 29440k ++ DEVICE_VENDOR := Keenetic ++ DEVICE_MODEL := KN-1221 ++ DEVICE_PACKAGES := kmod-usb2 ++ IMAGES += factory.bin ++ IMAGE/factory.bin := $$(sysupgrade_bin) | pad-to $$$$(BLOCKSIZE) | \ ++ check-size 14720k | zyimage -d 0x801221 -v "KN-1221" ++endef ++TARGET_DEVICES += keenetic_kn-1221 ++ + define Device/keenetic_kn-1613 + IMAGE_SIZE := 31488k + DEVICE_VENDOR := Keenetic +diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds +index b87062ae3c5ae5..79f78a2a459487 100644 +--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds ++++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds +@@ -58,4 +58,5 @@ hiwifi,hc5661a|\ + hiwifi,hc5761a) + ucidef_set_led_switch "internet" "internet" "blue:internet" "switch0" "0x10" + ;; ++keenetic,kn-1221|\ + keenetic,kn-1613) +diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network +index fbdc7fb5a2697a..6e6e1310d3495f 100644 +--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network ++++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network +@@ -131,5 +131,9 @@ ramips_setup_interfaces() + ucidef_add_switch "switch0" \ + "0:lan" "1:lan" "2:lan" "6@eth0" + ;; ++ keenetic,kn-1221) ++ ucidef_add_switch "switch0" \ ++ "1:lan" "2:lan" "0:wan" "6@eth0" ++ ;; + keenetic,kn-1613|\ + motorola,mwr03) +@@ -280,5 +280,6 @@ ramips_setup_macs() + totolink,lr1200) + wan_mac=$(mtd_get_mac_binary factory 0x2e) + ;; ++ keenetic,kn-1221|\ + keenetic,kn-1613|\ + zyxel,keenetic-extra-ii) +</pre> + +<p></details> +</summary></p> + +<p>Или в виде файла: <a href="/files/18164.patch.backport-24.10.1">18164.patch.backport-24.10.1</a>. +Готовые сборки тоже доступны в виде файлов: <a href="/files/openwrt-kn-1221-24.10">openwrt-kn-1221-24.10</a></p> + +<p>Метки: <a href='tag_openwrt.html'>openwrt</a>, <a href='tag_разработка.html'>разработка</a>, <a href='tag_изменённые прошивки.html'>изменённые прошивки</a></p> +<!-- text end --> +</div> +<script data-isso-css-url="https://www.lotigara.ru/css/isso.css" data-isso="//isso.lotigara.ru/" src="//isso.lotigara.ru/js/embed.min.js"></script> +<section id="isso-thread"> + <noscript>Javascript needs to be activated to view comments.</noscript> +</section> + +<div class="section_header section_header_last"> + <p>(c) Ivan Davydov 2025. Делайте с этим документом всё, что хотите!</p><hr/> + <a href="https://www.lotigara.ru/blog">Веб-сайт самохостера Lotigara</a> сгенерирован при помощи <a href="https://github.com/jakimfett/bashblog">Bashblog</a>. Исходные коды этой версии Bashblog можно найти <a href="https://www.lotigara.ru/files/bashblog">здесь</a>.</div> +</div> +</div></div></div> +</body></html> |