<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>OpenWrt &#8211; 天地一沙鸥</title>
	<atom:link href="https://haoluobo.com/tag/openwrt/feed/" rel="self" type="application/rss+xml" />
	<link>https://haoluobo.com</link>
	<description>to be continue....</description>
	<lastBuildDate>Mon, 29 Jan 2024 01:20:42 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>京东云亚瑟路由器TTL刷u-boot升级iStoreOS固件</title>
		<link>https://haoluobo.com/2023/11/jdcloud-ttl-uboot-istoreos/</link>
					<comments>https://haoluobo.com/2023/11/jdcloud-ttl-uboot-istoreos/#comments</comments>
		
		<dc:creator><![CDATA[vicalloy]]></dc:creator>
		<pubDate>Thu, 23 Nov 2023 13:27:00 +0000</pubDate>
				<category><![CDATA[玩具]]></category>
		<category><![CDATA[iStoreOS]]></category>
		<category><![CDATA[OpenWrt]]></category>
		<category><![CDATA[刷机]]></category>
		<category><![CDATA[路由器]]></category>
		<guid isPermaLink="false">https://haoluobo.com/?p=12501</guid>

					<description><![CDATA[不知道是否为了区分高低端，现在带 USB 口的路由器几乎没有低于 ¥500 的。考虑到以后可以折腾一下把路由器 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>不知道是否为了区分高低端，现在带 USB 口的路由器几乎没有低于 ¥500 的。考虑到以后可以折腾一下把路由器当 NAS，入了京东云的亚瑟。入了后才知道这东西专为 PCDN 而生，想当个正经的路由器用小问题不少。</p>



<p>因为家里有小朋友，定时断网是必须功能，不想这货居然没有。好在我的这个路由器版本比较老，轻松开启 SSH，经过一整折腾后搞定了定时断网。不想好景不长，路由器在关闭自动升级的情况下给升级到了最新固件。路由器上自己加的东西全部丢失，并且 SSH 后门方法失效。这个路由器要想继续折腾只剩下 TTL 刷机一条路。好在这台路由器的 TTL 刷机方案比较成熟，网上也能找到对应的固件。</p>



<p>刷机过程整体比较简单，但由于缺乏经验，中间走了不少弯路折腾了几天才搞定。下面是一个简单的记录，希望对同样的刷机小白有些帮助。</p>



<h2 class="wp-block-heading">拆机</h2>



<ol class="wp-block-list">
<li>撕开路由器底部胶垫，露出底部的5颗螺丝。用螺丝刀全部拧开。</li>



<li>路由器顶盖使用卡扣固定。敲开后可以看到顶部还有两个固定螺丝，拧开。注：网上很多拆机教程里没有提到这两颗螺丝，导致折腾很久都没能弄开。</li>



<li>用力挤压路由器筒壁，使网口缩进外壳。抽出路由器本体完成拆机。</li>
</ol>



<h2 class="wp-block-heading">搞定TTL接口</h2>



<ol class="wp-block-list">
<li>可以看到主板上4个并排的孔V R T G就是TTL接口。</li>



<li>去淘宝搜 <code>TTL 探针</code>，用的时候直接插到孔上。
<ul class="wp-block-list">
<li>焊接的针脚会抵住外壳导致无法塞回去，到时候还要去掉。</li>
</ul>
</li>



<li>到网上买个 CH340 的 USB 转串口的转接卡。</li>



<li>我的转接卡上有 3v 和 5v 的跳线，短接 3v 。</li>



<li>转接卡和路由器接线时注意：G-G，R-T，T-R 这样接。V不用接。
<ul class="wp-block-list">
<li>G：接地</li>



<li>R：接收</li>



<li>T：发送</li>
</ul>
</li>



<li>windows系统没有自带 CH340 的驱动，要去网上找个驱动安上。</li>
</ol>



<h2 class="wp-block-heading">刷入 u-boot</h2>



<ol class="wp-block-list">
<li>串口转接卡一头连好路由器，另一头插入电脑。</li>



<li>用网线连接路由器和电脑，并将电脑的 IP 设置为 <code>192.168.10.1</code> 。</li>



<li>在电脑的设备管理器中查看转接卡对应的串口名。</li>



<li>用 <a href="https://www.putty.org/" target="_blank" rel="noreferrer noopener">putty</a> 连接串口，波特用 <code>15200</code> 。</li>



<li>路由器开机，按回车进入 6018# 模式。此时已经可以使用 boot loader 的命令了。</li>



<li>将 u-boot.mbn 复制到 <a href="https://pjo2.github.io/tftpd64/" target="_blank" rel="noreferrer noopener">Tftpd64</a> 同一目录。启动 Tftpd64 。
<ul class="wp-block-list">
<li>注：此时 <code>server interface</code> 里的 IP 地址应为 <code>192.168.10.1</code> 。</li>



<li>u-boot 可以从 <a href="https://github.com/bfmen/uboot-ipq60xx-build" target="_blank" rel="noreferrer noopener">https://github.com/bfmen/uboot-ipq60xx-build</a> 这里下载。</li>
</ul>
</li>



<li>中 putty 里敲入如下命令完成刷机
<ul class="wp-block-list">
<li><code>tftpboot u-boot.mbn &amp;&amp; flash 0:APPSBL &amp;&amp; flash 0:APPSBL_1</code></li>
</ul>
</li>



<li>看到命令输出里有几个 `OK` 就完成 u-boot 刷机了。</li>
</ol>



<h2 class="wp-block-heading">准备 iStoreOS 固件</h2>



<p>iStoreOS 是基于 OpenWRT 的一个路由器固件。固件可以从 <a href="https://fw.koolcenter.com/Lean/JDC_AX1800_Pro/" target="_blank" rel="noreferrer noopener">https://fw.koolcenter.com/Lean/JDC_AX1800_Pro/</a> 下载到。我们需要下载其中的 <code>*-kernel-rootfs.rar</code> 固件。解压后会有两个 bin 文件。需要使用使用工具将两个文件合并成一个 bin 文件后一起刷入。合并工具可以使用 UBin 。由于没有找到软件的官网，大家还是自行搜索下载吧。</p>



<h2 class="wp-block-heading">刷入 iStoreOS 固件</h2>



<ol class="wp-block-list">
<li>将电脑 IP 设置为 <code>192.168.1.2</code> 。</li>



<li>重启路由器并用 putty 重新连接路由器进入 6018# 模式。</li>



<li>输入命令 <code>httpd 192.168.1.1</code> 启动刷机的 web 服务。
<ul class="wp-block-list">
<li>看网上的教程，我以为 <code>u-boot</code> 启动的时候会自动启动刷机的 web 服务。在 u-boot 的 help 里看到 <code>httpd</code> 才知道刷机服务要手动启动。</li>
</ul>
</li>



<li>使用浏览器打开网页 <code>http://192.168.1.1</code> 进入刷机的 web 界面。</li>



<li>上传固件开始刷机。刷机成功后会路由器会自动重启。路由器启动后路由器灯为绿色。</li>



<li>用浏览器重新打开 <code>http://192.168.1.1</code> ，此时已经可以看到 iStoreOS 的登录界面了。
<ul class="wp-block-list">
<li>默认用户名为 <code>root</code> ，密码 <code>password</code> 。</li>
</ul>
</li>
</ol>



<h2 class="wp-block-heading">安装Docker</h2>



<p>我使用的 iStoreOS 固件并未集成 Docker 。尝试使用 <code>is-opkg install docker dockerd docker-compose</code> 安装 Docer 套件，提示空间不足，无法安装。查看磁盘信息， Overlay 分区只有几M，几乎无法安装任何东西。查看分区信息， <code>mmcblk0p25</code> 分区有 300M 空间。将 <code>mmcblk0p25</code> 分区里的数据删除，并将 /overlay 数据复制过来。在 iStoreOS 的 <code>挂载点</code> 中将 <code>mmcblk0p25</code> 挂载到 <code>/overlay</code> 。应用并重启路由器后可以看到 /overlay 的空间已经变成 300M 里。</p>



<p>安装好 Docker 后，/overlay 还能剩下大概 27M 的空间，几乎没有空间安装其他软件。考虑到其他软件都会使用 Docker 安装，因此暂不打算对 /overlay 做扩容了。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://haoluobo.com/2023/11/jdcloud-ttl-uboot-istoreos/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>京东云无线宝（OpenWrt）控制终端定时断网</title>
		<link>https://haoluobo.com/2023/07/jd-cloud-wireless-treasure-openwrt-controls-client-timing-disconnection/</link>
					<comments>https://haoluobo.com/2023/07/jd-cloud-wireless-treasure-openwrt-controls-client-timing-disconnection/#respond</comments>
		
		<dc:creator><![CDATA[vicalloy]]></dc:creator>
		<pubDate>Mon, 31 Jul 2023 12:43:42 +0000</pubDate>
				<category><![CDATA[软件推荐]]></category>
		<category><![CDATA[OpenWrt]]></category>
		<category><![CDATA[京东云无线宝]]></category>
		<category><![CDATA[路由器]]></category>
		<guid isPermaLink="false">https://haoluobo.com/?p=12448</guid>

					<description><![CDATA[最近将家里的路由器从 小米 换成了 京东云无线宝 。换完后发现新路由器不支持设备的定时断网了。对于有小朋友的家 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>最近将家里的路由器从 <code>小米</code> 换成了 <code>京东云无线宝</code> 。换完后发现新路由器不支持设备的定时断网了。对于有小朋友的家庭，定时断网可以很好的帮助小朋友控制上网时间。好在新入的这款路由器基于 <code>OpenWrt</code> 开发，经过几天的研究，顺利的搞定了定时断网功能。</p>



<h2 class="wp-block-heading">开启路由器的SSH</h2>



<p><strong>注：</strong>2023-10 近期路由器被自动升级了。网上的开门方法全部失效，只能尝试TTL开门了。</p>



<p>开始折腾的第一步是搞定路由器的SSH。SSH登录到路由器后就可以随意折腾了。</p>



<p>由于京东云官方的封堵，不同版本固件的SSH开启方式有所不同。</p>



<ol class="wp-block-list">
<li><code>1.5.40r2181&lt;=</code> <a href="https://zyyme.com/jdc.html" target="_blank" rel="noreferrer noopener">郑羊羊咩的窝-京东云</a></li>



<li><code>r2262&lt;</code> <a href="https://www.bilibili.com/read/cv21409975" target="_blank" rel="noreferrer noopener">京东云无线宝r2262之前固件版本开SSH</a></li>



<li><code>r2279&lt;</code> <a href="https://www.bilibili.com/read/cv21907565" target="_blank" rel="noreferrer noopener">京东云无线宝升级r2262固件后打开SSH</a></li>
</ol>



<p>我拿到的这台路由器的固件版本很老，直接采用第一个方法开启SSH。具体方法如下：</p>



<p>登录京东云，打开f12控制台，将下面的代码贴入浏览器控制台并运行。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
$.ajax({
    url: &quot;/jdcapi&quot;,
    async: false,
    data: JSON.stringify({
        jsonrpc: &quot;2.0&quot;,
        id: 1,
        method: &quot;call&quot;,
        params: &#x5B;
            $.cookie(&quot;sessionid&quot;),
            &quot;service&quot;,
            &quot;set&quot;,
            {
                &quot;name&quot;: &quot;dropbear&quot;,
                &quot;instances&quot;: {&quot;instance1&quot;: {&quot;command&quot;: &#x5B;&quot;/usr/sbin/dropbear&quot;]}}
            }
        ]
    }),
    dataType: &quot;json&quot;,
    type: &quot;POST&quot;
})
</pre></div>


<h2 class="wp-block-heading">设备定时断网方案</h2>



<p>OpenWrt系统通常自带 web 管理界面 <code>LuCI</code> ，即使没带也可自行安装。如果有 <code>LuCI</code> ，通过 <code>LuCI</code> 丰富的插件系统，可以轻松的实现上网时间的管控。</p>



<p>京东的这款路由器毕竟不是完整的OpenWrt系统，无法直接安装 <code>LuCI</code> 。为了设备的稳定性，保险起见没有继续折腾 <code>LuCI</code> 。研究后发现京东云路由器的自带的黑明单功能是通过修改设备 <code>/etc/config/wireless</code> 配置文件实现，于是有了下面的方案。</p>



<ol class="wp-block-list">
<li>使用 <code>uci</code> 命令修改 wireless 配置文件，将需要管控的设备加入/移出 Wi-Fi 黑明单。</li>



<li>使用 crontab 创建定时任务，实现定时控制。</li>



<li>在路由器的黑明单中无法查看到通过修改 wireless 加入黑明单的设备。但可以通过将设备加入黑名单再移除的方式对设备进行临时解禁。</li>
</ol>



<h2 class="wp-block-heading">具体操作步骤</h2>



<h3 class="wp-block-heading">登录路由器</h3>



<p>开始路由器的 SSH 登录功能，使用 SSH 客户端登录路由器。用户名为 <code>root</code> ，密码为路由器的管理密码。</p>



<pre class="wp-block-code"><code>ssh root@jdcloudwifi.com</code></pre>



<h3 class="wp-block-heading">创建将设备加入黑明单的相关脚本</h3>



<p>1. 创建目录 <code>/scripts</code> 。我们自己的脚本都将放到该目录。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
mkdir -p /scripts 
cd /scripts
</pre></div>


<p>2. 将下列脚本复制到 <code>/scripts</code> 目录，并使用命令 <code>chmod +x /scripts/*.sh</code> 为脚本添加可执行权限。</p>



<p>disable-wifi.sh</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
#!/bin/sh
# 禁止设备连接 Wi-Fi
# 使用 `cat /etc/config/wireless` 查看无线配置。通过 `option ssid` 找到对应的 Wi-Fi 配置项名称。注： 2.4G 和 5G 两个热点都需要配置。 
uci add_list wireless.ath0.maclist=&quot;$1&quot;
uci add_list wireless.ath1.maclist=&quot;$1&quot;
uci commit wireless
wifi reload
</pre></div>


<p>enable-wifi.sh</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
#!/bin/sh
# 允许设备连接 Wi-Fi
uci del_list wireless.ath0.maclist=&quot;$1&quot;
uci del_list wireless.ath1.maclist=&quot;$1&quot;
uci commit wireless
wifi reload
</pre></div>


<p>disable-tv.sh</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
#!/bin/sh
# 将 dd:dd:dd:dd:dd:dd 换成需要加入黑名单的设备的 MAC 地址
/scripts/disable-wifi.sh dd:dd:dd:dd:dd:dd
</pre></div>


<p>enable-tv.sh</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
#!/bin/sh
/scripts/enable-wifi.sh dd:dd:dd:dd:dd:dd
</pre></div>


<p>3. 执行 <code>crontab -e</code> 编辑系统定时任务。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
# 周一到周五，8点关闭电视网络
0 8 * * 1-5 /scripts/disable-tv.sh
# 周一到周五，18点开启电视网络
0 18 * * 1-5 /scripts/enable-tv.sh
</pre></div>]]></content:encoded>
					
					<wfw:commentRss>https://haoluobo.com/2023/07/jd-cloud-wireless-treasure-openwrt-controls-client-timing-disconnection/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
