<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[xiaohai'Blog]]></title><description><![CDATA[休息一下 继续前行]]></description><link>https://xiaohai.co/</link><image><url>https://xiaohai.co/favicon.png</url><title>xiaohai&apos;Blog</title><link>https://xiaohai.co/</link></image><generator>Ghost 5.59</generator><lastBuildDate>Sat, 04 Apr 2026 22:55:21 GMT</lastBuildDate><atom:link href="https://xiaohai.co/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Dell Wyse 3040]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h1 id="%E5%89%8D%E8%A8%80">&#x524D;&#x8A00;</h1>
<p>&#x4E00;&#x76F4;&#x60F3;&#x8981;&#x627E;&#x4E00;&#x4E2A;&#x5C0F;&#x4E3B;&#x673A;&#xFF0C;&#x8FD0;&#x884C;&#x4E00;&#x4E9B;&#x672C;&#x5730;&#x670D;&#x52A1;&#xFF0C;&#x5076;&#x7136;&#x95F4;&#x53D1;&#x73B0;Wyse 3040&#xFF0C;&#x5C3A;&#x5BF8;&#x5C0F;&#xFF0C;&#x5185;&#x90E8;&#x7ED3;&#x6784;&#x7D27;&#x51D1;&#xFF0C;&#x529F;&#x7387;&#x4F4E;&#xFF0C;&#x4EF7;&#x683C;&#x4E5F;&#x4FBF;&#x5B9C;</p>]]></description><link>https://xiaohai.co/dell-wyse-3040/</link><guid isPermaLink="false">67271734b6391c0001c3aa21</guid><dc:creator><![CDATA[xiaohai]]></dc:creator><pubDate>Sun, 03 Nov 2024 07:34:03 GMT</pubDate><media:content url="https://xiaohai.co/content/images/2024/11/wyse-3040.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h1 id="%E5%89%8D%E8%A8%80">&#x524D;&#x8A00;</h1>
<img src="https://xiaohai.co/content/images/2024/11/wyse-3040.jpg" alt="Dell Wyse 3040"><p>&#x4E00;&#x76F4;&#x60F3;&#x8981;&#x627E;&#x4E00;&#x4E2A;&#x5C0F;&#x4E3B;&#x673A;&#xFF0C;&#x8FD0;&#x884C;&#x4E00;&#x4E9B;&#x672C;&#x5730;&#x670D;&#x52A1;&#xFF0C;&#x5076;&#x7136;&#x95F4;&#x53D1;&#x73B0;Wyse 3040&#xFF0C;&#x5C3A;&#x5BF8;&#x5C0F;&#xFF0C;&#x5185;&#x90E8;&#x7ED3;&#x6784;&#x7D27;&#x51D1;&#xFF0C;&#x529F;&#x7387;&#x4F4E;&#xFF0C;&#x4EF7;&#x683C;&#x4E5F;&#x4FBF;&#x5B9C;&#x3002;</p>
<h1 id="%E7%A1%AC%E4%BB%B6%E4%BB%8B%E7%BB%8D">&#x786C;&#x4EF6;&#x4ECB;&#x7ECD;</h1>
<table>
<thead>
<tr>
<th>&#x7C7B;&#x578B;</th>
<th>&#x63CF;&#x8FF0;</th>
</tr>
</thead>
<tbody>
<tr>
<td>CPU</td>
<td>Intel Atom x5 Z-8350</td>
</tr>
<tr>
<td>RAM</td>
<td>2GB</td>
</tr>
<tr>
<td>Flash</td>
<td>8G / 16G</td>
</tr>
<tr>
<td>&#x6700;&#x5927;&#x5206;&#x8FA8;&#x7387;</td>
<td>2560 x 1600</td>
</tr>
<tr>
<td>DP&#x63A5;&#x53E3;</td>
<td>2&#x4E2A;</td>
</tr>
<tr>
<td>&#x7F51;&#x5361;</td>
<td>10 / 100 / 1000</td>
</tr>
<tr>
<td>USB</td>
<td>3 x USB2.0, 1 x USB3.0</td>
</tr>
<tr>
<td>&#x7535;&#x6E90;</td>
<td>5V</td>
</tr>
<tr>
<td>&#x7535;&#x6E90;&#x63D2;&#x5934;</td>
<td>4mm x 1.7mm</td>
</tr>
<tr>
<td>&#x5C3A;&#x5BF8;</td>
<td>28mm x 102mm x 102mm (H x W x D)</td>
</tr>
<tr>
<td>&#x529F;&#x8017;</td>
<td>&#x5173;&#x673A; 0.5W &#x8FD0;&#x884C; 5W</td>
</tr>
</tbody>
</table>
<p>&#x8FD9;&#x4E2A;&#x673A;&#x5668;&#x7535;&#x6E90;&#x4E5F;&#x6709;12V&#x7684;&#xFF0C;&#x4E00;&#x5B9A;&#x8981;&#x770B;&#x80CC;&#x540E;&#x7684;&#x6807;&#x7B7E;&#x6807;&#x8BB0;&#x7684;&#x7535;&#x538B;&#xFF0C;&#x522B;&#x542C;&#x5356;&#x5BB6;&#x7684;&#x9B3C;&#x8BDD;&#xFF0C;&#x8BF4;12V&#x4E5F;&#x652F;&#x6301;<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup></p>
<p>&#x4E3B;&#x673A;&#x6CA1;&#x6709;HDMI&#x63A5;&#x5934;&#xFF0C;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x8F6C;&#x63A5;&#x7EBF;</p>
<h1 id="%E7%A1%AC%E4%BB%B6%E5%8D%87%E7%BA%A7">&#x786C;&#x4EF6;&#x5347;&#x7EA7;</h1>
<p>&#x4ECE;&#x786C;&#x4EF6;&#x7ED3;&#x6784;&#x6765;&#x770B;&#xFF0C;&#x5185;&#x5B58;&#x548C;&#x786C;&#x76D8;&#x504F;&#x5C0F;&#xFF0C;&#x52A8;&#x624B;&#x6765;&#x5C1D;&#x8BD5;&#x5347;&#x7EA7;</p>
<p>&#x7ECF;&#x67E5;&#x9605;&#x8D44;&#x6599;<sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup>&#xFF0C;&#x8FD9;&#x4E2A;CPU&#x8BBE;&#x8BA1;&#x7684;&#x5C31;&#x662F;&#x6700;&#x5927;&#x652F;&#x6301;2G&#x5185;&#x5B58;&#xFF0C;&#x6240;&#x4EE5;&#x6CA1;&#x529E;&#x6CD5;&#x53BB;&#x5347;&#x7EA7;</p>
<p>&#x786C;&#x76D8;&#x7684;&#x4F7F;&#x7528;&#x7684;&#x662F;153&#x811A;&#x7684;EMMC 5.1&#x7248;&#x672C;&#x82AF;&#x7247;&#xFF0C;&#x6211;&#x4EEC;&#x5BF9;&#x6B64;&#x8FDB;&#x884C;&#x66FF;&#x6362;</p>
<p>&#x4EE5;&#x4E0B;&#x5217;&#x8868;&#x662F;&#x6211;&#x9A8C;&#x8BC1;&#x8FC7;&#x7684;&#xFF0C;&#x5176;&#x4ED6;&#x5BB9;&#x91CF;&#x6309;&#x7167;&#x82AF;&#x7247;&#x89C4;&#x683C;&#x641C;&#x7D22;&#x5C31;&#x884C;</p>
<table>
<thead>
<tr>
<th>&#x578B;&#x53F7;</th>
<th>&#x5BB9;&#x91CF;</th>
<th>&#x652F;&#x6301;&#x60C5;&#x51B5;</th>
</tr>
</thead>
<tbody>
<tr>
<td>H26M74002HMR</td>
<td>64G</td>
<td>&#x652F;&#x6301;<sup class="footnote-ref"><a href="#fn3" id="fnref3">[3]</a></sup></td>
</tr>
<tr>
<td>KLMDG4UCTA-B041</td>
<td>128G</td>
<td>&#x652F;&#x6301;</td>
</tr>
</tbody>
</table>
<p>&#x62C6;&#x82AF;&#x7247;&#x9700;&#x8981;&#x5C06;&#x82AF;&#x7247;&#x7528;&#x5230;&#x98CE;&#x67AA;&#xFF0C;&#x65B0;&#x624B;&#x786E;&#x4FDD;&#x9521;&#x878D;&#x5316;&#x4E4B;&#x540E;&#x518D;&#x62C6;&#x82AF;&#x7247;&#xFF0C;&#x907F;&#x514D;&#x635F;&#x574F;&#x710A;&#x76D8;&#x3002;</p>
<p>&#x7531;&#x4E8E;&#x662F;&#x8001;&#x4EA7;&#x54C1;&#xFF0C;&#x5F88;&#x591A;&#x7535;&#x6C60;&#x90FD;&#x5DF2;&#x7ECF;&#x5931;&#x6548;&#x4E86;</p>
<p>&#x5982;&#x679C;&#x9700;&#x8981;&#x66F4;&#x6362;&#x7535;&#x6C60;&#xFF0C;&#x5BFB;&#x627E;2&#x9488;2&#x7EBF;1.0mm&#x95F4;&#x8DDD;&#x7684;&#x63D2;&#x5934;&#x7684;2032&#x7535;&#x6C60;&#xFF0C;&#x66FF;&#x6362;&#x65F6;&#xFF0C;&#x6CE8;&#x610F;&#x6B63;&#x8D1F;&#x6781;&#xFF01;</p>
<h1 id="%E5%AE%89%E8%A3%85debian%E7%B3%BB%E7%BB%9F">&#x5B89;&#x88C5;Debian&#x7CFB;&#x7EDF;</h1>
<p>&#x4E0B;&#x8F7D;DVD&#x6587;&#x4EF6;&#xFF0C;&#x7136;&#x540E;&#x5199;&#x5165;U&#x76D8;</p>
<p>MacOS&#x5982;&#x4E0B;&#x64CD;&#x4F5C;&#xFF0C;&#x5176;&#x4E2D;/path/ &#x73AF;&#x5883;&#x6587;&#x4EF6;&#x8DEF;&#x5F84;&#xFF0C;/dev/disk4&#x6362;&#x6210;&#x81EA;&#x5DF1;&#x7684;u&#x76D8;&#x8DEF;&#x5F84;</p>
<pre><code class="language-bash">sudo dd bs=4M if=/path/debian-12.7.0-amd64-DVD-1.iso of=/dev/disk4 status=progress
</code></pre>
<p>Debian&#x7CFB;&#x7EDF;&#x5B89;&#x88C5;&#x5B8C;&#xFF0C;&#x5E76;&#x4E0D;&#x4F1A;&#x5C06;grub&#x5199;&#x5165;&#x5230;&#x78C1;&#x76D8;&#x4E0A;</p>
<p>&#x5177;&#x4F53;&#x539F;&#x56E0;&#x662F;Flash&#x5728;Debian&#x8BA4;&#x4E3A;&#x662F;&#x5916;&#x7F6E;SD&#x5361;&#xFF0C;&#x6240;&#x4EE5;&#x6211;&#x4EEC;&#x8981;&#x8FDB;&#x5165;&#x6025;&#x6551;&#x6A21;&#x5F0F;&#xFF0C;&#x91CD;&#x65B0;&#x5B89;&#x88C5;grub<sup class="footnote-ref"><a href="#fn4" id="fnref4">[4]</a></sup></p>
<p>&#x5728;U&#x76D8;&#x5B89;&#x88C5;&#x754C;&#x9762;&#xFF0C;&#x627E;&#x5230; Advanced options ... &#x2192; Rescue mode &#x7136;&#x540E;&#x4E00;&#x8DEF;&#x4E0B;&#x4E00;&#x6B65;</p>
<p>&#x5728;&#x9009;&#x62E9;&#x78C1;&#x76D8;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x6211;&#x4EEC;&#x8FDB;&#x5165;&#x5176;&#x4E2D;&#x4E00;&#x4E2A;&#x78C1;&#x76D8;&#xFF0C;&#x7136;&#x540E;&#x9009;&#x62E9;&quot; &#x5F3A;&#x5236;&#x5C06; GRUB &#x5B89;&#x88C5;&#x5230; EFI &#x53EF;&#x79FB;&#x52A8;&#x5A92;&#x4F53;&#x8DEF;&#x5F84; / Force GRUB Installation to the EFI removable media path&quot;</p>
<h1 id="%E5%85%B6%E4%BB%96">&#x5176;&#x4ED6;</h1>
<p>BIOS &#x9ED8;&#x8BA4;&#x5BC6;&#x7801;&#x662F;: Fireport</p>
<h1 id="%E6%9C%80%E5%90%8E">&#x6700;&#x540E;</h1>
<p>Wyse 3040 &#x7684;&#x914D;&#x7F6E;&#x786E;&#x5B9E;&#x4E00;&#x822C;&#xFF0C;&#x4F46;&#x662F;&#x4F5C;&#x4E3A;&#x5C0F;&#x4E3B;&#x673A;&#x6027;&#x80FD;&#x8DB3;&#x591F;&#x4E86;&#xFF0C;x86&#x7684;&#x67B6;&#x6784;&#x4E5F;&#x65B9;&#x4FBF;&#x5F88;&#x591A;&#xFF0C;&#x62FF;&#x6765;&#x505A;&#x4E2A;&#x65C1;&#x8DEF;&#x7531;&#x4E5F;&#x662F;&#x6CA1;&#x95EE;&#x9898;&#x7684;&#xFF0C;&#x5982;&#x679C;&#x4F60;&#x975E;&#x8981;&#x7528;&#x5B83;&#x88C5;&#x4E2A;win11&#xFF0C;&#x8FD8;&#x662F;&#x653E;&#x8FC7;&#x81EA;&#x5DF1;&#x5427;&#xFF0C;&#x8BA9;&#x4ED6;&#x5728;&#x5E94;&#x6709;&#x7684;&#x4F4D;&#x7F6E;&#x53D1;&#x5149;&#x53D1;&#x70ED;&#x3002;</p>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p><a href="https://www.parkytowers.me.uk/thin/wyse/3040/?ref=xiaohai.co">Wyse 3040 (N10D): Hardware</a> <a href="#fnref1" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn2" class="footnote-item"><p><a href="https://ark.intel.com/content/www/us/en/ark/products/93361/intel-atom-x5-z8350-processor-2m-cache-up-to-1-92-ghz.html?ref=xiaohai.co">Intel Atom&#xAE; x5-Z8350 Processor</a> <a href="#fnref2" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn3" class="footnote-item"><p><a href="https://www.reddit.com/r/Dell/comments/eq73fp/replaced_emmc_from_wyse_3040_to_64gb/?rdt=63441&amp;ref=xiaohai.co">Reddit Replaced EMMC from Wyse 3040 to 64GB</a> <a href="#fnref3" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn4" class="footnote-item"><p><a href="https://wiki.debian.org/InstallingDebianOn/Dell/Wyse%203040?ref=xiaohai.co">Debian wiki Installing DebianOn Dell Wyse 3040</a> <a href="#fnref4" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
</ol>
</section>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Dell R730 风扇静音]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h1 id="%E5%89%8D%E8%A8%80">&#x524D;&#x8A00;</h1>
<p>&#x4F5C;&#x4E3A;&#x4F01;&#x4E1A;&#x7EA7;&#x7684;&#x670D;&#x52A1;&#x5668;&#xFF0C;&#x98CE;&#x6247;&#x7684;&#x566A;&#x58F0;&#x662F;&#x975E;&#x5E38;&#x5927;&#xFF0C;&#x653E;&#x5728;&#x5BB6;&#x4E2D;&#x9694;&#x7740;&#x623F;&#x95F4;&#x90FD;&#x8BA9;&#x4EBA;&#x96BE;&#x4EE5;&#x63A5;&#x53D7;&#xFF0C;&#x597D;&#x5728;&#x98CE;&#x6247;&#x90FD;&#x662F;&#x65E0;&#x5237;&#x7535;&#x673A;&#xFF0C;&#x6211;</p>]]></description><link>https://xiaohai.co/dell-r730-quieter/</link><guid isPermaLink="false">6503d1fb9ed92300011d5b3d</guid><dc:creator><![CDATA[xiaohai]]></dc:creator><pubDate>Fri, 15 Sep 2023 04:18:26 GMT</pubDate><media:content url="https://xiaohai.co/content/images/2023/09/dell-r730.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h1 id="%E5%89%8D%E8%A8%80">&#x524D;&#x8A00;</h1>
<img src="https://xiaohai.co/content/images/2023/09/dell-r730.jpg" alt="Dell R730 &#x98CE;&#x6247;&#x9759;&#x97F3;"><p>&#x4F5C;&#x4E3A;&#x4F01;&#x4E1A;&#x7EA7;&#x7684;&#x670D;&#x52A1;&#x5668;&#xFF0C;&#x98CE;&#x6247;&#x7684;&#x566A;&#x58F0;&#x662F;&#x975E;&#x5E38;&#x5927;&#xFF0C;&#x653E;&#x5728;&#x5BB6;&#x4E2D;&#x9694;&#x7740;&#x623F;&#x95F4;&#x90FD;&#x8BA9;&#x4EBA;&#x96BE;&#x4EE5;&#x63A5;&#x53D7;&#xFF0C;&#x597D;&#x5728;&#x98CE;&#x6247;&#x90FD;&#x662F;&#x65E0;&#x5237;&#x7535;&#x673A;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x81EA;&#x7531;&#x8C03;&#x6574;&#x8F6C;&#x901F;</p>
<h1 id="%E8%8E%B7%E5%8F%96%E6%B8%A9%E5%BA%A6">&#x83B7;&#x53D6;&#x6E29;&#x5EA6;</h1>
<p>iDRAC&#x5E76;&#x6CA1;&#x6709;&#x627E;&#x5230;&#x5408;&#x9002;&#x7684;API&#xFF0C;&#x6240;&#x4EE5;&#x6211;&#x4EEC;&#x901A;&#x8FC7;&#x88C5;&#x4E00;&#x53F0;&#x865A;&#x62DF;&#x673A;&#x6216;PVE SHELL&#x5185;&#x76F4;&#x63A5;&#x83B7;&#x53D6;</p>
<pre><code>apt-get install lm-sensors

# &#x83B7;&#x53D6;&#x4F20;&#x611F;&#x5668;&#x4FE1;&#x606F;
sensors-detect
</code></pre>
<p>&#x6211;&#x4EEC;&#x53EA;&#x53D6;CPU&#x6700;&#x9AD8;&#x6E29;&#x5EA6;&#x5C31;&#x597D;</p>
<pre><code>sensors|grep high|cut -d &quot;+&quot; -f2|cut -d &quot;.&quot; -f1|sort -nr|sed -n 1p
</code></pre>
<h1 id="%E8%B0%83%E6%95%B4%E9%A3%8E%E6%89%87%E9%80%9F%E5%BA%A6">&#x8C03;&#x6574;&#x98CE;&#x6247;&#x901F;&#x5EA6;</h1>
<p>&#x8FD9;&#x91CC;&#x6211;&#x4EEC;&#x7528;&#x5230;ipmitool&#x8FD9;&#x4E2A;&#x5DE5;&#x5177;</p>
<pre><code>apt-get install ipmitool
</code></pre>
<p>&#x9996;&#x5148;&#x9700;&#x8981;&#x5C06;&#x98CE;&#x6247;&#x8BBE;&#x7F6E;&#x4E3A;&#x624B;&#x52A8;&#x6A21;&#x5F0F;&#xFF0C;&#x4E0D;&#x7136;&#x8BBE;&#x7F6E;&#x901F;&#x5EA6;&#x540E;&#x4F1A;&#x9A6C;&#x4E0A;&#x88AB;&#x91CD;&#x7F6E;</p>
<pre><code>ipmitool -I lanplus -H $host -U $user -P $password raw 0x30 0x30 0x01 0x00 &gt;&gt; /dev/null
</code></pre>
<p>&#x5C06;&#x98CE;&#x6247;&#x8BBE;&#x7F6E;&#x4E3A;19%</p>
<pre><code>ipmitool -I lanplus -H $host -U $user -P $password raw 0x30 0x30 0x02 0xff 0x13 &gt;&gt; /dev/null
</code></pre>
<p>&#x6211;&#x4EEC;&#x53EA;&#x9700;&#x8981;&#x8C03;&#x6574;&#x6700;&#x540E;&#x4E00;&#x4F4D;0x13&#x5C31;&#x53EF;&#x4EE5;&#x63A7;&#x5236;&#x98CE;&#x6247;&#x7684;&#x767E;&#x5206;&#x6BD4;&#xFF0C;&#x6CE8;&#x610F;&#x6B64;&#x5904;&#x662F;16&#x8FDB;&#x5236;</p>
<h1 id="%E6%89%A7%E8%A1%8C%E8%84%9A%E6%9C%AC">&#x6267;&#x884C;&#x811A;&#x672C;</h1>
<p>&#x7531;&#x4E8E;&#x6C14;&#x6E29;&#x4E0D;&#x65AD;&#x7684;&#x53D8;&#x5316;&#xFF0C;&#x5355;&#x4E00;&#x7684;&#x8F6C;&#x901F;&#x5E76;&#x4E0D;&#x80FD;&#x5E26;&#x6765;&#x826F;&#x597D;&#x7684;&#x6563;&#x70ED;&#xFF0C;&#x6240;&#x4EE5;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x8BBE;&#x7F6E;&#x51E0;&#x4E2A;&#x9636;&#x6BB5;&#xFF0C;&#x4E0D;&#x540C;&#x6E29;&#x5EA6;&#xFF0C;&#x4F7F;&#x7528;&#x4E0D;&#x540C;&#x7684;&#x8F6C;&#x901F;&#x6765;&#x6563;&#x70ED;&#xFF0C;&#x907F;&#x514D;CPU&#x8FC7;&#x70ED;</p>
<pre><code>#!/bin/bash

# Read the max CPU temp from sensors (lm-sensor) 
tempCpu=$(sensors|grep &quot;high&quot;|cut -d &quot;+&quot; -f2|cut -d &quot;.&quot; -f1|sort -nr|sed -n 1p)
# Define CPU limie

# Set variables

host=&quot;idrac_ip&quot;
user=&quot;idrac_user&quot;
password=&quot;idrac_password&quot;

minCpu=&quot;50&quot;
medCpu=&quot;56&quot;
maxCpu=&quot;61&quot;

if [ $tempCpu -le $minCpu ] ; then

	ipmitool -I lanplus -H $host -U $user -P $password raw 0x30 0x30 0x01 0x00 &gt;&gt; /dev/null
	ipmitool -I lanplus -H $host -U $user -P $password raw 0x30 0x30 0x02 0xff 0x13 &gt;&gt; /dev/null

elif [ $tempCpu -le $medCpu ] ; then

	ipmitool -I lanplus -H $host -U $user -P $password raw 0x30 0x30 0x01 0x00 &gt;&gt; /dev/null
	ipmitool -I lanplus -H $host -U $user -P $password raw 0x30 0x30 0x02 0xff 0x17 &gt;&gt; /dev/null

elif [ $tempCpu -le $maxCpu ] ; then

	ipmitool -I lanplus -H $host -U $user -P $password raw 0x30 0x30 0x01 0x00 &gt;&gt; /dev/null
	ipmitool -I lanplus -H $host -U $user -P $password raw 0x30 0x30 0x02 0xff 0x20 &gt;&gt; /dev/null

else
	# Let the server decide
	ipmitool -I lanplus -H $host -U $user -P $password raw 0x30 0x30 0x01 0x01 &gt;&gt; /dev/null

fi
</code></pre>
<h1 id="%E6%9C%80%E5%90%8E">&#x6700;&#x540E;</h1>
<p>&#x5C06;&#x811A;&#x672C;&#x8BBE;&#x4E3A;&#x5B9A;&#x65F6;&#x6267;&#x884C;&#x5C31;&#x597D;&#xFF0C;&#x8F6C;&#x901F;&#x53EF;&#x6839;&#x636E;&#x5B9E;&#x9645;&#x60C5;&#x51B5;&#x81EA;&#x884C;&#x8C03;&#x6574;&#xFF0C;&#x4ECE;&#x6B64;&#x6574;&#x4E2A;&#x4E16;&#x754C;&#x90FD;&#x5B89;&#x9759;&#x4E86;</p>
<p>R710<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>,R720&#x7B49;&#x578B;&#x53F7;&#x540C;&#x6837;&#x9002;&#x7528;</p>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p><a href="https://blog.lbdg.me/r710-quieter/?ref=xiaohai.co">R710 quieter</a> <a href="#fnref1" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
</ol>
</section>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[LTO磁带机]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id="%E7%8E%AF%E5%A2%83">&#x73AF;&#x5883;</h2>
<p>CentOS 7.9<br>
LSI 2308&#x9635;&#x5217;&#x5361;</p>
<h2 id="%E7%A3%81%E5%B8%A6%E4%B8%8E%E7%A3%81%E5%B8%A6%E6%9C%BA">&#x78C1;&#x5E26;&#x4E0E;&#x78C1;&#x5E26;&#x673A;</h2>
<p>&#x4E3A;&#x4E86;&#x5907;&#x4EFD;&#x4E00;&#x4E9B;&#x957F;&#x671F;&#x4E0D;&#x7528;&#x7684;&#x51B7;&#x6570;&#x636E;&#xFF0C;&#x4E2A;&#x4EBA;&#x9009;&#x62E9;&#x4E86;LTO Ultrium 5<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>&#x78C1;&#x5E26;&#xFF0C;&#x5728;&#x6B64;&#x65F6;(2021&#x5E74;&#x5E95;)&#x6027;</p>]]></description><link>https://xiaohai.co/lto-tape-drive/</link><guid isPermaLink="false">6227215a7e76850001338f4f</guid><dc:creator><![CDATA[xiaohai]]></dc:creator><pubDate>Tue, 15 Mar 2022 11:50:48 GMT</pubDate><media:content url="https://xiaohai.co/content/images/2022/03/lto-tape.jpeg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id="%E7%8E%AF%E5%A2%83">&#x73AF;&#x5883;</h2>
<img src="https://xiaohai.co/content/images/2022/03/lto-tape.jpeg" alt="LTO&#x78C1;&#x5E26;&#x673A;"><p>CentOS 7.9<br>
LSI 2308&#x9635;&#x5217;&#x5361;</p>
<h2 id="%E7%A3%81%E5%B8%A6%E4%B8%8E%E7%A3%81%E5%B8%A6%E6%9C%BA">&#x78C1;&#x5E26;&#x4E0E;&#x78C1;&#x5E26;&#x673A;</h2>
<p>&#x4E3A;&#x4E86;&#x5907;&#x4EFD;&#x4E00;&#x4E9B;&#x957F;&#x671F;&#x4E0D;&#x7528;&#x7684;&#x51B7;&#x6570;&#x636E;&#xFF0C;&#x4E2A;&#x4EBA;&#x9009;&#x62E9;&#x4E86;LTO Ultrium 5<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>&#x78C1;&#x5E26;&#xFF0C;&#x5728;&#x6B64;&#x65F6;(2021&#x5E74;&#x5E95;)&#x6027;&#x4EF7;&#x6BD4;&#x662F;&#x5F88;&#x9AD8;&#x7684;&#xFF0C;&#x78C1;&#x5E26;&#x5BB9;&#x91CF;&#x672A;&#x538B;&#x7F29;1.5TB&#xFF0C;&#x538B;&#x7F29;&#x540E;3TB&#xFF0C;&#x5E76;&#x4E14;&#x652F;&#x6301;LTFS (Linear Tape File System)<sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup>&#xFF0C;&#x64CD;&#x4F5C;&#x6587;&#x4EF6;&#x66F4;&#x52A0;&#x65B9;&#x4FBF;&#xFF0C;&#x7531;&#x4E8E;&#x78C1;&#x5E26;&#x673A;&#x53EF;&#x4EE5;&#x5411;&#x4E0B;&#x517C;&#x5BB9;&#xFF0C;&#x6211;&#x4EEC;&#x8FD8;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x66F4;&#x4FBF;&#x5B9C;&#x7684;LTO4&#x78C1;&#x5E26;&#xFF0C;&#x5F53;&#x7136;LTO5&#x78C1;&#x5E26;&#x673A;&#x7684;&#x4EF7;&#x683C;&#x4E5F;&#x662F;&#x6BD4;&#x8F83;&#x4EB2;&#x6C11;&#x3002;</p>
<p>&#x7531;&#x4E8E;LTO&#x662F;&#x4E00;&#x4E2A;&#x6807;&#x51C6;&#xFF0C;&#x6240;&#x4EE5;&#x4E0D;&#x540C;&#x54C1;&#x724C;&#x673A;&#x5668;&#x4E0E;&#x78C1;&#x5E26;&#x662F;&#x53EF;&#x4EE5;&#x6DF7;&#x7528;&#x7684;&#x3002;</p>
<p>&#x5404;&#x7C7B;&#x578B;&#x78C1;&#x5E26;&#x5BF9;&#x6BD4;</p>
<table>
<thead>
<tr>
<th>&#x683C;&#x5F0F;</th>
<th style="text-align:center">LTO-1</th>
<th style="text-align:center">LTO-2</th>
<th style="text-align:center">LTO-3</th>
<th style="text-align:center">LTO-4</th>
<th style="text-align:center">LTO-5</th>
<th style="text-align:center">LTO-6</th>
<th style="text-align:center">LTO-7</th>
<th style="text-align:center">LTO-8</th>
<th style="text-align:center">LTO-9</th>
</tr>
</thead>
<tbody>
<tr>
<td>&#x53D1;&#x5E03;&#x65F6;&#x95F4;</td>
<td style="text-align:center">2000</td>
<td style="text-align:center">2003&#x5E74;</td>
<td style="text-align:center">2005&#x5E74;</td>
<td style="text-align:center">2007&#x5E74;</td>
<td style="text-align:center">2010</td>
<td style="text-align:center">2012&#x5E74;</td>
<td style="text-align:center">2015 &#x5E74;</td>
<td style="text-align:center">2017 &#x5E74;</td>
<td style="text-align:center">2021 &#x5E74;</td>
</tr>
<tr>
<td>&#x6B63;&#x5E38;&#x5BB9;&#x91CF;</td>
<td style="text-align:center">100 GB</td>
<td style="text-align:center">200 GB</td>
<td style="text-align:center">400 GB</td>
<td style="text-align:center">800 GB</td>
<td style="text-align:center">1.5TB</td>
<td style="text-align:center">2.5TB</td>
<td style="text-align:center">6TB</td>
<td style="text-align:center">12TB</td>
<td style="text-align:center">18TB</td>
</tr>
<tr>
<td>&#x538B;&#x7F29;&#x5BB9;&#x91CF;</td>
<td style="text-align:center">200 GB</td>
<td style="text-align:center">400 GB</td>
<td style="text-align:center">800 GB</td>
<td style="text-align:center">1.6 TB</td>
<td style="text-align:center">3.0 TB</td>
<td style="text-align:center">6.25 TB</td>
<td style="text-align:center">15 TB</td>
<td style="text-align:center">30 TB</td>
<td style="text-align:center">45 TB</td>
</tr>
<tr>
<td>&#x6700;&#x5927;&#x672A;&#x538B;&#x7F29;&#x901F;&#x5EA6;</td>
<td style="text-align:center">20M/s</td>
<td style="text-align:center">40M/s</td>
<td style="text-align:center">80M/s</td>
<td style="text-align:center">120M/s</td>
<td style="text-align:center">140M/s</td>
<td style="text-align:center">160M/s</td>
<td style="text-align:center">300M/s</td>
<td style="text-align:center">360M/s</td>
<td style="text-align:center">400M/s</td>
</tr>
<tr>
<td>&#x6700;&#x5927;&#x538B;&#x7F29;&#x901F;&#x5EA6;</td>
<td style="text-align:center">40M/s</td>
<td style="text-align:center">80M/s</td>
<td style="text-align:center">160M/s</td>
<td style="text-align:center">240M/s</td>
<td style="text-align:center">280M/s</td>
<td style="text-align:center">400M/s</td>
<td style="text-align:center">750M/s</td>
<td style="text-align:center">900M/s</td>
<td style="text-align:center">1000M/s</td>
</tr>
<tr>
<td>&#x5168;&#x76D8;&#x5199;&#x5165;&#x65F6;&#x95F4;</td>
<td style="text-align:center">1&#x65F6;23&#x5206;</td>
<td style="text-align:center">1&#x65F6;23&#x5206;</td>
<td style="text-align:center">1&#x65F6;23&#x5206;</td>
<td style="text-align:center">1 &#x65F6; 51&#x5206;</td>
<td style="text-align:center">3&#x65F6;10&#x5206;</td>
<td style="text-align:center">4&#x65F6;20&#x5206;</td>
<td style="text-align:center">5&#x65F6;33&#x5206;</td>
<td style="text-align:center">8&#x65F6;20&#x5206;</td>
<td style="text-align:center">9&#x65F6;16&#x5206;</td>
</tr>
<tr>
<td>LTFS&#x652F;&#x6301;</td>
<td style="text-align:center">&#x5426;</td>
<td style="text-align:center">&#x5426;</td>
<td style="text-align:center">&#x5426;</td>
<td style="text-align:center">&#x5426;</td>
<td style="text-align:center">&#x662F;</td>
<td style="text-align:center">&#x662F;</td>
<td style="text-align:center">&#x662F;</td>
<td style="text-align:center">&#x662F;</td>
<td style="text-align:center">&#x662F;</td>
</tr>
<tr>
<td>&#x78C1;&#x5E26;&#x957F;&#x5EA6;</td>
<td style="text-align:center">609&#x7C73;</td>
<td style="text-align:center">609&#x7C73;</td>
<td style="text-align:center">680&#x7C73;</td>
<td style="text-align:center">820&#x7C73;</td>
<td style="text-align:center">846&#x7C73;</td>
<td style="text-align:center">846&#x7C73;</td>
<td style="text-align:center">960&#x7C73;</td>
<td style="text-align:center">960&#x7C73;</td>
<td style="text-align:center">1035&#x7C73;</td>
</tr>
<tr>
<td>&#x78C1;&#x9053;&#x6570;&#x91CF;</td>
<td style="text-align:center">384</td>
<td style="text-align:center">512</td>
<td style="text-align:center">704</td>
<td style="text-align:center">896</td>
<td style="text-align:center">1280</td>
<td style="text-align:center">2176</td>
<td style="text-align:center">3584</td>
<td style="text-align:center">6656</td>
<td style="text-align:center">8960</td>
</tr>
</tbody>
</table>
<p>&#x78C1;&#x5E26;&#x4E0E;&#x78C1;&#x5E26;&#x673A;&#x517C;&#x5BB9;&#x60C5;&#x51B5;</p>
<table>
<thead>
<tr>
<th>&#x78C1;&#x5E26;&#x673A;</th>
<th>LTO-1&#x78C1;&#x5E26;</th>
<th>LTO-2&#x78C1;&#x5E26;</th>
<th>LTO-3&#x78C1;&#x5E26;</th>
<th>LTO-4&#x78C1;&#x5E26;</th>
<th>LTO-5&#x78C1;&#x5E26;</th>
<th>LTO-6&#x78C1;&#x5E26;</th>
<th>LTO-7&#x78C1;&#x5E26;</th>
<th>LTO-8&#x78C1;&#x5E26;</th>
</tr>
</thead>
<tbody>
<tr>
<td>LTO-1</td>
<td>&#x8BFB;&#x5199;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
</tr>
<tr>
<td>LTO-2</td>
<td>&#x8BFB;&#x5199;</td>
<td>&#x8BFB;&#x5199;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
</tr>
<tr>
<td>LTO-3</td>
<td>&#x53EA;&#x8BFB;</td>
<td>&#x8BFB;&#x5199;</td>
<td>&#x8BFB;&#x5199;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
</tr>
<tr>
<td>LTO-4</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x53EA;&#x8BFB;</td>
<td>&#x8BFB;&#x5199;</td>
<td>&#x8BFB;&#x5199;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
</tr>
<tr>
<td>LTO-5</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x53EA;&#x8BFB;</td>
<td>&#x8BFB;&#x5199;</td>
<td>&#x8BFB;&#x5199;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
</tr>
<tr>
<td>LTO-6</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x53EA;&#x8BFB;</td>
<td>&#x8BFB;&#x5199;</td>
<td>&#x8BFB;&#x5199;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
</tr>
<tr>
<td>LTO-7</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x53EA;&#x8BFB;</td>
<td>&#x8BFB;&#x5199;</td>
<td>&#x8BFB;&#x5199;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
</tr>
<tr>
<td>LTO-8</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x4E0D;&#x652F;&#x6301;</td>
<td>&#x53EA;&#x8BFB;</td>
<td>&#x8BFB;&#x5199;</td>
<td>&#x8BFB;&#x5199;</td>
</tr>
</tbody>
</table>
<h2 id="%E7%A1%AC%E4%BB%B6">&#x786C;&#x4EF6;</h2>
<p>&#x4E00;&#x822C;&#x5E02;&#x9762;&#x4E0A;&#x5206;&#x4E3A;&#x4E24;&#x79CD;&#x63A5;&#x53E3;&#x7684;&#x78C1;&#x5E26;&#x673A;(SAS&#x3001;FC)&#xFF0C;&#x65E0;&#x6CD5;&#x4E0E;&#x6B63;&#x5E38;PC&#x8FDE;&#x63A5;&#xFF0C;&#x6240;&#x4EE5;&#x9700;&#x8981;&#x9635;&#x5217;&#x5361;&#x8FDB;&#x884C;&#x8F6C;&#x6362;&#xFF0C;&#x7535;&#x6E90;&#x4E00;&#x822C;&#x53EF;&#x7528;sata&#x63A5;&#x53E3;&#xFF0C;&#x6216;&#x5927;4pin&#x63A5;&#x53E3;&#x4F9B;&#x7535;&#xFF0C;&#x4E00;&#x822C;&#x7535;&#x6E90;&#x90FD;&#x6709;&#x63D0;&#x4F9B;&#xFF0C;&#x63D0;&#x793A;:&#x5207;&#x52FF;&#x7528;&#x5927;4pin&#x8F6C;sata</p>
<ul>
<li>sas&#x63A5;&#x53E3;&#x7684;&#x78C1;&#x5E26;&#x673A;</li>
<li>LSI 2308&#x82AF;&#x7247;&#x7684;&#x9635;&#x5217;&#x5361;</li>
<li>SFF-8087&#x8F6C;SFF-8482  sas&#x786C;&#x76D8;&#x8FDE;&#x63A5;&#x7EBF;</li>
<li>&#x666E;&#x901A;PC&#x4E00;&#x53F0;</li>
<li>&#x542B;&#x6709;&#x5149;&#x9A71;&#x53E3;&#x7684;&#x673A;&#x7BB1;(&#x6CE8;&#x610F;&#x5149;&#x9A71;&#x53E3;&#x5927;&#x5C0F;)</li>
</ul>
<h2 id="%E7%B3%BB%E7%BB%9F%E6%93%8D%E4%BD%9C">&#x7CFB;&#x7EDF;&#x64CD;&#x4F5C;</h2>
<h4 id="%E6%A3%80%E6%9F%A5%E8%AE%BE%E5%A4%87%E9%A9%B1%E5%8A%A8">&#x68C0;&#x67E5;&#x8BBE;&#x5907;&#x9A71;&#x52A8;</h4>
<pre><code>$ lsscsi -g

[0:0:0:0]    tape    HP       Ultrium 5-SCSI   Z3ED  /dev/st0   /dev/sg1
</code></pre>
<h4 id="%E6%A3%80%E6%9F%A5%E7%A3%81%E5%B8%A6%E6%9C%BA%E7%9A%84%E7%8A%B6%E6%80%81">&#x68C0;&#x67E5;&#x78C1;&#x5E26;&#x673A;&#x7684;&#x72B6;&#x6001;</h4>
<p>&#x78C1;&#x5E26;&#x673A;&#x6709;&#x4E24;&#x79CD;&#x8BBE;&#x5907;&#x6587;&#x4EF6;&#xFF0C;&#x533A;&#x522B;&#x5728;&#x4E8E;&#x5199;&#x5165;&#x5B8C;&#x6210;&#x540E;&#x64CD;&#x4F5C;</p>
<pre><code>$ ls /dev | grep st0

nst0
st0
</code></pre>
<p>/dev/st0 &#x5199;&#x5165;&#x5B8C;&#x6210;&#x540E;&#x81EA;&#x52A8;&#x5012;&#x5E26;<br>
/dev/nst0 &#x5199;&#x5165;&#x5B8C;&#x6210;&#x540E;&#xFF0C;&#x78C1;&#x5934;&#x79FB;&#x52A8;&#x5230;&#x4E0B;&#x4E00;&#x4E2A;&#x53EF;&#x5199;&#x4F4D;&#x7F6E;</p>
<h4 id="%E7%A3%81%E5%B8%A6%E6%9C%BA%E6%93%8D%E4%BD%9C">&#x78C1;&#x5E26;&#x673A;&#x64CD;&#x4F5C;</h4>
<pre><code>yum install mt-st mtx
</code></pre>
<p>mt<sup class="footnote-ref"><a href="#fn3" id="fnref3">[3]</a></sup>&#x7684;&#x5E38;&#x7528;&#x64CD;&#x4F5C;&#x6709;</p>
<pre><code># &#x78C1;&#x5E26;&#x673A;&#x72B6;&#x6001;
mt -f /dev/st0 status
# &#x5012;&#x5E26;
mt -f /dev/st0 rewind
# &#x5F39;&#x51FA;&#xFF0C;&#x5C06;&#x78C1;&#x5E26;&#x5377;&#x81F3;&#x521D;&#x59CB;&#x4F4D;&#x7F6E;&#x7136;&#x540E;&#x4ECE;&#x78C1;&#x5E26;&#x673A;&#x5185;&#x5F39;&#x51FA;&#x78C1;&#x5E26;
mt -f /dev/st0 offline
</code></pre>
<p>tapeinfo<sup class="footnote-ref"><a href="#fn4" id="fnref4">[4]</a></sup>&#x53EF;&#x4EE5;&#x67E5;&#x770B;&#x78C1;&#x5E26;&#x8BBE;&#x5907;&#x4FE1;&#x606F;</p>
<pre><code>$ tapeinfo -f /dev/st0

Product Type: Tape Drive
Vendor ID: &apos;HP      &apos;
Product ID: &apos;Ultrium 5-SCSI  &apos;
Revision: &apos;Z3ED&apos;
...&#x7565;
</code></pre>
<h2 id="ltfs%E6%93%8D%E4%BD%9C">LTFS&#x64CD;&#x4F5C;</h2>
<p>LTFS (Linear Tape File System)&#x53EF;&#x4EE5;&#x7528;&#x5728;LTO5&#x4EE5;&#x4E0A;&#x7684;&#x78C1;&#x5E26;&#x673A;&#xFF0C;&#x5728;&#x64CD;&#x4F5C;&#x7CFB;&#x7EDF;&#x5185;&#x53EF;&#x4EE5;&#x5C06;&#x78C1;&#x5E26;&#x770B;&#x4F5C;&#x4E00;&#x4E2A;&#x78C1;&#x76D8;&#x53BB;&#x64CD;&#x4F5C;&#xFF0C;&#x867D;&#x7136;&#x770B;&#x8D77;&#x6765;&#x50CF;&#x78C1;&#x76D8;&#xFF0C;&#x4F46;&#x8FD8;&#x662F;&#x6309;&#x7167;&#x987A;&#x5E8F;&#x6765;&#x4FDD;&#x5B58;&#x6570;&#x636E;&#xFF0C;&#x88AB;&#x5220;&#x9664;&#x7684;&#x6587;&#x4EF6;&#x4E0D;&#x4F1A;&#x91CA;&#x653E;&#x7A7A;&#x95F4;&#xFF0C;&#x91CD;&#x65B0;&#x683C;&#x5F0F;&#x5316;&#x4E4B;&#x540E;&#xFF0C;&#x624D;&#x4F1A;&#x6062;&#x590D;&#x5BB9;&#x91CF;</p>
<p>LTFS&#x867D;&#x7136;&#x662F;&#x901A;&#x7528;&#x6807;&#x51C6;&#xFF0C;&#x4F46;&#x662F;&#x9488;&#x5BF9;&#x5404;&#x5BB6;&#x78C1;&#x5E26;&#x673A;&#x7684;&#x65F6;&#x9A71;&#x52A8;&#x4E0D;&#x592A;&#x517C;&#x5BB9;<br>
IBM&#x548C;DELL(IBM&#x4EE3;&#x5DE5;)&#x7684;&#x673A;&#x5668;&#x63A8;&#x8350;&#x7528; LinearTapeFileSystem/ltfs Github <sup class="footnote-ref"><a href="#fn5" id="fnref5">[5]</a></sup><br>
&#x7531;&#x4E8E;&#x6211;&#x662F;HP&#xFF0C;&#x6240;&#x4EE5;&#x4F7F;&#x7528;HP-SOS HPE-LTFS<sup class="footnote-ref"><a href="#fn6" id="fnref6">[6]</a></sup></p>
<p>&#x7F16;&#x8BD1;&#x73AF;&#x5883;</p>
<pre><code>yum gcc icu libicu libicu-devel fuse fuse-libs fuse-devel libxml2 libxml2-devel e2fsprogs  uuid uuid-devel libuuid libuuid-devel
</code></pre>
<p>&#x683C;&#x5F0F;&#x5316;&#x78C1;&#x5E26; (tape-serial&#x4E3A;&#x78C1;&#x5E26;&#x5E8F;&#x5217;&#x53F7;)</p>
<pre><code>mkltfs --tape-serial=C00000 -f -d /dev/st0
</code></pre>
<p>&#x6302;&#x8F7D;&#x78C1;&#x5E26;</p>
<pre><code>ltfs -o devname=/dev/st0 /mnt/ltfs
</code></pre>
<p>&#x5378;&#x8F7D;&#x78C1;&#x5E26;</p>
<pre><code>umount /mnt/ltfs
</code></pre>
<h2 id="%E7%A3%81%E5%B8%A6%E7%9A%84%E4%BF%9D%E5%AD%98">&#x78C1;&#x5E26;&#x7684;&#x4FDD;&#x5B58;</h2>
<p>&#x78C1;&#x5E26;&#x7684;&#x4FDD;&#x5B58;&#x4F3C;&#x4E4E;&#x5E76;&#x6CA1;&#x6709;&#x4E00;&#x822C;&#x4EBA;&#x60F3;&#x8C61;&#x7684;&#x90A3;&#x4E48;&#x4E25;&#x82DB;&#xFF0C;&#x56FD;&#x5BB6;&#x4E5F;&#x6709;&#x76F8;&#x5E94;&#x7684;&#x6807;&#x51C6; DA/T83&#x2014;2019<sup class="footnote-ref"><a href="#fn7" id="fnref7">[7]</a></sup></p>
<table>
<thead>
<tr>
<th style="text-align:center">&#x73AF;&#x5883;</th>
<th style="text-align:center">&#x6E29;&#x5EA6;</th>
<th style="text-align:center">&#x6E7F;&#x5EA6;</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">&#x4FDD;&#x5B58;</td>
<td style="text-align:center">15 &#x2103; ~ 24 &#x2103;</td>
<td style="text-align:center">40% ~ 60%</td>
</tr>
<tr>
<td style="text-align:center">&#x5DE5;&#x4F5C;</td>
<td style="text-align:center">10 &#x2103; ~ 26 &#x2103;</td>
<td style="text-align:center">40% ~ 70%</td>
</tr>
<tr>
<td style="text-align:center">&#x8FD0;&#x8F93;</td>
<td style="text-align:center">4 &#x2103; ~ 32 &#x2103;</td>
<td style="text-align:center">20% ~ 80%</td>
</tr>
</tbody>
</table>
<p>&#x907F;&#x514D;&#x7A81;&#x7136;&#x7684;&#x6E29;&#x5EA6;&#x6CE2;&#x52A8;&#xFF0C;&#x8FDC;&#x79BB;&#x78C1;&#x573A;<br>
&#x4E00;&#x822C;&#x6765;&#x8BF4;&#x6B63;&#x5E38;&#x5BA4;&#x6E29;&#x4E00;&#x4E2A;&#x63A5;&#x8FD1;&#x5BC6;&#x5C01;&#x7BB1;&#x5B50;&#xFF0C;&#x91CC;&#x9762;&#x52A0;&#x70B9;&#x5E72;&#x71E5;&#x5242;&#xFF0C;&#x653E;&#x5728;&#x4E00;&#x4E2A;&#x89D2;&#x843D;&#x8DB3;&#x591F;&#x4E86;</p>
<h2 id="%E6%9C%80%E5%90%8E">&#x6700;&#x540E;</h2>
<p>&#x78C1;&#x5E26;&#x673A;&#x662F;&#x5426;&#x5B9E;&#x7528;&#xFF0C;&#x56E0;&#x4EBA;&#x800C;&#x5F02;&#xFF0C;&#x56E0;&#x6570;&#x636E;&#x800C;&#x5F02;&#xFF0C;&#x78C1;&#x5E26;&#x5BF9;&#x4E8E;&#x5927;&#x91CF;&#x6570;&#x636E;&#x7684;&#x5B58;&#x50A8;&#x6210;&#x672C;&#x975E;&#x5E38;&#x4F4E;&#x3002;&#x78C1;&#x5E26;&#x8F83;&#x591A;&#x65F6;&#xFF0C;&#x9700;&#x8981;&#x5BF9;&#x78C1;&#x5E26;&#x8FDB;&#x884C;&#x7D22;&#x5F15;&#xFF0C;&#x6BD4;&#x5982;&#x5B58;&#x50A8;&#x4E86;&#x4EC0;&#x4E48;&#x4E1C;&#x897F;&#xFF0C;&#x4E0A;&#x6B21;&#x5012;&#x5E26;&#x5728;&#x4EC0;&#x4E48;&#x65F6;&#x5019;&#xFF0C;&#x5F53;&#x7136;&#x949E;&#x80FD;&#x529B;&#x4E5F;&#x53EF;&#x4EE5;&#x89E3;&#x51B3;&#x8FD9;&#x4E9B;&#x95EE;&#x9898;(&#x4E0A;&#x78C1;&#x5E26;&#x5E93;<sup class="footnote-ref"><a href="#fn8" id="fnref8">[8]</a></sup>)&#x3002;</p>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p><a href="https://en.wikipedia.org/wiki/Linear_Tape-Open?ref=xiaohai.co">Linear Tape Open wikipedia</a> <a href="#fnref1" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn2" class="footnote-item"><p><a href="https://en.wikipedia.org/wiki/Linear_Tape_File_System?ref=xiaohai.co">Linear Tape File System wikipedia</a> <a href="#fnref2" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn3" class="footnote-item"><p><a href="https://linux.die.net/man/1/mt?ref=xiaohai.co">mt&#x78C1;&#x5E26;&#x673A;&#x64CD;&#x4F5C;</a> <a href="#fnref3" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn4" class="footnote-item"><p><a href="https://linux.die.net/man/1/tapeinfo?ref=xiaohai.co">tapeinfo&#x78C1;&#x5E26;&#x673A;&#x4FE1;&#x606F;</a> <a href="#fnref4" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn5" class="footnote-item"><p><a href="https://github.com/LinearTapeFileSystem/ltfs?ref=xiaohai.co">IBM LTFS Github</a> <a href="#fnref5" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn6" class="footnote-item"><p><a href="https://github.com/nix-community/hpe-ltfs?ref=xiaohai.co">HPE StoreOpen Software (HPE-SOS) HPE-LTFS</a> <a href="#fnref6" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn7" class="footnote-item"><p><a href="https://www.saac.gov.cn/daj/hybz/201912/1b944990fa1b4d829ac4ca4315ac65d3/files/3eb7a3f6fa434bd9b88483735cee24a1.pdf?ref=xiaohai.co">&#x56FD;&#x5BB6;&#x6863;&#x6848;&#x884C;&#x4E1A;&#x6807;&#x51C6; DA/T83&#x2014;2019</a> <a href="#fnref7" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn8" class="footnote-item"><p><a href="https://en.wikipedia.org/wiki/Tape_library?ref=xiaohai.co">Tape library wikipedia</a> <a href="#fnref8" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
</ol>
</section>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[OpenWRT更新cloudflare DNS IP]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h1 id="%E5%89%8D%E8%A8%80">&#x524D;&#x8A00;</h1>
<p>&#x7531;&#x4E8E;&#x81EA;&#x5DF1;&#x7528;&#x4E86;&#x591A;WAN,&#x4E00;&#x76F4;&#x6CA1;&#x627E;&#x5230;&#x5408;&#x9002;&#x7684;ddns&#x63D2;&#x4EF6;,&#x6240;&#x4EE5;&#x7528;cloudflare api<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>&#x5B9E;&#x73B0;&#x4E86;&#x4E00;&#x4E2A;ddns&#x529F;&#x80FD;</p>
<h1 id="%E4%BB%A3%E7%A0%81">&#x4EE3;&#x7801;</h1>
<pre><code>#!/bin/sh
[ $ACTION = &quot;ifup&quot; -a $INTERFACE = &quot;WAN&quot; ]
ip=`ubus</code></pre>]]></description><link>https://xiaohai.co/openwrt-update-cloudflare-dns-ip/</link><guid isPermaLink="false">61947f407e76850001338f03</guid><dc:creator><![CDATA[xiaohai]]></dc:creator><pubDate>Wed, 17 Nov 2021 04:18:44 GMT</pubDate><media:content url="https://xiaohai.co/content/images/2023/02/cloudflaredns-3.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h1 id="%E5%89%8D%E8%A8%80">&#x524D;&#x8A00;</h1>
<img src="https://xiaohai.co/content/images/2023/02/cloudflaredns-3.jpg" alt="OpenWRT&#x66F4;&#x65B0;cloudflare DNS IP"><p>&#x7531;&#x4E8E;&#x81EA;&#x5DF1;&#x7528;&#x4E86;&#x591A;WAN,&#x4E00;&#x76F4;&#x6CA1;&#x627E;&#x5230;&#x5408;&#x9002;&#x7684;ddns&#x63D2;&#x4EF6;,&#x6240;&#x4EE5;&#x7528;cloudflare api<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>&#x5B9E;&#x73B0;&#x4E86;&#x4E00;&#x4E2A;ddns&#x529F;&#x80FD;</p>
<h1 id="%E4%BB%A3%E7%A0%81">&#x4EE3;&#x7801;</h1>
<pre><code>#!/bin/sh
[ $ACTION = &quot;ifup&quot; -a $INTERFACE = &quot;WAN&quot; ]
ip=`ubus call network.interface.WAN status | grep \&quot;address\&quot; | grep -oE &apos;[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}&apos;`
curl -X PUT &quot;https://api.cloudflare.com/client/v4/zones/xxxxxxxxx/dns_records/xxxxxxxx&quot; -H &quot;Authorization: Bearer XXXXXXXXXXX&quot;  -H &quot;Content-Type: application/json&quot; --data &apos;{&quot;type&quot;:&quot;A&quot;,&quot;name&quot;:&quot;domian.test&quot;,&quot;content&quot;:&quot;&apos;$ip&apos;&quot;,&quot;ttl&quot;:120,&quot;priority&quot;:10,&quot;proxied&quot;:false}&apos; &gt; /dev/null                                               
</code></pre>
<p>&#x5C06;&#x4EE5;&#x4E0A;&#x6587;&#x4EF6;&#x4FDD;&#x5B58;&#x4E3A;30-cloudflare &#x653E;&#x7F6E;&#x5728;/etc/hotplug.d/iface&#x76EE;&#x5F55;&#x4E0B;</p>
<h1 id="%E9%9D%9E%E6%8B%A8%E5%8F%B7%E8%AE%BE%E5%A4%87">&#x975E;&#x62E8;&#x53F7;&#x8BBE;&#x5907;</h1>
<p>&#x5982;&#x679C;&#x4E0D;&#x662F;&#x5728;&#x8DEF;&#x7531;&#x5668;&#x4E0A;&#x62E8;&#x53F7;,&#x53EF;&#x5B9A;&#x65F6;&#x83B7;&#x53D6;&#x516C;&#x7F51;IP</p>
<pre><code>#!/bin/sh
ip=`curl -s http://ns1.dnspod.net:6666 | grep -oE &apos;[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}&apos;`
wanip=`cat wanip.txt`
if [ &quot;$wanip&quot; != &quot;$ip&quot; ];then
    res=`curl -s -X PUT &quot;https://api.cloudflare.com/client/v4/zones/xxxxxxxxx/dns_records/xxxxxxxxx&quot; \
    -H &quot;Authorization: Bearer xxxxxxxxx&quot; \
    -H &quot;Content-Type:application/json&quot; \
    --data &apos;{&quot;type&quot;:&quot;A&quot;,&quot;name&quot;:&quot;domian.test&quot;,&quot;content&quot;:&quot;&apos;$ip&apos;&quot;,&quot;ttl&quot;:120,&quot;priority&quot;:10,&quot;proxied&quot;:false}&apos;| \
    python3 -c &quot;import sys, json; print(json.load(sys.stdin)[&apos;success&apos;])&quot;`
                                      
    if [ &quot;$res&quot; = &quot;True&quot; ];then
        echo &quot;$ip&quot; &gt; wanip.txt
    fi

fi
</code></pre>
<blockquote>
<p>&#x6CE8;:xxx&#x66FF;&#x6362;&#x4E3A;&#x81EA;&#x5DF1;&#x7684;&#x8BBE;&#x7F6E;,token&#x957F;&#x671F;&#x6709;&#x6548;<sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup>,&#x53EF;&#x4EE5;&#x56FA;&#x5B9A;&#x5199;&#x6B7B;.</p>
</blockquote>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p><a href="https://api.cloudflare.com/?ref=xiaohai.co#dns-records-for-a-zone-update-dns-record">Cloudflare Update DNS Record Wiki</a> <a href="#fnref1" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn2" class="footnote-item"><p><a href="https://dash.cloudflare.com/profile/api-tokens?ref=xiaohai.co">Cloudflare API Tokens page</a> <a href="#fnref2" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
</ol>
</section>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[接收航空气象VOLMET消息]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id>&#x524D;&#x8A00;</h2>
<p>&#x641C;&#x7D22;&#x9891;&#x7387;&#x65F6;&#x5076;&#x7136;&#x53D1;&#x73B0;&#x822A;&#x7A7A;&#x6C14;&#x8C61;&#x8D44;&#x6599;&#x7684;&#x64AD;&#x62A5;&#xFF0C;&#x6574;&#x7406;&#x4E86;&#x4E00;&#x4E0B;&#x76F8;&#x5173;&#x8D44;&#x6599;&#xFF0C;&#x672C;&#x4EBA;&#x975E;&#x822A;&#x7A7A;&#x76F8;&#x5173;&#x884C;&#x4E1A;&#xFF0C;&#x6587;&#x7AE0;&#x53EF;&#x80FD;&#x5B58;&#x5728;&#x9519;&#x8BEF;&#xFF0C;</p>]]></description><link>https://xiaohai.co/hf-volmet/</link><guid isPermaLink="false">6158185ab5623f0001cbc887</guid><dc:creator><![CDATA[xiaohai]]></dc:creator><pubDate>Sat, 02 Oct 2021 14:29:09 GMT</pubDate><media:content url="https://xiaohai.co/content/images/2021/10/vv--1-.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id>&#x524D;&#x8A00;</h2>
<img src="https://xiaohai.co/content/images/2021/10/vv--1-.jpg" alt="&#x63A5;&#x6536;&#x822A;&#x7A7A;&#x6C14;&#x8C61;VOLMET&#x6D88;&#x606F;"><p>&#x641C;&#x7D22;&#x9891;&#x7387;&#x65F6;&#x5076;&#x7136;&#x53D1;&#x73B0;&#x822A;&#x7A7A;&#x6C14;&#x8C61;&#x8D44;&#x6599;&#x7684;&#x64AD;&#x62A5;&#xFF0C;&#x6574;&#x7406;&#x4E86;&#x4E00;&#x4E0B;&#x76F8;&#x5173;&#x8D44;&#x6599;&#xFF0C;&#x672C;&#x4EBA;&#x975E;&#x822A;&#x7A7A;&#x76F8;&#x5173;&#x884C;&#x4E1A;&#xFF0C;&#x6587;&#x7AE0;&#x53EF;&#x80FD;&#x5B58;&#x5728;&#x9519;&#x8BEF;&#xFF0C;&#x8FD8;&#x8BF7;&#x6307;&#x6B63;&#x3002;</p>
<h2 id="volmet">VOLMET&#x4ECB;&#x7ECD;</h2>
<p>VOLMET &#x662F;&#x5728;HF&#x4E0A;&#x7528;&#x8BDD;&#x97F3;&#x6765;&#x64AD;&#x62A5;&#x673A;&#x573A;&#x6C14;&#x8C61;&#x9884;&#x62A5;&#xFF0C;&#x6BCF;&#x6B21;&#x64AD;&#x62A5;&#x4EC5;5&#x5206;&#x949F;&#xFF0C;&#x6BCF;&#x5C0F;&#x65F6;&#x6309;&#x987A;&#x5E8F;&#x64AD;&#x62A5;&#x3002;</p>
<h2 id>&#x63A5;&#x6536;&#x4FE1;&#x53F7;</h2>
<p>&#x5728;&#x56FD;&#x9645;&#x6C11;&#x822A;&#x7EC4;&#x7EC7;&#x6211;&#x4EEC;&#x67E5;&#x770B;&#x5230;&#x4E00;&#x7BC7;2020&#x5E74;&#x7684;&#x4F1A;&#x8BAE;&#x8BB0;&#x5F55;<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>&#xFF0C;&#x91CC;&#x9762;&#x5305;&#x542B;&#x4E86;&#x9700;&#x8981;&#x62A5;&#x544A;&#x5929;&#x6C14;&#x4FE1;&#x606F;&#x7684;&#x673A;&#x573A;&#x3001;&#x9891;&#x7387;&#x3001;&#x65F6;&#x95F4;&#x7B49;&#x4FE1;&#x606F;&#x3002;</p>
<p>&#x4EE5;&#x4E0B;&#x8868;&#x683C;&#xFF0C;&#x5C0F;&#x5199;&#x5B57;&#x6BCD;&#x8868;&#x793A;&#x9700;&#x8981;&#x5FC5;&#x987B;&#x62A5;&#x544A;&#x7684;&#xFF0C;&#x5927;&#x5199;&#x5B57;&#x6BCD;&#x8868;&#x793A;&#x9700;&#x8981;&#x9884;&#x62A5;&#x3002;</p>
<p>&#x4F8B;&#x5982;&#x8868;1&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x5728;&#x6BCF;&#x5C0F;&#x65F6;&#x7684;15&#x5206;~20&#x5206;&#x548C;45&#x5206;~50&#x5206;&#xFF0C;&#x9999;&#x6E2F;&#x673A;&#x573A;&#x4F1A;&#x53D1;&#x5C04;&#x4FE1;&#x53F7;&#xFF0C;&#x64AD;&#x62A5;&#x5217;&#x8868;&#x5185;&#x673A;&#x573A;&#x7684;&#x5929;&#x6C14;&#x4FE1;&#x606F;&#x3002;</p>
<blockquote>
<p>&#x4EE5;&#x4E0B;&#x8868;&#x683C;&#x7EF4;&#x62A4;&#x4E8E;2021-10-02&#xFF0C;&#x4EC5;&#x4F9B;&#x53C2;&#x8003;&#x3002;</p>
</blockquote>
<style type="text/css" rel="stylesheet">
table.req-feq tr th{
    text-align:center;
    }
</style>
<table class="req-feq">
    <caption>&#x592A;&#x5E73;&#x6D0B;&#x5730;&#x533A;</caption>
    <caption>&#x9891;&#x7387; 2863, 6679, 8828, 13282 kHz </caption>
    <tr>
        <th>Tokyo</th><th>Hong Kong </th><th colspan="2" align="center">Auckland</th>
    </tr>
    <tr>
        <th>10-15<br>40-45</th>
        <th>15-20<br>45-50</th>
        <th>20-25</th>
        <th>50-55</th>
    </tr>
    <tr>
        <td>
            Tokyo (Narita)<br>Tokyo (Haneda)<br>Sapporo<br>Nagoya (Chubu Centrair)<br>Osaka (Kansai)<br>Fukuoka<br>Incheon<br><br><br>TOKYO (NARITA)<br>OSAKA (KANSAI)
        </td>
        <td>
            Hong Kong<br>Naha<br>Taibei<br>Gaoxiong<br>Manila<br>Mactan<br>Guangzhou<br><br><br>HONG KONG
        </td>
        <td>
            Auckland<br>Christchurch<br>Wellington<br>Nadi<br>Faleolo *<br>Noumea<br>Rarotonga *<br>Tahiti<br><br>NADI<br>NOUMEA
        </td>
        <td>
            Auckland<br>Christchurch<br>Wellington<br>Nadi<br>Faleolo *<br>Noumea<br>Pago Pago *<br>Tahiti<br><br>AUCKLAND<br>CHRISTCHURCH
        </td>
    </tr>
</table>
<table class="req-feq">
    <caption>&#x592A;&#x5E73;&#x6D0B;&#x5730;&#x533A;</caption>
    <caption>&#x9891;&#x7387; 2863, 6679, 8828, 13282KHz </caption>
    <tr>
        <th colspan="3" align="center">Honolulu</th>
    </tr>
    <tr>
        <th>10-15<br>40-45</th>
        <th>15-20<br>45-50</th>
        <th>25-30<br>50-55</th>
    </tr>
    <tr>
        <td>
            Honolulu<br>Hilo<br>Kahului<br>Agana<br><br><br><br><br>SIGMET<br><br>HONOLULU<br>HILO<br>AGANA
        </td>
        <td>
            San Francisco<br>Los Angeles<br>Seattle<br>Portland<br>Sacramento<br>Ontario<br>Las Vegas<br><br>SIGMET<br><br>SAN FRANCISCO<br>SEATTLE<br>LOS ANGELES 
        </td>
        <td>
            Anchorage<br>Fairbanks<br>King Salmon<br>Elmendorf<br>Cold Bay<br>Vancouver<br><br><br>SIGMET<br><br>ANCHORAGE<br>FAIRBANKS<br>VANCOUVER<br>COLD BAY 
        </td>
    </tr>
</table>
<table class="req-feq">
    <caption>&#x4E9A;&#x6D32;&#x5730;&#x533A;</caption>
    <caption>&#x9891;&#x7387; 2965, 6676, 11387 kHz</caption>
    <tr>
        <th>Brisbane</th>
        <th>Kolkata</th>
        <th>Bangkok</th>
        <th>Karachi</th>
        <th>Singapore</th>
        <th>Mumbai</th>
    </tr>
    <tr>
        <th>00-05<br>30-35</th>
        <th>05-10<br>35-40</th>
        <th>10-15<br>40-45</th>
        <th>15-20<br>45-50</th>
        <th>20-25<br>50-55</th>
        <th>25-30<br>55-60</th>
    </tr>
    <tr>
        <td>
           Sydney<br>Brisbane<br>Cairns<br>Melbourne<br>Townsville<br>Adelaide<br>Darwin<br>Perth
        </td>
        <td>
            Kolkata<br>Delhi<br>Dhaka<br>Yangon<br>Kathmandu<br><br><br><br><br>KOLKATA<br>DELHI<br>HO-CHI-MINH 
        </td>
        <td>
            Bangkok<br>Yangon<br>Ha Noi<br>Ho-Chi-Minh<br>Phnom-Penh<br>Utapao<br>Vientiane<br><br><br>BANGKOK<br>YANGON
        </td>
        <td>
            Karachi<br>Islamabad<br>Lahore<br>Delhi<br>Mumbai<br><br><br><br><br>KARACHI<br>LAHORE<br>MUMBAI<br>DELHI<br>SINGAPORE
        </td>
        <td>
            Singapore<br>Sebang<br>Jakarta<br>Kuching<br>Brunei<br>Kota Kinabalu<br>Denpasar<br>Penang<br><br>20-25<br>SINGAPORE<br>KUALA LUMPUR<br>50-55<br>SINGAPORE<br>JAKARTA 
        </td>
        <td>
            Mumbai<br>Ahmadabad<br>Chennai<br>Colombo<br>Karachi<br>Male<br><br><br><br>MUMBAI<br>COLOMBO<br>MALE
        </td>
    </tr>
</table>
<table class="req-feq">
    <caption>&#x4E9A;&#x6D32;&#x5730;&#x533A;</caption>
    <caption>&#x9891;&#x7387; 3458, 5673, 8849, 13285 kHz</caption>
    <tr>
        <th colspan="3">Guangzhou</th>
        <th colspan="3">Beijing</th>
    </tr>
    <tr>
        <th>00-05<br>30-35</th>
        <th>05-10<br>35-40</th>
        <th>10-15<br>40-45</th>
        <th>15-20<br>45-50</th>
        <th>20-25<br>50-55</th>
        <th>25-30<br>55-60</th>
    </tr>
    <tr>
        <td>
           Xianmen
        </td>
        <td>
            Guangzhou<br>Nanning<br><br><br><br><br><br><br>GUANGZHOU 
        </td>
        <td>
            Changsha<br>Chengdu<br>Kunming<br>Wuhan<br><br><br><br><br>CHENGDU
        </td>
        <td>
            Beijing<br>Harbin<br>Dalian<br>Shenyang<br>Hohhot<br>Taiyuan<br>Tianjin<br><br>BEIJING
        </td>
        <td>
            Hangzhou<br>Shanghai<br><br><br><br><br><br><br>SHANGHAI
        </td>
        <td>
            Lanzhou<br>Xian<br>Urumqi<br><br><br><br><br><br>XIAN
        </td>
    </tr>
</table>
<table class="req-feq">
    <caption>&#x6B27;&#x6D32;&#x5730;&#x533A; / &#x4E9A;&#x6D32;&#x5730;&#x533A;</caption>
    <caption>&#x9891;&#x7387; 3461, 4663, 5676, 10090, 13279 kHz</caption>
    <tr>
        <th>Tashkent</th>
        <th>Novosibirsk</th>
        <th>Khabarovsk</th>
        <th>Moskva</th>
    </tr>
    <tr>
        <th>05-10</th>
        <th>10-15</th>
        <th>15-20</th>
        <th>25-30</th>
    </tr>
    <tr>
        <td>
            TASHKENT<br>ALMA-ATA<br><br>Tashkent<br>Alma-Ata<br>Dushanbe<br>Samarkand<br>Aktyubinsk 
        </td>
        <td>
            NOVOSIBIRSK<br>KHAVAROVSK<br><br>Novosibirsk<br>Khabarovsk<br>Irkutsk 
        </td>
        <td>
            KHAVAROVSK<br>IRKUTSK<br><br>Khabarovsk<br>Novosibirsk<br>Irkutsk<br>Chita<br>Vladivostok
        </td>
        <td>
             MOSKVA/SHEREME<br>KIEV<br>RYAZAN<br>ULAANBAATOR
        </td>
    </tr>
    <tr>
        <th>35-40</th>
        <th>40-45</th>
        <th>45-50</th>
        <th>55-60</th>
    </tr>
    <tr>
        <td>
            DUSHANBE<br>SAMARKAND<br>AKTYUBINSK<br><br>Tashkent<br>Alma-Ata<br>Dushanbe<br>Samarkand<br>Aktyubinsk 
        </td>
        <td>
            IRKUTSK<br><br><br><br>Novosibirsk<br>Khabarovsk<br>Irkutsk 
        </td>
        <td>
            CHITA<br>NOVOSIBIRSK<br><br><br>Khabarovsk<br>Novosibirsk<br>Irkutsk<br>Chita
        </td>
        <td>
            MOSKVA/VNUKOVO<br>LENINGRAD<br><br><br>Moskva/Sheremetyevo<br>Moskva/Vnukovo<br>Kyiv<br>Leningrad<br>Ryazan 
        </td>
    </tr>
</table>
<h2 id>&#x89E3;&#x8BFB;&#x4FE1;&#x606F;</h2>
<p>&#x7531;&#x4E8E;&#x6CA1;&#x529E;&#x6CD5;&#x4E0A;&#x4F20;&#x8BED;&#x97F3;&#xFF0C;&#x6211;&#x8FD9;&#x9762;&#x5C06;&#x63A5;&#x6536;&#x7684;&#x6D88;&#x606F;&#x7528;&#x6587;&#x5B57;&#x6765;&#x4F53;&#x73B0;&#xFF0C;&#x4EE5;&#x4E0B;&#x662F;2021-10-02 15:30(GMT+8) &#x9999;&#x6E2F;&#x673A;&#x573A;&#x7684;&#x5929;&#x6C14;&#x60C5;&#x51B5;&#x3002;</p>
<pre><code>Hong Kong 0730 wind 160 degree 11 north visibility 10 kilometer or more cloud few 2800 ft temperature 32 dewpoint 22 QNH 1009  
</code></pre>
<p>0730&#x4E3A;UTC&#x65F6;&#x95F4;&#xFF0C;&#x5176;&#x4ED6;&#x57FA;&#x672C;&#x4E3A;&#x5B57;&#x9762;&#x610F;&#x601D;</p>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p><a href="https://www.icao.int/APAC/Meetings/2010/atmaissar_sg20/wp25.pdf?ref=xiaohai.co">The Twelfth Meeting of the APANPIRG</a> <a href="#fnref1" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
</ol>
</section>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[编译OpenWrt固件]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h1 id>&#x7F16;&#x8BD1;&#x73AF;&#x5883;</h1>
<p>macOS 11.3<br>
Docker</p>
<h1 id>&#x524D;&#x8A00;</h1>
<p>&#x8FD9;&#x53C8;&#x662F;&#x4E00;&#x7BC7;&#x8FDF;&#x5230;&#x7684;&#x6587;&#x7AE0;&#xFF0C;&#x5199;&#x4E8E;2&#x5E74;&#x524D;&#xFF0C;&#x8FDF;&#x8FDF;&#x672A;&#x53D1;&#x5E03;&#xFF0C;&#x6700;&#x8FD1;&#x91CD;&#x65B0;&#x6574;&#x7406;&#x4E86;&#x4E00;&#x4E0B;&#xFF0C;&#x7531;&#x4E8E;&#x4E2A;&#x4EBA;&#x4E0D;&#x559C;&#x6B22;</p>]]></description><link>https://xiaohai.co/build-openwrt-firmware/</link><guid isPermaLink="false">611cb925b5623f0001cbc82e</guid><dc:creator><![CDATA[xiaohai]]></dc:creator><pubDate>Wed, 18 Aug 2021 07:58:30 GMT</pubDate><media:content url="https://xiaohai.co/content/images/2021/08/openwrt--2-.png" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h1 id>&#x7F16;&#x8BD1;&#x73AF;&#x5883;</h1>
<img src="https://xiaohai.co/content/images/2021/08/openwrt--2-.png" alt="&#x7F16;&#x8BD1;OpenWrt&#x56FA;&#x4EF6;"><p>macOS 11.3<br>
Docker</p>
<h1 id>&#x524D;&#x8A00;</h1>
<p>&#x8FD9;&#x53C8;&#x662F;&#x4E00;&#x7BC7;&#x8FDF;&#x5230;&#x7684;&#x6587;&#x7AE0;&#xFF0C;&#x5199;&#x4E8E;2&#x5E74;&#x524D;&#xFF0C;&#x8FDF;&#x8FDF;&#x672A;&#x53D1;&#x5E03;&#xFF0C;&#x6700;&#x8FD1;&#x91CD;&#x65B0;&#x6574;&#x7406;&#x4E86;&#x4E00;&#x4E0B;&#xFF0C;&#x7531;&#x4E8E;&#x4E2A;&#x4EBA;&#x4E0D;&#x559C;&#x6B22;&#x5404;&#x79CD;&#x63D2;&#x4EF6;&#x7684;&#x5806;&#x79EF;&#x56FA;&#x4EF6;&#xFF0C;&#x6240;&#x4EE5;&#x8BB0;&#x5F55;&#x4E00;&#x4E0B;&#x7F16;&#x8BD1;&#x8FC7;&#x7A0B;&#x7B14;&#x8BB0;&#x3002;</p>
<h1 id="openwrt">&#x5173;&#x4E8E;OpenWrt</h1>
<p>&#x63D0;&#x5230;&#x8DEF;&#x7531;&#x5668;&#x90FD;&#x7ED5;&#x4E0D;&#x8FC7;Linksys WRT54G&#x7684;&#x7CFB;&#x7EDF;&#xFF0C;&#x6700;&#x5F00;&#x59CB;&#x662F;&#x56E0;&#x4E3A;&#x601D;&#x79D1;&#x6536;&#x8D2D;&#x4E86;Linksys&#xFF0C;&#x800C;Linksys&#x7684;&#x8DEF;&#x7531;&#x91C7;&#x7528;&#x4E86;Linux&#x5185;&#x6838;&#xFF0C;&#x5F53;&#x65F6;Linux&#x5F00;&#x53D1;&#x7EC4;&#x542C;&#x8BF4;&#x91CC;&#x9762;&#x91C7;&#x7528;&#x4E86;GPL&#x7684;Linux&#x4EE3;&#x7801;&#xFF0C;&#x8981;&#x6C42;&#x601D;&#x79D1;&#x5F00;&#x6E90;&#x76F8;&#x5173;&#x4EE3;&#x7801;&#x3002;&#x4ECE;&#x6B64;&#x8DEF;&#x7531;&#x7CFB;&#x7EDF;&#x4EE5;&#x6B64;&#x4E3A;&#x84DD;&#x672C;&#x53D1;&#x5C55;&#x81F3;&#x4ECA;&#x3002;</p>
<p>2004&#x5E74;OpenWrt&#x5F00;&#x59CB;&#x542F;&#x52A8;&#xFF0C;&#x540C;&#x4E00;&#x65F6;&#x671F;&#x51FA;&#x73B0;&#x4E86;DD-WRT&#xFF0C;Tomato&#x7B49;&#x4F18;&#x79C0;&#x56FA;&#x4EF6;&#xFF0C;2010&#x5E74;&#x540E;Padavan&#xFF0C;Merlin&#xFF0C;Pandora&#x7B49;&#x56FA;&#x4EF6;&#x5F00;&#x59CB;&#x6D41;&#x884C;&#x3002;</p>
<p>2016&#x5E74;&#x7531;&#x4E8E;&#x6838;&#x5FC3;&#x5F00;&#x53D1;&#x8005;&#x5BF9;&#x4E8E;OpenWrt&#x7684;&#x4E0D;&#x6EE1;&#xFF0C;&#x5206;&#x652F;&#x51FA;LEDE&#xFF0C;&#x5E76;&#x83B7;&#x5F97;&#x591A;&#x6570;OpenWrt&#x7684;&#x5F00;&#x53D1;&#x8005;&#x652F;&#x6301;&#xFF0C;2018&#x5E74;&#x53C8;&#x5408;&#x5E76;&#x56DE;OpenWrt&#xFF0C;&#x5728;&#x539F;LEDE&#x56E2;&#x961F;&#x4E0B;&#x4E3B;&#x5BFC;&#xFF0C;&#x540D;&#x5B57;&#x4ECD;&#x53EB;OpenWrt&#x3002;</p>
<p>&#x56FD;&#x5185;&#x5C0F;&#x7C73;&#xFF0C;&#x6781;&#x8DEF;&#x7531;&#x7B49;&#x90FD;&#x662F;&#x57FA;&#x4E8E;OpenWrt&#x518D;&#x6B21;&#x5F00;&#x53D1;&#xFF0C;&#x4E5F;&#x6709;&#x5F00;&#x6E90;&#x5185;&#x6838;&#x90E8;&#x5206;&#x4EE3;&#x7801;&#xFF0C;&#x81F3;&#x4E8E;Luci&#x90E8;&#x5206;&#x662F;&#x57FA;&#x4E8E;Apache&#x534F;&#x8BAE;&#x6211;&#x4EEC;&#x53EF;&#x80FD;&#x770B;&#x4E0D;&#x5230;&#x5F00;&#x6E90;&#x4E86;&#x3002;&#x6069;&#x5C71;Lean&#xFF0C;KS&#x7B49;&#x4E5F;&#x53D1;&#x5E03;&#x4E86;&#x57FA;&#x4E8E;OpenWrt&#x7684;&#x5B9A;&#x5236;&#x56FA;&#x4EF6;&#xFF0C;&#x96C6;&#x6210;&#x4E86;&#x4E0D;&#x5C11;&#x4F18;&#x79C0;&#x63D2;&#x4EF6;&#x3002;KS&#x672C;&#x6587;&#x4E0D;&#x63A8;&#x8350;&#x3002;</p>
<h1 id>&#x7F16;&#x8BD1;&#x56FA;&#x4EF6;</h1>
<h3 id="docker">&#x521B;&#x5EFA;Docker&#x5BB9;&#x5668;</h3>
<pre><code># &#x62C9;&#x53D6;Ubuntu&#x7684;&#x955C;&#x50CF;
docker pull ubuntu
# &#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x57FA;&#x4E8E;Ubuntu&#x955C;&#x50CF;&#xFF0C;&#x540D;&#x4E3A;openwrt&#x7684;&#x5BB9;&#x5668;
docker run -itd --name openwrt ubuntu
# &#x767B;&#x9646;&#x5230;&#x5BB9;&#x5668;&#x73AF;&#x5883;
docker exec -it openwrt bash
</code></pre>
<h3 id>&#x914D;&#x7F6E;&#x73AF;&#x5883;</h3>
<pre><code># &#x66F4;&#x65B0;apt
apt update
# &#x5B89;&#x88C5;&#x5FC5;&#x8981;&#x73AF;&#x5883;
apt install git gcc g++ unzip make libncurses-dev mkisofs gawk wget python2 python3 rsync file 
</code></pre>
<h3 id="openwrt">&#x914D;&#x7F6E;OpenWrt</h3>
<pre><code># &#x4E0B;&#x8F7D;OpenWrt&#x6E90;&#x7801;
git clone -b openwrt-19.07 https://github.com/openwrt/openwrt.git
# &#x4E0B;&#x8F7D;OpenClash&#x6E90;&#x7801;
git clone https://github.com/vernesong/OpenClash.git

# &#x590D;&#x5236;OpenClash&#x5230;OpenWrt
cp -R OpenClash/luci-app-openclash openwrt/package
# &#x66F4;&#x65B0;&#x672C;&#x5730;&#x6E90;
./scripts/feeds update -a
# &#x5B89;&#x88C5;&#x5305;
./scripts/feeds install -a
</code></pre>
<p>&#x8F93;&#x5165;make menuconfig&#x8FDB;&#x5165;&#x4EA4;&#x4E92;&#x5F0F;&#x914D;&#x7F6E;&#x754C;&#x9762;</p>
<p>&#x4FEE;&#x6539;&#x914D;&#x7F6E;&#xFF0C;y&#x952E;&#x9009;&#x62E9;&#xFF0C;n&#x952E;&#x6392;&#x9664;&#xFF0C;X86&#x4E3A;&#x4F8B;</p>
<pre><code>Target System &gt; x86
Subtarget &gt; x86_64
# &#x6DFB;&#x52A0;web&#x754C;&#x9762;
LuCI &gt; Collections &gt; Luci
# &#x6DFB;&#x52A0;&#x7B80;&#x4F53;&#x4E2D;&#x6587;
LuCI &gt; Modules &gt; Translations &gt; Chinese Simplified  
# &#x6DFB;&#x52A0;&#x4E3B;&#x9898;
LuCI &gt; Themes 
# &#x6DFB;&#x52A0;OpenClash
LuCI &gt; Applications &gt; luci-app-openclash 
# &#x6DFB;&#x52A0;wget
Nerwork &gt; File Transfer &gt; wget 
# &#x6DFB;&#x52A0;kmod-tun&#xFF0C;TUN&#x6A21;&#x5F0F;&#x5FC5;&#x987B;
Kernel modules &gt; Network Support &gt; kmod-tun 

# &#x8BBE;&#x7F6E;&#x8F6F;&#x4EF6;&#x5305;&#x53EF;&#x7528;&#x7A7A;&#x95F4;&#xFF0C;&#x9ED8;&#x8BA4;&#x5B89;&#x88C5;&#x4F1A;&#x5360;&#x7528;104M&#xFF0C;&#x5EFA;&#x8BAE;&#x4FEE;&#x6539;&#x6269;&#x5927;
Target Images &gt; Root filesystem partition size

# &#x6392;&#x9664;dnsmasq&#xFF0C;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x5B89;&#x88C5;dnsmasq-full&#xFF0C;&#x4E0D;&#x6392;&#x9664;&#x4F1A;&#x51B2;&#x7A81;
Base system &gt; dnsmasq 

# curl&#x4F7F;&#x7528;OpenSSL
Libraries &gt; libcurl &gt; Selected SSL library &gt; OpenSSL
</code></pre>
<p>&#x5F00;&#x59CB;&#x7F16;&#x8BD1;</p>
<pre><code>make -j4 download V=s
make -j4 V=s
# -j&#x4E3A;&#x591A;&#x7EBF;&#x7A0B;&#x7F16;&#x8BD1;
</code></pre>
<p>&#x7F16;&#x8BD1;&#x5B8C;&#x6210;&#x540E;&#x7684;&#x56FA;&#x4EF6;&#x5728;openwrt/bin/targets/x86/64/&#x76EE;&#x5F55;&#x4E0B;</p>
<h1 id>&#x53C2;&#x8003;</h1>
<p>(1) <a href="https://en.wikipedia.org/wiki/OpenWrt?ref=xiaohai.co">Wikipedia OpenWrt</a><br>
(2) <a href="https://github.com/vernesong/OpenClash?ref=xiaohai.co">GitHub OpenClash</a><br>
(3) <a href="https://github.com/openwrt/openwrt?ref=xiaohai.co">GitHub OpenWrt</a><br>
(4) <a href="https://openwrt.org/?ref=xiaohai.co">OpenWrt&#x5B98;&#x7F51;</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[OPPO UDP-203控制协议]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h1 id>&#x524D;&#x8A00;</h1>
<p>&#x7531;&#x4E8E;NAS&#x4E0B;&#x8F7D;&#x5F71;&#x7247;&#x8F83;&#x591A;&#xFF0C;&#x5BFC;&#x81F4;&#x4E86;203&#x627E;&#x5F71;&#x7247;&#x9700;&#x8981;&#x7FFB;&#x9875;&#x5F88;&#x591A;&#x6B21;&#xFF0C;&#x597D;&#x5728;203&#x7684;&#x6392;&#x5E8F;&#x662F;&#x6309;&#x6587;&#x4EF6;&#x540D;&#xFF08;&#x5410;&#x69FD;&#x4E0B;&#x5148;&#x950B;&#x5B8C;&#x5168;&#x662F;&#x4E71;&#x5E8F;&#xFF09;</p>]]></description><link>https://xiaohai.co/oppo-udp-203-control-protocol/</link><guid isPermaLink="false">6102521ab5623f0001cbc665</guid><dc:creator><![CDATA[xiaohai]]></dc:creator><pubDate>Thu, 29 Jul 2021 09:55:15 GMT</pubDate><media:content url="https://xiaohai.co/content/images/2021/07/oppo--1-.png" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h1 id>&#x524D;&#x8A00;</h1>
<img src="https://xiaohai.co/content/images/2021/07/oppo--1-.png" alt="OPPO UDP-203&#x63A7;&#x5236;&#x534F;&#x8BAE;"><p>&#x7531;&#x4E8E;NAS&#x4E0B;&#x8F7D;&#x5F71;&#x7247;&#x8F83;&#x591A;&#xFF0C;&#x5BFC;&#x81F4;&#x4E86;203&#x627E;&#x5F71;&#x7247;&#x9700;&#x8981;&#x7FFB;&#x9875;&#x5F88;&#x591A;&#x6B21;&#xFF0C;&#x597D;&#x5728;203&#x7684;&#x6392;&#x5E8F;&#x662F;&#x6309;&#x6587;&#x4EF6;&#x540D;&#xFF08;&#x5410;&#x69FD;&#x4E0B;&#x5148;&#x950B;&#x5B8C;&#x5168;&#x662F;&#x4E71;&#x5E8F;&#xFF09;&#xFF0C;&#x8FD8;&#x662F;&#x53EF;&#x4EE5;&#x76F8;&#x5BF9;&#x8F7B;&#x677E;&#x7FFB;&#x5230;&#x3002;</p>
<p>&#x4F46;&#x662F;&#x5F88;&#x591A;&#x79CD;&#x5B50;&#x547D;&#x540D;&#x90FD;&#x662F;&#x4E71;&#x6765;&#x7684;&#xFF0C;&#x770B;&#x6587;&#x4EF6;&#x540D;&#x5B8C;&#x5168;&#x65E0;&#x6CD5;&#x7406;&#x89E3;&#x662F;&#x4EC0;&#x4E48;&#x5F71;&#x7247;&#xFF08;&#x6709;&#x505A;&#x79CD;&#x9700;&#x6C42;&#xFF0C;&#x6240;&#x4EE5;&#x65E0;&#x6CD5;&#x4FEE;&#x6539;&#x6587;&#x4EF6;&#x540D;&#xFF09;&#xFF0C;&#x6240;&#x4EE5;&#x81EA;&#x884C;&#x505A;&#x4E86;&#x641C;&#x522E;&#x5339;&#x914D;&#x6570;&#x636E;&#x540E;&#x7684;&#x6D77;&#x62A5;&#x5899;&#x3002;&#x5728;&#x6BCF;&#x6B21;&#x770B;&#x5F71;&#x7247;&#x65F6;&#x9700;&#x8981;&#x5148;&#x641C;&#x7D22;&#x5230;&#x5BF9;&#x5E94;&#x7684;&#x6587;&#x4EF6;&#x540D;&#xFF0C;&#x518D;&#x5230;&#x64AD;&#x653E;&#x5668;&#x53BB;&#x5BFB;&#x627E;&#xFF0C;&#x8FD8;&#x662F;&#x6BD4;&#x8F83;&#x9EBB;&#x70E6;&#x3002;</p>
<p>&#x5F53;&#x53D1;&#x73B0;&#x673A;&#x5668;&#x6709;RS232&#x63A5;&#x53E3;&#x65F6;&#xFF0C;&#x77AC;&#x95F4;&#x627E;&#x5230;&#x4E86;&#x5E0C;&#x671B;&#xFF0C;&#x5B98;&#x65B9;&#x5F88;&#x826F;&#x5FC3;&#x7684;&#x63D0;&#x4F9B;&#x4E86;&#x5B8C;&#x6574;&#x7684;&#x64CD;&#x4F5C;&#x6587;&#x6863;&#xFF0C;&#x5E76;&#x4E14;&#x8FD8;&#x63D0;&#x4F9B;&#x4E86;TCP&#x534F;&#x8BAE;<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>&#xFF0C;&#x64CD;&#x4F5C;&#x8D77;&#x6765;&#x66F4;&#x52A0;&#x4FBF;&#x6377;&#x3002;</p>
<p>&#x672C;&#x6587;&#x6700;&#x7EC8;&#x5B9E;&#x73B0;&#x6548;&#x679C;&#x4E3A;&#xFF0C;&#x5728;&#x70B9;&#x51FB;&#x6D77;&#x62A5;&#x5899;&#x7684;&#x540C;&#x65F6; &#x64AD;&#x653E;&#x5668;&#x81EA;&#x52A8;&#x64AD;&#x653E;&#x5F71;&#x7247;&#x3002;</p>
<h1 id="oppors232ip">OPPO RS-232 &amp; IP &#x63A7;&#x5236;&#x534F;&#x8BAE;</h1>
<p>232&#x90E8;&#x5206;&#xFF0C;&#x672C;&#x6587;&#x7565;&#x8FC7;&#xFF0C;&#x8BE6;&#x89C1;&#x9875;&#x5C3E;&#x6587;&#x6863;</p>
<p>&#x8FD9;&#x90E8;&#x5206;&#x534F;&#x8BAE;&#x63D0;&#x4F9B;&#x4E86;&#x5B8C;&#x6574;&#x7684;&#x64CD;&#x63A7;&#x65B9;&#x6CD5;&#xFF0C;&#x4F46;&#x65E0;&#x6CD5;&#x6EE1;&#x8DB3;&#x6211;&#x7684;&#x9700;&#x6C42;&#xFF0C;&#x6240;&#x4EE5;&#x4F7F;&#x7528;&#x4E86;APP&#x7684;&#x534F;&#x8BAE;&#xFF0C;&#x7EC6;&#x8282;&#x53EF;&#x770B;&#x5230;&#x4E0B;&#x4E00;&#x7AE0;&#x8282;&#x3002;</p>
<h3 id>&#x64AD;&#x653E;&#x5668;&#x5E7F;&#x64AD;</h3>
<p>&#x64AD;&#x653E;&#x5668;&#x8054;&#x7F51;&#x540E;&#xFF0C;&#x4F1A;&#x901A;&#x8FC7;UDP&#x6BCF;&#x5341;&#x79D2;&#x7684;&#x95F4;&#x9694;&#x5411;&#x5C40;&#x57DF;&#x7F51;&#x5185;7624&#x7AEF;&#x53E3;&#x5E7F;&#x64AD;&#x81EA;&#x5DF1;&#x7684;&#x8FDE;&#x63A5;&#x4FE1;&#x606F;&#xFF08;&#x5176;&#x4E2D;&#x6362;&#x884C;&#x4E3A;\n&#xFF09;</p>
<pre><code>Notify:OPPO Player Start
Server IP:192.168.1.2
Server Port:23
Server Name:OPPO UDP-203
</code></pre>
<h3 id>&#x4E0E;&#x64AD;&#x653E;&#x5668;&#x8FDE;&#x63A5;</h3>
<p>&#x6211;&#x4EEC;&#x6536;&#x5230;&#x5E7F;&#x64AD;&#x4E4B;&#x540E;&#xFF0C;&#x53EF;&#x4EE5;&#x6839;&#x636E;&#x64AD;&#x653E;&#x5668;&#x53D1;&#x9001;&#x7684;IP&#xFF0C;port&#x5E76;&#x4F7F;&#x7528;TCP&#x8FDE;&#x63A5;&#xFF0C;&#x5982;&#x679C;&#x662F;&#x56FA;&#x5B9A;IP&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x8FDE;&#x63A5; &#xFF0C;&#x5FFD;&#x7565;&#x5E7F;&#x64AD;&#x3002;</p>
<blockquote>
<p>&#x6CE8;&#xFF1A;&#x6B64;&#x5904;23&#x7AEF;&#x53E3;&#x4E3A;&#x56FA;&#x5B9A;&#xFF0C;&#x4E14;&#x975E;Telnet</p>
</blockquote>
<h3 id>&#x53D1;&#x9001;/&#x63A5;&#x6536;&#x6307;&#x4EE4;</h3>
<p>&#x6D88;&#x606F;&#x4F53;&#x5DF2;#&#x5F00;&#x5934;&#xFF0C;\n&#x7ED3;&#x675F;</p>
<p>&#x793A;&#x4F8B;</p>
<pre><code>ASCII&#xFF1A;#EJT\n
HEX&#xFF1A;23 45 4a 54 0a
</code></pre>
<p>&#x53D1;&#x9001;&#x540E;&#x64AD;&#x653E;&#x5668;&#x4F1A;&#x8FD4;&#x56DE;</p>
<pre><code>ASCII&#xFF1A;OK OPEN\n
HEX&#xFF1A;4f 4b 20 4f 50 45 4e 0a 
</code></pre>
<h3 id>&#x8BE6;&#x7EC6;&#x64CD;&#x63A7;&#x6307;&#x4EE4;</h3>
<p>&#x6B64;&#x7AE0;&#x8282;&#x7565;&#x957F;&#xFF0C;&#x7531;&#x4E8E;&#x539F;&#x7248;&#x4E3A;&#x82F1;&#x6587;&#xFF0C;&#x5B58;&#x5728;&#x4E2A;&#x4EBA;&#x7FFB;&#x8BD1;&#x4E0D;&#x51C6;&#x786E;&#xFF0C;&#x4EC5;&#x4F9B;&#x53C2;&#x8003;&#xFF0C;&#x53EF;&#x4EE5;&#x5728;&#x9875;&#x5C3E;&#x67E5;&#x770B;&#x5B98;&#x65B9;&#x6587;&#x6863;</p>
<h5 id>&#x6309;&#x952E;&#x7C7B;</h5>
<table>
<thead>
<tr>
<th>&#x6307;&#x4EE4;</th>
<th>&#x9065;&#x63A7;&#x6309;&#x952E;</th>
<th>&#x529F;&#x80FD;</th>
<th>&#x54CD;&#x5E94;&#x793A;&#x4F8B;</th>
</tr>
</thead>
<tbody>
<tr>
<td>POW</td>
<td>POWER</td>
<td>&#x5207;&#x6362;&#x7535;&#x6E90;&#x5F85;&#x673A;/&#x5F00;&#x542F;</td>
<td>OK ON<br>OK OFF</td>
</tr>
<tr>
<td>EJT</td>
<td>OPEN</td>
<td>&#x5F39;&#x51FA;/&#x6536;&#x8D77;&#x789F;&#x4ED3;</td>
<td>OK OPEN<br>OK CLOSE</td>
</tr>
<tr>
<td>PON</td>
<td>ON</td>
<td>Discrete on</td>
<td>OK ON</td>
</tr>
<tr>
<td>POF</td>
<td>OFF</td>
<td>Discrete off</td>
<td>OK OFF</td>
</tr>
<tr>
<td>DIM</td>
<td>DIMMER</td>
<td>&#x524D;&#x9762;&#x677F;&#x663E;&#x793A;&#x5C4F;&#x53D8;&#x6697;</td>
<td>OK ON <br> OK DIM <br> OK OFF</td>
</tr>
<tr>
<td>PUR</td>
<td>PURE</td>
<td>&#x7EAF;&#x97F3;&#x9891;&#x6A21;&#x5F0F;&#xFF08;&#x65E0;&#x89C6;&#x9891;</td>
<td>OK ON <br> OK OFF</td>
</tr>
<tr>
<td>VUP</td>
<td>VOL +</td>
<td>&#x8C03;&#x5927;&#x97F3;&#x91CF;</td>
<td>OK n (n&#x662F;&#x97F3;&#x91CF;<br>&#x8303;&#x56F4;&#xFF1A;0 &#x2013; 100)</td>
</tr>
<tr>
<td>VDN</td>
<td>VOL -</td>
<td>&#x8C03;&#x5C0F;&#x97F3;&#x91CF;</td>
<td>OK n (n&#x662F;&#x97F3;&#x91CF;<br>&#x8303;&#x56F4;&#xFF1A;0 &#x2013; 100)</td>
</tr>
<tr>
<td>MUT</td>
<td>MUTE</td>
<td>&#x9759;&#x97F3;</td>
<td>OK MUTE<br>OK UNMUTE</td>
</tr>
<tr>
<td>NU1</td>
<td>1</td>
<td>&#x6570;&#x5B57;&#x6309;&#x952E;1</td>
<td>OK</td>
</tr>
<tr>
<td>NU2</td>
<td>2</td>
<td>&#x6570;&#x5B57;&#x6309;&#x952E;2</td>
<td>OK</td>
</tr>
<tr>
<td>NU3</td>
<td>3</td>
<td>&#x6570;&#x5B57;&#x6309;&#x952E;3</td>
<td>OK</td>
</tr>
<tr>
<td>NU4</td>
<td>4</td>
<td>&#x6570;&#x5B57;&#x6309;&#x952E;4</td>
<td>OK</td>
</tr>
<tr>
<td>NU5</td>
<td>5</td>
<td>&#x6570;&#x5B57;&#x6309;&#x952E;5</td>
<td>OK</td>
</tr>
<tr>
<td>NU6</td>
<td>6</td>
<td>&#x6570;&#x5B57;&#x6309;&#x952E;6</td>
<td>OK</td>
</tr>
<tr>
<td>NU7</td>
<td>7</td>
<td>&#x6570;&#x5B57;&#x6309;&#x952E;7</td>
<td>OK</td>
</tr>
<tr>
<td>NU8</td>
<td>8</td>
<td>&#x6570;&#x5B57;&#x6309;&#x952E;8</td>
<td>OK</td>
</tr>
<tr>
<td>NU9</td>
<td>9</td>
<td>&#x6570;&#x5B57;&#x6309;&#x952E;9</td>
<td>OK</td>
</tr>
<tr>
<td>NU0</td>
<td>0</td>
<td>&#x6570;&#x5B57;&#x6309;&#x952E;0</td>
<td>OK</td>
</tr>
<tr>
<td>CLR</td>
<td>CLEAR</td>
<td>&#x6E05;&#x9664;&#x6570;&#x5B57;&#x8F93;&#x5165;</td>
<td>OK</td>
</tr>
<tr>
<td>GOT</td>
<td>GOTO</td>
<td>Play from a specified location</td>
<td>OK</td>
</tr>
<tr>
<td>HOM</td>
<td>HOME</td>
<td>&#x8FDB;&#x5165;&#x4E3B;&#x83DC;&#x5355;</td>
<td>OK</td>
</tr>
<tr>
<td>PUP</td>
<td>PAGE UP</td>
<td>&#x663E;&#x793A;&#x4E0A;&#x4E00;&#x9875;</td>
<td>OK</td>
</tr>
<tr>
<td>PDN</td>
<td>PAGE DOWN</td>
<td>&#x663E;&#x793A;&#x4E0B;&#x4E00;&#x9875;</td>
<td>OK</td>
</tr>
<tr>
<td>OSD</td>
<td>INFO</td>
<td>&#x663E;&#x793A;/&#x9690;&#x85CF;&#x5C4F;&#x5E55;&#x663E;&#x793A;</td>
<td>OK</td>
</tr>
<tr>
<td>TTL</td>
<td>TOP MENU</td>
<td>&#x663E;&#x793A;BD&#x9876;&#x90E8;&#x83DC;&#x5355;&#x6216;DVD&#x6807;&#x9898;</td>
<td>OK</td>
</tr>
<tr>
<td>MNU</td>
<td>POP-UP MENU</td>
<td>&#x663E;&#x793A;BD&#x5F39;&#x51FA;&#x83DC;&#x5355;</td>
<td>OK</td>
</tr>
<tr>
<td>NUP</td>
<td>Up Arrow</td>
<td>&#x4E0A;&#x952E;</td>
<td>OK</td>
</tr>
<tr>
<td>NLT</td>
<td>Left Arrow</td>
<td>&#x5DE6;&#x952E;</td>
<td>OK</td>
</tr>
<tr>
<td>NRT</td>
<td>Right Arrow</td>
<td>&#x53F3;&#x952E;</td>
<td>OK</td>
</tr>
<tr>
<td>NDN</td>
<td>Down Arrow</td>
<td>&#x4E0B;&#x952E;</td>
<td>OK</td>
</tr>
<tr>
<td>SEL</td>
<td>ENTER</td>
<td>&#x786E;&#x5B9A;</td>
<td>OK</td>
</tr>
<tr>
<td>SET</td>
<td>SETUP</td>
<td>&#x8FDB;&#x5165;&#x64AD;&#x653E;&#x5668;&#x8BBE;&#x7F6E;&#x83DC;&#x5355;</td>
<td>OK</td>
</tr>
<tr>
<td>RET</td>
<td>RETURN</td>
<td>&#x8FD4;&#x56DE;&#x4E0A;&#x7EA7;&#x83DC;&#x5355;&#x6216;&#x6A21;&#x5F0F;</td>
<td>OK</td>
</tr>
<tr>
<td>RED</td>
<td>RED</td>
<td>&#x7EA2;&#x8272;&#x529F;&#x80FD;&#x6309;&#x952E;</td>
<td>OK</td>
</tr>
<tr>
<td>GRN</td>
<td>GREEN</td>
<td>&#x7EFF;&#x8272;&#x529F;&#x80FD;&#x6309;&#x952E;</td>
<td>OK</td>
</tr>
<tr>
<td>BLU</td>
<td>BLUE</td>
<td>&#x84DD;&#x8272;&#x529F;&#x80FD;&#x6309;&#x952E;</td>
<td>OK</td>
</tr>
<tr>
<td>YLW</td>
<td>YELLOW</td>
<td>&#x9EC4;&#x8272;&#x529F;&#x80FD;&#x6309;&#x952E;</td>
<td>OK</td>
</tr>
<tr>
<td>STP</td>
<td>STOP</td>
<td>&#x505C;&#x6B62;</td>
<td>OK</td>
</tr>
<tr>
<td>PLA</td>
<td>PLAY</td>
<td>&#x5F00;&#x59CB;</td>
<td>OK</td>
</tr>
<tr>
<td>PAU</td>
<td>PAUSE</td>
<td>&#x6682;&#x505C;</td>
<td>OK</td>
</tr>
<tr>
<td>PRE</td>
<td>PREV</td>
<td>Skip to previous</td>
<td>OK</td>
</tr>
<tr>
<td>REV</td>
<td>REV</td>
<td>&#x5FEB;&#x9000;</td>
<td>OK 1X</td>
</tr>
<tr>
<td>FWD</td>
<td>FWD</td>
<td>&#x5FEB;&#x8FDB;</td>
<td>OK 1X</td>
</tr>
<tr>
<td>NXT</td>
<td>NEXT</td>
<td>Skip to next</td>
<td>OK</td>
</tr>
<tr>
<td>AUD</td>
<td>AUDIO</td>
<td>&#x58F0;&#x97F3;</td>
<td>OK</td>
</tr>
<tr>
<td>SUB</td>
<td>SUBTITLE</td>
<td>&#x5B57;&#x5E55;</td>
<td>OK</td>
</tr>
<tr>
<td>ANG</td>
<td>ANGLE</td>
<td>&#x6539;&#x53D8;&#x6444;&#x50CF;&#x673A;&#x89D2;&#x5EA6;</td>
<td>OK a/b (a: &#x5F53;&#x524D;&#x89D2;&#x5EA6;<br>b: &#x5168;&#x90E8;&#x89D2;&#x5EA6;)</td>
</tr>
<tr>
<td>ZOM</td>
<td>ZOOM</td>
<td>Zoom in/out and adjust aspect<br>ratio</td>
<td>OK (zoom ratio text)</td>
</tr>
<tr>
<td>SAP</td>
<td>SAP</td>
<td>Turn on/off Secondary Audio<br>Program</td>
<td>OK (&#x97F3;&#x8F68;&#x4FE1;&#x606F;)<br>OK Off</td>
</tr>
<tr>
<td>ATB</td>
<td>AB REPLAY</td>
<td>&#x91CD;&#x590D;&#x64AD;&#x653E;&#x6240;&#x9009;&#x90E8;&#x5206;</td>
<td>OK AOK A-B<br>OK OFF</td>
</tr>
<tr>
<td>RPT</td>
<td>REPEAT</td>
<td>&#x91CD;&#x653E;</td>
<td>OK Repeat Chapter<br>OK Repeat Title<br>OK OFF</td>
</tr>
<tr>
<td>PIP</td>
<td>PIP</td>
<td>&#x663E;&#x793A;/&#x9690;&#x85CF;&#x753B;&#x4E2D;&#x753B;</td>
<td>OK (PIP program info)<br>OK Off</td>
</tr>
<tr>
<td>HDM</td>
<td>RESOLUTION</td>
<td>&#x5207;&#x6362;&#x8F93;&#x51FA;&#x5206;&#x8FA8;&#x7387;</td>
<td>OK</td>
</tr>
<tr>
<td>SUH</td>
<td>SUBTITLE (&#x6309;&#x4F4F;)</td>
<td>&#x6309;&#x4F4F;&#x5B57;&#x5E55;&#x952E;&#xFF0C;&#x8FDB;&#x884C;&#x5B57;&#x5E55;&#x4F4D;&#x79FB;</td>
<td>OK</td>
</tr>
<tr>
<td>OPT</td>
<td>OPTION</td>
<td>&#x663E;&#x793A;/&#x9690;&#x85CF;&#x9009;&#x9879;&#x83DC;&#x5355;</td>
<td>OK</td>
</tr>
<tr>
<td>M3D</td>
<td>3D</td>
<td>&#x663E;&#x793A;/&#x9690;&#x85CF; 2D&#x8F6C;3D&#x8C03;&#x6574;&#x6216;3D&#x8C03;&#x6574;&#x83DC;&#x5355;</td>
<td>OK</td>
</tr>
<tr>
<td>SEH</td>
<td>PIC</td>
<td>&#x663E;&#x793A;&#x56FE;&#x7247;&#x8C03;&#x6574;&#x83DC;&#x5355;</td>
<td>OK</td>
</tr>
<tr>
<td>HDR</td>
<td>HDR</td>
<td>&#x663E;&#x793A; HDR &#x9009;&#x62E9;&#x83DC;&#x5355;</td>
<td>OK</td>
</tr>
<tr>
<td>INH</td>
<td>INFO (&#x6309;&#x4F4F;)</td>
<td>&#x663E;&#x793A;&#x8BE6;&#x7EC6;&#x4FE1;&#x606F;</td>
<td>OK</td>
</tr>
<tr>
<td>RLH</td>
<td>RESOLUTION<br>(&#x6309;&#x4F4F;)</td>
<td>&#x5C06;&#x5206;&#x8FA8;&#x7387;&#x8BBE;&#x4E3A;&#x81EA;&#x52A8;</td>
<td>OK</td>
</tr>
<tr>
<td>AVS</td>
<td></td>
<td>Displaythe A/V Sync adjustment<br>menu</td>
<td>OK</td>
</tr>
<tr>
<td>GPA</td>
<td></td>
<td>&#x65E0;&#x7F1D;&#x64AD;&#x653E;</td>
<td>OK</td>
</tr>
<tr>
<td>NOP</td>
<td></td>
<td>&#x7A7A;&#x64CD;&#x4F5C;</td>
<td>OK</td>
</tr>
<tr>
<td>SRC</td>
<td>INPUT</td>
<td>&#x663E;&#x793A;&#x8F93;&#x5165;&#x83DC;&#x5355;<br>&#x4F8B;&#xFF1A;#SRC followed by #NU1</td>
<td>OK</td>
</tr>
</tbody>
</table>
<h5 id>&#x67E5;&#x8BE2;&#x7C7B;</h5>
<table>
<thead>
<tr>
<th>&#x6307;&#x4EE4;</th>
<th>&#x529F;&#x80FD;</th>
<th>&#x54CD;&#x5E94;&#x793A;&#x4F8B;</th>
</tr>
</thead>
<tbody>
<tr>
<td>QVM</td>
<td>Query verbose mode</td>
<td>OK 0<br>OK 1<br>OK 2<br>OK 3</td>
</tr>
<tr>
<td>QPW</td>
<td>&#x67E5;&#x8BE2;&#x7535;&#x6E90;&#x72B6;&#x6001;</td>
<td>OK ON<br>OK OFF</td>
</tr>
<tr>
<td>QVR</td>
<td>&#x67E5;&#x8BE2;&#x56FA;&#x4EF6;&#x7248;&#x672C;</td>
<td>OK UDP20X-xx-xxxx</td>
</tr>
<tr>
<td>QVL</td>
<td>&#x67E5;&#x8BE2;&#x97F3;&#x91CF;</td>
<td>OK 100<br>OK MUTE</td>
</tr>
<tr>
<td>QHD</td>
<td>&#x67E5;&#x8BE2;HDMI&#x5206;&#x8FA8;&#x7387;</td>
<td>OK 480I<br>OK 480P<br>OK 576I<br>OK 576P<br>OK 720P50<br>OK 720P60<br>OK 1080I50<br>OK 1080I60<br>OK 1080P24<br>OK 1080P50<br>OK 1080P60<br>OK 1080PAUTO<br>OK UHD24<br>OK UHD50<br>OK UHD60<br>OK UHD_AUTO<br>OK AUTO<br>OK Source Direct</td>
</tr>
<tr>
<td>QPL</td>
<td>&#x67E5;&#x8BE2;&#x64AD;&#x653E;&#x72B6;&#x6001;</td>
<td>OK PLAY<br>OK PAUSE<br>OK STOP<br>OK STEP<br>OK FREV<br>OK FFWD<br>OK SFWD<br>OK SREV<br>OK SETUP<br>OK HOME MENU<br>OK MEDIA CENTER<br>OK SCREEN SAVER<br>OK DISC MENU</td>
</tr>
<tr>
<td>QTK</td>
<td>Query Track/Title</td>
<td>OK 02/10</td>
</tr>
<tr>
<td>QCH</td>
<td>&#x67E5;&#x8BE2;&#x7AE0;&#x8282;</td>
<td>OK 03/03</td>
</tr>
<tr>
<td>QTE</td>
<td>Query Track/Title elapsed time</td>
<td>OK 00:01:34</td>
</tr>
<tr>
<td>QTR</td>
<td>Query Track/Title remaining time</td>
<td>OK 01:20:23</td>
</tr>
<tr>
<td>QCE</td>
<td>Query Chapter elapsed time</td>
<td>OK 00:01:34</td>
</tr>
<tr>
<td>QCR</td>
<td>Query Chapter remaining time</td>
<td>OK 00:12:22</td>
</tr>
<tr>
<td>QEL</td>
<td>Query Total elapsed time</td>
<td>OK 00:05:12</td>
</tr>
<tr>
<td>QRE</td>
<td>Query Total remaining time</td>
<td>OK 01:34:44</td>
</tr>
<tr>
<td>QDT</td>
<td>Query disc type</td>
<td>OK BD-MV<br>OK DVD-VIDEO<br>OK DVD-AUDIO<br>OK SACD<br>OK CDDA<br>OK DATA-DISC<br>OK UHBD<br>OK NO-DISC<br>OK UNKNOW-DISC</td>
</tr>
<tr>
<td>QAT</td>
<td>Query audio type</td>
<td>OK DD 1/1<br>OK DD 1/5 English<br>OK DTS 2/5 English<br>OK LPCM<br>OK DTS-HD 1/4 English</td>
</tr>
<tr>
<td>QST</td>
<td>Query subtitle type</td>
<td>OK OFF<br>OK 1/1 English</td>
</tr>
<tr>
<td>QSH</td>
<td>Query subtitle shift</td>
<td>OK -10<br>(valid returns are -10 .. 0 .. 10)</td>
</tr>
<tr>
<td>QOP</td>
<td>Query OSD position</td>
<td>OK 0<br>(valid returns are 0 .. 5)</td>
</tr>
<tr>
<td>QRP</td>
<td>Query Repeat Mode</td>
<td>OK 00 Off<br>(OK followed by a repeat mode code and<br>text:<br>00 Off<br>01 Repeat One<br>02 Repeat Chapter<br>03 Repeat All<br>04 Repeat Title<br>05 Shuffle<br>06 Random)</td>
</tr>
<tr>
<td>QZM</td>
<td>Query Zoom Mode</td>
<td>OK 00<br>(OK followed by a zoom mode code:<br>00 Off<br>01 Stretch<br>02 Full<br>03 Underscan<br>04 1.2x<br>05 1.3x<br>06 1.5x<br>07 2x<br>08 3x<br>09 4x<br>10 1/2<br>11 1/3<br>12 1/4)<br>QHR Query HDR Setting<br>OK Auto<br>OK On<br>OK Off<br>OK StripMetadata</td>
</tr>
<tr>
<td>Q3D</td>
<td>Query 3D Status</td>
<td>OK 2D<br>OK 3D<br>(returns the actual video output status)</td>
</tr>
<tr>
<td>QHS</td>
<td>Query HDR Status</td>
<td>OK HDR<br>OK SDR<br>OK DOV<br>(returns the actual video output status)</td>
</tr>
<tr>
<td>QIS</td>
<td>Query Input Source</td>
<td>OK 0 BD-PLAYER <br>OK 1 HDMI-IN<br>OK 2 ARC-HDMI-OUT<br>OK 3 OPTICAL-IN<br>OK 4 COAXIAL-IN<br>OK 5 USB-AUDIO-IN<br>(Return the currently selected input source)</td>
</tr>
<tr>
<td>QCD</td>
<td>Query CDDB number</td>
<td>QC1 OK XXYY<br>QC2 OK YYZZ<br>ER INVALID<br>(OK followed by the CDDB number of the<br>CD being played)</td>
</tr>
<tr>
<td>QFT</td>
<td>Query media file format</td>
<td>OK FLAC<br>OK WAV<br>OK MKV<br>OK JPG<br>(OK followed by the media file format)<br>ER INVALID</td>
</tr>
<tr>
<td>QFN</td>
<td>Query media file name</td>
<td>OK Rocky Mou*.wav<br>(OK followed by the file name)<br>ER INVALID</td>
</tr>
<tr>
<td>QTN</td>
<td>Query track name</td>
<td>OK Rocky Mountain*<br>(OK followed by the current track name)<br>ER INVALID</td>
</tr>
<tr>
<td>QTA</td>
<td>Query track album</td>
<td>OK Rise And Fall, Rage*<br>(OK followed by the current track album)<br>ER INVALID</td>
</tr>
<tr>
<td>QTP</td>
<td>Query track performer</td>
<td>OK The Offspring<br>(OK followed by the current track<br>performer)<br>ER INVALID</td>
</tr>
<tr>
<td>QDS</td>
<td>Query directory size</td>
<td>OK 120<br>(OK followed by the number of entries in<br>the current directory. This command is only<br>valid when the player is navigating a data<br>disc, USB drive or network share.)<br>ER INVALID</td>
</tr>
<tr>
<td>QAR</td>
<td>Query aspect ratio setting</td>
<td>OK 16WW (16:9 Wide)<br>OK 16AW (16:9 Wide Auto, currently wide)<br>OK 16A4 (16:9 Wide Auto, currently<br>playing 4:3)<br>OK 21M0 (21:9 Movable, currently full <br>screen mode)<br>OK 21M1 (21:9 Movable, currently playing<br>16:9 or 4:3 content)<br>OK 21M2 (21:9 Movable, currently playing<br>21:9 content)<br>OK 21F0 (21:9 Fixed, currently full screen<br>mode)<br>OK 21F1 (21:9 Fixed, currently playing<br>16:9 or 4:3 content)<br>OK 21F2 (21:9 Fixed, currently playing<br>21:9 content)<br>OK 21C0 (21:9 Cropped, currently full<br>screen mode)<br>OK 21C1 (21:9 Cropped, currently playing<br>16:9 or 4:3 content)<br>OK 21C2 (21:9 Cropped, currently playing<br>21;9 content)</td>
</tr>
</tbody>
</table>
<h5 id>&#x4E13;&#x5BB6;&#x7C7B;</h5>
<table>
<thead>
<tr>
<th>&#x6307;&#x4EE4;</th>
<th>&#x53C2;&#x6570;</th>
<th>&#x529F;&#x80FD;</th>
<th>&#x54CD;&#x5E94;&#x793A;&#x4F8B;</th>
</tr>
</thead>
<tbody>
<tr>
<td>SVM</td>
<td>0<br>1<br>2<br>3</td>
<td>0 &#x2013; Set Verbose Mode to off<br>1 &#x2013; Not in use (for backwards<br>compatibility)<br>2 &#x2013; Enable unsolicited status updates.<br>Only major status changes are<br>reported.<br>3 &#x2013; Enable detailed status updates.<br>When content is playing, the player<br>sends out playback time updates<br>every second.</td>
<td>OK 0<br>OK 1<br>OK 2<br>OK 3</td>
</tr>
<tr>
<td>SHD</td>
<td>AUTO<br>SRC<br>UHD_AUTO<br>UHD24<br>UHD50<br>UHD60<br>1080P_AUTO<br>1080P24<br>1080P50<br>1080P60<br>1080I50<br>1080I60<br>720P50<br>720P60<br>576P<br>576I<br>480P<br>480I</td>
<td>Set HDMI output resolution. If a<br>custom resolution parameter is given,<br>this command changes the &#x201C;Custom<br>Resolution&#x201D; setting in the Setup Menu<br>and sets the &#x201C;Output Resolution&#x201D; to<br>&#x201C;Custom&#x201D; at the same time.</td>
<td>OK 480P<br>(OK followed by the<br>original parameter)</td>
</tr>
<tr>
<td>SZM</td>
<td>1<br>AR<br>FS<br>US<br>1.2<br>1.3<br>1.5<br>2<br>1/2<br>3<br>4<br>1/3<br>1/4</td>
<td>Set zoom ratio.<br>AR &#x2013; Aspect ratio correction (Stretch,<br>Letterbox or Pillarbox)<br>FS &#x2013; Full Screen<br>US &#x2013; Under scan<br>1, 1.2, 1.3, 1.5, 2, 1/2 &#x2013; Specified<br>zoom ratio.<br>(When the TV Aspect Ratio is set to<br>21:9 Movable/Fixed/Cropped in the<br>Setup Menu, the only valid parameters<br>are 1, AR, and FS. 1 for 16:9 mode,<br>AR for 21:9 mode, and FS for full<br>screen mode.)</td>
<td>OK 1.2<br>(OK followed by the zoom<br>ratio)<br>ER INVALID</td>
</tr>
<tr>
<td>SVL</td>
<td>0 &#x2013; 100<br>MUTE</td>
<td>Set volume control</td>
<td>OK 100<br>OK MUTE</td>
</tr>
<tr>
<td>SRP</td>
<td>CH<br>TT<br>ALL<br>OFF<br>SHF<br>RND</td>
<td>Repeat chapter<br>Repeat title or CD track<br>Repeat all<br>Repeat off<br>Shuffle<br>Random</td>
<td>OK CH<br>(OK followed by the<br>repeat mode)<br>ER INVALID</td>
</tr>
<tr>
<td>SRH</td>
<td>T3<br>C10<br>C 0:00:34<br>T 0:12:13<br>0:12:13</td>
<td>Search to Title 3<br>Search to Chapter 10<br>Search to 0:00:34 of the current<br>chapter or track<br>Search to 0:12:13 of the current title or<br>disc<br>Search to 0:12:13 of the current title or<br>disc</td>
<td>OK<br>ER INVALID</td>
</tr>
<tr>
<td>DPL</td>
<td></td>
<td>Direct play</td>
<td>OK</td>
</tr>
<tr>
<td>RST</td>
<td></td>
<td>Reset Command &#x2013; Clean all command<br>buffers, do not wait for any<br>pending/executing commands. Start<br>over again.</td>
<td>OK</td>
</tr>
<tr>
<td>SSH</td>
<td>-10 ... 10</td>
<td>Set subtitle shift</td>
<td>OK -10 (OK followed by<br>the shift level)<br>ER INVALID</td>
</tr>
<tr>
<td>SOP</td>
<td>0 &#x2026; 5</td>
<td>Set OSD position</td>
<td>OK 5 (OK followed by the<br>position value)<br>ER INVALID</td>
</tr>
<tr>
<td>STC</td>
<td>E<br>R<br>T<br>X<br>C<br>K</td>
<td>Set the time information display:<br>E &#x2013; Total Elapsed time<br>R &#x2013; Total Remaining time<br>T &#x2013; Title Elapsed time<br>X &#x2013; Title Remaining time<br>C &#x2013; Chapter/track Elapsed time<br>K &#x2013; Chapter/track Remaining time</td>
<td>OK E<br>(OK followed by the<br>display type)<br>ER INVALI</td>
</tr>
<tr>
<td>SHR</td>
<td>Auto<br>On<br>Off</td>
<td>Set HDR setting</td>
<td>OK Auto</td>
</tr>
<tr>
<td>SIS</td>
<td>0<br>1<br>2<br>3<br>4<br>5</td>
<td>Select the input source:<br>0 &#x2013; Blu-ray player<br>1 &#x2013; HDMI IN<br>2 &#x2013; ARC: HDMI OUT<br>3 &#x2013; OPTICAL IN<br>4 &#x2013; COAXIAL IN<br>5 &#x2013; USB AUDIO IN<br>(Parameters 3 &#x2013; 5 are only available<br>for UDP-205)</td>
<td>OK 0 BD-PLAYER<br>OK 1 HDMI-IN<br>OK 2 ARC-HDMI-OUT<br>OK 3 OPTICAL-IN<br>OK 4 COAXIAL-IN<br>OK 5 USB-AUDIO-IN<br>ER INVALID</td>
</tr>
<tr>
<td>SSA</td>
<td>ON<br>OFF<br>SAVE</td>
<td>Set the parameters for Screen Saver<br>in the Setup Menu &#x2013; Playback Setup &#x2013;<br>Screen Saver.</td>
<td>OK ON<br>OK OFF<br>OK SAVE<br>ER INVALID</td>
</tr>
<tr>
<td>APP</td>
<td>DIS<br>MUS<br>PHO<br>MOV<br>NET<br>SET</td>
<td>Stop current playback and start the<br>corresponding application from the<br>home menu:<br>DIS &#x2013; Disc<br>MUS &#x2013; Music<br>PHO &#x2013; Photo<br>MOV &#x2013; Movie<br>NET &#x2013; Network<br>SET &#x2013; Setup</td>
<td>OK DIS<br>(OK followed by the<br>application)<br>ER INVALID</td>
</tr>
<tr>
<td>SSD</td>
<td>M<br>S<br>C</td>
<td>Set SACD Priority. Possible<br>parameters are:<br>M &#x2013; Multi-channel<br>S &#x2013; Stereo<br>C &#x2013; CD Mode<br>(This command changes the Setup<br>Menu setting for SACD Priority. The<br>setting takes effect the next time an<br>SACD is loaded into the player. If an<br>SACD is already in the player, this<br>setting does not immediately change<br>the playback priority.)</td>
<td>OK M<br>(OK followed by the set<br>value)<br>ER INVALID <br></td>
</tr>
<tr>
<td>SDP</td>
<td>D<br>P<br>A</td>
<td>Set the SACD output mode:<br>D &#x2013; Output DSD<br>P &#x2013; Output PCM<br>A &#x2013; Automatically decides between<br>PCM or DSD based on connected<br>devices&#x2019; compatibility.<br>(This command changes the Setup<br>Menu setting for SACD Output. If an<br>SACD is playing, the output will be<br>changed on the fly.)</td>
<td>OK D<br>(OK followed by the <br> output mode)<br>ER INVALID</td>
</tr>
<tr>
<td>FWD</td>
<td>1/32<br>1/16<br>1/8<br>1/4<br>1/2<br>1<br>2<br>3<br>4<br>5</td>
<td>Set Fast/Slow Forward Play speed.</td>
<td>OK 1/32<br>(OK followed by the<br>forward speed)<br>ER INVALID</td>
</tr>
<tr>
<td>REV</td>
<td>1/32<br>1/16<br>1/8<br>1/4<br>1/2<br>1<br>2<br>3<br>4<br>5</td>
<td>Set Fast/Slow Reverse Play speed.</td>
<td>OK 1/32<br>(OK followed by the<br>forward speed)<br>ER INVALID<br>(Slow reverse is not<br>available for UHD content)</td>
</tr>
<tr>
<td>QDR</td>
<td>1 &#x2026; xxx</td>
<td>Query directory item.<br>The parameter is the index number of<br>the file or item in the current directory<br>listing.</td>
<td>OK U USB1 (USB Device)<br>OK O CDDA (Optical<br>Disc)<br>OK 0 .. (Upper Level)<br>OK F Rocky-mou*.wav<br>(File)<br>OK D My Music<br>(Directory)<br>OK 0 My Network Search<br>(Network)<br>OK L oShare_MediaSer*<br>(DLNA server)<br>OK S MyPC (SMB server)<br>OK N MyNFS (NFS<br>server)</td>
</tr>
</tbody>
</table>
<h1 id="app">APP &#x63A7;&#x5236;&#x534F;&#x8BAE;</h1>
<p>&#x867D;&#x7136;&#x5B98;&#x65B9;&#x63D0;&#x4F9B;&#x4E86;&#x5B8C;&#x6574;&#x7684;&#x534F;&#x8BAE;&#xFF0C;&#x4F46;&#x662F;&#x672A;&#x80FD;&#x8FBE;&#x5230;&#x6211;&#x641C;&#x7D22;&#x6307;&#x5B9A;&#x5F71;&#x7247;&#x5E76;&#x4E14;&#x64AD;&#x653E;&#x7684;&#x76EE;&#x7684;&#xFF0C;OPPO&#x6709;&#x63D0;&#x4F9B;&#x4E00;&#x4E2A;APP &#x2018;MediaControl&#x2019;<sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup><sup class="footnote-ref"><a href="#fn3" id="fnref3">[3]</a></sup> &#x7528;APP&#x53EF;&#x4EE5;&#x5728;&#x5C40;&#x57DF;&#x7F51;&#x64CD;&#x63A7;&#x64AD;&#x653E;&#x5668;&#x3002;&#x901A;&#x8FC7;&#x7834;&#x89E3;&#x534F;&#x8BAE;&#xFF0C;&#x6211;&#x6574;&#x7406;&#x51FA;&#x53E6;&#x5916;&#x4E00;&#x5957;HTTP&#x534F;&#x8BAE;&#xFF0C;&#x53EF;&#x4EE5;&#x4E0E;&#x5B98;&#x65B9;&#x63D0;&#x4F9B;&#x7684;&#x534F;&#x8BAE;&#x8FDB;&#x884C;&#x4E92;&#x8865;&#x3002;</p>
<h3 id="app">APP&#x5E7F;&#x64AD;&#x6FC0;&#x6D3B;&#x534F;&#x8BAE;</h3>
<p>&#x9996;&#x5148;&#x8981;&#x5E7F;&#x64AD;&#x534F;&#x8BAE;&#xFF0C;&#x64AD;&#x653E;&#x5668;&#x63A5;&#x6536;&#x540E;&#xFF0C;&#x4F1A;&#x6FC0;&#x6D3B;HTTP&#x534F;&#x8BAE;&#xFF0C;&#x5EFA;&#x8BAE;&#x591A;&#x6B21;&#x5E7F;&#x64AD;&#xFF0C;&#x5728;&#x6536;&#x5230;&#x64AD;&#x653E;&#x5668;&#x8FD4;&#x56DE;&#x6D88;&#x606F;&#x540E;&#xFF0C;&#x505C;&#x6B62;&#x5E7F;&#x64AD;&#x3002;</p>
<p>&#x9996;&#x5148;&#x6211;&#x4EEC;&#x5728;&#x5C40;&#x57DF;&#x7F51;&#x5411;255.255.255.255&#x8FDB;&#x884C;UDP&#x5E7F;&#x64AD;</p>
<pre><code>ASCII&#xFF1A;NOTIFY OREMOTE LOGIN
HEX&#xFF1A;4e 4f 54 49 46 59 20 4f 52 45 4d 4f 54 45 20 4c 4f 47 49 4e 
</code></pre>
<p>&#x5F53;&#x64AD;&#x653E;&#x5668;&#x6536;&#x5230;&#x5E7F;&#x64AD;&#x65F6;&#x4F1A;&#x8FD4;&#x56DE;</p>
<pre><code>ASCII&#xFF1A;UDP-203_OPPO UDP-203 REPORT ADDRESS TO OREMOTE: 192.168.1.2:19999
HEX&#xFF1A;55 44 50 2d 32 30 33 5f 4f 50 50 4f 20 55 44 50 2d 32 30 33 20 52 45 50 4f 52 54 20 41 44 44 52 45 53 53 20 54 4f 20 4f 52 45 4d 4f 54 45 3a 20 31 39 32 2e 31 36 38 2e 31 2e 32 3a 31 39 39 39 39  
</code></pre>
<h3 id="http">HTTP&#x534F;&#x8BAE;&#x7AEF;&#x53E3;</h3>
<p>&#x534F;&#x8BAE;&#x88AB;&#x6FC0;&#x6D3B;&#x540E;&#xFF0C;&#x4F1A;&#x5F00;&#x542F;436&#x7AEF;&#x53E3;&#xFF0C;&#x6211;&#x4EEC;&#x901A;&#x8FC7;436&#x7AEF;&#x53E3;&#x53EF;&#x4EE5;&#x8FDB;&#x884C;HTTP&#x64CD;&#x4F5C;&#xFF0C;&#x5E76;&#x8FD4;&#x56DE;JSON&#x7ED3;&#x679C;</p>
<h3 id="http">HTTP&#x534F;&#x8BAE;&#x5185;&#x5BB9;</h3>
<p>&#x6211;&#x6574;&#x7406;&#x51FA;&#x90E8;&#x5206;HTTP&#x534F;&#x8BAE;&#xFF0C;&#x4E0D;&#x662F;&#x5F88;&#x5B8C;&#x5168;&#xFF0C;&#x6B22;&#x8FCE;&#x8865;&#x5145;</p>
<p>&#x534F;&#x8BAE;&#x4F7F;&#x7528;GET&#x65B9;&#x6CD5;&#xFF0C;&#x5982;&#x9700;&#x5E26;&#x53C2;&#x6570;&#xFF0C;&#x5219;&#x5728;&#x95EE;&#x53F7;&#x540E;&#x52A0;&#x5165;json&#x683C;&#x5F0F;<br>
&#x793A;&#x4F8B;</p>
<pre><code>192.168.1.2:436/signin?%7B%22appIpAddress%22%3A%2210.254.254.254%22%2C%22appIconType%22%3A1%7D
</code></pre>
<table>
<thead>
<tr>
<th>&#x65B9;&#x6CD5;</th>
<th>&#x529F;&#x80FD;</th>
<th>&#x53C2;&#x6570;</th>
<th>&#x54CD;&#x5E94;&#x793A;&#x4F8B;</th>
</tr>
</thead>
<tbody>
<tr>
<td>getmainfirmwareversion</td>
<td>&#x83B7;&#x53D6;&#x56FA;&#x4EF6;&#x7248;&#x672C;</td>
<td></td>
<td>{&quot;success&quot;:true,&quot;player_style&quot;:&quot;UDP-203&quot;,&quot;bbkver&quot;:&quot;20XCN-65-0132&quot;}</td>
</tr>
<tr>
<td>getvolume</td>
<td>&#x83B7;&#x53D6;&#x97F3;&#x91CF;</td>
<td></td>
<td>{&quot;Success&quot;: true, &quot;msg&quot;: &quot;&quot;, &quot;curr_volume&quot;: 40, &quot;min_volume&quot;: 0, &quot;max_volume&quot;: 100, &quot;is_muted&quot;: false}</td>
</tr>
<tr>
<td>getglobalinfo</td>
<td>&#x83B7;&#x53D6;&#x5168;&#x5C40;&#x4FE1;&#x606F;</td>
<td></td>
<td>{&quot;success&quot;:true,&quot;curr_volume&quot;:100,&quot;min_volume&quot;:0,&quot;max_volume&quot;:100,&quot;is_muted&quot;:false,&quot;cur_media_type&quot;:5,&quot;is_audio_playing&quot;:false,&quot;gapless_play_mode&quot;:0,&quot;is_pic_playing&quot;:false,&quot;is_video_playing&quot;:false,&quot;is_bdmv_playing&quot;:false,&quot;is_disc_playing&quot;:false,&quot;output_volume_mode&quot;:&quot;variable&quot;,&quot;activeapp&quot;:&quot;mediac&quot;,&quot;msg&quot;:&quot;&quot;}</td>
</tr>
<tr>
<td>getsetupmenu</td>
<td>&#x83B7;&#x53D6;&#x8BBE;&#x7F6E;&#x83DC;&#x5355;</td>
<td></td>
<td>{&quot;success&quot;:true,&quot;msg&quot;:&quot;setting done&quot;}</td>
</tr>
<tr>
<td>getdevicelist</td>
<td>&#x83B7;&#x53D6;&#x8BBE;&#x5907;&#x5217;&#x8868;</td>
<td></td>
<td>{&quot;success&quot;:true,&quot;msg&quot;:&quot;&quot;,&quot;devicelist&quot;:[{&quot;sub_type&quot;:&quot;cifs&quot;,&quot;name&quot;:&quot;SYNOLOGY-NAS&quot;,&quot;path&quot;:&quot;SYNOLOGY-NAS&quot;,&quot;serial_number&quot;:&quot;&quot;,&quot;logic_part_idx&quot;:&quot;0&quot;,&quot;total_size_bytes&quot;:&quot;0&quot;,&quot;avail_size_bytes&quot;:&quot;0&quot;,&quot;partition_info&quot;:&quot;&quot;}]}</td>
</tr>
<tr>
<td>getFavoriteDBFile</td>
<td>&#x83B7;&#x53D6;&#x6536;&#x85CF;&#x6587;&#x4EF6;</td>
<td></td>
<td>{&quot;success&quot;:true}</td>
</tr>
<tr>
<td>getdvdbdgninfo</td>
<td></td>
<td></td>
<td>{}</td>
</tr>
<tr>
<td>getmovieplayinfo</td>
<td>&#x83B7;&#x53D6;&#x5F71;&#x7247;&#x64AD;&#x653E;&#x4FE1;&#x606F;</td>
<td></td>
<td>{&quot;success&quot;:true,&quot;msg&quot;:&quot;&quot;,&quot;playinfo&quot;:{&quot;bd_file_path&quot;:&quot;/mnt/nfs1/FILE_DIR/DISC1&quot;,&quot;file_path&quot;:&quot;BDISO&quot;,&quot;e_play_status&quot;:0,&quot;e_play_mode&quot;:0,&quot;cur_time&quot;:4,&quot;total_time&quot;:6005}}</td>
</tr>
<tr>
<td>getplayingtime</td>
<td>&#x83B7;&#x53D6;&#x64AD;&#x653E;&#x65F6;&#x95F4;</td>
<td></td>
<td>{&quot;success&quot;:true,&quot;msg&quot;:&quot;&quot;,&quot;media_type&quot;:13,&quot;cur_time&quot;:4,&quot;total_time&quot;:6005,&quot;disc_cur_time&quot;:0,&quot;disc_total_time&quot;:0}</td>
</tr>
<tr>
<td>getSambaShareFolderlist</td>
<td>&#x83B7;&#x53D6;Samba&#x6587;&#x4EF6;&#x5939;</td>
<td></td>
<td>&#x7565;</td>
</tr>
<tr>
<td>getmoviefileusercoverisready</td>
<td></td>
<td></td>
<td>{&quot;success&quot;:true,&quot;hasCover&quot;:false}</td>
</tr>
<tr>
<td>signin</td>
<td>APP&#x767B;&#x5F55;&#xFF0C;&#x6267;&#x884C;&#x540E;&#x81EA;&#x52A8;&#x83B7;&#x53D6;&#x7F51;&#x7EDC;&#x8BBE;&#x5907;&#xFF0C;&#x64AD;&#x653E;&#x5668;&#x4F1A;&#x6709;&#x63D0;&#x793A;</td>
<td>{&quot;appIpAddress&quot;:&quot;192.168.1.3&quot;,&quot;appIconType&quot;:1}</td>
<td>{&quot;success&quot;:true,&quot;msg&quot;:&quot;&quot;,&quot;player_name&quot;:&quot;UDP-203_OPPO UDP-203&quot;,&quot;player_port&quot;:&quot;436&quot;}</td>
</tr>
<tr>
<td>sendremotekey</td>
<td>&#x53D1;&#x9001;&#x9065;&#x63A7;&#x6309;&#x952E;&#xFF0C;KEY&#x53EF;&#x4EE5;&#x53C2;&#x8003;232&#x90E8;&#x5206;</td>
<td>{&quot;key&quot;:&quot;SEL&quot;}</td>
<td>{&quot;success&quot;:true,&quot;msg&quot;:&quot;&quot;}</td>
</tr>
<tr>
<td>loginSambaWithOutID</td>
<td></td>
<td>{&quot;serverName&quot;:&quot;SYNOLOGY-NAS&quot;}</td>
<td>{&quot;success&quot;:true,&quot;retInfo&quot;:&quot;&quot;}</td>
</tr>
<tr>
<td>mountSharedFolder</td>
<td>&#x6302;&#x8F7D;SMB&#x76EE;&#x5F55;</td>
<td>{&quot;bWithID&quot;:false,&quot;password&quot;:&quot;defaultPassword&amp;withoutPassword&quot;,&quot;bRememberID&quot;:false,&quot;folder&quot;:&quot;video&quot;,&quot;server&quot;:&quot;SYNOLOGY-NAS&quot;,&quot;userName&quot;:&quot;defaultUserName&amp;withoutUserName&quot;}</td>
<td>{&quot;success&quot;:true,&quot;retInfo&quot;:&quot;&quot;,&quot;cifsMntPath&quot;:&quot;/mnt/cifs1&quot;,&quot;server&quot;:&quot;SYNOLOGY-NAS&quot;,&quot;folder&quot;:&quot;video&quot;}</td>
</tr>
<tr>
<td>loginNfsServer</td>
<td>&#x767B;&#x9646;NFS&#x670D;&#x52A1;&#x5668;</td>
<td>{&quot;serverName&quot;:&quot;192.168.1.1&quot;}</td>
<td>{&quot;success&quot;:true,&quot;retInfo&quot;:&quot;&quot;}</td>
</tr>
<tr>
<td>mountNfsSharedFolder</td>
<td>&#x6302;&#x8F7D;NFS&#x76EE;&#x5F55;</td>
<td>{&quot;server&quot;:&quot;192.168.1.1&quot;,&quot;folder&quot;:&quot;volume1/DIR&quot;}</td>
<td>{&quot;success&quot;:true,&quot;retInfo&quot;:&quot;&quot;,&quot;nfsMntPath&quot;:&quot;/mnt/nfs1&quot;,&quot;server&quot;:&quot;192.168.1.1&quot;,&quot;folder&quot;:&quot;volume1/DIR&quot;}</td>
</tr>
<tr>
<td>checkfolderhasbdmv</td>
<td>&#x64AD;&#x653E;bdmv&#x76EE;&#x5F55;</td>
<td>{&quot;folderpath&quot;:&quot;/mnt/nfs1/BDMV_PATH&quot;}</td>
<td></td>
</tr>
<tr>
<td>playnormalfile</td>
<td>&#x64AD;&#x653E;&#x6587;&#x4EF6;</td>
<td>{&quot;path&quot;:&quot;/mnt/nfs1/FILE_DIR/FILE.iso&quot;,&quot;playMode&quot;:0,&quot;extraNetPath&quot;:&quot;init&quot;,&quot;appDeviceType&quot;:6,&quot;type&quot;:1,&quot;index&quot;:0}</td>
<td></td>
</tr>
<tr>
<td>getfilelist</td>
<td>&#x83B7;&#x53D6;&#x6587;&#x4EF6;&#x5217;&#x8868;</td>
<td>{&quot;mediatype&quot;:3,&quot;flag&quot;:3,&quot;filetype&quot;:1,&quot;path&quot;:&quot;/mnt/cifs1&quot;,&quot;deviceSubType&quot;:7}</td>
<td>&#x7565;</td>
</tr>
<tr>
<td>getUsbMediaCover</td>
<td></td>
<td>{&quot;type&quot;:2,&quot;fullName&quot;:&quot;/mnt/cifs1/FILE_DIR/FILE.iso&quot;}</td>
<td></td>
</tr>
</tbody>
</table>
<h1 id>&#x6700;&#x540E;</h1>
<p>&#x6700;&#x7EC8;&#x6211;&#x4F7F;&#x7528;&#x4E86;HTTP&#x7684;playnormalfile/checkfolderhasbdmv&#x65B9;&#x6CD5;&#xFF0C;&#x5B9E;&#x73B0;&#x4E86;&#x6D77;&#x62A5;&#x5899;&#x70B9;&#x51FB;&#x8054;&#x52A8;&#x64AD;&#x653E;&#x5668;&#x64AD;&#x653E;&#x3002;&#x4E0D;&#x5728;&#x4E3A;&#x5BFB;&#x7247;&#x800C;&#x82E6;&#x607C;&#x3002;<br>
&#x7531;&#x4E8E;&#x6BCF;&#x6B21;&#x5F00;&#x673A;&#x90FD;&#x9700;&#x8981;&#x6FC0;&#x6D3B;HTTP&#x534F;&#x8BAE;&#xFF0C;&#x6240;&#x4EE5;&#x6211;&#x5C06;&#x64AD;&#x653E;&#x5668;&#x8BBE;&#x4E3A;&#x56FA;&#x5B9A;IP&#xFF0C;&#x5728;&#x68C0;&#x6D4B;&#x5230;IP&#x8FDE;&#x901A;&#x540E;&#xFF0C;&#x5E7F;&#x64AD;APP&#x7684;UDP&#x534F;&#x8BAE;&#xFF0C;&#x5B9E;&#x73B0;&#x4E86;&#x5F00;&#x673A;&#x5373;&#x6FC0;&#x6D3B;&#x3002;</p>
<pre><code>NFS&#x5171;&#x4EAB;&#x64AD;&#x653E;&#x6D41;&#x7A0B; 
1.signin
2.&#x7B49;&#x5F85;getdevicelist&#x53D1;&#x73B0;NFS&#x8BBE;&#x5907;
3.loginNfsServer &#x767B;&#x9646;nfs&#x670D;&#x52A1;&#x5668;
4.mountNfsSharedFolder &#x6302;&#x8F7D;nfs&#x76EE;&#x5F55;
5.getfilelist &#x9010;&#x7EA7;&#x83B7;&#x53D6;&#x6587;&#x4EF6;&#x5217;&#x8868;
6.playnormalfile / checkfolderhasbdmv &#x64AD;&#x653E;&#x6587;&#x4EF6;
</code></pre>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p><a href="http://download.oppodigital.com/UDP203/OPPO_UDP-20X_RS-232_and_IP_Control_Protocol.pdf?ref=xiaohai.co">OPPO 203 RS232&amp;IP&#x534F;&#x8BAE;&#x6587;&#x6863;</a> <a href="#fnref1" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn2" class="footnote-item"><p><a href="https://apps.apple.com/cn/app/oppo-udp-20x-mediacontrol/id1194885761?ref=xiaohai.co">iOS MediaControl APP</a> <a href="#fnref2" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn3" class="footnote-item"><p><a href="http://download.oppodigital.com/UDP203/OPPO%20MediaControl_V1.1.0.3660_release_oppodigital.apk?ref=xiaohai.co">Android MediaControl v1.1.0 APK</a> <a href="#fnref3" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
</ol>
</section>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[自制MMDVM]]></title><description><![CDATA[<h1></h1><h2 id="-">&#x8D77;&#x56E0;</h2><p>MMDVM&#x662F;&#x7531;G4KLX&#x53D1;&#x8D77;&#x7684;&#x5F00;&#x6E90;&#x9879;&#x76EE;&#xFF0C;&#x82F1;&#x6587;&#x5168;&#x79F0;&#x4E3A;Multi-Mode Digital Voice Modem &#x3002;&#x56FD;&#x5185;&#x7684;&#x6559;&#x7A0B;&#x90FD;&#x5728;&#x4ECB;&#x7ECD;&#x8F6F;&#x4EF6;&#x7684;&#x914D;&#x7F6E;&#xFF0C;&#x6240;&#x4EE5;&#x672C;&#x6587;&#x4E3B;&#x8981;&#x4FA7;&#x91CD;&#x4E8E;&#x5236;&#x4F5C;</p>]]></description><link>https://xiaohai.co/diy-mmdvm/</link><guid isPermaLink="false">5e9bd7e40a335a000133ab2e</guid><dc:creator><![CDATA[xiaohai]]></dc:creator><pubDate>Sun, 19 Apr 2020 07:14:20 GMT</pubDate><media:content url="https://xiaohai.co/content/images/2020/04/mmdvm--7-.png" medium="image"/><content:encoded><![CDATA[<h1></h1><h2 id="-">&#x8D77;&#x56E0;</h2><img src="https://xiaohai.co/content/images/2020/04/mmdvm--7-.png" alt="&#x81EA;&#x5236;MMDVM"><p>MMDVM&#x662F;&#x7531;G4KLX&#x53D1;&#x8D77;&#x7684;&#x5F00;&#x6E90;&#x9879;&#x76EE;&#xFF0C;&#x82F1;&#x6587;&#x5168;&#x79F0;&#x4E3A;Multi-Mode Digital Voice Modem &#x3002;&#x56FD;&#x5185;&#x7684;&#x6559;&#x7A0B;&#x90FD;&#x5728;&#x4ECB;&#x7ECD;&#x8F6F;&#x4EF6;&#x7684;&#x914D;&#x7F6E;&#xFF0C;&#x6240;&#x4EE5;&#x672C;&#x6587;&#x4E3B;&#x8981;&#x4FA7;&#x91CD;&#x4E8E;&#x5236;&#x4F5C;&#x786C;&#x4EF6;&#x3002;&#x7531;&#x4E8E;&#x672C;&#x4EBA;&#x975E;&#x786C;&#x4EF6;&#x51FA;&#x8EAB;&#xFF0C;&#x5982;&#x6709;&#x9519;&#x8BEF;&#xFF0C;&#x8BF7;&#x7559;&#x8A00;&#x6307;&#x6B63;&#x3002;</p><h2 id="--1">&#x786C;&#x4EF6;&#x9879;&#x76EE;&#x4ECB;&#x7ECD;</h2><p>mmdvm&#x5F00;&#x6E90;&#x7684;&#x786C;&#x4EF6;&#x4E3B;&#x8981;&#x5206;&#x4E3A;2&#x79CD;&#xFF0C;&#x5355;&#x5DE5;&#x3001;&#x53CC;&#x5DE5;&#xFF0C;&#x56FD;&#x5185;&#x4FD7;&#x79F0;&#x5C0F;&#x677F;&#x3001;&#x5927;&#x677F;&#x3002;</p><p>&#x4E3B;&#x8981;&#x4ECB;&#x7ECD;&#x7531;phl0&#x5F00;&#x6E90;&#x7684; &#x53CC;&#x5DE5;&#x677F; <a href="https://github.com/phl0/MMDVM_HS_Dual_Hat?ref=xiaohai.co">MMDVM_HS_Dual_Hat</a> &#x548C;mathisschmieder&#x5F00;&#x6E90;&#x7684;&#x5355;&#x5DE5;&#x677F;<a href="https://github.com/mathisschmieder/MMDVM_HS_Hat?ref=xiaohai.co">MMDVM_HS_Hat</a></p><p>&#x4E24;&#x5757;&#x677F;&#x5B50;&#x6574;&#x4F53;&#x4F7F;&#x7528;&#x5143;&#x4EF6;&#x662F;&#x4E00;&#x81F4;&#x7684;&#xFF0C;&#x7531;&#x4E8E;&#x53CC;&#x5DE5;&#x677F;&#x52A0;&#x5165;&#x4E86;USB&#x529F;&#x80FD;&#x6240;&#x4EE5;&#x4F1A;&#x7528;&#x5230;&#x989D;&#x5916;&#x7684;&#x5143;&#x4EF6;&#x3002;</p><p>&#x677F;&#x5B50;&#x5F00;&#x5B54;&#x90FD;&#x662F;&#x5B8C;&#x7F8E;&#x5951;&#x5408;&#x6811;&#x8393;&#x6D3E;&#xFF0C;&#x5355;&#x5DE5;&#x677F;&#x7684;&#x5F00;&#x5B54;&#x662F;&#x5BF9;&#x5E94;Raspberry Pi (Zero) &#x56FD;&#x5185;&#x4FD7;&#x79F0;&#x5C0F;&#x6D3E;&#x3002;</p><p>&#x5BF9;&#x4E8E;&#x5355;&#x5DE5;&#x53CC;&#x5DE5;&#x7684;&#x9009;&#x62E9;&#xFF0C;&#x770B;&#x4E2A;&#x4EBA;&#x9700;&#x6C42;&#x4E86;&#x3002;</p><h2 id="--2">&#x5143;&#x4EF6;</h2><p>&#x9879;&#x76EE;&#x672C;&#x8EAB;&#x6709;&#x63D0;&#x4F9B;bom&#x8868;&#x5355;&#xFF0C;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x5728;mouser&#x8D2D;&#x4E70;&#x3002;&#x4E0D;&#x8FC7;&#x5728;&#x56FD;&#x5916;&#x8D2D;&#x4E70;&#x4EF7;&#x683C;&#x6BD4;&#x8F83;&#x8D35;&#xFF0C;&#x6211;&#x7684;&#x914D;&#x4EF6;&#x90FD;&#x662F;&#x5728;&#x56FD;&#x5185;&#x8D2D;&#x4E70;&#x3002;</p><p>&#x81EA;&#x5DF1;&#x914D;&#x5143;&#x4EF6;&#xFF0C;&#x8BF7;&#x5B8C;&#x5168;&#x9075;&#x5B88;&#x5143;&#x4EF6;&#x7CBE;&#x5EA6;&#xFF0C;&#x8FD9;&#x5C06;&#x8017;&#x8D39;&#x4E00;&#x4E9B;&#x7CBE;&#x529B;&#x3002;</p><p>&#x6B64;&#x5904;&#x63A8;&#x8350;&#x7ACB;&#x521B;&#x5546;&#x57CE;&#x8D2D;&#x4E70;&#x7535;&#x5BB9;&#x7535;&#x963B;&#x3002;</p><h2 id="--3">&#x677F;&#x5B50;&#x4E0E;&#x710A;&#x63A5;</h2><p>&#x677F;&#x5B50;&#x53EF;&#x4EE5;&#x5728;&#x5609;&#x7ACB;&#x521B;&#x6253;&#x677F;&#xFF0C;5&#x5143;5&#x7247;&#x8FD8;&#x5305;&#x90AE;&#xFF0C;&#x56DB;&#x820D;&#x4E94;&#x5165;&#x7B49;&#x4E8E;&#x4E0D;&#x8981;&#x94B1;&#x3002;</p><p>&#x7531;&#x4E8E;&#x5143;&#x4EF6;&#x90FD;&#x662F;0402&#x5C01;&#x88C5;&#xFF0C;&#x4F5C;&#x4E3A;&#x65B0;&#x4EBA;&#x6765;&#x8BF4;&#xFF0C;&#x5B9E;&#x5728;&#x662F;&#x5C0F;&#xFF0C;&#x672C;&#x4EBA;&#x5728;&#x710A;&#x63A5;&#x8FC7;&#x7A0B;&#x4E2D;&#x4E5F;&#x63D0;&#x5347;&#x4E86;&#x4E00;&#x4E9B;&#x710A;&#x63A5;&#x6280;&#x80FD;&#xFF0C;&#x710A;&#x5B8C;&#x540E;&#x4E5F;&#x975E;&#x5E38;&#x6709;&#x6210;&#x5C31;&#x611F;&#xFF0C;&#x8DB3;&#x591F;&#x7684;&#x8010;&#x5FC3;&#x5C31;&#x53EF;&#x4EE5;&#x6210;&#x529F;&#x3002;</p><h2 id="--4">&#x5237;&#x56FA;&#x4EF6;</h2><p>&#x5237;&#x56FA;&#x4EF6;&#x6709;2&#x79CD;&#x5F62;&#x5F0F;&#xFF0C;&#x4E00;&#x79CD;&#x662F;&#x901A;&#x8FC7;ST-LINK&#xFF0C;&#x4E00;&#x79CD;&#x662F;&#x5728;pi-star&#x4E2D;</p><p>&#x6211;&#x9009;&#x62E9;&#x4E86;&#x5728;pi-star&#x4E2D;&#x5237;&#x56FA;&#x4EF6;</p><pre><code># &#x5F00;&#x542F;&#x5199;&#x6743;&#x9650;
rpi-rw

# &#x5355;&#x5DE5;
pistar-zumspotflash hs_hat

# &#x53CC;&#x5DE5;
pistar-mmdvmhshatflash hs_dual_hat
</code></pre><p>&#x53CC;&#x5DE5;&#x677F;&#x5237;&#x56FA;&#x4EF6;&#x65F6;&#x9700;&#x77ED;&#x63A5;JP1</p><h2 id="--5">&#x5C3E;&#x58F0;</h2><p>&#x5176;&#x5B9E;&#x6574;&#x4E2A;&#x5236;&#x4F5C;&#x8FC7;&#x7A0B;&#x5F88;&#x7B80;&#x5355;&#xFF0C;&#x6253;&#x677F;&#x2192;&#x914D;&#x5143;&#x4EF6;&#x2192;&#x710A;&#x63A5;&#x2192;&#x5237;&#x56FA;&#x4EF6;&#x2192;&#x6D4B;&#x8BD5;&#xFF0C;&#x5982;&#x679C;&#x4F60;&#x6709;&#x4E00;&#x9897;&#x6298;&#x817E;&#x7684;&#x5FC3;&#xFF0C;&#x53EF;&#x4EE5;&#x8BD5;&#x7740;&#x81EA;&#x5DF1;&#x505A;&#x4E00;&#x4E0B;&#xFF0C;&#x672C;&#x6587;&#x4E5F;&#x6BD4;&#x8F83;&#x6C34;&#xFF0C;&#x6BD5;&#x7ADF;&#x5BF9;&#x4E8E;&#x4E00;&#x4E2A;&#x65B0;&#x624B;&#x4E5F;&#x6CA1;&#x6CD5;&#x5199;&#x51FA;&#x9AD8;&#x6DF1;&#x7684;&#x4E1C;&#x897F;&#x3002;</p><p>&#x6574;&#x4E2A;&#x8FC7;&#x7A0B;&#x4E2D;&#x4E5F;&#x5B66;&#x4E86;&#x4E0D;&#x5C11;&#x77E5;&#x8BC6;&#xFF0C;&#x4ECE;&#x5BF9;&#x4E8E;&#x786C;&#x4EF6;&#x7684;&#x4E00;&#x65E0;&#x6240;&#x77E5;&#xFF0C;&#x5230;&#x73B0;&#x5728;&#x7684;&#x61F5;&#x61F5;&#x61C2;&#x61C2;&#xFF0C;&#x5F88;&#x591A;&#x8D44;&#x6599;&#x4E5F;&#x90FD;&#x662F;&#x5728;&#x56FD;&#x5916;&#x641C;&#x5230;&#x7684;&#xFF0C;&#x800C;&#x56FD;&#x5916;&#x7684;&#x5927;&#x4F6C;&#x4E5F;&#x66F4;&#x5584;&#x4E8E;&#x5206;&#x4EAB;&#x4ED6;&#x4EEC;&#x7684;&#x77E5;&#x8BC6;&#x548C;&#x7ECF;&#x9A8C;&#x3002;</p><p>&#x6700;&#x540E;&#x8BF7;&#x9075;&#x5B88;&#x534F;&#x8BAE;&#xFF0C;&#x5207;&#x52FF;&#x5546;&#x7528;&#x3002;</p>]]></content:encoded></item><item><title><![CDATA[组装显示器]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id>&#x8D77;&#x56E0;</h2>
<p>&#x7531;&#x4E8E;Mac&#x7CFB;&#x7EDF;&#x5728;1080P&#x7684;&#x663E;&#x793A;&#x5668;&#x4E0A;&#x662F;&#x975E;&#x5E38;&#x7CDF;&#x7CD5;&#x7684;&#x4E00;&#x79CD;&#x4F53;&#x9A8C;&#xFF0C;&#x5982;&#x679C;&#x8981;&#x505A;&#x5230;&#x548C;&#x7B14;&#x8BB0;&#x672C;&#x4E00;&#x6837;&#x7CBE;&#x7EC6;&#x7684;&#x663E;&#x793A;&#x5219;&#x9700;&#x8981;27&#x5BF8;5K&#x5206;&#x8FA8;&#x7387;</p>]]></description><link>https://xiaohai.co/diy-lcd-display/</link><guid isPermaLink="false">5dfb184efd22420001498d8a</guid><dc:creator><![CDATA[xiaohai]]></dc:creator><pubDate>Fri, 20 Dec 2019 09:02:31 GMT</pubDate><media:content url="https://xiaohai.co/content/images/2019/12/lcd--2-.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id>&#x8D77;&#x56E0;</h2>
<img src="https://xiaohai.co/content/images/2019/12/lcd--2-.jpg" alt="&#x7EC4;&#x88C5;&#x663E;&#x793A;&#x5668;"><p>&#x7531;&#x4E8E;Mac&#x7CFB;&#x7EDF;&#x5728;1080P&#x7684;&#x663E;&#x793A;&#x5668;&#x4E0A;&#x662F;&#x975E;&#x5E38;&#x7CDF;&#x7CD5;&#x7684;&#x4E00;&#x79CD;&#x4F53;&#x9A8C;&#xFF0C;&#x5982;&#x679C;&#x8981;&#x505A;&#x5230;&#x548C;&#x7B14;&#x8BB0;&#x672C;&#x4E00;&#x6837;&#x7CBE;&#x7EC6;&#x7684;&#x663E;&#x793A;&#x5219;&#x9700;&#x8981;27&#x5BF8;5K&#x5206;&#x8FA8;&#x7387;&#xFF0C;5K&#x663E;&#x793A;&#x5668;&#x4EF7;&#x683C;&#x8FC7;&#x9AD8;&#xFF0C;&#x9000;&#x4E00;&#x6B65;&#x4F7F;&#x7528;27&#x5BF8;4K&#x5206;&#x8FA8;&#x7387;&#x4E5F;&#x6709;&#x6781;&#x597D;&#x7684;&#x4F53;&#x9A8C;&#x3002;&#x4F46;&#x662F;&#x5E02;&#x9762;&#x4E0A;27&#x5BF8;4K&#x4E5F;&#x662F;&#x5F88;&#x8D35;&#x7684;&#xFF0C;&#x6240;&#x4EE5;&#x6211;&#x627E;&#x4E86;&#x4E00;&#x4E9B;&#x5957;&#x8DEF;&#x81EA;&#x5DF1;&#x62FC;&#x88C5;&#x4E00;&#x53F0;&#x663E;&#x793A;&#x5668;&#x3002;</p>
<p>&#x6CE8;&#xFF1A;&#x6587;&#x7AE0;&#x662F;&#x5199;&#x4E8E;2018&#x5E74;&#xFF0C;&#x8FD1;&#x671F;&#x6574;&#x7406;&#x53D1;&#x5E03;&#xFF0C;&#x53EF;&#x80FD;&#x6709;&#x4E9B;&#x504F;&#x5DEE;&#xFF0C;&#x6BD4;&#x5982;&#x73B0;&#x5728;5K&#x5C4F;&#x4E5F;&#x5F88;&#x591A;&#x4E86;&#xFF0C;&#x5728;&#x5F53;&#x65F6;&#x662F;&#x5F88;&#x5C11;&#x7684;&#x3002;</p>
<h2 id>&#x6240;&#x9700;&#x6750;&#x6599;</h2>
<table>
<thead>
<tr>
<th>&#x540D;&#x79F0;</th>
<th>&#x4EF7;&#x683C;</th>
</tr>
</thead>
<tbody>
<tr>
<td>&#x9762;&#x677F;</td>
<td>750</td>
</tr>
<tr>
<td>&#x9A71;&#x52A8;&#x677F;</td>
<td>200</td>
</tr>
<tr>
<td>&#x80CC;&#x677F;</td>
<td>20</td>
</tr>
<tr>
<td>&#x87BA;&#x4E1D;</td>
<td>9.9</td>
</tr>
<tr>
<td>&#x652F;&#x67B6;</td>
<td>50</td>
</tr>
</tbody>
</table>
<h2 id>&#x9762;&#x677F;</h2>
<p>&#x9996;&#x5148;&#x6211;&#x4EEC;&#x5230;<a href="http://www.panelook.cn/?ref=xiaohai.co">&#x5C4F;&#x5E93;&#x7F51;</a>&#x53EF;&#x4EE5;&#x7B5B;&#x9009;&#x51FA;&#x7B26;&#x5408;&#x8981;&#x6C42;&#x7684;&#x663E;&#x793A;&#x5668;&#xFF0C;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x5C4F;&#x5E55;&#x8BE6;&#x7EC6;&#x7684;&#x53C2;&#x6570;&#x3002;</p>
<p>&#x6211;&#x4E2A;&#x4EBA;&#x9009;&#x7528;&#x4E86;<a href="http://www.panelook.cn/LM270WR5-SSA1_LG_Display_27.0_LCM_overview_cn_29755.html?ref=xiaohai.co">LM270WR5-SSA1</a>&#xFF0C;&#x7F51;&#x4E0A;&#x641C;&#x7D22;&#x5F97;&#x77E5;&#x4E0E;DELL U2718Q&#x662F;&#x540C;&#x578B;&#x53F7;&#x9762;&#x677F;&#xFF08;&#x771F;&#x4F2A;&#x4E0D;&#x77E5;&#xFF09;&#x3002;</p>
<p>&#x67D0;&#x5B9D;&#x8F93;&#x5165;&#x9762;&#x677F;&#x578B;&#x53F7;&#x53EF;&#x4EE5;&#x627E;&#x5230;&#x76F8;&#x5173;&#x7684;&#x62C6;&#x673A;&#x5C4F;&#x3002;</p>
<h2 id>&#x9A71;&#x52A8;&#x677F;</h2>
<p>&#x5355;&#x6709;&#x9762;&#x677F;&#x662F;&#x65E0;&#x6CD5;&#x70B9;&#x4EAE;&#x7684;&#xFF0C;&#x6240;&#x4EE5;&#x9700;&#x8981;&#x914D;&#x7F6E;&#x9A71;&#x52A8;&#x677F;&#xFF0C;&#x9A71;&#x52A8;&#x677F;&#x540C;&#x6837;&#x5728;&#x67D0;&#x5B9D;&#x641C;&#x7D22;<code>4K&#x9A71;&#x52A8;&#x677F;</code>&#x5373;&#x53EF;&#xFF0C;&#x5F3A;&#x70C8;&#x5EFA;&#x8BAE;&#x4E0E;&#x5546;&#x5BB6;&#x6C9F;&#x901A;&#xFF0C;&#x770B;&#x662F;&#x5426;&#x652F;&#x6301;&#x9762;&#x677F;&#xFF0C;<strong>&#x6CE8;&#x610F;&#x5C4F;&#x5E55;&#x7684;&#x7535;&#x538B;&#xFF0C;&#x4E0E;&#x9A71;&#x52A8;&#x677F;&#x7684;&#x8F93;&#x51FA;&#x7535;&#x538B;</strong>&#x3002;</p>
<p>&#x9A71;&#x52A8;&#x677F;&#x4E00;&#x822C;&#x6765;&#x8BF4; HDR&#x3001;FREESYNC&#x90FD;&#x4F1A;&#x96C6;&#x6210;&#x5728;&#x5185;&#x3002;</p>
<h2 id>&#x80CC;&#x677F;</h2>
<p>&#x7531;&#x4E8E;&#x5C4F;&#x5E55;&#x4E0A;&#x6CA1;&#x6709;&#x529E;&#x6CD5;&#x76F4;&#x63A5;&#x5B89;&#x88C5;&#x9A71;&#x52A8;&#x677F;&#x548C;&#x652F;&#x67B6;&#xFF0C;&#x6240;&#x4EE5;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x5236;&#x4F5C;&#x4E00;&#x4E2A;&#x80CC;&#x677F;&#x3002;</p>
<p>&#x80CC;&#x677F;&#x53EF;&#x4EE5;&#x7528;&#x4E9A;&#x514B;&#x529B;&#xFF0C;&#x539A;&#x5EA6;3mm&#x5373;&#x53EF;&#x3002;</p>
<p>&#x5728;&#x505A;&#x80CC;&#x677F;&#x7684;&#x8FC7;&#x7A0B;&#x4E2D; &#x9700;&#x8981;&#x6CE8;&#x610F;&#x4EE5;&#x4E0B;&#x51E0;&#x70B9;</p>
<ul>
<li>
<p>&#x65B9;&#x5411;&#x95EE;&#x9898;</p>
</li>
<li>
<p>&#x9884;&#x7559;&#x9A71;&#x52A8;&#x677F;&#x7684;&#x56FA;&#x5B9A;&#x5B54; (&#x53EF;&#x50CF;&#x5546;&#x5BB6;&#x7D22;&#x8981;&#x5C3A;&#x5BF8;)</p>
</li>
<li>
<p>&#x9884;&#x7559;&#x652F;&#x67B6;&#x7684;&#x56FA;&#x5B9A;&#x5B54;(&#x6839;&#x636E;&#x652F;&#x67B6;&#x6765;&#x8BA2;&#xFF0C;&#x4E00;&#x822C;&#x4E3A;VESA&#x6807;&#x51C6;75 x 75mm&#x3001;100 x 100mm&#xFF0C;&#x5B54;4mm)</p>
</li>
</ul>
<p>&#x7531;&#x4E8E;&#x4E9A;&#x514B;&#x529B;&#x5DE5;&#x5382;&#x9700;&#x8981;CAD&#x624D;&#x80FD;&#x751F;&#x4EA7;&#xFF0C;&#x6240;&#x4EE5;&#x6211;&#x4EEC;&#x8981;&#x505A;&#x4E00;&#x4E2A;CAD&#x4E22;&#x7ED9;&#x5DE5;&#x5382;&#xFF0C;&#x7F51;&#x4E0A;&#x627E;&#x4E0B;&#x6559;&#x7A0B;10&#x5206;&#x949F;&#x901F;&#x6210;&#x3002;</p>
<p>&#x5728;&#x753B;CAD&#x65F6;&#xFF0C;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x9488;&#x5BF9;&#x9762;&#x677F;&#x4F4D;&#x7F6E;&#x6765;&#x6253;&#x5B54;&#xFF0C;&#x9762;&#x677F;&#x7684;&#x95F4;&#x8DDD;&#x53EF;&#x4EE5;&#x7F51;&#x4E0A;&#x641C;&#x7D22;&#x5BF9;&#x5E94;&#x578B;&#x53F7;&#x7684;&#x89C4;&#x683C;&#x4E66;&#xFF0C;&#x6216;&#x5411;&#x5546;&#x5BB6;&#x7D22;&#x53D6;&#x3002;</p>
<p>&#x6CE8;&#xFF1A;&#x89C4;&#x683C;&#x4E66;&#x4E0E;&#x9762;&#x677F;&#x578B;&#x53F7;&#x5FC5;&#x987B;&#x5B8C;&#x5168;&#x5BF9;&#x4E0A;&#xFF0C;&#x5DEE;&#x4E00;&#x4E2A;&#x6570;&#x5B57;&#x90FD;&#x4E0D;&#x884C;&#x3002;</p>
<h2 id>&#x87BA;&#x4E1D;</h2>
<p>&#x8BF7;&#x7ED3;&#x5408;&#x89C4;&#x683C;&#x4E66;&#xFF0C;&#x4EE5;&#x53CA;&#x4E9A;&#x514B;&#x529B;&#x539A;&#x5EA6;&#xFF0C;&#x53BB;&#x67D0;&#x5B9D;&#x4E70;M3&#x7EC4;&#x5408;&#x87BA;&#x4E1D;&#xFF0C;&#x9700;&#x5728;&#x9762;&#x677F;&#x4E0E;&#x80CC;&#x677F;&#x4E4B;&#x95F4;&#x52A0;&#x5165;&#x94DC;&#x67F1;&#x3002;&#x87BA;&#x4E1D;&#x957F;&#x5EA6;&#x4E00;&#x5B9A;&#x8981;&#x6309;&#x7167;&#x89C4;&#x683C;&#x4E66;&#x4E2D;&#x5B54;&#x7684;&#x6DF1;&#x5EA6;&#x6765;&#x7CBE;&#x786E;&#x8BA1;&#x7B97;&#xFF0C;&#x4E0D;&#x7136;&#x4F1A;&#x6233;&#x7A7F;&#x5C4F;&#x5E55;&#xFF0C;&#x6216;&#x56FA;&#x5B9A;&#x6548;&#x679C;&#x4E0D;&#x597D;&#x3002;</p>
<h2 id>&#x652F;&#x67B6;</h2>
<p>&#x652F;&#x67B6;&#x53EF;&#x4EE5;&#x6495;&#x903C;&#x9C7C;&#x627E;Dell&#x7684;&#x652F;&#x67B6;&#xFF0C;&#x7531;&#x4E8E;&#x6234;&#x5C14;&#x7684;&#x652F;&#x67B6;&#x56FA;&#x5B9A;&#x5B54;&#x662F;&#x975E;&#x6807;&#x51C6;&#xFF0C;&#x9700;&#x8981;&#x6D4B;&#x91CF;&#x3002;</p>
<p>&#x6216;&#x8005;&#x4E70;&#x56FA;&#x5B9A;&#x5728;&#x684C;&#x9762;&#x4E0A;&#x7684;&#x6DB2;&#x538B;&#x652F;&#x67B6;</p>
<h2 id>&#x6700;&#x540E;</h2>
<p>&#x62FC;&#x88C5;&#x8FC7;&#x7A0B;&#x5F88;&#x7B80;&#x5355;&#xFF0C;&#x6BD4;&#x8F83;&#x96BE;&#x7684;&#x5C31;&#x662F;&#x6839;&#x636E;&#x89C4;&#x683C;&#x4E66;&#x753B;CAD&#x3002;</p>
<p>&#x81EA;&#x5DF1;&#x62FC;&#x88C5;&#x76F8;&#x5BF9;&#x4E8E;&#x6210;&#x54C1;&#x6765;&#x8BF4;&#x4EF7;&#x683C;&#x662F;&#x5F88;&#x4F4E;&#x7684;&#xFF0C;&#x4F46;&#x662F;&#x5C4F;&#x5E55;&#x5DEE;&#x53EF;&#x80FD;&#x4F1A;&#x6709;&#x4E00;&#x4E9B;&#x95EE;&#x9898;&#xFF0C;&#x6BD4;&#x5982;&#x8FB9;&#x7F18;&#x53D1;&#x7EA2;(&#x4E00;&#x822C;&#x957F;&#x65F6;&#x95F4;&#x70B9;&#x4EAE;&#x4F1A;&#x6709;&#x8FD9;&#x79CD;&#x95EE;&#x9898;&#xFF0C;&#x65AD;&#x7535;&#x4E00;&#x6BB5;&#x65F6;&#x95F4;&#x6216;&#x53EF;&#x81EA;&#x884C;&#x6062;&#x590D;)</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[劫持GPS信号]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h3 id>&#x73AF;&#x5883;</h3>
<p>&#x7CFB;&#x7EDF;: macOS 10.14.5</p>
<p>&#x786C;&#x4EF6;: HackRF One&#x3001;TCXO&#x5916;&#x90E8;&#x65F6;&#x949F;</p>
<h3 id>&#x5916;&#x90E8;&#x65F6;&#x949F;</h3>
<p>&#x7531;&#x4E8E;HackRF&#x81EA;&#x5E26;&#x7684;&#x632F;&#x8361;&#x5668;&#x9891;&#x7387;&#x4E0D;&#x591F;&#x51C6;&#x786E;&#xFF0C;&#x4FE1;&#x53F7;&#x4E0D;&#x88AB;&#x63A5;&#x6536;&#xFF0C;&#x6240;&#x9700;&#x8981;&#x5916;&#x7F6E;</p>]]></description><link>https://xiaohai.co/fake-gps-signals/</link><guid isPermaLink="false">5d8e310ade3ea10001a8a0a7</guid><dc:creator><![CDATA[xiaohai]]></dc:creator><pubDate>Sat, 14 Dec 2019 09:13:01 GMT</pubDate><media:content url="https://xiaohai.co/content/images/2019/12/luopan--1-.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h3 id>&#x73AF;&#x5883;</h3>
<img src="https://xiaohai.co/content/images/2019/12/luopan--1-.jpg" alt="&#x52AB;&#x6301;GPS&#x4FE1;&#x53F7;"><p>&#x7CFB;&#x7EDF;: macOS 10.14.5</p>
<p>&#x786C;&#x4EF6;: HackRF One&#x3001;TCXO&#x5916;&#x90E8;&#x65F6;&#x949F;</p>
<h3 id>&#x5916;&#x90E8;&#x65F6;&#x949F;</h3>
<p>&#x7531;&#x4E8E;HackRF&#x81EA;&#x5E26;&#x7684;&#x632F;&#x8361;&#x5668;&#x9891;&#x7387;&#x4E0D;&#x591F;&#x51C6;&#x786E;&#xFF0C;&#x4FE1;&#x53F7;&#x4E0D;&#x88AB;&#x63A5;&#x6536;&#xFF0C;&#x6240;&#x9700;&#x8981;&#x5916;&#x7F6E;&#x9AD8;&#x7CBE;&#x5EA6;&#x65F6;&#x949F;</p>
<h3 id="gpssdrsim">&#x7F16;&#x8BD1;gps-sdr-sim</h3>
<pre><code>$ git clone https://github.com/osqzss/gps-sdr-sim.git
$ cd gps-sdr-sim
$ gcc gpssim.c -lm -O3 -o gps-sdr-sim

# &#x7A0B;&#x5E8F;&#x9ED8;&#x8BA4;&#x9650;&#x5236;&#x5728;5&#x5206;&#x949F;&#xFF08;DUSER_MOTION_SIZE=3000&#xFF09;&#xFF0C;&#x5982;&#x9700;&#x589E;&#x52A0;&#x65F6;&#x95F4;&#xFF0C;&#x53EF;&#x5728;&#x7F16;&#x8BD1;&#x65F6;&#x5E26;&#x4E0A;&#x53C2;&#x6570;&#xFF0C;&#x540C;&#x65F6;&#x751F;&#x6210;&#x7684;&#x6587;&#x4EF6;&#x4E5F;&#x5C06;&#x53D8;&#x5927;
$ gcc gpssim.c -lm -O3 -o gps-sdr-sim -DUSER_MOTION_SIZE=4000
</code></pre>
<h3 id>&#x751F;&#x6210;&#x4EFF;&#x771F;&#x6570;&#x636E;</h3>
<pre><code>$ ./gps-sdr-sim -e brdc3540.14n -l 39.915210,116.403900,100 -b 8

# &#x5982;&#x9700;&#x6B3A;&#x9A97;&#x65F6;&#x95F4;&#xFF08;YYYY/MM/DD,hh:mm:ss&#xFF09;
$ ./gps-sdr-sim -e brdc3540.14n -l 39.915210,116.403900,100 -T 2000/01/01,00:00:00 -b 8

# &#x5982;&#x9700;&#x6309;&#x8F68;&#x8FF9;&#x6B3A;&#x9A97;
$ ./gps-sdr-sim -e brdc3540.14n -u circle.csv -b 8

</code></pre>
<h4 id="rinex">RINEX&#x661F;&#x5386;</h4>
<p>brdc3540.14n &#x4E3A;&#x661F;&#x5386;&#x6570;&#x636E;</p>
<pre><code>ftp://cddis.gsfc.nasa.gov/pub/gps/data/daily/
</code></pre>
<p>&#x6587;&#x4EF6;&#x547D;&#x540D;&#x89C4;&#x5219;&#xFF1A;brdc3540.14n&#xFF08;ssssdddf.yyt&#xFF09;[8 + 3&#x6587;&#x4EF6;&#x540D;]</p>
<table>
<thead>
<tr>
<th>&#x540D;&#x79F0;</th>
<th>&#x6807;&#x8BB0;</th>
<th>&#x4F4D;&#x6570;</th>
<th>&#x63CF;&#x8FF0;</th>
</tr>
</thead>
<tbody>
<tr>
<td>brdc</td>
<td>ssss</td>
<td>0 ~ 4&#x4F4D;</td>
<td>4&#x5B57;&#x7B26;&#x6D4B;&#x7AD9;&#x540D;</td>
</tr>
<tr>
<td>354</td>
<td>ddd</td>
<td>5 ~ 7&#x4F4D;</td>
<td>&#x89C2;&#x6D4B;&#x5386;&#x5143;&#x7684;&#x5E74;&#x7EAA;&#x65E5;<br>&#x5982;&#xFF1A;001&#x8868;&#x793A;1&#x6708;1&#x65E5;</td>
</tr>
<tr>
<td>0</td>
<td>f</td>
<td>8&#x4F4D;</td>
<td>&#x4E00;&#x5929;&#x5185;&#x7684;&#x6587;&#x5B57;&#x5E8F;&#x53F7;&#xFF08;&#x65F6;&#x6BB5;&#x53F7;&#xFF09;&#x4E3A;0 ~ 9&#xFF0C;A ~ Z <br>&#x82E5;&#x4E3A;0&#xFF0C;&#x5219;&#x8868;&#x793A;&#x6587;&#x4EF6;&#x5305;&#x542B;&#x5F53;&#x5929;&#x5185;&#x6240;&#x6709;&#x7684;&#x89C2;&#x6D4B;&#x6570;&#x636E;</td>
</tr>
<tr>
<td>14</td>
<td>yy</td>
<td>1 ~ 2&#x4F4D;</td>
<td>2&#x4F4D;&#x5E74;&#x53F7;<br>80 ~ 99&#xFF1A;1980 ~ 1999<br>00 ~ 79&#xFF1A;2000 ~ 2079</td>
</tr>
<tr>
<td>n</td>
<td>t</td>
<td>3&#x4F4D;</td>
<td>&#x6587;&#x4EF6;&#x7C7B;&#x578B;<br>o(O)&#xFF1A;GPS&#x89C2;&#x6D4B;&#x503C;<br>n(N)&#xFF1A;&#x536B;&#x661F;&#x5BFC;&#x822A;&#x7535;&#x6587;<br>m(M)&#xFF1A;&#x6C14;&#x8C61;&#x6570;&#x636E;<br>g(G)&#xFF1A;GLONASS&#x536B;&#x661F;&#x5BFC;&#x822A;&#x7535;&#x6587;<br>h(H)&#xFF1A;&#x540C;&#x6B65;&#x536B;&#x661F;GPS&#x8F7D;&#x8377;&#x5BFC;&#x822A;&#x7535;&#x6587;<br>c(C)&#xFF1A;&#x949F;&#x6587;&#x4EF6;</td>
</tr>
</tbody>
</table>
<h3 id>&#x53D1;&#x5C04;&#x4EFF;&#x771F;&#x6570;&#x636E;</h3>
<pre><code>$ hackrf_transfer -t gpssim.bin -f 1575420000 -s 2600000 -a 1 -x 0 -R
</code></pre>
<p>-t gpssim.bin &#x4E3A;&#x751F;&#x6210;&#x7684;&#x4EFF;&#x771F;&#x6570;&#x636E;</p>
<p>-f 1575420000  &#x5373;&#x6C11;&#x7528;GPS L1&#x6CE2;&#x6BB5;&#x9891;&#x7387;</p>
<p>-s 2600000 &#x91C7;&#x6837;&#x901F;&#x7387;2.6Mbps</p>
<p>-a 1 &#x5F00;&#x542F;&#x5929;&#x7EBF;&#x589E;&#x76CA;</p>
<p>-x &#x6307;&#x5B9A;TX VGA(IF)&#x4E3A;0(&#x4E3A;&#x4E86;&#x9650;&#x5236;&#x5F71;&#x54CD;&#x8303;&#x56F4;&#xFF0C;&#x6700;&#x5927;&#x4E3A;47)</p>
<p>-R &#x5F00;&#x542F;&#x91CD;&#x590D;&#x53D1;&#x5C04;&#x6570;&#x636E;&#x529F;&#x80FD;</p>
<p>&#x624B;&#x673A;&#x5C06;&#x4F1A;&#x5728;1&#x5206;&#x949F;&#x5DE6;&#x53F3;&#x6B3A;&#x9A97;&#x6210;&#x529F;&#xFF0C;&#x5EFA;&#x8BAE;&#x624B;&#x673A;&#x5173;&#x95ED;&#x57FA;&#x7AD9;&#x8F85;&#x52A9;&#x5B9A;&#x4F4D;</p>
<h3 id>&#x751F;&#x6210;&#x8FD0;&#x52A8;&#x8F68;&#x8FF9;&#x6570;&#x636E;</h3>
<p>&#x5148;&#x7528;Google Earth&#x5236;&#x4F5C;&#x8DEF;&#x5F84;&#x5E76;&#x5BFC;&#x51FA;kml&#x6587;&#x4EF6;</p>
<p>&#x4F7F;&#x7528;SatGen&#x751F;&#x6210;&#x6807;&#x51C6;NMEA&#x8F68;&#x8FF9;&#x6587;&#x4EF6;&#xFF0C;SatGen&#x53EA;&#x6709;Windows&#x7248;&#xFF0C;Mac&#x6CA1;&#x627E;&#x5230;&#x5408;&#x9002;&#x7684;&#x8F6F;&#x4EF6;&#x3002;</p>
<pre><code>$ ./gps-sdr-sim -e brdc3540.14n -g &#x8F68;&#x8FF9;&#x6587;&#x4EF6; -b 8
</code></pre>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[自制ZigBee网关]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id>&#x8D77;&#x56E0;</h2>
<p>&#x7531;&#x4E8E;&#x5BB6;&#x4E2D;&#x591A;&#x4E2A;&#x5C0F;&#x7C73;ZigBee&#x8BBE;&#x5907;&#xFF0C;&#x6BCF;&#x6B21;&#x7684;&#x64CD;&#x4F5C;&#x90FD;&#x4F1A;&#x6709;&#x65E5;&#x5FD7;&#x8BB0;&#x5F55;&#xFF0C;&#x5E76;&#x4E14;&#x5C0F;&#x7C73;&#x53EF;&#x4EE5;&#x8BFB;&#x53D6;&#x5230;&#xFF08;&#x53EF;&#x53C2;&#x8003;2019&#x5E74;&#x521D;&#x7C73;&#x5BB6;APP&#x4E2D;&#x4E2A;&#x4EBA;&#x5E74;</p>]]></description><link>https://xiaohai.co/diy-zigbee-gateway/</link><guid isPermaLink="false">5df1eef4fd22420001498d5d</guid><dc:creator><![CDATA[xiaohai]]></dc:creator><pubDate>Sat, 14 Dec 2019 07:05:23 GMT</pubDate><media:content url="https://xiaohai.co/content/images/2019/12/zigbee2mqtt.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id>&#x8D77;&#x56E0;</h2>
<img src="https://xiaohai.co/content/images/2019/12/zigbee2mqtt.jpg" alt="&#x81EA;&#x5236;ZigBee&#x7F51;&#x5173;"><p>&#x7531;&#x4E8E;&#x5BB6;&#x4E2D;&#x591A;&#x4E2A;&#x5C0F;&#x7C73;ZigBee&#x8BBE;&#x5907;&#xFF0C;&#x6BCF;&#x6B21;&#x7684;&#x64CD;&#x4F5C;&#x90FD;&#x4F1A;&#x6709;&#x65E5;&#x5FD7;&#x8BB0;&#x5F55;&#xFF0C;&#x5E76;&#x4E14;&#x5C0F;&#x7C73;&#x53EF;&#x4EE5;&#x8BFB;&#x53D6;&#x5230;&#xFF08;&#x53EF;&#x53C2;&#x8003;2019&#x5E74;&#x521D;&#x7C73;&#x5BB6;APP&#x4E2D;&#x4E2A;&#x4EBA;&#x5E74;&#x5EA6;&#x62A5;&#x544A;&#xFF09;&#xFF0C;&#x6240;&#x4EE5;&#x840C;&#x751F;&#x4E86;&#x81EA;&#x5EFA;ZigBee&#x7F51;&#x5173;&#xFF0C;&#x5C06;&#x6240;&#x6709;&#x6570;&#x636E;&#x672C;&#x5730;&#x5316;&#x3002;</p>
<p>2019&#x5E74;11&#x6708;&#x5076;&#x7136;&#x53D1;&#x73B0;&#x4E00;&#x4E2A;&#x5F00;&#x6E90;&#x9879;&#x76EE; <a href="https://github.com/smarthomefans/z2m_partner?ref=xiaohai.co">z2m_partner</a> &#x53EF;&#x81EA;&#x884C;&#x642D;&#x5EFA;ZigBee&#x7F51;&#x5173;</p>
<p>&#x5728;&#x9879;&#x76EE;&#x5B9E;&#x65BD;&#x8FC7;&#x7A0B;&#x4E2D;&#x9047;&#x5230;&#x5F88;&#x591A;&#x7231;&#x597D;&#x8005;&#x7684;&#x65E0;&#x79C1;&#x6307;&#x5BFC; &#x7279;&#x6B64;&#x611F;&#x8C22;@&#x8001;&#x5996; @&#x4E00;&#x53EA;&#x83DC;&#x9E21;&#x3010;Debian&#x3011;@&#x76D0;&#x5DF4; @Huex</p>
<h2 id>&#x76EE;&#x7684;</h2>
<p>&#x4F7F;&#x7528;<a href="https://github.com/smarthomefans/z2m_partner?ref=xiaohai.co">z2m_partner</a>&#x9879;&#x76EE;&#x5E76;&#x81EA;&#x5DF1;&#x710A;&#x63A5;&#x5143;&#x4EF6; &#xFF0C;&#x901A;&#x8FC7;<a href="https://www.zigbee2mqtt.io/?ref=xiaohai.co">zigbee2mqtt</a>&#xFF0C;&#x6700;&#x7EC8;&#x5C06;ZigBee&#x8BBE;&#x5907;&#x63A5;&#x5165;&#x5230;<a href="https://nodered.org/?ref=xiaohai.co">Node-RED</a>&#x4E2D;&#x3002;</p>
<p>&#x73AF;&#x5883;&#x8BF4;&#x660E;&#xFF1A;&#x4F7F;&#x7528;z2m_partner ver 2.1&#xFF0C;zigbee2mqtt ver 1.7.1&#xFF0C;Node-RED ver 1.0.3</p>
<h2 id>&#x5236;&#x4F5C;&#x786C;&#x4EF6;</h2>
<p>z2m_parther&#x5F00;&#x6E90;&#x4E86;&#x5B8C;&#x6574;pcb&#xFF0C;&#x6240;&#x4EE5;&#x6211;&#x4EEC;&#x53EA;&#x9700;&#x8981;&#x505A;&#x6210;&#x7535;&#x8DEF;&#x677F;&#xFF0C;&#x5E76;&#x710A;&#x63A5;&#x76F8;&#x5E94;&#x7684;&#x5143;&#x4EF6;&#x3002;</p>
<h3 id="pcb">PCB&#x6253;&#x677F;</h3>
<p>&#x4E2A;&#x4EBA;&#x4F7F;&#x7528;&#x4E86;&#x5609;&#x7ACB;&#x521B;&#x8FDB;&#x884C;&#x6253;&#x677F;&#xFF0C;&#x9996;&#x5148;&#x5B98;&#x7F51;&#x4E0B;&#x8F7D;&#x5609;&#x7ACB;&#x521B;&#x52A9;&#x624B;&#x3002;</p>
<p>&#x5C06;&#x9879;&#x76EE;&#x4E2D;project/gerber&#x76EE;&#x5F55;&#x6253;&#x5305;&#x4E3A;zip/rar&#x683C;&#x5F0F;</p>
<p>&#x5C06;zip/rar&#x6587;&#x4EF6;&#x62D6;&#x5165;&#x52A9;&#x624B;&#x76F8;&#x5E94;&#x4F4D;&#x7F6E;</p>
<p>&#x677F;&#x5B50;&#x539A;&#x5EA6;&#x9009;&#x4E3A;1.0&#xFF0C;&#x5176;&#x4ED6;&#x9009;&#x9879;&#x9ED8;&#x8BA4;&#xFF0C;&#x51E1;&#x662F;&#x6709;&#x4E0D;&#x9700;&#x8981;&#x7684;&#x9009;&#x9879;&#x4E00;&#x5F8B;&#x52FE;&#x9009;&#x4E0D;&#x9700;&#x8981;&#x3002;</p>
<p>&#x677F;&#x5B50;&#x6570;&#x91CF;&#x6309;&#x4E2A;&#x4EBA;&#x9700;&#x6C42;&#x6765;&#xFF0C;&#x63A8;&#x8350;&#x9009;&#x62E9;5&#x7247;/5&#x5143;&#x5305;&#x90AE;&#x3002;</p>
<h3 id>&#x5143;&#x4EF6;&#x91C7;&#x8D2D;</h3>
<p>&#x5728;&#x5236;&#x4F5C;PCB&#x7684;&#x540C;&#x65F6;&#x53EF;&#x4EE5;&#x91C7;&#x8D2D;&#x5143;&#x4EF6;&#xFF0C;&#x672C;&#x6587;&#x4F7F;&#x7528;&#x7ACB;&#x521B;&#x5546;&#x57CE;&#x91C7;&#x8D2D;&#xFF0C;bom&#x53EF;&#x5728;z2m_parther&#x9879;&#x76EE;&#x4E2D;project/bom&#x770B;&#x5230;&#x3002;</p>
<table>
<thead>
<tr>
<th>&#x5546;&#x54C1;&#x7F16;&#x53F7;</th>
<th>&#x540D;&#x79F0;</th>
<th>&#x5C01;&#x88C5;&#x89C4;&#x683C;</th>
<th>&#x6570;&#x91CF;</th>
</tr>
</thead>
<tbody>
<tr>
<td>C26000</td>
<td>5.1K&#x3A9; &#xB1;5%</td>
<td>0603</td>
<td>2</td>
</tr>
<tr>
<td>C181158</td>
<td>S8050</td>
<td>SOT-23(SOT-23-3)</td>
<td>2</td>
</tr>
<tr>
<td>C149620</td>
<td>100nF(104) &#xB1;10% 50V</td>
<td>0603</td>
<td>10</td>
</tr>
<tr>
<td>C22790</td>
<td>12K&#x3A9; &#xB1;1%</td>
<td>0603</td>
<td>2</td>
</tr>
<tr>
<td>C369933</td>
<td>AMS1117-3.3</td>
<td>SOT-223</td>
<td>1</td>
</tr>
<tr>
<td>C385912</td>
<td>0&#x3A9; &#xB1;1%</td>
<td>0402</td>
<td>1</td>
</tr>
<tr>
<td>C221895</td>
<td>&#x8F7B;&#x89E6;&#x5F00;&#x5173;4.2mm*3.2mm&#xFF0C;400gf</td>
<td>4.2*3.2mm</td>
<td>1</td>
</tr>
<tr>
<td>C17313</td>
<td>0.5A 15V &#x81EA;&#x6062;&#x590D;&#x4FDD;&#x9669;&#x4E1D;</td>
<td>1812</td>
<td>1</td>
</tr>
<tr>
<td>C6521</td>
<td>CD4052BM96</td>
<td>SOIC-16_150mil</td>
<td>1</td>
</tr>
<tr>
<td>C113518</td>
<td>SN74LVC1G66DCKR</td>
<td>SC-70-5</td>
<td>2</td>
</tr>
<tr>
<td>C128257</td>
<td>10uF(106) &#xB1;10% 16V</td>
<td>CASE-B_3528</td>
<td>2</td>
</tr>
<tr>
<td>C84681</td>
<td>CH340C</td>
<td>SOP-16_150mil</td>
<td>1</td>
</tr>
<tr>
<td>C165948</td>
<td>TYPE-C-31-M-12 &#x6BCD;&#x5EA7; 12P/16P &#x8D34;&#x7247;</td>
<td>8.94*7.3mm</td>
<td>1</td>
</tr>
<tr>
<td>C81770</td>
<td>ESP-WROOM-02</td>
<td>QFN</td>
<td>1</td>
</tr>
<tr>
<td>C15401</td>
<td>10K&#x3A9; &#xB1;5%</td>
<td>0603</td>
<td>8</td>
</tr>
<tr>
<td>C108551</td>
<td>E18-MS1PA1-IPX CC2530&#x82AF;&#x7247;</td>
<td>SMD</td>
<td>1</td>
</tr>
<tr>
<td>C221896</td>
<td>PTS810SJK250SMTRLFS</td>
<td>SMD</td>
<td>1</td>
</tr>
</tbody>
</table>
<p>&#x6CE8;1&#xFF1A;&#x7531;&#x4E8E;ZigBee&#x82AF;&#x7247;&#x4E0D;&#x542B;&#x5929;&#x7EBF;&#xFF0C;&#x6240;&#x4EE5;&#x9700;&#x53E6;&#x5916;&#x91C7;&#x8D2D;2.4g&#x5929;&#x7EBF;&#xFF0C;&#x4EE5;&#x4E0A;&#x5217;&#x8868;&#x4E2D;&#x4E0D;&#x542B;&#x5929;&#x7EBF;&#x3002;</p>
<p>&#x6CE8;2&#xFF1A;&#x5546;&#x54C1;&#x7F16;&#x53F7;&#x5B58;&#x5728;&#x6CE2;&#x52A8;&#xFF0C;&#x4EE5;&#x4E0A;&#x6570;&#x636E;&#x91C7;&#x96C6;&#x4E3A;2019-12-12&#x540E;&#x7EED;&#x4E0D;&#x4F1A;&#x7EF4;&#x62A4;&#xFF01;</p>
<h3 id>&#x710A;&#x63A5;&#x5143;&#x4EF6;</h3>
<p>&#x7531;&#x4E8E;&#x672C;&#x4EBA;&#x6280;&#x672F;&#x592A;&#x83DC;&#xFF0C;&#x710A;&#x574F;&#x4E86;&#x4E00;&#x5806;&#x5143;&#x4EF6;&#xFF0C;&#x603B;&#x7ED3;&#x4E86;&#x51E0;&#x70B9;&#x7ECF;&#x9A8C;&#xFF0C;&#x8001;&#x624B;&#x7565;&#x8FC7;&#x5427;&#x3002;</p>
<p>&#x52A9;&#x710A;&#x5242;&#xFF0C;&#x548C;&#x4F4E;&#x6E29;&#x710A;&#x9521;&#x4E1D;&#x662F;&#x5FC5;&#x5907;&#x7684;&#xFF0C;&#x70D9;&#x94C1;&#x5934;&#x9009;&#x7EC6;&#x4E00;&#x70B9;&#x3002;</p>
<p>&#x76F8;&#x4FE1;&#x5728;&#x4E0D;&#x61C8;&#x7684;&#x52AA;&#x529B;&#x4E0B;&#xFF0C;&#x4E00;&#x5B9A;&#x53EF;&#x4EE5;&#x6210;&#x529F;&#x3002;</p>
<h3 id>&#x5237;&#x5199;&#x786C;&#x4EF6;</h3>
<p>type-c&#x94FE;&#x63A5;&#x5230;&#x7535;&#x8111;</p>
<p>ESP Firmware &#x9009;&#x62E9; firmware/bin/espFW/ser2net.bin</p>
<p>CClib Firmware &#x9009;&#x62E9; firmware/bin/espFW/cclib.bin</p>
<p>Zigbee Firmware &#x9009;&#x62E9; firmware/bin/zigbeeFW/normal_21db/CC2530ZNP-Prod.hex</p>
<p>ssid&#x586B;&#x5199;WiFi&#x540D;&#xFF0C;passwd&#x586B;&#x5199;WiFi&#x5BC6;&#x7801;&#xFF0C;hostname&#x586B;&#x5199;z2mp&#xFF0C;tcp port&#x586B;&#x5199;8880</p>
<p>&#x6700;&#x540E;&#x70B9;&#x51FB;Flash&#x5217;All&#x9009;&#x9879;&#xFF0C;&#x7EA6;20&#x5206;&#x949F;&#x53EF;&#x4EE5;&#x5B8C;&#x6210;&#x5237;&#x673A;</p>
<h2 id>&#x8F6F;&#x4EF6;&#x914D;&#x7F6E;</h2>
<p>&#x7531;&#x4E8E;&#x4E2A;&#x4EBA;&#x4F7F;&#x7528;root&#x8D26;&#x53F7;&#xFF0C;&#x76F8;&#x5173;&#x547D;&#x4EE4;&#x64CD;&#x4F5C;&#x4F1A;&#x6709;&#x4E9B;&#x51FA;&#x5165;&#xFF0C;Node-RED&#x5B89;&#x88C5;&#x4E0D;&#x5728;&#x672C;&#x6587;&#x8303;&#x56F4;&#x5185;&#x3002;</p>
<h3 id="zigbee2mqtt">&#x642D;&#x5EFA;zigbee2mqtt&#x73AF;&#x5883;</h3>
<p>&#x672C;&#x6587;&#x4F7F;&#x7528;&#x865A;&#x62DF;&#x73AF;&#x5883;&#xFF0C;&#x5176;&#x4ED6;&#x5B89;&#x88C5;&#x5F62;&#x5F0F;&#x4E0D;&#x5728;&#x672C;&#x6587;&#x8303;&#x56F4;&#x4E4B;&#x5185;&#xFF0C;&#x53EF;&#x53C2;&#x8003;&#x5B98;&#x65B9;&#x7F51;&#x7AD9; <a href="https://www.zigbee2mqtt.io/?ref=xiaohai.co">zigbee2mqtt&#x5B98;&#x7F51;</a></p>
<h4 id="zigbee2mqtt">&#x5B89;&#x88C5;zigbee2mqtt</h4>
<pre><code># &#x514B;&#x9686;&#x4ED3;&#x5E93;&#x5230;&#x672C;&#x5730;
git clone https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt

# &#x8FDB;&#x5165;&#x76EE;&#x5F55;
cd /opt/zigbee2mqtt

# &#x5B89;&#x88C5;Python env
python3 -m venv .

# &#x6FC0;&#x6D3B;&#x73AF;&#x5883;
source /opt/zigbee2mqtt/bin/activate

# &#x5347;&#x7EA7;  pip, wheel, setuptools
pip install --upgrade pip wheel setuptools

# &#x5B89;&#x88C5;node env
pip install nodeenv

# &#x521D;&#x59CB;&#x5316;node&#x73AF;&#x5883;
nodeenv -p -n 10.15.1

# &#x5B89;&#x88C5;&#x4F9D;&#x8D56;&#x5173;&#x7CFB;, &#x82E5;&#x975E;root&#x7528;&#x6237; &#x53BB;&#x6389;sudo
sudo npm i

# &#x505C;&#x7528;&#x73AF;&#x5883;
deactivate
</code></pre>
<h4 id="zigbee2mqtt">&#x542F;&#x52A8;zigbee2mqtt</h4>
<pre><code># &#x8FDB;&#x5165;&#x76EE;&#x5F55;
cd /opt/zigbee2mqtt

# &#x6FC0;&#x6D3B;&#x73AF;&#x5883;
source /opt/zigbee2mqtt/bin/activate

# &#x542F;&#x52A8;,&#x82E5;&#x975E;root&#x7528;&#x6237;&#x53BB;&#x6389;sudo
sudo npm start

# ctrl + c &#x9000;&#x53BB;&#x7A0B;&#x5E8F;

# &#x505C;&#x7528;&#x73AF;&#x5883;
deactivate
</code></pre>
<h4 id>&#x7CFB;&#x7EDF;&#x670D;&#x52A1;&#x5B88;&#x62A4;&#x8FD0;&#x884C;(&#x53EF;&#x9009;)</h4>
<p>&#x8981;&#x5C06;zigbee2mqtt&#x4F5C;&#x4E3A;&#x540E;&#x53F0;&#x7A0B;&#x5E8F;&#x8FD0;&#x884C; &#x5E76;&#x5728;&#x5F00;&#x673A;&#x542F;&#x52A8;&#x65F6;&#x81EA;&#x52A8;&#x542F;&#x52A8;&#xFF0C;&#x9700;&#x4F7F;&#x7528;systemctl&#x8FD0;&#x884C;zigbee2mqtt</p>
<pre><code># &#x521B;&#x5EFA;zigbee2mqtt&#x7684;systemctl&#x6587;&#x4EF6;
sudo nano /etc/systemd/system/zigbee2mqtt.service
</code></pre>
<p>&#x6DFB;&#x52A0;&#x4EE5;&#x4E0B;&#x5185;&#x5BB9;&#x5230;zigbee2mqtt.service&#x6587;&#x4EF6;&#xFF0C;&#x9700;&#x6CE8;&#x610F; &#x82E5;&#x975E;root&#x7528;&#x6237;&#x9700;&#x4FEE;&#x6539;User&#xFF0C;&#x53CA;&#x53BB;&#x6389;ExecStart&#x4E2D;&#x7684;sudo</p>
<pre><code>[Unit]
Description=zigbee2mqtt
After=network.target

[Service]
ExecStart=/bin/bash -c &apos;source /opt/zigbee2mqtt/bin/activate; sudo /opt/zigbee2mqtt/bin/npm start&apos;
WorkingDirectory=/opt/zigbee2mqtt
StandardOutput=inherit
StandardError=inherit
Restart=always
User=root

[Install]
WantedBy=multi-user.target
</code></pre>
<p>&#x4F7F;&#x7528;&#x65B9;&#x6CD5;</p>
<pre><code># &#x505C;&#x6B62;zigbee2mqtt&#x670D;&#x52A1;
systemctl stop zigbee2mqtt

# &#x542F;&#x52A8;zigbee2mqtt&#x670D;&#x52A1;
systemctl start zigbee2mqtt

# &#x67E5;&#x770B;zigbee2mqtt&#x670D;&#x52A1;&#x72B6;&#x6001;
systemctl status zigbee2mqtt

</code></pre>
<h4 id="zigbee2mqtt">zigbee2mqtt&#x914D;&#x7F6E;&#x6587;&#x4EF6;</h4>
<p>&#x5F3A;&#x70C8;&#x5EFA;&#x8BAE;&#x53C2;&#x8003;&#x5B98;&#x65B9;&#x6587;&#x6863;&#xFF0C;&#x4EE5;&#x4E0B;&#x4E3A;2019&#x5E74;12&#x6708;12&#x65E5;&#x8F6C;&#x8F7D;&#xFF0C;&#x4EC5;&#x4F9B;&#x53C2;&#x8003;&#x4EE5;&#x5B98;&#x65B9;&#x4E3A;&#x51C6;&#x3002;</p>
<pre><code># Required: Home Assistant integration (MQTT discovery) (default: false)
homeassistant: false

# Required: allow new devices to join.
# WARNING: Disable this after all devices have been paired! (default: false)
permit_join: true

# Required: MQTT settings
mqtt:
  # Required: MQTT base topic for zigbee2mqtt MQTT messages
  base_topic: zigbee2mqtt
  # Required: MQTT server URL (use mqtts:// for SSL/TLS connection)
  server: &apos;mqtt://localhost:1883&apos;
  # Optional: absolute path to SSL/TLS certificate of CA used to sign server and client certificates (default: nothing)
  ca: &apos;/etc/ssl/mqtt-ca.crt&apos;
  # Optional: absolute paths to SSL/TLS key and certificate for client-authentication (default: nothing)
  key: &apos;/etc/ssl/mqtt-client.key&apos;
  cert: &apos;/etc/ssl/mqtt-client.crt&apos;
  # Optional: MQTT server authentication user (default: nothing)
  user: my_user
  # Optional: MQTT server authentication password (default: nothing)
  password: my_password
  # Optional: MQTT client ID (default: nothing)
  client_id: &apos;MY_CLIENT_ID&apos;
  # Optional: disable self-signed SSL certificates (default: false)
  reject_unauthorized: true
  # Optional: Include device information to mqtt messages (default: false)
  include_device_information: true

# Required: serial settings
serial:
  # Required: location of the adapter (e.g. CC2531).
  # To autodetect the port, set &apos;port: null&apos;.
  port: /dev/ttyACM0
  # Optional: disable LED of the adapter if supported (default: false)
  disable_led: false

# Optional: ban devices from the network (by ieeeAddr) (default: empty)
ban:
  - &apos;0x000b57fffec6a5b2&apos;

# Optional: whitelist devices from the network (by ieeeAddr)
# Note that when devices are whitelisted, all device which are not whitelisted will be removed from the network.
# (default: empty)
whitelist:
  - &apos;0x000b57fffec6a5b3&apos;

# Optional: advanced settings
advanced:
  # Optional: ZigBee pan ID (default: shown below)
  pan_id: 0x1a62
  # Optional: Zigbee extended pan ID (default: shown below)
  ext_pan_id: [0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD]
  # Optional: ZigBee channel, changing requires re-pairing of all devices. (Note: use a ZLL channel: 11, 15, 20, or 25 to avoid Problems)
  # (default: 11)
  channel: 11
  # Optional: state caching, MQTT message payload will contain all attributes, not only changed ones.
  # Has to be true when integrating via Home Assistant (default: true)
  cache_state: true
  # Optional: Logging level, options: debug, info, warn, error (default: info)
  log_level: info
  # Optional: Location of log directory (default: shown below)
  log_directory: data/log/%TIMESTAMP%
  # Optional: Baudrate for serial port (default: shown below)
  baudrate: 115200
  # Optional: RTS / CTS Hardware Flow Control for serial port (default: true)
  rtscts: true
  # Optional: soft reset ZNP after timeout (in seconds); 0 is disabled (default: 0)
  soft_reset_timeout: 0
  # Optional: network encryption key, will improve security (Note: changing requires repairing of all devices) (default: shown below)
  network_key: [1, 3, 5, 7, 9, 11, 13, 15, 0, 2, 4, 6, 8, 10, 12, 13]
  # Optional: Add a last_seen attribute to MQTT messages, contains date/time of last Zigbee message
  # possible values are: disable (default), ISO_8601, ISO_8601_local, epoch (default: disable)
  last_seen: &apos;disable&apos;
  # Optional: Add an elapsed attribute to MQTT messages, contains milliseconds since the previous msg (default: false)
  elapsed: false
  # Optional: Availability timeout in seconds, disabled by default (0).
  # When enabled, devices will be checked if they are still online.
  # Only AC powered routers are checked for availability. (default: 0)
  availability_timeout: 0
  # Optional: Blacklist devices from being checked for availability (default: empty)
  availability_blacklist:
    - DEVICE_FRIENDLY_NAME
  # Optional: Enables report feature (see information -&gt; report for more details) (default: false)
  report: true
  # Optional: Home Assistant discovery topic (default: shown below)
  homeassistant_discovery_topic: &apos;homeassistant&apos;
  # Optional: Home Assistant status topic (default: shown below)
  homeassistant_status_topic: &apos;hass/status&apos;

# Optional: networkmap options
map_options:
  graphviz:
    # Optional: Colors to be used in the graphviz network map (default: shown below)
    colors:
      fill:
        enddevice: &apos;#fff8ce&apos;
        coordinator: &apos;#e04e5d&apos;
        router: &apos;#4ea3e0&apos;
      font:
        coordinator: &apos;#ffffff&apos;
        router: &apos;#ffffff&apos;
        enddevice: &apos;#000000&apos;
      line:
        active: &apos;#009900&apos;
        inactive: &apos;#994444&apos;

# Optional: Queue settings, useful when your zigbee stick get&apos;s
# unstable when executing many commands
queue:
  # Optional: Delay in ms between each command (default: shown below)
  delay: 250
  # Optional: Max no. of simultaneously running commands (default: shown below)
  simultaneously: 5

# Optional: Device specific options
device_options:
  # See &apos;Device specific configuration&apos; below
</code></pre>
<h3 id="socat">&#x642D;&#x5EFA;socat&#x73AF;&#x5883;</h3>
<p>&#x7531;&#x4E8E;zigbee2mqtt v1.7.1 &#x4E0D;&#x652F;&#x6301;tcp&#x5F62;&#x5F0F;&#x8FDE;&#x63A5;&#xFF0C;&#x9700;&#x4F7F;&#x7528;socat&#x5C06;tcp&#x8F6C;&#x53D1;&#x4E3A;&#x4E32;&#x53E3;&#x3002;</p>
<p>&#x636E;&#x8BF4;&#x540E;&#x7EED;&#x7248;&#x672C;&#x5C06;&#x76F4;&#x63A5;tcp&#x4E0D;&#x5728;&#x9700;&#x8981;&#x6B64;&#x6B65;&#x64CD;&#x4F5C;&#xFF0C;&#x8BF7;&#x5173;&#x6CE8;&#x7248;&#x672C;&#x53CA;&#x66F4;&#x65B0;&#x65E5;&#x5FD7;&#x3002;</p>
<pre><code># &#x542F;&#x52A8;
# &#x6309;&#x9700;&#x4FEE;&#x6539;link&#x53CA;tcp&#x8FDE;&#x63A5;&#x4FE1;&#x606F;
$ socat PTY,raw,echo=0,link=/tmp/ttyVUSB0 tcp:192.168.1.2:5000
</code></pre>
<h4 id>&#x7CFB;&#x7EDF;&#x670D;&#x52A1;&#x5B88;&#x62A4;&#x8FD0;&#x884C;(&#x53EF;&#x9009;)</h4>
<pre><code>[Unit]
Description=socat-vusb
After=network-online.target

[Service]
User=%i
ExecStart=/usr/bin/socat PTY,raw,echo=0,link=/tmp/ttyVUSB0 tcp:192.168.1.2:5000
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
</code></pre>
<h3 id="mqtt">&#x642D;&#x5EFA;MQTT&#x670D;&#x52A1;&#x5668;</h3>
<pre><code># &#x6DFB;&#x52A0;&#x6E90;&#x5230;&#x8F6F;&#x4EF6;&#x4ED3;&#x5E93;
sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa

# &#x66F4;&#x65B0;&#x8F6F;&#x4EF6;&#x4ED3;&#x5E93;&#x5217;&#x8868;
sudo apt-get update

# &#x5B89;&#x88C5;mosquitto
sudo apt-get install mosquitto
</code></pre>
<p>&#x8FD0;&#x884C;</p>
<pre><code># &#x67E5;&#x770B;&#x8FD0;&#x884C;&#x72B6;&#x6001;
sudo service mosquitto status

# &#x542F;&#x52A8;&#x670D;&#x52A1;
sudo service mosquitto start

# &#x505C;&#x6B62;&#x670D;&#x52A1;
sudo service mosquitto stop
</code></pre>
<h2 id="nodered">&#x6DFB;&#x52A0;Node-RED&#x8282;&#x70B9;</h2>
<p>&#x65B0;&#x5EFA;mqtt&#x8282;&#x70B9; topics(&#x4E3B;&#x9898;) &#x586B;&#x5199; <code>zigbee2mqtt/bridge/log</code> &#x5E76;&#x94FE;&#x63A5;debug&#x8282;&#x70B9;&#xFF0C;&#x5F53;&#x65B0;&#x8BBE;&#x5907;&#x8FDE;&#x63A5;/&#x89E3;&#x9664;&#x65F6;&#xFF0C;&#x4F1A;&#x6709;&#x65E5;&#x5FD7;&#x6253;&#x51FA;</p>
<p>&#x5B8C;&#x6574;topics&#x65B9;&#x6CD5;&#x53EF;&#x5728;&#x5B98;&#x7F51;&#x83B7;&#x53D6; <a href="https://www.zigbee2mqtt.io/information/mqtt_topics_and_message_structure.html?ref=xiaohai.co">MQTT topics and message structure</a></p>
<h2 id>&#x6DFB;&#x52A0;&#x8BBE;&#x5907;&#x81F3;&#x7F51;&#x5173;</h2>
<p>&#x5148;&#x4ECE;&#x7C73;&#x5BB6;&#x4E2D;&#x5220;&#x9664;&#x8BBE;&#x5907;&#xFF0C;&#x7136;&#x540E;&#x91CD;&#x7F6E;&#x8BBE;&#x5907;&#xFF0C;&#x5373;&#x53EF;&#x8FDE;&#x63A5;&#x5230;&#x65B0;&#x7F51;&#x5173;</p>
<p>&#x6CE8;&#xFF1A;&#x5982;&#x662F;&#x7535;&#x6C60;&#x8BBE;&#x5907;&#xFF0C;&#x8BF7;&#x6CE8;&#x610F;&#x7535;&#x91CF;&#xFF0C;&#x5B9E;&#x6D4B;&#x7535;&#x91CF;15%&#x65F6;&#xFF0C;&#x65E0;&#x6CD5;&#x914D;&#x5BF9;&#x65B0;&#x7F51;&#x5173;</p>
<h2 id>&#x83B7;&#x53D6;&#x8BBE;&#x5907;&#x72B6;&#x6001;</h2>
<p>&#x65B0;&#x5EFA;mqtt&#x8282;&#x70B9; topics(&#x4E3B;&#x9898;) &#x586B;&#x5199; <code>zigbee2mqtt/[FRIENDLY_NAME]</code></p>
<p>FRIENDLY_NAME &#x5728;&#x52A0;&#x5165;&#x7F51;&#x5173;&#x540E;&#xFF0C;&#x6709;&#x4E00;&#x4E32;0x&#x5F00;&#x5934;&#x7684;&#x5B57;&#x7B26;&#xFF0C;&#x5C31;&#x662F;FRIENDLY_NAME</p>
<p>&#x6CE8;1&#xFF1A;&#x9700;&#x5C06;mqtt&#x8282;&#x70B9;&#x8F93;&#x51FA;&#x6539;&#x4E3A;a parsed JSON object&#xFF0C;&#x9ED8;&#x8BA4;&#x4F1A;&#x6253;&#x5370;&#x51FA;&#x5B57;&#x7B26;&#x4E32;</p>
<p>&#x6CE8;2&#xFF1A;&#x82E5;&#x662F;&#x4F20;&#x611F;&#x5668;&#xFF0C;&#x6700;&#x597D;&#x6301;&#x4E45;&#x5316;&#x4FDD;&#x5B58;&#x6570;&#x636E;&#xFF0C;&#x56E0;&#x4E3A;&#x65E0;&#x6CD5;&#x4E3B;&#x52A8;&#x83B7;&#x53D6;&#x6570;&#x636E;</p>
<h2 id>&#x5199;&#x5728;&#x6700;&#x540E;</h2>
<p>&#x7531;&#x4E8E;Node-RED&#x63A5;&#x5165;&#x90E8;&#x5206;&#x6BD4;&#x8F83;&#x7B80;&#x5355;&#xFF0C;&#x6240;&#x4EE5;&#x53EA;&#x662F;&#x6982;&#x62EC;&#x63CF;&#x8FF0;&#x3002;</p>
<p>&#x5BF9;&#x4E8E;&#x8BBE;&#x5907;&#x7684;&#x8BBE;&#x5B9A;/&#x83B7;&#x53D6;&#x64CD;&#x4F5C; &#x53EF;&#x67E5;&#x770B; <a href="https://www.zigbee2mqtt.io/information/supported_devices.html?ref=xiaohai.co">Supported devices</a> &#x652F;&#x6301;&#x8BBE;&#x5907;&#x4E2D;&#x5BF9;&#x5E94;&#x7684;&#x8BBE;&#x5907;</p>
<p>&#x5BF9;&#x4E8E;&#x7CFB;&#x7EDF;&#x76F8;&#x5173;&#x8BBE;&#x7F6E; &#x53EF;&#x67E5;&#x770B;  <a href="https://www.zigbee2mqtt.io/information/mqtt_topics_and_message_structure.html?ref=xiaohai.co">MQTT topics and message structure</a></p>
<p>zigbee2mqtt &#x914D;&#x7F6E;&#x6587;&#x4EF6;configuration.yaml &#x4E2D; permit_join: true&#x662F;&#x5141;&#x8BB8;&#x6DFB;&#x52A0;&#x8BBE;&#x5907;&#xFF0C;&#x6CE8;&#x610F;&#x53CA;&#x65F6;&#x4FEE;&#x6539;&#x72B6;&#x6001;&#xFF0C;&#x907F;&#x514D;&#x4E71;&#x5165;&#x8BBE;&#x5907;&#x3002;</p>
<h2 id>&#x53C2;&#x8003;</h2>
<p>[1] <a href="https://github.com/smarthomefans/z2m_partner?ref=xiaohai.co">z2m_partner</a></p>
<p>[2] <a href="https://github.com/Koenkk/zigbee2mqtt?ref=xiaohai.co">zigbee2mqtt</a></p>
<p>[3] <a href="https://bbs.iobroker.cn/t/topic/882?ref=xiaohai.co">&#x81EA;&#x5DF1;&#x52A8;&#x624B;&#x505A;zigbee&#x7F51;&#x5173;&#xFF0C;&#x548C;&#x5C0F;&#x7C73;&#x7F51;&#x5173;&#x8BF4;&#x62DC;&#x62DC;</a></p>
<p>[4] <a href="https://bbs.iobroker.cn/t/topic/931?ref=xiaohai.co">zigbeeV2.0&#x7F51;&#x5173;&#x5237;&#x673A;&#x6559;&#x7A0B;</a></p>
<p>[5] <a href="https://github.com/Koenkk/zigbee2mqtt/issues/665?ref=xiaohai.co">Request: Support TCP Connections to CC2530</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Proxmark3 复制IC/ID卡]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h3 id>&#x73AF;&#x5883;</h3>
<p>&#x7CFB;&#x7EDF;: macOS 10.14.5</p>
<p>&#x786C;&#x4EF6;: Proxmark3 Easy</p>
<h3 id>&#x524D;&#x8A00;</h3>
<p>Proxmark3&#x662F;&#x4E00;&#x4E2A;&#x5F00;&#x6E90;RFID&#x55C5;&#x63A2;&#x8BFB;&#x53D6;&#x4EE5;&#x53CA;&#x514B;&#x9686;&#x7684;&#x5DE5;&#x5177;&#x3002;&#x672C;&#x6587;&#x4E3B;&#x8981;&#x8BB0;&#x5F55;&#x590D;&#x5236;IC / ID&#x5361;&#x3002;</p>
<h3 id="rfid">RFID&#x7B80;&#x4ECB;</h3>
<p>RFID&#xFF08;</p>]]></description><link>https://xiaohai.co/proxmark3-fu-zhi-ic-id-ka/</link><guid isPermaLink="false">5d8e30ebde3ea10001a8a0a1</guid><dc:creator><![CDATA[xiaohai]]></dc:creator><pubDate>Sun, 13 Oct 2019 05:06:53 GMT</pubDate><media:content url="https://xiaohai.co/content/images/2019/10/PM3-Easy.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h3 id>&#x73AF;&#x5883;</h3>
<img src="https://xiaohai.co/content/images/2019/10/PM3-Easy.jpg" alt="Proxmark3 &#x590D;&#x5236;IC/ID&#x5361;"><p>&#x7CFB;&#x7EDF;: macOS 10.14.5</p>
<p>&#x786C;&#x4EF6;: Proxmark3 Easy</p>
<h3 id>&#x524D;&#x8A00;</h3>
<p>Proxmark3&#x662F;&#x4E00;&#x4E2A;&#x5F00;&#x6E90;RFID&#x55C5;&#x63A2;&#x8BFB;&#x53D6;&#x4EE5;&#x53CA;&#x514B;&#x9686;&#x7684;&#x5DE5;&#x5177;&#x3002;&#x672C;&#x6587;&#x4E3B;&#x8981;&#x8BB0;&#x5F55;&#x590D;&#x5236;IC / ID&#x5361;&#x3002;</p>
<h3 id="rfid">RFID&#x7B80;&#x4ECB;</h3>
<p>RFID&#xFF08;Radio Frequency Identification&#xFF09;&#xFF0C;&#x4E2D;&#x6587;&#x7FFB;&#x8BD1;&#x4E3A;&#x5C04;&#x9891;&#x8BC6;&#x522B;&#xFF0C;&#x53C8;&#x79F0;&#x65E0;&#x7EBF;&#x5C04;&#x9891;&#x8BC6;&#x522B;&#xFF0C;&#x662F;&#x4E00;&#x79CD;&#x901A;&#x4FE1;&#x6280;&#x672F;&#xFF0C;&#x53EF;&#x901A;&#x8FC7;&#x65E0;&#x7EBF;&#x7535;&#x8BAF;&#x53F7;&#x8BC6;&#x522B;&#x7279;&#x5B9A;&#x76EE;&#x6807;&#x5E76;&#x8BFB;&#x5199;&#x76F8;&#x5173;&#x6570;&#x636E;&#xFF0C;&#x800C;&#x65E0;&#x9700;&#x8BC6;&#x522B;&#x7CFB;&#x7EDF;&#x4E0E;&#x7279;&#x5B9A;&#x76EE;&#x6807;&#x4E4B;&#x95F4;&#x5EFA;&#x7ACB;&#x673A;&#x68B0;&#x6216;&#x5149;&#x5B66;&#x63A5;&#x89E6;&#x3002; &#x76EE;&#x524D;RFID&#x6280;&#x672F;&#x5E94;&#x7528;&#x5F88;&#x5E7F;&#xFF0C;&#x5982;&#x56FE;&#x4E66;&#x9986;&#x3001;&#x95E8;&#x7981;&#x7CFB;&#x7EDF;&#x3001;&#x505C;&#x8F66;&#x573A;&#x7B49;&#xFF0C;&#x5B89;&#x5353;&#x624B;&#x673A;&#x4E0A;&#x5E38;&#x7528;&#x7684; NFC &#x6280;&#x672F;&#x5B9E;&#x9645;&#x4E0A;&#x4E5F;&#x662F; RFID&#x7684;&#x4E00;&#x4E2A;&#x5B50;&#x96C6;&#x3002;</p>
<p>RFID &#x6309;&#x7167;&#x5DE5;&#x4F5C;&#x9891;&#x7387;&#x7684;&#x4E0D;&#x540C;&#xFF0C;&#x53EF;&#x4EE5;&#x5206;&#x4E3A;&#x4F4E;&#x9891;&#xFF08;LF&#xFF09;&#x3001;&#x9AD8;&#x9891;&#xFF08;HF&#xFF09;&#x3001;&#x8D85;&#x9AD8;&#x9891;&#xFF08;UHF&#xFF09;&#x7B49;&#x4E0D;&#x540C;&#x79CD;&#x7C7B;&#x3002;&#x76EE;&#x524D;&#x56FD;&#x9645;&#x4E0A;&#x5E7F;&#x6CDB;&#x91C7;&#x7528;&#x7684;&#x9891;&#x7387;&#x5206;&#x5E03;&#x4E8E;4&#x79CD;&#x6CE2;&#x6BB5;&#xFF0C;&#x4F4E;&#x9891;&#xFF08;125KHz&#xFF09;&#x3001;&#x9AD8;&#x9891;&#xFF08;13.54MHz&#xFF09;&#x3001;&#x8D85;&#x9AD8;&#x9891;&#xFF08;850MHz&#xFF5E;910MHz&#xFF09;&#x548C;&#x5FAE;&#x6CE2;&#xFF08;2.45GHz&#xFF09;&#x3002;</p>
<h3 id>&#x5361;&#x7247;&#x7C7B;&#x578B;</h3>
<table>
<thead>
<tr>
<th>&#x7C7B;&#x578B;</th>
<th>&#x7B80;&#x79F0;</th>
<th>&#x9891;&#x7387;</th>
<th>&#x7279;&#x6027;</th>
</tr>
</thead>
<tbody>
<tr>
<td>Mifare S50</td>
<td>M1</td>
<td>&#x9AD8;&#x9891;</td>
<td>&#x6700;&#x5E38;&#x89C1;&#x7684;&#x5361;&#xFF0C;&#x6BCF;&#x5F20;&#x5361;&#x6709;&#x72EC;&#x4E00;&#x65E0;&#x4E8C;&#x7684;UID&#x53F7;&#xFF0C;&#x53EF;&#x4FDD;&#x5B58;&#x4FEE;&#x6539;&#x6570;&#x636E;,&#x5E38;&#x89C1;&#x5B66;&#x751F;&#x5361;&#xFF0C;&#x996D;&#x5361;&#xFF0C;&#x516C;&#x4EA4;&#x5361;&#xFF0C;&#x95E8;&#x7981;&#x5361;</td>
</tr>
<tr>
<td>Mifare UltraLight</td>
<td>M0</td>
<td>&#x9AD8;&#x9891;</td>
<td>&#x4F4E;&#x6210;&#x672C;&#x5361;&#xFF0C;&#x51FA;&#x5382;&#x56FA;&#x5316;UID&#xFF0C;&#x53EF;&#x50A8;&#x5B58;&#x4FEE;&#x6539;&#x6570;&#x636E;&#xFF0C;&#x5E38;&#x89C1;&#x5730;&#x94C1;&#x5361;&#xFF0C;&#x516C;&#x4EA4;&#x5361;</td>
</tr>
<tr>
<td>Mifare UID</td>
<td>UID</td>
<td>&#x9AD8;&#x9891;</td>
<td>M1&#x5361;&#x7684;&#x53D8;&#x5F02;&#x7248;&#x672C;&#xFF0C;&#x53EF;&#x4FEE;&#x6539;UID&#xFF0C;&#x56FD;&#x5916;&#x53EB;&#x505A;&#x4E2D;&#x56FD;&#x9B54;&#x672F;&#x5361;&#xFF0C;&#x53EF;&#x4EE5;&#x7528;&#x6765;&#x514B;&#x9686;M1 S50&#x7684;&#x6570;&#x636E;</td>
</tr>
<tr>
<td>EM4XX</td>
<td>ID</td>
<td>&#x4F4E;&#x9891;</td>
<td>&#x5E38;&#x7528;&#x56FA;&#x5316;ID&#x5361;&#xFF0C;&#x51FA;&#x5382;&#x56FA;&#x5316;ID&#xFF0C;&#x53EA;&#x80FD;&#x8BFB;&#x4E0D;&#x80FD;&#x5199;&#xFF08;&#x4F4E;&#x6210;&#x672C;&#x95E8;&#x7981;&#x5361;&#xFF0C;&#x5C0F;&#x533A;&#x95E8;&#x7981;&#x5361;&#xFF0C;&#x505C;&#x8F66;&#x573A;&#x95E8;&#x7981;&#x5361;&#xFF09;</td>
</tr>
<tr>
<td>T5577</td>
<td>&#x53EF;&#x4FEE;&#x6539;ID</td>
<td>&#x4F4E;&#x9891;</td>
<td>&#x53EF;&#x7528;&#x6765;&#x514B;&#x9686;ID&#x5361;&#xFF0C;&#x51FA;&#x5382;&#x4E3A;&#x7A7A;&#x5361;&#xFF0C;&#x5185;&#x6709;&#x6247;&#x533A;&#x4E5F;&#x53EF;&#x5B58;&#x6570;&#x636E;&#xFF0C;&#x4E2A;&#x522B;&#x6247;&#x533A;&#x53EF;&#x8BBE;&#x7F6E;&#x5BC6;&#x7801;</td>
</tr>
<tr>
<td>HID Prox&#x2161;</td>
<td>HID</td>
<td>&#x4F4E;&#x9891;</td>
<td>&#x7F8E;&#x56FD;&#x5E38;&#x7528;&#x7684;&#x4F4E;&#x9891;&#x5361;&#xFF0C;&#x53EF;&#x64E6;&#x5199;&#xFF0C;&#x4E0D;&#x4E0E;&#x5176;&#x4ED6;&#x5361;&#x901A;&#x7528;</td>
</tr>
</tbody>
</table>
<h4 id="m1">M1&#x5361;</h4>
<p>M1&#x5361;&#x5206;&#x4E3A;16&#x4E2A;&#x6247;&#x533A;&#xFF0C;&#x6BCF;&#x4E2A;&#x6247;&#x533A;4&#x5757;&#xFF08;&#x5757;0&#xFF5E;3&#xFF09;&#xFF0C;&#x5171;64&#x5757;&#xFF0C;&#x6309;&#x5757;&#x53F7;&#x7F16;&#x5740;&#x4E3A;0&#xFF5E;63&#x3002;&#x7B2C;0&#x6247;&#x533A;&#x7684;&#x5757;0&#xFF08;&#x5373;&#x7EDD;&#x5BF9;&#x5730;&#x5740;0&#x5757;&#xFF09;&#x7528;&#x4E8E;&#x5B58;&#x653E;&#x5382;&#x5546;&#x4EE3;&#x7801;&#xFF0C;&#x5DF2;&#x7ECF;&#x56FA;&#x5316;&#xFF0C;&#x4E0D;&#x53EF;&#x66F4;&#x6539;&#x3002;&#x5176;&#x4ED6;&#x5404;&#x6247;&#x533A;&#x7684;&#x5757;0&#x3001;&#x5757;1&#x3001;&#x5757;2&#x4E3A;&#x6570;&#x636E;&#x5757;&#xFF0C;&#x7528;&#x4E8E;&#x5B58;&#x8D2E;&#x6570;&#x636E;&#xFF1B;&#x5757;3&#x4E3A;&#x63A7;&#x5236;&#x5757;&#xFF0C;&#x5B58;&#x653E;&#x5BC6;&#x7801;A&#x3001;&#x5B58;&#x53D6;&#x63A7;&#x5236;&#x3001;&#x5BC6;&#x7801;B&#x3002;&#x6BCF;&#x4E2A;&#x6247;&#x533A;&#x7684;&#x5BC6;&#x7801;&#x548C;&#x5B58;&#x53D6;&#x63A7;&#x5236;&#x90FD;&#x662F;&#x72EC;&#x7ACB;&#x7684;&#xFF0C;&#x53EF;&#x4EE5;&#x6839;&#x636E;&#x5B9E;&#x9645;&#x9700;&#x8981;&#x8BBE;&#x5B9A;&#x5404;&#x81EA;&#x7684;&#x5BC6;&#x7801;&#x53CA;&#x5B58;&#x53D6;&#x63A7;&#x5236;&#x3002;</p>
<h4 id="em4xx">EM4XX&#x5361;</h4>
<p>&#x6CA1;&#x6709;&#x4EC0;&#x4E48;&#x6570;&#x636E;&#x5B58;&#x50A8;&#x548C;&#x52A0;&#x5BC6;&#xFF0C;&#x53EA;&#x6709;&#x4E00;&#x4E2A;&#x7B80;&#x5355;&#x7684;5&#x5B57;&#x8282; EM TAG ID &#x6570;&#x636E;&#xFF0C;&#x5373;&#x8FD9;&#x5F20;&#x5361;&#x7684; ID&#x3002;</p>
<h3 id>&#x73AF;&#x5883;&#x914D;&#x7F6E;</h3>
<pre><code>brew tap proxmark/proxmark3
brew install proxmark3
</code></pre>
<h3 id>&#x8FDE;&#x63A5;&#x8BBE;&#x5907;</h3>
<pre><code>proxmark3 /dev/cu.usb****
</code></pre>
<p>cu.usb&#x66FF;&#x6362;&#x4E3A;&#x81EA;&#x5DF1;&#x8BBE;&#x5907;</p>
<p>&#x6D4B;&#x8BD5;&#x4E00;&#x4E0B;&#x7535;&#x538B;</p>
<pre><code>proxmark3&gt; hw tune
Measuring antenna characteristics, please wait.........
# LF antenna: 60.50 V @   125.00 kHz
# LF antenna: 64.07 V @   134.00 kHz
# LF optimal: 74.52 V @   129.03 kHz
# HF antenna: 19.39 V @    13.56 MHz
Displaying LF tuning graph. Divisor 89 is 134khz, 95 is 125khz.
</code></pre>
<h3 id="id">&#x590D;&#x5236;ID&#x5361;</h3>
<p>&#x5148;&#x641C;&#x7D22;&#x4F4E;&#x9891;&#x4FE1;&#x53F7;</p>
<pre><code>proxmark3&gt; lf search
*
*
EM410x pattern found:           
EM TAG ID      : 000053BC28 //ID&#x5361;&#x53F7;&#xFF0C;&#x8FD9;&#x4E2A;&#x6284;&#x4E0B;&#x6765;&#xFF0C;&#x5982;&#x679C;&#x662F;HID&#x5361;&#x4F1A;&#x663E;&#x793A;HID
Unique TAG ID  : 000000280A
*
*

</code></pre>
<p>&#x6211;&#x4EEC;&#x8BFB;&#x53D6;&#x5230;&#x4E86;&#x5361;&#x7684;ID&#xFF0C;&#x7136;&#x540E;&#x62FF;&#x51FA;&#x7A7A;&#x767D;&#x5361;&#x653E;&#x5728;&#x4F4E;&#x9891;&#x533A;&#x5199;&#x5165;&#x3002;</p>
<pre><code>proxmark3&gt; lf em4x em410xwrite 000053BC28 1 64
Writing T55x7 tag with UID 0x000053BC28 (clock rate: 64)
</code></pre>
<p>&#x5199;&#x5B8C;&#x9A8C;&#x8BC1;&#x4E0B;&#x5361;id&#x662F;&#x5426;&#x4E00;&#x81F4;</p>
<pre><code>proxmark3&gt; lf search
*
*
EM410x pattern found:           
EM TAG ID      : 000053BC28

</code></pre>
<h3 id="ic">&#x590D;&#x5236;IC&#x5361;</h3>
<p>&#x641C;&#x7D22;&#x9AD8;&#x9891;&#x4FE1;&#x53F7;</p>
<pre><code>proxmark3&gt; hf search
          
 UID : f4 16 f1 ca           
ATQA : 00 04          
 SAK : 08 [2]          
TYPE : NXP MIFARE CLASSIC 1k | Plus 2k SL1          
proprietary non iso14443-4 card found, RATS not supported          
No chinese magic backdoor command detected          
Prng detection: WEAK          

Valid ISO14443A Tag Found - Quiting Search
</code></pre>
<h4 id="0">&#x83B7;&#x53D6;0&#x6247;&#x533A;&#x5BC6;&#x94A5;</h4>
<p>&#x5C1D;&#x8BD5;&#x626B;&#x63CF;&#x9ED8;&#x8BA4;&#x5BC6;&#x7801;</p>
<pre><code>proxmark3&gt; hf mf chk *1 ? t
No key specified, trying default keys
chk default key[ 0] ffffffffffff
chk default key[ 1] 000000000000
chk default key[ 2] a0a1a2a3a4a5
chk default key[ 3] b0b1b2b3b4b5
chk default key[ 4] aabbccddeeff
chk default key[ 5] 4d3a99c351dd
chk default key[ 6] 1a982c7e459a
chk default key[ 7] d3f7d3f7d3f7
chk default key[ 8] 714c5c886e97
chk default key[ 9] 587ee5f9350f
chk default key[10] a0478cc39091
chk default key[11] 533cb6c723f6
chk default key[12] 8fd0a4f256e9
--sector: 0, block:  3, key type:A, key count:13

*
*
*

--sector:15, block: 63, key type:B, key count:13
Found valid key:[ffffffffffff]
Found keys have been transferred to the emulator memory

</code></pre>
<p>&#x5982;&#x679C;&#x626B;&#x4E0D;&#x5230;&#x5C1D;&#x8BD5;PRNG&#x6F0F;&#x6D1E;&#x83B7;&#x53D6;0&#x6247;&#x533A;&#x5BC6;&#x94A5;</p>
<pre><code>proxmark3&gt; hf mf mifare
*
*
Key found:ffffffffffff

Found valid key:ffffffffffff
</code></pre>
<p>&#x68C0;&#x6D4B;0&#x6247;&#x533A;&#x79D8;&#x94A5;</p>
<pre><code>proxmark3&gt; hf mf chk 0 A ffffffffffff
chk key[ 0] ffffffffffff          

Found valid key:[0:A]ffffffffffff 

# &#x5982;&#x679C;&#x9519;&#x8BEF;&#x4F1A;&#x63D0;&#x793A;
No valid keys found.          
</code></pre>
<h4 id>&#x83B7;&#x5F97;&#x5168;&#x90E8;&#x79D8;&#x94A5;</h4>
<pre><code>proxmark3&gt; hf mf nested 1 0 A ffffffffffff
Testing known keys. Sector count=16
nested...
Time in nested: 4.330 (inf sec per key)

-----------------------------------------------
Iterations count: 0


|---|----------------|---|----------------|---|
|sec|key A           |res|key B           |res|
|---|----------------|---|----------------|---|
|000|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|001|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|002|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|003|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|004|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|005|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|006|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|007|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|008|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|009|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|010|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|011|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|012|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|013|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|014|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|015|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|---|----------------|---|----------------|---|
</code></pre>
<p>&#x63A5;&#x4E0B;&#x6765;&#x5BFC;&#x51FA;&#x5BC6;&#x94A5;</p>
<pre><code>proxmark3&gt; hf mf nested 1 0 A ffffffffffff d
Testing known keys. Sector count=16
nested...
Time in nested: 4.302 (inf sec per key)

*
*
*

Printing keys to binary file dumpkeys.bin...
</code></pre>
<p>&#x5BFC;&#x51FA;&#x540E;&#x4F1A;&#x5728;&#x76EE;&#x5F55;&#x751F;&#x6210;&#x4E00;&#x4E2A;&#x6587;&#x4EF6;dumpkeys.bin</p>
<h4 id>&#x5BFC;&#x51FA;&#x6570;&#x636E;</h4>
<pre><code>proxmark3&gt; hf mf dump
|-----------------------------------------|          
|------ Reading sector access bits...-----|          
|-----------------------------------------|   
*
*
*
Dumped 64 blocks (1024 bytes) to file dumpdata.bin          
</code></pre>
<p>&#x5BFC;&#x51FA;&#x540E;&#x4F1A;&#x5728;&#x76EE;&#x5F55;&#x751F;&#x6210;&#x4E00;&#x4E2A;&#x6587;&#x4EF6;dumpdata.bin</p>
<h4 id>&#x5199;&#x5361;</h4>
<p>&#x7531;&#x4E8E;proxmark3&#x4E0D;&#x80FD;&#x4F7F;&#x7528;bin&#x6587;&#x4EF6;&#xFF0C;&#x6240;&#x4EE5;&#x9700;&#x8981;&#x8F6C;&#x6362;&#x6210;eml&#x683C;&#x5F0F;</p>
<pre><code>proxmark3&gt; script run dumptoemul.lua
--- Executing: dumptoemul.lua, args &apos;&apos;
Wrote an emulator-dump to the file F416F1CA.eml

-----Finished
</code></pre>
<p>&#x4F1A;&#x751F;&#x6210;&#x4E00;&#x4E2A;&#x4EE5;uid&#x547D;&#x540D;&#x7684;eml&#x6587;&#x4EF6;</p>
<p>&#x5199;&#x5165;&#x7A7A;&#x767D;&#x5361;</p>
<pre><code>proxmark3&gt; hf mf cload F416F1CA
No chinese magic backdoor command detected          
Loading magic mifare 1K          
Loaded from file: F416F1CA.eml   
</code></pre>
<p>&#x5982;&#x679C;&#x662F;cuid&#x5361;&#xFF0C;&#x5219;&#x4E0D;&#x9700;&#x8981;&#x8F6C;&#x6362;eml</p>
<pre><code>proxmark3&gt; hf mf restore
Restoring dumpdata.bin to card          
Writing to block   0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00           
#db# WRITE BLOCK FINISHED          
isOk:01   
</code></pre>
<p>&#x5199;&#x5B8C;&#x9A8C;&#x8BC1;&#x4E0B;&#x5361;uid&#x662F;&#x5426;&#x4E00;&#x81F4;</p>
<pre><code>proxmark3&gt; hf search

 UID : f4 16 f1 ca      
</code></pre>
<h3 id>&#x5347;&#x7EA7;&#x56FA;&#x4EF6;</h3>
<p>&#x514B;&#x9686;&#x9879;&#x76EE;&#x5230;&#x672C;&#x5730; <a href="https://github.com/Proxmark/proxmark3?ref=xiaohai.co">https://github.com/Proxmark/proxmark3</a></p>
<p>&#x7136;&#x540E;&#x76F4;&#x63A5;&#x7F16;&#x8BD1;</p>
<pre><code>make clean &amp;&amp; make all
</code></pre>
<p>&#x5237;&#x673A;</p>
<pre><code>./client/flasher /dev/cu.usb###### -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf
</code></pre>
<p>&#x5237;&#x673A;&#x8FC7;&#x7A0B;</p>
<pre><code>Loading ELF file &apos;bootrom/obj/bootrom.elf&apos;...
Loading usable ELF segments:
0: V 0x00100000 P 0x00100000 (0x00000200-&gt;0x00000200) [R X] @0x94
1: V 0x00200000 P 0x00100200 (0x00000c84-&gt;0x00000c84) [R X] @0x298

Loading ELF file &apos;armsrc/obj/fullimage.elf&apos;...
Loading usable ELF segments:
0: V 0x00102000 P 0x00102000 (0x0002ea90-&gt;0x0002ea90) [R X] @0x94
1: V 0x00200000 P 0x00130a90 (0x000018e4-&gt;0x000018e4) [RW ] @0x2eb24
Note: Extending previous segment from 0x2ea90 to 0x30374 bytes

Waiting for Proxmark to appear on /dev/cu.usb###### .
 Found.
Entering bootloader...
(Press and release the button only to abort)
Waiting for Proxmark to appear on /dev/cu.usb###### ....
 Found.

Flashing...
Writing segments for file: bootrom/obj/bootrom.elf
 0x00100000..0x001001ff [0x200 / 1 blocks]. OK
 0x00100200..0x00100e83 [0xc84 / 7 blocks]....... OK

Writing segments for file: armsrc/obj/fullimage.elf
 0x00102000..0x00132373 [0x30374 / 386 blocks]..... OK

Resetting hardware...
All done.

Have a nice day!
</code></pre>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[自建NAS]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h1 id>&#x524D;&#x8A00;</h1>
<p>&#x4E4B;&#x524D;&#x7528;2&#x76D8;&#x4F4D;NAS&#xFF0C;&#x5BB9;&#x91CF;&#x51E0;&#x4E4E;&#x7528;&#x5149;&#x4E86;&#xFF0C;&#x6269;&#x5BB9;&#x4E5F;&#x4E0D;&#x5212;&#x7B97;&#x3002;&#x89C2;&#x671B;&#x4E86;&#x7FA4;&#x6656;&#x5F88;&#x4E45;&#xFF0C;&#x5948;&#x4F55;&#x592A;&#x8D35;&#x4E00;&#x76F4;&#x6CA1;&#x5241;&#x5F97;&#x4E0B;&#x53BB;&#x624B;&#x3002;&#x914D;&#x4E86;&#x4E00;&#x5957;</p>]]></description><link>https://xiaohai.co/zi-jian-nas/</link><guid isPermaLink="false">5d8b913bde3ea10001a8a05e</guid><dc:creator><![CDATA[xiaohai]]></dc:creator><pubDate>Thu, 26 Sep 2019 12:12:55 GMT</pubDate><media:content url="https://xiaohai.co/content/images/2019/10/IMG_3133.JPG" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h1 id>&#x524D;&#x8A00;</h1>
<img src="https://xiaohai.co/content/images/2019/10/IMG_3133.JPG" alt="&#x81EA;&#x5EFA;NAS"><p>&#x4E4B;&#x524D;&#x7528;2&#x76D8;&#x4F4D;NAS&#xFF0C;&#x5BB9;&#x91CF;&#x51E0;&#x4E4E;&#x7528;&#x5149;&#x4E86;&#xFF0C;&#x6269;&#x5BB9;&#x4E5F;&#x4E0D;&#x5212;&#x7B97;&#x3002;&#x89C2;&#x671B;&#x4E86;&#x7FA4;&#x6656;&#x5F88;&#x4E45;&#xFF0C;&#x5948;&#x4F55;&#x592A;&#x8D35;&#x4E00;&#x76F4;&#x6CA1;&#x5241;&#x5F97;&#x4E0B;&#x53BB;&#x624B;&#x3002;&#x914D;&#x4E86;&#x4E00;&#x5957;&#x6027;&#x4EF7;&#x6BD4;&#x6781;&#x9AD8;&#x7684;NAS&#x3002;&#x672C;&#x6587;&#x7B80;&#x5355;&#x8BB0;&#x5F55;&#x4E0B;&#x914D;&#x7F6E;&#x8FC7;&#x7A0B;&#x3002;</p>
<h1 id>&#x786C;&#x4EF6;&#x6E05;&#x5355;</h1>
<p>&#x4E3B;&#x677F;&#xFF1A;&#x534E;&#x64CE;J3455-ITX<br>
CPU&#xFF1A;&#x4E3B;&#x677F;&#x96C6;&#x6210;<br>
&#x7535;&#x6E90;&#xFF1A;DC-ATX&#x7535;&#x6E90;&#x6A21;&#x5757;<br>
&#x5185;&#x5B58;&#xFF1A;&#x7B14;&#x8BB0;&#x672C;2G<br>
&#x7F51;&#x5361;&#xFF1A;PIC-E&#x5343;&#x5146;&#xFF08;&#x65B0;&#x589E;&#xFF09;<br>
&#x673A;&#x7BB1;&#xFF1A;&#x4E54;&#x601D;&#x4F2F;V4<br>
&#x786C;&#x76D8;&#xFF1A;120SSD2&#xFF0C;HDD4<br>
&#x914D;&#x4EF6;&#xFF1A;&#x7ACB;&#x4EBA;&#x786C;&#x76D8;&#x67B6;<br>
&#x914D;&#x4EF6;&#xFF1A;M.2 &#x8F6C; 2&#x53E3;sata<br>
U&#x76D8;&#xFF1A;&#x4EFB;&#x610F;&#x5927;&#x5C0F;</p>
<h1 id>&#x786C;&#x4EF6;&#x8BF4;&#x660E;</h1>
<p>&#x5185;&#x5B58;&#xFF1A;&#x4E3B;&#x677F;&#x6311;&#x5185;&#x5B58;&#xFF0C;&#x636E;&#x8BF4;&#x4E09;&#x661F;&#x4F1A;&#x6709;&#x65E0;&#x6CD5;&#x70B9;&#x4EAE;&#x7684;&#x60C5;&#x51B5;&#xFF0C;&#x9891;&#x7387;DDR3 1333&#x4EE5;&#x4E0A;&#xFF0C;&#x8001;&#x7B14;&#x8BB0;&#x672C;1066&#x7684;&#x5C31;&#x653E;&#x5F03;&#x5427;<br>
&#x7535;&#x6E90;&#xFF1A;&#x65E0;&#x566A;&#x97F3;&#xFF0C;&#x5E76;&#x4E14;&#x5F88;&#x5C0F;&#xFF0C;&#x53EF;&#x4EE5;&#x8282;&#x7701;&#x7A7A;&#x95F4;<br>
&#x7F51;&#x5361;&#xFF1A;&#x7531;&#x4E8E;&#x6211;&#x51C6;&#x5907;&#x505A;&#x94FE;&#x8DEF;&#x805A;&#x5408;&#xFF0C;&#x6240;&#x4EE5;&#x591A;&#x52A0;&#x4E86;&#x4E00;&#x5757;&#x7F51;&#x5361;<br>
&#x673A;&#x7BB1;&#xFF1A;&#x4E54;&#x601D;&#x4F2F;&#x8FD9;&#x4E2A;&#x673A;&#x7BB1;&#x6709;&#x989C;&#x503C;&#x3002;&#x76F8;&#x6BD4;&#x4E00;&#x4E9B;NAS&#x673A;&#x7BB1;&#x8981;&#x5C0F;&#x5F88;&#x591A;&#xFF0C;&#x4E0D;&#x8FC7;&#x4E5F;&#x662F;&#x5F88;&#x5927;&#x3002;<br>
&#x786C;&#x76D8;&#xFF1A;SSD &#x4E3B;&#x8981;&#x7528;&#x6765;&#x505A;&#x8BFB;&#x5199;&#x7F13;&#x5B58;<br>
&#x914D;&#x4EF6;&#xFF1A;&#x673A;&#x7BB1;&#x81EA;&#x5E26;&#x786C;&#x76D8;&#x67B6;&#x5BB9;&#x91CF;&#x6709;&#x9650;&#xFF0C;&#x6211;&#x8981;&#x88C5;&#x7684;&#x786C;&#x76D8;&#x8F83;&#x591A;&#x3002;&#x6240;&#x4EE5;&#x914D;&#x7F6E;&#x4E86;&#x7B2C;&#x4E09;&#x65B9;&#x786C;&#x76D8;&#x67B6;<br>
&#x914D;&#x4EF6;&#xFF1A;&#x589E;&#x52A0;sata&#x63A5;&#x53E3;&#xFF0C;M.2&#x63A5;&#x53E3;&#x6700;&#x591A;&#x53EF;&#x6269;4&#x53E3;&#xFF0C;&#x4E0D;&#x8981;&#x7F51;&#x5361;&#x7684;&#x60C5;&#x51B5;PCI-E&#x8FD8;&#x80FD;&#x7EE7;&#x7EED;&#x6269;&#x5145;<br>
&#x7279;&#x522B;&#x8BF4;&#x660E;:&#x5C06;&#x7B2C;&#x4E09;&#x65B9;&#x786C;&#x76D8;&#x67B6;&#x5176;&#x4E2D;&#x4E00;&#x4FA7;&#x63B0;&#x5E73;,&#x673A;&#x7BB1;&#x81EA;&#x5E26;&#x786C;&#x76D8;&#x67B6;&#x5C31;&#x80FD;&#x88C5;&#x4E0A;&#x4E86;</p>
<h1 id>&#x786C;&#x4EF6;&#x7EC4;&#x88C5;</h1>
<p>&#x81EA;&#x5DF1;&#x60F3;&#x529E;&#x6CD5;&#xFF0C;&#x76F8;&#x4FE1;&#x4F60;&#x53EF;&#x4EE5;&#x4E00;&#x628A;&#x87BA;&#x4E1D;&#x5200;&#x521B;&#x9020;&#x5947;&#x8FF9;</p>
<h1 id>&#x8F6F;&#x4EF6;&#x5B89;&#x88C5;</h1>
<p>&#x6211;&#x91C7;&#x7528;&#x7684;&#x662F;USB&#x5F15;&#x5BFC; + &#x9ED1;&#x7FA4;&#x6656;&#xFF0C;&#x5982;&#x679C;&#x4F60;&#x60F3;&#x6298;&#x817E; &#x53EF;&#x4EE5;WIN10 + &#x865A;&#x62DF;&#x673A;&#x88C5;NAS&#x7CFB;&#x7EDF; + &#x8F6F;&#x8DEF;&#x7531;&#x4EC0;&#x4E48;&#x7684;&#xFF0C;&#x4E0D;&#x5728;&#x672C;&#x6587;&#x8303;&#x56F4;&#x5185;&#x3002;</p>
<h2 id>&#x5B89;&#x88C5;&#x7CFB;&#x7EDF;</h2>
<blockquote>
<p>&#x5B89;&#x88C5;&#x6559;&#x7A0B;,&#x53EF;<a href="https://www.nas2x.com/threads/dsm-6-1-6-15266-20180402.29/?ref=xiaohai.co">&#x53C2;&#x8003;&#x6B64;&#x6587;</a></p>
</blockquote>
<h2 id>&#x94FE;&#x8DEF;&#x805A;&#x5408;</h2>
<p>&#x5982;&#x679C;&#x7F51;&#x901F;&#x6CA1;&#x6709;&#x53E0;&#x52A0;,&#x8BBE;&#x7F6E;&#x4E3A; &#x201C;&#x5E73;&#x8861;XOR&#x201D;<br>
&#x90E8;&#x5206;&#x8DEF;&#x7531;&#x5668;&#x53EA;&#x6709;&#x7279;&#x5B9A;LAN&#x53E3;&#x652F;&#x6301;&#x94FE;&#x8DEF;&#x805A;&#x5408;</p>
<h2 id>&#x914D;&#x7F6E;&#x786C;&#x76D8;</h2>
<p>4HDD &#x7EC4; raid5 , 2SSD&#x505A;&#x7FA4;&#x6656;&#x7684;&#x8BFB;&#x5199;&#x7F13;&#x5B58;</p>
<h1 id>&#x6D4B;&#x8BD5;</h1>
<p>&#x529F;&#x8017;: &#x6301;&#x7EED;&#x8BFB;&#x5199;&#x65F6;45W&#xFF0C;&#x5E73;&#x65F6;31W&#xFF0C;&#x4EC5;&#x4F9B;&#x53C2;&#x8003;<br>
&#x6E29;&#x5EA6;: &#x65E0;&#x98CE;&#x6247;&#x7684;&#x60C5;&#x51B5;&#x4E0B; &#x786C;&#x76D8;&#x6E29;&#x5EA6;&#x5C0F;&#x4E8E;&#x7B49;&#x4E8E;45&#xB0;</p>
<h1 id>&#x603B;&#x7ED3;</h1>
<p>&#x7F3A;&#x70B9;: &#x786C;&#x76D8;&#x58F0;&#x8F83;&#x5927;,&#x673A;&#x7BB1;&#x4F1A;&#x653E;&#x5927;&#x786C;&#x76D8;&#x7684;&#x58F0;&#x97F3;.<br>
&#x4F18;&#x70B9;: &#x786C;&#x4EF6;&#x9664;&#x786C;&#x76D8;&#x5916;RMB900&#x5DE6;&#x53F3;&#xFF0C;&#x6709;&#x989C;&#x503C;&#xFF0C;&#x6709;&#x6027;&#x4EF7;&#x6BD4;.&#x6574;&#x4F53;&#x4F53;&#x9A8C;&#x4E0D;&#x5DEE;(&#x7FA4;&#x6656;&#x7684;&#x7CFB;&#x7EDF;&#x771F;&#x5FC3;&#x4E0D;&#x9519;)</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Hello World]]></title><description><![CDATA[<p>&#x535A;&#x5BA2;&#x7ECF;&#x5386;&#x4E86;&#x6570;&#x6B21;&#x6570;&#x636E;&#x4E22;&#x5931;,&#x73B0;&#x5728;&#x53C8;&#x5F00;&#x59CB;&#x8425;&#x4E1A;&#x4E86;.</p><p>&#x8FD8;&#x662F;&#x719F;&#x6089;&#x7684;&#x5F00;&#x5934;,&#x6211;&#x4F1A;&#x5728;&#x8FD9;&#x91CC;&#x5206;&#x4EAB;&#x6211;&#x7684;&#x7B14;&#x8BB0;,&#x597D;&#x770B;&#x7684;&#x4E66;,&#x751F;&#x6D3B;&#x7684;&#x7410;&#x4E8B;.</p>]]></description><link>https://xiaohai.co/hello-world/</link><guid isPermaLink="false">5d8b7c1c796c3a0001941a7e</guid><dc:creator><![CDATA[xiaohai]]></dc:creator><pubDate>Wed, 25 Sep 2019 15:33:38 GMT</pubDate><media:content url="https://xiaohai.co/content/images/2019/09/378445-simple_background-quote-minimalism-text-world-Hello_World-8-bit-pixelated.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://xiaohai.co/content/images/2019/09/378445-simple_background-quote-minimalism-text-world-Hello_World-8-bit-pixelated.jpg" alt="Hello World"><p>&#x535A;&#x5BA2;&#x7ECF;&#x5386;&#x4E86;&#x6570;&#x6B21;&#x6570;&#x636E;&#x4E22;&#x5931;,&#x73B0;&#x5728;&#x53C8;&#x5F00;&#x59CB;&#x8425;&#x4E1A;&#x4E86;.</p><p>&#x8FD8;&#x662F;&#x719F;&#x6089;&#x7684;&#x5F00;&#x5934;,&#x6211;&#x4F1A;&#x5728;&#x8FD9;&#x91CC;&#x5206;&#x4EAB;&#x6211;&#x7684;&#x7B14;&#x8BB0;,&#x597D;&#x770B;&#x7684;&#x4E66;,&#x751F;&#x6D3B;&#x7684;&#x7410;&#x4E8B;.</p>]]></content:encoded></item></channel></rss>