<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.3.3">Jekyll</generator><link href="https://blog.miskcoo.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://blog.miskcoo.com/" rel="alternate" type="text/html" /><updated>2026-01-20T01:08:51+08:00</updated><id>https://blog.miskcoo.com/feed.xml</id><title type="html">Miskcoo’s Space</title><entry><title type="html">路牌</title><link href="https://blog.miskcoo.com/2026/01/2025-flags" rel="alternate" type="text/html" title="路牌" /><published>2026-01-20T00:00:00+08:00</published><updated>2026-01-20T00:00:00+08:00</updated><id>https://blog.miskcoo.com/2026/01/2025-flags</id><content type="html" xml:base="https://blog.miskcoo.com/2026/01/2025-flags"><![CDATA[<p>去年拍的一些路牌。</p>

<!-- more -->

<p><img src="/assets/images/2025-flags/1-50.jpg" alt="" /></p>

<p><img src="/assets/images/2025-flags/2-50.jpg" alt="" /></p>

<p><img src="/assets/images/2025-flags/3-50.jpg" alt="" /></p>

<p><img src="/assets/images/2025-flags/4-50.jpg" alt="" /></p>

<p><img src="/assets/images/2025-flags/5-50.jpg" alt="" /></p>

<p><img src="/assets/images/2025-flags/6-50.jpg" alt="" /></p>

<p><img src="/assets/images/2025-flags/7-50.jpg" alt="" /></p>

<p><img src="/assets/images/2025-flags/8-50.jpg" alt="" /></p>

<p><img src="/assets/images/2025-flags/9-50.jpg" alt="" /></p>

<p><img src="/assets/images/2025-flags/10-50.jpg" alt="" /></p>

<p><img src="/assets/images/2025-flags/11-50.jpg" alt="" /></p>

<p><img src="/assets/images/2025-flags/12-50.jpg" alt="" /></p>]]></content><author><name></name></author><category term="杂记" /><category term="照片" /><summary type="html"><![CDATA[去年拍的一些路牌。]]></summary></entry><entry><title type="html">硬件版 GPU Burn</title><link href="https://blog.miskcoo.com/2025/03/gpu-burn" rel="alternate" type="text/html" title="硬件版 GPU Burn" /><published>2025-03-22T00:00:00+08:00</published><updated>2025-03-22T00:00:00+08:00</updated><id>https://blog.miskcoo.com/2025/03/gpu-burn</id><content type="html" xml:base="https://blog.miskcoo.com/2025/03/gpu-burn"><![CDATA[<p>最近几年前的 2080Ti 在物理上运行了 <a href="https://github.com/wilicc/gpu-burn">gpu-burn</a>，这里放点图。一共有两台机器，看起来一台是主板烧到显卡的，另一台就看不出来了，似乎是供电烧了。</p>

<p><img src="/assets/images/gpu-burn/overall-1.r.jpg" alt="" /></p>

<p><img src="/assets/images/gpu-burn/overall-2.r.jpg" alt="" /></p>

<!-- more -->

<p><img src="/assets/images/gpu-burn/overall-2b.r.jpg" alt="" /></p>

<p><img src="/assets/images/gpu-burn/detail-1.r.jpg" alt="" /></p>

<p><img src="/assets/images/gpu-burn/detail-2.r.jpg" alt="" /></p>]]></content><author><name></name></author><category term="杂记" /><summary type="html"><![CDATA[最近几年前的 2080Ti 在物理上运行了 gpu-burn，这里放点图。一共有两台机器，看起来一台是主板烧到显卡的，另一台就看不出来了，似乎是供电烧了。]]></summary></entry><entry><title type="html">Ten Years！这个博客十年啦</title><link href="https://blog.miskcoo.com/2024/05/ten-years" rel="alternate" type="text/html" title="Ten Years！这个博客十年啦" /><published>2024-05-27T04:00:00+08:00</published><updated>2024-05-27T04:00:00+08:00</updated><id>https://blog.miskcoo.com/2024/05/ten-years</id><content type="html" xml:base="https://blog.miskcoo.com/2024/05/ten-years"><![CDATA[<p>从还留在这里的 2014 年最开始的那篇博文算起，再过两周就已经过去十年了<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>，在我印象里再往前这里或许还有些别的内容，但似乎在中途更换站点的过程中丢失了。整个博客能留到现在也挺不容易的，不知道现在是不是还会有人到这里来。最开始它是部署在一台便宜 VPS 上的 WordPress，2019 年有一段时间机器被弄挂了，还好内容有备份后来也恢复了。再往后就迁移到了基于 Jekyll 的静态博客，也不用太担心机器挂了的问题了。<sup id="fnref:blog_transfer" role="doc-noteref"><a href="#fn:blog_transfer" class="footnote" rel="footnote">2</a></sup></p>

<p>后来 2021 年初的时候感觉没有什么写东西的想法了，顺手就把它撤下来了，好在域名还一直留着。去年底的时候收到了一封询问能不能恢复这个博客的邮件，确实很让人惊讶，没想到现在还有人记得它（在此感谢发邮件的 <a href="https://www.woruo.online/">woruo</a>）。花了一点时间，又把它重新挂出来了。既然又有了这样一个地方，想着在有什么想写的时候也可以随便写写放在这里，所以它就继续缓慢更新了。</p>

<!-- more -->

<p>如果问为什么最开始会想要做一个博客放在互联网上，或许是因为那时博客的确是一种比较流行的东西吧。至于为什么会选择购买一个域名以及 VPS 存放它，而不是放在一些博客平台上呢，或许是因为看起来比较高级？但我也记得不是很清楚了。现在似乎更多的人会在知乎或者微信公众号之类的平台上写一些内容，毕竟这些平台人多，如果想要宣传某些工作那的确是最合适的选择。</p>

<p>不过，还是可以观测到不断有人（或许也就一小撮人）搭起了新的博客，当然也有一些老的博客在逐渐消失（就像前面两年我的博客一样）。我想这样形式博客的吸引人之处就在于它们藏在互联网的一个个角落，通过友链建立着松散的联系，沿着友链游走就像寻宝一样不知道什么时候就能发现一些很有趣的地方，而不是受到推荐算法的影响被动地看见。</p>

<p>现在回头看了看十年前的文章，风格确实和现在有一些差别。我也从早期的博文里重新回忆起了一些忘掉的东西，这可能也是博客能带来的乐趣之一吧。</p>

<p>好像一个人也没有多少个十年，不知道再过十年这个博客还会不会存在。希望它还会在。</p>

<h3 id="相关链接">相关链接</h3>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1" role="doc-endnote">
      <p>最开始的博文：<a href="https://blog.miskcoo.com/2014/06/bzoj-3157">BZOJ-3157. 国王奇遇记</a> <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:blog_transfer" role="doc-endnote">
      <p><a href="https://blog.miskcoo.com/2020/08/blog-transfer">博客搬家及主题更换</a> <a href="#fnref:blog_transfer" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name></name></author><category term="杂记" /><summary type="html"><![CDATA[从还留在这里的 2014 年最开始的那篇博文算起，再过两周就已经过去十年了1，在我印象里再往前这里或许还有些别的内容，但似乎在中途更换站点的过程中丢失了。整个博客能留到现在也挺不容易的，不知道现在是不是还会有人到这里来。最开始它是部署在一台便宜 VPS 上的 WordPress，2019 年有一段时间机器被弄挂了，还好内容有备份后来也恢复了。再往后就迁移到了基于 Jekyll 的静态博客，也不用太担心机器挂了的问题了。2 最开始的博文：BZOJ-3157. 国王奇遇记 &#8617; 博客搬家及主题更换 &#8617;]]></summary></entry><entry><title type="html">传感器趣事：环境传感器能告诉你什么</title><link href="https://blog.miskcoo.com/2024/05/interesting-sensors" rel="alternate" type="text/html" title="传感器趣事：环境传感器能告诉你什么" /><published>2024-05-27T00:00:00+08:00</published><updated>2024-05-27T00:00:00+08:00</updated><id>https://blog.miskcoo.com/2024/05/interesting-sensors</id><content type="html" xml:base="https://blog.miskcoo.com/2024/05/interesting-sensors"><![CDATA[<p><a href="/2023/09/esp8266-sensor">上回</a>做的温湿度和二氧化碳传感器已经运行一段时间了，中间又加上了一个环境光传感器。加起来算是能够收集到温度、湿度、二氧化碳浓度、TVOC 以及光照强度五个参数。本来是想看看宿舍的空气质量并且提醒我开窗通风，以及查看实验室到底热到了什么程度和开没开中央空调 ，但是后来发现，这几个参数还能提供一些有趣的信息。</p>

<!-- more -->

<h2 id="天亮了">天亮了</h2>

<p>下面是前一段时间某一天得宿舍光照强度数据，晚上开了灯之后的亮度大约在 50 lx。这几天早上五点多太阳出来的时候似乎刚好会照到我床头，然后估计是被外面的树挡住了一段时间，接着八点多又会有一段时间的直射。巧的是那段时间刚好我偶尔在早上五点多会醒来一次，或许就是因为这个。再过几天之后估计太阳又被什么挡住了（或者是窗帘多拉了点），五点左右的亮度峰值降下来了，也就睡得好了不少。</p>

<p><img src="data:image/png;base64,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" alt="" class="centered" /></p>

<h2 id="开空调了">开空调了</h2>

<p>接下来是两段实验室里的温度数据（分别是有空调但是空调没什么作用，和没有空调的情况） ，我们屋子比较大但是窗户不多，保温效果比较好，从这里很容易就可以看到每天空调开没开、开到几点以及空调到底有没有作用。</p>

<p><img src="data:image/png;base64,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zcPp06cxdepUAMAzzzyDq1ev4vz586IuKysrdOzYEQEBAdi3b1+jaQUs87qzRM2Wdt012XdshIcJxkjs3buX5HI53bp1S1x28+ZNsre3p48//piIiGbNmkU9e/ako0ePituUlZVR3759afHixY0tmY4dO0YeHh70119/icvKy8vJy8uLZs+eTURE//d//0fdunWj7777TmvfCRMm0KRJk6isrIz1VsPly5cpKChIZ16tR48e9Mwzz1BeXh7t3r2bunTpQv/973+JqHLOa968efTwww9TUVFRo+klIvrqq6/I1dWV8vLyxGV//vknWVlZid/pqFGjqFevXnTjxg1xm6KiImrTpg19/fXXjarXEq87S9NsadcdUdN9x+wpNzGkETbv7u6O4uJiODg4AABKS0sRFBSEGTNmYO3atcjLy8Ps2bNRVlaGDRs2iPvl5+fj+vXr8PLyahTNml6Xn58f7t27B29vbwDqp0tra2vMnj0be/fuRWxsLJ577jn4+vpi9erVYk5qeXk5zp8/j7Zt28LGxsakKRqWrDcgIACJiYnw8/MDAJSUlAAApk2bhtjYWBw6dAjDhg1Dz5498emnnyIzM1Oc8zp69Ch69uwJOzs7k3vKmt+Hg4MDZDKZOF9IROjXrx/Gjx+PFStWAACWLl2K69eva3kT6enpyMzMFM//xtJrKdedpWm2tOsOMJPv2CBTzpiEEydOUNeuXWnlypVEROKTYVpaGtnY2NCPP/5IRESbNm2idu3aUbdu3WjNmjU0ZMgQ6tatG92+fdvomv755x+6c+dOtesTExOpS5cu9MYbbxARidG+RUVF5ObmRqtWrSIitafUoUMHCg0NpQULFtCjjz5KYWFhdPHiRaNrrglz05ubm1vjeqVSSb169aIJEyZo6S0pKaHOnTvTm2++SUREN27coIceeogCAgLo1VdfpREjRlDLli3FObvG5Pvvv6fu3bvTjh07iEg7wlYikYhzyQsWLKCwsDAaOnQoffvtt9S/f3/q378/ZWdnG1XPtWvXKCcnp9r15njd1Ya5aS4oKKhxvbldd3Whqb5jNsqNwO7du2nixIn02Wef6QSxXLhwgT777DMiIkpNTaXx48fT8OHDxZNcOHn79u1LkydPJiL1Te78+fP0yiuvUI8ePWjKlCmUkpJiVM0///wzdejQgVq1akW7du2i4uJiLc0LFy4kIqKcnBx64403KDw8XDQwwnDpmDFjaPjw4eJ+CQkJtHDhQho4cCC98MILlJycbDS9P/74I02fPp0+//xzunr1qtY6c9S7e/du6tevHw0ZMoQWLVpECQkJRKQ2wleuXKH//Oc/RKS+EaxatYrs7e1FYyX8L1555RXq2bOneMx79+7R2rVracyYMTR16lS6e/eu0fQSEf3www80Y8YM2rlzJ2VkZGitO3/+PH377bdERHT79m16+OGH6ZVXXhG1qlQqyszMpC5dutDbb79NRESFhYW0f/9+euqppyg8PJwmT55MqampRtP7448/UkREBIWGhtKff/6pNfxpztfdG2+8QTt37tQ538xR865du2jIkCE0duxY+uKLL7TS3MzxuiMy//sxG2UTUlhYSBMnTiQPDw+aPHkyBQcHU3h4OO3cuZOI1E+Xr7zyCjk6OlJ6ejoREX3xxRcUGRlJX3zxBRGp/+HFxcX06KOP0tSpU8X5QgFTzLNs27aN2rRpQwsWLKDr169Tdna26O0olUr65JNPSCKRiBfLvn37qH379uIcikqlIpVKRS+88AINHjxYR7MQIWwMoqOjqVu3bhQQEEBTpkyh4OBg6tSpkxitWVZWZlZ68/LyaMqUKeTr60tLly6lt99+m9q2bUtPP/20qGXPnj0kkUjozJkzRKSeV27Tpg29+uqrWsdavHgxhYaG6kR3VtXfUDIzM2n06NHk6elJY8aMIR8fH+rRowf9/fffRKT29h999FHq0KEDZWVlERHRu+++S7169RK9CSL1jblr1660YsUKreOXlZUZPZ/6888/p5YtW9KCBQvo8uXLlJmZKX5PxcXFZnfd/fHHH9SpUycKCAigsWPHkpeXFz300EP0zz//EJHagJmT5vT0dHriiSfI19eXFi5cSM8//zy1adNGHLkxt+uOyHLux2yUTciRI0eoZcuWdOrUKSIiys7OpvHjx1NERIT4hHbixAn64YcfRI8iJSWFXn75ZfLx8aHbt2+TUqmk5ORkat26tXjymCotQKlUUm5uLvXr10/rxpmYmKi13a1bt2j37t2iZoVCQcuWLSOpVEpHjx6lgoICys7Opo4dO+qkOBiTxMREmjRpEs2cOZMyMzOJSG1AOnfuTPPmzaOSkhIiUntu5qCXSD08FxwcTOfOnSMi9UX8/vvvU79+/cTAqLy8PPr1119F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" alt="" class="centered" />
<img src="data:image/png;base64,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9ezZU2dt8eeff6Z+/frRG2+8QUSG7xZPnDhBXbp0ocDAQJo8eTK5u7vT5MmThR+ysfVqTrjLly+Tj48PZWRk0BdffEGdOnWiIUOG0NNPPy1UwTGk986dO3T//fdTmzZtaNSoUeTh4UEjRoww6vSURqPGG8jIyKBFixYJ65SaC8KgQYNowYIF1R6rKfVq/5jff/996tSpk84Nz4MPPkg//fST3vsqH0vjcQ8cOJDc3d3pvvvu04kabShFRUU6kapE6pxlX19fnfXFEydOUL9+/ejpp58mIsPeWWN/v4a0Jicnk5ubG925c4e2bt1K7du3p4iICJo4cSL99ttvVWptiu9W85vR/P85OTm0bNkywXBojMPDDz9Mjz32WLXHakq92r/1nTt3kpOTk84SzJQpU+iLL77Q0WaI5557jtq2bUu9evUiDw8PCg8Pp0uXLhlNr7lde7Vh49yIpKSk0PTp06l79+706KOP0oEDB4S1oCVLltCAAQN0Tujc3FxavHgx9e7dW88rLSgoEJ4nJyfTDz/8QPPmzdOZZmkMvRrD9v3339OgQYPojTfeoPvuu4++/vpr+uKLL6h3794UHh4uTF1q0NxdEqkvOPv376eXXnpJuBgaS+///vc/WrlypbCtqumvoqIi6t27N23evNng/ubSq7lo/fDDD9SpUyeaNGkSffTRRxQQEEAymYz69OlDL7/8st75oFAohOf5+fl0+vRpWrVqFf3+++9G03vv3j2aPn06hYSE0IgRI+ibb74RjLEmNef8+fPC+OLiYnr//ffJw8Ojyc8HQ1o139GRI0do4MCB9L///Y8GDx5M3333He3cuZPGjx9P7u7uel50U3y3qamptHjxYnrmmWeEbVWduyqVisaNG6dz3piCXs25e+zYMerSpQsNGDCA3n77bWrXrh3Z29tT9+7d6bHHHtML5tO+oSsqKqKEhARat24d/fnnn0bTa27XXkOwcW4ksrOzaeDAgTRs2DD6/vvvafDgwdS5c2chiOPYsWMkEokoNjZW5307duygPn360M8//0xE6qCZr7/+mmbMmCGMaYzpqar0rlixgoiILl68SI6OjuTh4UHr1q0T3nfy5Enq0aMHvfrqq4LenTt30uDBg/U8WmNRVlZGmzZtotDQULK0tKTBgwcLEZPa3432xe7SpUvk6elJFy5c0DmWUqlsVr2addXi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" alt="" class="centered" /></p>

<h2 id="用硬盘来作为室温传感器">用硬盘来作为室温传感器</h2>

<p>硬盘空闲的时候的温度和室内温度基本上就差了个偏移量，很早一点我就观测到过冬天到夏天硬盘温度逐渐升高的过程，后来有了实际的温度计之后就更加确定了。例如下面是一段时间内我的硬盘的温度以及室内的温度，对于要判断空调是不是开了这件事，有个硬盘也就够了，这在实验室里总是有的。</p>

<p>如果考虑到硬盘的负载不同，那应该不能直接用来作为室温的依据，但或许可以训练一个模型用硬盘 S.M.A.R.T. 信息作为输入，实际的温度传感器作为标签训练一个模型？</p>

<p><img src="data:image/png;base64,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ZPbs2YQQ/XVuqNdWrVYTlUpF1q1bR9zc3Ejnzp1Jhw4dyNNPP8054uhzMmqo7SWEcazq2bMn2bBhAykoKCCnTp0iPXv2JP369SNPnjwhhJAqDlYnTpwgHTp0IO+++y53nMzMTB2vWTHey0qlkqxdu5Y89dRTZPz48aR169Zk3759Bss39Ge3rlDhKjLYB+6jjz4igwcP5tYbCtnF3oS3b98mY8aMIV27dtU5VocOHciyZct0yooBtp1PnjypMtdw69atJDQ0tEavx127dhEvLy8SFRVFNm3aRF588UXSpUuXas1TQpOcnEyeeuop7iWSm5tLli1bRjp06FBFU2+o11ab69evk549e3KON//++y+ZNWsW8fb2rhJesCG3l63P0aNHia2tLRc9iRCms9ipUyeyYMECQoj+DsXy5ctJ06ZNyUsvvUT27dtHRo4cSZ555hkdj1mxUVZWRv744w/y448/EpVKRbp3705eeeUVbhy4Ou21IT67dYUKV5GgfSMWFRWR4OBgEhcXR7Kzs8lrr71Ghg8fTj788ENy7tw5Qoj+B/TixYukadOmpHv37uSTTz4h48aNI23atOGcg4QmPj6efPvttwa3s236/fffibOzc5U5iyza/9Xp06fJa6+9Rjp27EhGjhwpSocH7foePnyYWFlZ6TiizJkzR8c5R99LSezXVhvt+n/xxRckKChIJ9jBkSNHiEQiIdOnTzd4DLG3Ny4ujsybN49s3ryZpKSkcG3+7rvvSLdu3cj169e5svn5+eTDDz8k/v7+nDWGLc8KZZVKxQnV4OBgMmLECC7koRgw1F425CIhjOdzq1atyG+//WbwOA3t2a0PVLgKiCFhI5fLSadOnciiRYvIqFGjyJgxY8iyZctI586diaenZ7W92evXr5P333+f9OrVi4wePVoUPcHr16+TF198kUgkEtKyZctqPYEJYbQbBwcHzjmlNpPh9TmNCImha3vy5EkSHBxMXn/9dZKcnEzee+894uLiQkaMGEE2bdpkcFydEHFeWxZD7f3ggw9ITEyMjnXi0KFDxNfXV0fD03eNxdjeP//8k/Tt25d4enqScePGkaZNm5JevXpx4RjPnz9PvL29yf/+9z+d/eLi4khYWBj57rvvCCGG7/3y8vJqfQ34xlB7WccyNk4zS/v27cmMGTO4cfWG+OyaCipcBcCQsGE1t4yM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" alt="" class="centered" /></p>

<h2 id="忘记洗澡了">忘记洗澡了？</h2>

<p>屋子不太大的话，洗澡的时候室内湿度的增长是非常明显的：
<img src="data:image/png;base64,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g4ho3759NGjQIAoLC6OHHnqI3n77ba37ly5dSsOHDxeCzLx586hnz561eiSef/55mjp1qvC5VCqVdObMGdqwYQPFx8c3S112795NPXv2JJFIRC+++GKt4GVJdSEiunr1Kh04cKBWzwpRdW9LYWEhPfLII/TUU08Jx5RKJSmVSmF+MpGqZfn555+Tk5MT9e7dm+zs7GjChAlaF2r3y2oDY2ZmJr366qv0yCOP0FtvvUUymUzrqkvdQtm5cyd99dVXwgevpKSEhg4dSkOHDqWbN28SEVFWVhZ17NiRvvrqq2atg/oEc+jQIQoMDKSzZ8+SXC6nixcvkq+vL82YMUOo0w8//EArV64UrhgLCwupffv29Nxzz9Hdu3eJiOj69esUGBhIW7durfPvGFN8fDwNHjyYXn31VUpNTaWysjJKSEggmUymdYLdsmWLWddDLTs7m/r27Utr1qwRjtVMYIiNjTXbz5ba+vXrqU+fPsLnKCsri/z8/GjixIlCgs327dvNuh6FhYX01ltvUVBQEM2bN4/2799P8+bNI6lUSrGxscLjVqxYQSNHjhQusu7cuUPh4eH04osvan12evbsKSRyNHdSSnZ2Nk2ZMoVEIhEtXLiQMjIytO5Xn7csoS5ERCdPnqS+fftSixYtKCIigsLCwmj37t3C/WvXrqWwsDC6fPkyEakuunr16kVbtmzRep3333+f+vXrRwUFBcKx69ev0++//07Xrl0zeLmtNjASEX333Xd06tQpyszMpG7dutGzzz5LRPV/QNTH9+/fT0OHDiUvLy+aNWsWhYSEUFRUVLONjxw7doxyc3OF26+//jpFRUVpjZn99NNPFBoaWqvVRFT95dm8eTNFRUVRu3btaOHChRQcHExDhgzRem1jOnbsmFZr4eeff9b6oqemplK/fv3o/PnzdT7fXOpBVPs9iYuLo06dOtGNGzdox44dNGDAAJo0aRLNmzevVuYfkfl+tsLDw+m1114jouquuaVLl5JUKqXly5fXer651ENTYWEh9e/fn77//nut44888gg9/vjjwu2KigrhvVEHj1WrVlHnzp3p0UcfpWPHjtFXX31FnTp1oj179jRfBTRUVlbS1KlThdYREdGBAwfo7NmzWkGhvLzc7OuSnJxMffr0oddee41u375NV69epb59+9ILL7wgXPj+9NNPNHbsWNq/fz8Rqbp/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" alt="" class="centered" /></p>]]></content><author><name></name></author><category term="杂记" /><category term="传感器" /><summary type="html"><![CDATA[上回做的温湿度和二氧化碳传感器已经运行一段时间了，中间又加上了一个环境光传感器。加起来算是能够收集到温度、湿度、二氧化碳浓度、TVOC 以及光照强度五个参数。本来是想看看宿舍的空气质量并且提醒我开窗通风，以及查看实验室到底热到了什么程度和开没开中央空调 ，但是后来发现，这几个参数还能提供一些有趣的信息。]]></summary></entry><entry><title type="html">绿联 DX4600 Pro 系列的 LED 控制模块分析</title><link href="https://blog.miskcoo.com/2024/05/ugreen-dx4600-pro-led-controller" rel="alternate" type="text/html" title="绿联 DX4600 Pro 系列的 LED 控制模块分析" /><published>2024-05-11T00:00:00+08:00</published><updated>2024-05-11T00:00:00+08:00</updated><id>https://blog.miskcoo.com/2024/05/ugreen-dx4600-pro-led-controller</id><content type="html" xml:base="https://blog.miskcoo.com/2024/05/ugreen-dx4600-pro-led-controller"><![CDATA[<p>绿联的 <a href="https://item.jd.com/100052528552.html">DX4600 Pro</a> 是一个四盘位的 NAS，自带的系统是基于 OpenWRT 的 UGOS，v2ex 上有很多相关的介绍以及抱怨<sup id="fnref:ugreen_sys" role="doc-noteref"><a href="#fn:ugreen_sys" class="footnote" rel="footnote">1</a></sup>，还有报道说新版的系统不向下兼容旧版的系统，并且升级需要格式化硬盘<sup id="fnref:ugreen_incompatibility" role="doc-noteref"><a href="#fn:ugreen_incompatibility" class="footnote" rel="footnote">2</a></sup>。不过这台 NAS 还是可以自己装个 Debian 或者别的开源 NAS 系统的，但问题是自己装的系统并没有机箱前边六个 LED 灯（分别是电源、网卡和四个硬盘）的驱动，默认情况下只有电源指示灯在闪烁，无法控制其他的指示灯。</p>

<p>在我发现这样的事实后已经把默认存放 UGOS 的 eMMC 整个格掉了（所以做这样的事情之前先 dd 一份还是很重要的），好在 v2ex 有人提供了一份原始的系统<sup id="fnref:ugreen_sys:1" role="doc-noteref"><a href="#fn:ugreen_sys" class="footnote" rel="footnote">1</a></sup>可以让我来看看它是如何控制这些指示灯的。</p>

<p>对于 DX4600 系列，UGOS 控制 LED 的模块是 <em>leds-mcu-ht32f52231.ko</em>，他们没有开源只能考虑 objdump 或者反编译来看它做了什么。对于反编译，以前只听说过 IDA Pro 但是应该是要收费的，在处理这个模块的时候搜索了一下发现 <a href="https://ghidra-sre.org/">Ghidra</a> 似乎是不错的免费工具。</p>

<p>这篇文章会介绍 UGOS 如何控制 DX4600 Pro 的 LED，并且提供了一份在非 UGOS 上控制这些 LED 的工具，相关的代码实现在 <a href="https://github.com/miskcoo/ugreen_dx4600_leds_controller">GitHub</a> 上。对于 DX4600 系列的硬件（例如 DX4600 和 DX4600+）我猜测也可以适用，但我只测试过 DX4600 Pro，所以如果你想要在别的硬件使用请小心一些。</p>

<!-- more -->
<h2 id="ugos-led-控制模块">UGOS LED 控制模块</h2>

<p>在 UGOS 上和 LED 相关的模块有下面这些：</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>leds-mcu-ht32f52231.ko
leds-mcu-n76e003.ko
ledtrig-audio.ko
ledtrig-breath-ht32f52231.ko
ledtrig-breath-n76e003.ko
ledtrig-netdev2.ko
ledtrig-normal-ht32f52231.ko
ledtrig-normal-n76e003.ko
</code></pre></div></div>
<p>其中 <em>leds-mcu</em> 开头的两个模块是核心部分，看名字 DX4600 系列的应该使用的是 <em>ht32f52231</em> 结尾的几个模块，看起来是这个系列使用了 <a href="https://www.holtek.com/page/vg/HT32F52231-41_HT32F52331-41">HT32F52331</a> 这个 MCU 来做 LED 的具体控制。另外的 <a href="https://www.nuvoton.com/products/microcontrollers/8bit-8051-mcus/low-pin-count-8051-series/n76e003/">N76E003</a> 应该是适用于更老的版本的 NAS 的。</p>

<p><em>leds-mcu-ht32f52231.ko</em> 会通过 I2C 来和 <em>SMBus I801 adapter</em> 上地址为 <em>0x3a</em> 的设备进行通讯进而完成对 LED 的控制。在它初始化的时候看代码应该还会注册相关的 LED 设备，估计可以在 <code class="language-plaintext highlighter-rouge">/sys/class/leds</code> 看到，不过我从来没有使用过 UGOS 所以并不清楚是不是这样。</p>
<h3 id="i2c-设备">I2C 设备</h3>

<p>对于 UGOS 以外没有这类模块的系统（例如 Debian），可以使用 <em>i2c-tools</em> 等工具来直接和对应设备进行通信，主要的问题在于需要往对应设备的哪个寄存器读写何种数据来完成控制。</p>

<p>我们先来查看是否有对应的设备。这需要加载 <code class="language-plaintext highlighter-rouge">i2c-dev</code> 模块：</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ modprobe -v i2c-dev
</code></pre></div></div>

<p>然后使用 <code class="language-plaintext highlighter-rouge">i2cdetect -l</code> 应该就可以看到所需要的 <em>SMBus I801 adapter</em> (<code class="language-plaintext highlighter-rouge">/dev/i2c-1</code>) 了，并且可以看到这个总线上确实在 <em>0x3a</em> 这个地址有一个设备：</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ i2cdetect -l
i2c-0   i2c             Synopsys DesignWare I2C adapter         I2C adapter
i2c-1   smbus           SMBus I801 adapter at efa0              SMBus adapter
i2c-2   i2c             Synopsys DesignWare I2C adapter         I2C adapter

$ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         08 -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: 30 -- -- -- -- 35 UU UU -- -- 3a -- -- -- -- --
40: -- -- -- -- 44 -- -- -- -- -- -- -- -- -- -- --
50: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
</code></pre></div></div>

<h3 id="led-状态的查询">LED 状态的查询</h3>

<p>UGOS 的对应模块会通过访问对应 I2C 设备的寄存器来获得 LED 灯的状态，下方是 Ghidra 给出的部分反编译代码，我删去了一些和主要逻辑关系不是特别大的部分。</p>
<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">mutex_lock</span><span class="p">(</span><span class="o">&amp;</span><span class="n">DAT_001055e0</span><span class="p">);</span>
<span class="n">local_48</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="n">_local_40</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="n">iVar4</span> <span class="o">=</span> <span class="n">i2c_smbus_read_i2c_block_data</span><span class="p">(</span><span class="n">DAT_001055c0</span><span class="p">,</span><span class="n">iVar3</span> <span class="o">+</span> <span class="mh">0x81</span><span class="p">,</span><span class="mh">0xb</span><span class="p">,</span><span class="o">&amp;</span><span class="n">local_48</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="n">iVar4</span> <span class="o">==</span> <span class="mh">0xb</span><span class="p">)</span> <span class="p">{</span>
  <span class="n">puVar7</span> <span class="o">=</span> <span class="o">&amp;</span><span class="n">local_48</span><span class="p">;</span>
  <span class="n">iVar4</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
  <span class="k">do</span> <span class="p">{</span>
    <span class="n">bVar1</span> <span class="o">=</span> <span class="o">*</span><span class="p">(</span><span class="n">byte</span> <span class="o">*</span><span class="p">)</span><span class="n">puVar7</span><span class="p">;</span>
    <span class="n">puVar7</span> <span class="o">=</span> <span class="p">(</span><span class="n">undefined8</span> <span class="o">*</span><span class="p">)((</span><span class="kt">long</span><span class="p">)</span><span class="n">puVar7</span> <span class="o">+</span> <span class="mi">1</span><span class="p">);</span>
    <span class="n">iVar4</span> <span class="o">=</span> <span class="n">iVar4</span> <span class="o">+</span> <span class="p">(</span><span class="n">uint</span><span class="p">)</span><span class="n">bVar1</span><span class="p">;</span>
  <span class="p">}</span> <span class="k">while</span> <span class="p">((</span><span class="n">undefined8</span> <span class="o">*</span><span class="p">)(</span><span class="n">local_40</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">!=</span> <span class="n">puVar7</span><span class="p">);</span>
  <span class="k">if</span> <span class="p">(((</span><span class="n">iVar4</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="o">||</span> <span class="p">(</span><span class="n">local_40</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">!=</span> <span class="p">(</span><span class="kt">char</span><span class="p">)((</span><span class="n">uint</span><span class="p">)</span><span class="n">iVar4</span> <span class="o">&gt;&gt;</span> <span class="mi">8</span><span class="p">)))</span> <span class="o">||</span> <span class="p">(</span><span class="n">cStack_3e</span> <span class="o">!=</span> <span class="p">(</span><span class="kt">char</span><span class="p">)</span><span class="n">iVa</span> <span class="n">r4</span><span class="p">))</span>
  <span class="p">{</span>
    <span class="cm">/* checksum does not match */</span>
  <span class="p">}</span>
  <span class="k">else</span> <span class="p">{</span>
    <span class="n">uVar5</span> <span class="o">=</span> <span class="p">(</span><span class="n">uint</span><span class="p">)</span><span class="n">local_48</span><span class="p">.</span><span class="n">_5_1_</span> <span class="o">*</span> <span class="mh">0x100</span> <span class="o">+</span> <span class="p">(</span><span class="n">uint</span><span class="p">)</span><span class="n">local_48</span><span class="p">.</span><span class="n">_6_1_</span><span class="p">;</span>
    <span class="n">uVar6</span> <span class="o">=</span> <span class="p">(</span><span class="n">uint</span><span class="p">)</span><span class="n">local_48</span><span class="p">.</span><span class="n">_7_1_</span> <span class="o">*</span> <span class="mh">0x100</span> <span class="o">+</span> <span class="p">(</span><span class="n">uint</span><span class="p">)</span><span class="n">local_40</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
    <span class="n">uVar10</span> <span class="o">=</span> <span class="p">(</span><span class="n">uint</span><span class="p">)(</span><span class="n">byte</span><span class="p">)</span><span class="n">local_48</span><span class="p">;</span>
    <span class="k">if</span> <span class="p">((</span><span class="n">byte</span><span class="p">)</span><span class="n">local_48</span> <span class="o">&lt;</span> <span class="mi">4</span><span class="p">)</span> <span class="p">{</span>
        <span class="n">uVar5</span> <span class="o">=</span> <span class="n">sprintf</span><span class="p">(</span><span class="n">in_RDX</span><span class="p">,</span>
                        <span class="s">"op_mode:%s,brightness:%d,color:%d:%d:%d,t-hight:%d, t-low:%d,mode:%#x</span><span class="se">\n</span><span class="s"> "</span>
                        <span class="p">,(</span><span class="o">&amp;</span><span class="n">str_op_mode</span><span class="p">)[(</span><span class="kt">int</span><span class="p">)</span><span class="n">uVar10</span><span class="p">],(</span><span class="n">ulong</span><span class="p">)</span><span class="n">local_48</span><span class="p">.</span><span class="n">_1_1_</span><span class="p">,(</span><span class="n">ulong</span><span class="p">)</span><span class="n">local_48</span><span class="p">.</span><span class="n">_2</span> <span class="n">_1_</span>
                        <span class="p">,(</span><span class="n">ulong</span><span class="p">)</span><span class="n">local_48</span><span class="p">.</span><span class="n">_3_1_</span><span class="p">,(</span><span class="n">ulong</span><span class="p">)</span><span class="n">local_48</span><span class="p">.</span><span class="n">_4_1_</span><span class="p">,(</span><span class="n">ulong</span><span class="p">)</span><span class="n">uVar5</span><span class="p">,(</span><span class="n">ulong</span><span class="p">)</span><span class="n">uVar</span> <span class="mi">6</span><span class="p">,</span>
                        <span class="n">uVar14</span><span class="p">);</span>
        <span class="n">uVar14</span> <span class="o">=</span> <span class="p">(</span><span class="n">ulong</span><span class="p">)</span><span class="n">uVar5</span><span class="p">;</span>
    <span class="p">}</span>
    <span class="k">else</span> <span class="p">{</span>
      <span class="n">uVar14</span> <span class="o">=</span> <span class="mh">0xffffffff</span><span class="p">;</span>
      <span class="n">printk</span><span class="p">(</span><span class="s">"---read op_sate:%d err!</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="n">uVar10</span><span class="p">);</span>
    <span class="p">}</span>
  <span class="p">}</span>
<span class="p">}</span>
<span class="k">else</span> <span class="p">{</span>
  <span class="n">printk</span><span class="p">(</span><span class="s">"---%s,ret:%d,read %s block err! </span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="s">"led_read_state"</span><span class="p">,</span><span class="n">iVar4</span><span class="p">,</span><span class="o">*</span><span class="n">in_RDI</span><span class="p">);</span>
  <span class="o">*</span><span class="p">(</span><span class="n">undefined4</span> <span class="o">*</span><span class="p">)(</span><span class="o">&amp;</span><span class="n">DAT_001044ec</span> <span class="o">+</span> <span class="n">lVar8</span> <span class="o">*</span> <span class="mh">0x278</span><span class="p">)</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
  <span class="n">uVar14</span> <span class="o">=</span> <span class="mh">0xffffffff</span><span class="p">;</span>
<span class="p">}</span>
<span class="n">mutex_unlock</span><span class="p">(</span><span class="o">&amp;</span><span class="n">DAT_001055e0</span><span class="p">);</span>
</code></pre></div></div>

<p>这里的 <code class="language-plaintext highlighter-rouge">iVar3</code> 表示需要查询的 LED 灯的 ID，从 0 到 5 分别对应机器上的 power, netdev, disk1, disk2, disk3, disk4 六个 LED 灯。可以看到，这段代码通过 <code class="language-plaintext highlighter-rouge">i2c_smbus_read_i2c_block_data</code> 在 <code class="language-plaintext highlighter-rouge">0x81 + LED_ID</code> 处读取 11 个字节来获得对应指示灯的状态。从代码中的 <code class="language-plaintext highlighter-rouge">sprintf</code> 格式化串可以看出这 11 个字节的意义分别是：</p>

<table>
  <thead>
    <tr>
      <th style="text-align: center">地址</th>
      <th>对应数据的意义</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center">0x00</td>
      <td>LED 灯的状态，从 0 - 3 分别表示关闭 (off)、开启 (on)、闪烁 (blink) 和呼吸 (breath)</td>
    </tr>
    <tr>
      <td style="text-align: center">0x01</td>
      <td>LED 灯的亮度</td>
    </tr>
    <tr>
      <td style="text-align: center">0x02</td>
      <td>LED 灯的颜色（RGB 中的红色分量）</td>
    </tr>
    <tr>
      <td style="text-align: center">0x03</td>
      <td>LED 灯的颜色（RGB 中的绿色分量）</td>
    </tr>
    <tr>
      <td style="text-align: center">0x04</td>
      <td>LED 灯的颜色（RGB 中的蓝色分量）</td>
    </tr>
    <tr>
      <td style="text-align: center">0x05</td>
      <td>闪烁或呼吸模式下完成一次闪烁所需要的毫秒数（高 8 位）</td>
    </tr>
    <tr>
      <td style="text-align: center">0x06</td>
      <td>闪烁或呼吸模式下完成一次闪烁所需要的毫秒数（低 8 位）</td>
    </tr>
    <tr>
      <td style="text-align: center">0x07</td>
      <td>闪烁或呼吸模式一次闪烁中灯亮起的毫秒数（高 8 位）</td>
    </tr>
    <tr>
      <td style="text-align: center">0x08</td>
      <td>闪烁或呼吸模式一次闪烁中灯亮起的毫秒数（低 8 位）</td>
    </tr>
    <tr>
      <td style="text-align: center">0x09</td>
      <td>0x00 - 0x08 中数据的校验码（高 8 位）</td>
    </tr>
    <tr>
      <td style="text-align: center">0x0a</td>
      <td>0x00 - 0x08 中数据的校验码（低 8 位）</td>
    </tr>
  </tbody>
</table>

<p>这里最后两个字节的校验码是将 0x00-0x08 位置上所有数据视为无符号数求和得到的一个 16 位的数值。直接使用 <code class="language-plaintext highlighter-rouge">i2cget</code> 也可以在命令行对相关寄存器进行读取，例如下方是 power 指示灯的状态（紫色，每秒闪烁一次，40% 时间为亮起状态，亮度为 180 / 256）：</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ i2cget -y 0x01 0x3a 0x81 i 0x0b
0x02 0xb4 0xff 0x00 0xff 0x03 0xe8 0x01 0x90 0x04 0x30
</code></pre></div></div>

<h3 id="led-状态的修改">LED 状态的修改</h3>

<p>从上节给出的 LED 状态信息可以看出，可以修改的状态是灯的开关、亮度、颜色以及闪烁模式下的频率。下方是 Ghidra 给出的设置灯 ON / OFF 状态的反编译代码。同样地，我删去了一部分不关键的信息。</p>
<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">undefined8</span> <span class="n">local_45</span><span class="p">;</span>
<span class="n">undefined4</span> <span class="n">local_3d</span><span class="p">;</span>
<span class="n">undefined</span> <span class="n">uStack_39</span><span class="p">;</span>
<span class="kt">long</span> <span class="n">local_38</span><span class="p">;</span>

<span class="n">local_38</span> <span class="o">=</span> <span class="o">*</span><span class="p">(</span><span class="kt">long</span> <span class="o">*</span><span class="p">)(</span><span class="n">in_GS_OFFSET</span> <span class="o">+</span> <span class="mh">0x28</span><span class="p">);</span>
<span class="n">local_3d</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="n">local_45</span> <span class="o">=</span> <span class="mh">0x3000001a00000</span><span class="p">;</span>
<span class="n">uStack_39</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="n">DAT_001055c0</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
  <span class="n">printk</span><span class="p">(</span><span class="s">"----%s g_client is null </span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="s">"led_set_on_off"</span><span class="p">);</span>
  <span class="n">uVar4</span> <span class="o">=</span> <span class="mh">0xffffffff</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">else</span> <span class="nf">if</span> <span class="p">(</span><span class="n">in_ESI</span> <span class="o">&lt;</span> <span class="mi">2</span><span class="p">)</span> <span class="p">{</span>
  <span class="n">lVar7</span> <span class="o">=</span> <span class="p">(</span><span class="kt">long</span><span class="p">)</span><span class="n">in_EDI</span><span class="p">;</span>
  <span class="k">if</span> <span class="p">((</span><span class="o">&amp;</span><span class="n">DAT_001044f8</span><span class="p">)[</span><span class="n">lVar7</span> <span class="o">*</span> <span class="mh">0x9e</span><span class="p">]</span> <span class="o">==</span> <span class="n">in_ESI</span><span class="p">)</span> <span class="p">{</span>
      <span class="cm">/* some checks */</span>
  <span class="p">}</span>
  <span class="k">else</span> <span class="p">{</span>
    <span class="n">local_45</span> <span class="o">=</span> <span class="n">CONCAT17</span><span class="p">((</span><span class="kt">char</span><span class="p">)</span><span class="n">in_ESI</span><span class="p">,</span><span class="mh">0x3000001a00000</span><span class="p">);</span>

    <span class="cm">/* compute the checksum */</span>
    <span class="n">sVar5</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
    <span class="n">uVar3</span> <span class="o">=</span> <span class="mh">0xa0</span><span class="p">;</span>
    <span class="k">for</span> <span class="p">(</span><span class="n">pbVar6</span> <span class="o">=</span> <span class="p">(</span><span class="n">byte</span> <span class="o">*</span><span class="p">)((</span><span class="kt">long</span><span class="p">)</span><span class="o">&amp;</span><span class="n">local_45</span> <span class="o">+</span> <span class="mi">3</span><span class="p">);</span> <span class="n">sVar5</span> <span class="o">=</span> <span class="n">sVar5</span> <span class="o">+</span> <span class="n">uVar3</span><span class="p">,</span>
        <span class="n">pbVar6</span> <span class="o">!=</span> <span class="p">(</span><span class="n">byte</span> <span class="o">*</span><span class="p">)((</span><span class="kt">long</span><span class="p">)</span><span class="o">&amp;</span><span class="n">local_3d</span> <span class="o">+</span> <span class="mi">3</span><span class="p">);</span> <span class="n">pbVar6</span> <span class="o">=</span> <span class="n">pbVar6</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
      <span class="n">uVar3</span> <span class="o">=</span> <span class="p">(</span><span class="n">ushort</span><span class="p">)</span><span class="o">*</span><span class="n">pbVar6</span><span class="p">;</span>
    <span class="p">}</span>
    <span class="n">local_3d</span><span class="p">.</span><span class="n">_3_1_</span> <span class="o">=</span> <span class="p">(</span><span class="n">byte</span><span class="p">)((</span><span class="n">ushort</span><span class="p">)</span><span class="n">sVar5</span> <span class="o">&gt;&gt;</span> <span class="mi">8</span><span class="p">);</span>
    <span class="n">local_3d</span> <span class="o">=</span> <span class="p">(</span><span class="n">uint</span><span class="p">)</span><span class="n">local_3d</span><span class="p">.</span><span class="n">_3_1_</span> <span class="o">&lt;&lt;</span> <span class="mh">0x18</span><span class="p">;</span>
    <span class="n">uStack_39</span> <span class="o">=</span> <span class="p">(</span><span class="n">undefined</span><span class="p">)</span><span class="n">sVar5</span><span class="p">;</span>
    <span class="n">mutex_lock</span><span class="p">(</span><span class="o">&amp;</span><span class="n">DAT_001055e0</span><span class="p">);</span>
    <span class="k">if</span> <span class="p">((</span><span class="o">&amp;</span><span class="n">DAT_001044f8</span><span class="p">)[</span><span class="n">lVar7</span> <span class="o">*</span> <span class="mh">0x9e</span><span class="p">]</span> <span class="o">==</span> <span class="n">in_ESI</span><span class="p">)</span> <span class="p">{</span>
        <span class="cm">/* some checks */</span>
    <span class="p">}</span>
    <span class="k">else</span> <span class="p">{</span>
      <span class="n">cVar8</span> <span class="o">=</span> <span class="sc">'\x03'</span><span class="p">;</span>
      <span class="n">usleep_range</span><span class="p">(</span><span class="mi">200</span><span class="p">,</span><span class="mh">0x5dc</span><span class="p">);</span>
      <span class="n">i2c_smbus_write_i2c_block_data</span><span class="p">(</span><span class="n">DAT_001055c0</span><span class="p">,</span><span class="n">in_EDI</span><span class="p">,</span><span class="mh">0xc</span><span class="p">,(</span><span class="kt">long</span><span class="p">)</span><span class="o">&amp;</span><span class="n">local_45</span> <span class="o">+</span> <span class="mi">1</span><span class="p">);</span>
      <span class="k">do</span> <span class="p">{</span>
          <span class="cm">/* if failed, repeat three times */</span>
      <span class="p">}</span> <span class="k">while</span> <span class="p">(</span><span class="n">cVar8</span> <span class="o">!=</span> <span class="sc">'\0'</span><span class="p">);</span>

      <span class="cm">/* post-processing */</span>
    <span class="p">}</span>
    <span class="n">mutex_unlock</span><span class="p">(</span><span class="o">&amp;</span><span class="n">DAT_001055e0</span><span class="p">);</span>
    <span class="n">uVar4</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
  <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p>从这段代码可以大致感受到，状态的修改会通过 <code class="language-plaintext highlighter-rouge">i2c_smbus_write_i2c_block_data</code> 在 <code class="language-plaintext highlighter-rouge">0x00 + LED_ID</code> 处写入 12 个字节来完成，其中写入之前会进行一次 checksum 的计算并且放入写入的信息中，因此实际有效的内容应该是前面 10 个字节。不过因为是第一次用 Ghidra，这些变量看起来让人感觉有点迷惑，接下来还是直接转移到汇编吧。</p>

<div class="language-nasm highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="err">#</span> <span class="nf">setup</span> <span class="nv">the</span> <span class="nv">write</span> <span class="nv">buffer</span>
 <span class="err">2</span><span class="nl">cf:</span>   <span class="err">48</span> <span class="nf">b8</span> <span class="mi">00</span> <span class="mi">00</span> <span class="nv">a0</span> <span class="mi">01</span> <span class="mi">00</span>    <span class="nv">movabs</span> <span class="kc">$</span><span class="mh">0x3000001a00000</span><span class="p">,</span><span class="o">%</span><span class="nb">rax</span>
 <span class="err">2</span><span class="nl">d6:</span>   <span class="err">00</span> <span class="err">03</span> <span class="err">00</span>
 <span class="err">2</span><span class="nl">d9:</span>   <span class="err">48</span> <span class="err">89</span> <span class="err">45</span> <span class="nf">c3</span>             <span class="nv">mov</span>    <span class="o">%</span><span class="nb">rax</span><span class="p">,</span><span class="o">-</span><span class="mh">0x3d</span><span class="p">(</span><span class="o">%</span><span class="nb">rbp</span><span class="p">)</span>
 <span class="err">2</span><span class="nl">dd:</span>   <span class="nf">c6</span> <span class="mi">45</span> <span class="nv">cf</span> <span class="mi">00</span>             <span class="nv">movb</span>   <span class="kc">$</span><span class="mh">0x0</span><span class="p">,</span><span class="o">-</span><span class="mh">0x31</span><span class="p">(</span><span class="o">%</span><span class="nb">rbp</span><span class="p">)</span>

 <span class="err">314:</span>   <span class="err">48</span> <span class="err">8</span><span class="nf">d</span> <span class="mi">45</span> <span class="nv">c3</span>             <span class="nv">lea</span>    <span class="o">-</span><span class="mh">0x3d</span><span class="p">(</span><span class="o">%</span><span class="nb">rbp</span><span class="p">),</span><span class="o">%</span><span class="nb">rax</span>
 <span class="err">318:</span>   <span class="err">40</span> <span class="err">88</span> <span class="err">75</span> <span class="nf">ca</span>             <span class="nv">mov</span>    <span class="o">%</span><span class="nb">si</span><span class="nv">l</span><span class="p">,</span><span class="o">-</span><span class="mh">0x36</span><span class="p">(</span><span class="o">%</span><span class="nb">rbp</span><span class="p">)</span>

 <span class="err">#</span> <span class="nf">compute</span> <span class="nb">ch</span><span class="nv">ecksum</span>
 <span class="err">31</span><span class="nl">c:</span>   <span class="err">31</span> <span class="nf">c9</span>                   <span class="nv">xor</span>    <span class="o">%</span><span class="nb">ecx</span><span class="p">,</span><span class="o">%</span><span class="nb">ecx</span>
 <span class="err">31</span><span class="nl">e:</span>   <span class="err">48</span> <span class="err">8</span><span class="nf">d</span> <span class="mi">50</span> <span class="mi">03</span>             <span class="nv">lea</span>    <span class="mh">0x3</span><span class="p">(</span><span class="o">%</span><span class="nb">rax</span><span class="p">),</span><span class="o">%</span><span class="nb">rdx</span>
 <span class="err">322:</span>   <span class="err">48</span> <span class="err">8</span><span class="nf">d</span> <span class="mi">70</span> <span class="mb">0b</span>             <span class="nv">lea</span>    <span class="mh">0xb</span><span class="p">(</span><span class="o">%</span><span class="nb">rax</span><span class="p">),</span><span class="o">%</span><span class="nb">rsi</span>
 <span class="err">326:</span>   <span class="err">40</span> <span class="err">88</span> <span class="err">7</span><span class="nf">d</span> <span class="nv">c3</span>             <span class="nv">mov</span>    <span class="o">%</span><span class="nb">di</span><span class="nv">l</span><span class="p">,</span><span class="o">-</span><span class="mh">0x3d</span><span class="p">(</span><span class="o">%</span><span class="nb">rbp</span><span class="p">)</span>
 <span class="err">32</span><span class="nl">a:</span>   <span class="nf">b8</span> <span class="nv">a0</span> <span class="mi">00</span> <span class="mi">00</span> <span class="mi">00</span>          <span class="nv">mov</span>    <span class="kc">$</span><span class="mh">0xa0</span><span class="p">,</span><span class="o">%</span><span class="nb">eax</span>
 <span class="err">32</span><span class="nl">f:</span>   <span class="err">40</span> <span class="err">88</span> <span class="err">7</span><span class="nf">d</span> <span class="nv">c4</span>             <span class="nv">mov</span>    <span class="o">%</span><span class="nb">di</span><span class="nv">l</span><span class="p">,</span><span class="o">-</span><span class="mh">0x3c</span><span class="p">(</span><span class="o">%</span><span class="nb">rbp</span><span class="p">)</span>
 <span class="err">333:</span>   <span class="nf">eb</span> <span class="mi">07</span>                   <span class="nv">jmp</span>    <span class="mi">33</span><span class="nv">c</span> <span class="o">&lt;</span><span class="nv">i2c_smbus_write_i2c_block_data_and_read</span><span class="o">-</span><span class="mh">0x1be4</span><span class="o">&gt;</span>
 <span class="err">335:</span>   <span class="err">0</span><span class="nf">f</span> <span class="nv">b6</span> <span class="mi">02</span>                <span class="nv">movzbl</span> <span class="p">(</span><span class="o">%</span><span class="nb">rdx</span><span class="p">),</span><span class="o">%</span><span class="nb">eax</span>
 <span class="err">338:</span>   <span class="err">48</span> <span class="err">83</span> <span class="nf">c2</span> <span class="mi">01</span>             <span class="nv">add</span>    <span class="kc">$</span><span class="mh">0x1</span><span class="p">,</span><span class="o">%</span><span class="nb">rdx</span>
 <span class="err">33</span><span class="nl">c:</span>   <span class="err">01</span> <span class="nf">c1</span>                   <span class="nv">add</span>    <span class="o">%</span><span class="nb">eax</span><span class="p">,</span><span class="o">%</span><span class="nb">ecx</span>
 <span class="err">33</span><span class="nl">e:</span>   <span class="err">48</span> <span class="err">39</span> <span class="nf">f2</span>                <span class="nv">cmp</span>    <span class="o">%</span><span class="nb">rsi</span><span class="p">,</span><span class="o">%</span><span class="nb">rdx</span>
 <span class="err">341:</span>   <span class="err">75</span> <span class="nf">f2</span>                   <span class="nv">jne</span>    <span class="mi">335</span> <span class="o">&lt;</span><span class="nv">i2c_smbus_write_i2c_block_data_and_read</span><span class="o">-</span><span class="mh">0x1beb</span><span class="o">&gt;</span>
 <span class="err">343:</span>   <span class="err">66</span> <span class="nf">c1</span> <span class="nv">c1</span> <span class="mi">08</span>             <span class="nv">rol</span>    <span class="kc">$</span><span class="mh">0x8</span><span class="p">,</span><span class="o">%</span><span class="nb">cx</span>
 <span class="err">347:</span>   <span class="err">48</span> <span class="nf">c7</span> <span class="nv">c7</span> <span class="mi">00</span> <span class="mi">00</span> <span class="mi">00</span> <span class="mi">00</span>    <span class="nv">mov</span>    <span class="kc">$</span><span class="mh">0x0</span><span class="p">,</span><span class="o">%</span><span class="nb">rdi</span>
                <span class="err">34</span><span class="nl">a:</span> <span class="nf">R_X86_64_32S</span>       <span class="nv">.bss</span><span class="o">+</span><span class="mh">0x20</span>

 <span class="err">#</span> <span class="nf">save</span> <span class="nv">the</span> <span class="nb">ch</span><span class="nv">ecksum</span> <span class="nv">to</span> <span class="nv">the</span> <span class="nv">write</span> <span class="nv">buffer</span>
 <span class="err">34</span><span class="nl">e:</span>   <span class="err">66</span> <span class="err">89</span> <span class="err">4</span><span class="nf">d</span> <span class="nv">ce</span>             <span class="nv">mov</span>    <span class="o">%</span><span class="nb">cx</span><span class="p">,</span><span class="o">-</span><span class="mh">0x32</span><span class="p">(</span><span class="o">%</span><span class="nb">rbp</span><span class="p">)</span>

 <span class="err">#</span> <span class="nf">set</span> <span class="nv">the</span> <span class="nv">parameters</span> <span class="nv">of</span> <span class="nv">i2c_smbus_write_i2c_block_data</span>
 <span class="err">3</span><span class="nl">ba:</span>   <span class="err">48</span> <span class="err">8</span><span class="nf">d</span> <span class="mi">45</span> <span class="nv">c3</span>             <span class="nv">lea</span>    <span class="o">-</span><span class="mh">0x3d</span><span class="p">(</span><span class="o">%</span><span class="nb">rbp</span><span class="p">),</span><span class="o">%</span><span class="nb">rax</span>
 <span class="err">3</span><span class="nl">be:</span>   <span class="nf">ba</span> <span class="mi">0</span><span class="nv">c</span> <span class="mi">00</span> <span class="mi">00</span> <span class="mi">00</span>          <span class="nv">mov</span>    <span class="kc">$</span><span class="mh">0xc</span><span class="p">,</span><span class="o">%</span><span class="nb">edx</span>
 <span class="err">3</span><span class="nl">c3:</span>   <span class="err">44</span> <span class="err">89</span> <span class="nf">e6</span>                <span class="nv">mov</span>    <span class="o">%</span><span class="nb">r12d</span><span class="p">,</span><span class="o">%</span><span class="nb">esi</span>
 <span class="err">3</span><span class="nl">c6:</span>   <span class="err">48</span> <span class="err">83</span> <span class="nf">c0</span> <span class="mi">01</span>             <span class="nv">add</span>    <span class="kc">$</span><span class="mh">0x1</span><span class="p">,</span><span class="o">%</span><span class="nb">rax</span>
 <span class="err">3</span><span class="nl">ca:</span>   <span class="err">48</span> <span class="err">8</span><span class="nf">b</span> <span class="mi">3</span><span class="nv">d</span> <span class="mi">00</span> <span class="mi">00</span> <span class="mi">00</span> <span class="mi">00</span>    <span class="nv">mov</span>    <span class="mh">0x0</span><span class="p">(</span><span class="o">%</span><span class="nv">rip</span><span class="p">),</span><span class="o">%</span><span class="nb">rdi</span>        <span class="err">#</span> <span class="mi">3</span><span class="nv">d1</span> <span class="o">&lt;</span><span class="nv">i2c_smbus_write_i2c_block_data_and_read</span><span class="o">-</span><span class="mh">0x1b4f</span><span class="o">&gt;</span>
                <span class="err">3</span><span class="nl">cd:</span> <span class="nf">R_X86_64_PC32</span>      <span class="nv">.bss</span><span class="o">-</span><span class="mh">0x4</span>
 <span class="err">3</span><span class="nl">d1:</span>   <span class="err">48</span> <span class="err">89</span> <span class="nf">c1</span>                <span class="nv">mov</span>    <span class="o">%</span><span class="nb">rax</span><span class="p">,</span><span class="o">%</span><span class="nb">rcx</span>
 <span class="err">3</span><span class="nl">d4:</span>   <span class="err">48</span> <span class="err">89</span> <span class="err">45</span> <span class="nf">b8</span>             <span class="nv">mov</span>    <span class="o">%</span><span class="nb">rax</span><span class="p">,</span><span class="o">-</span><span class="mh">0x48</span><span class="p">(</span><span class="o">%</span><span class="nb">rbp</span><span class="p">)</span>
 <span class="err">3</span><span class="nl">d8:</span>   <span class="nf">e8</span> <span class="mi">00</span> <span class="mi">00</span> <span class="mi">00</span> <span class="mi">00</span>          <span class="nv">call</span>   <span class="mi">3</span><span class="nv">dd</span> <span class="o">&lt;</span><span class="nv">i2c_smbus_write_i2c_block_data_and_read</span><span class="o">-</span><span class="mh">0x1b43</span><span class="o">&gt;</span>
                <span class="err">3</span><span class="nl">d9:</span> <span class="nf">R_X86_64_PLT32</span>     <span class="nv">i2c_smbus_write_i2c_block_data</span><span class="o">-</span><span class="mh">0x4</span>
</code></pre></div></div>

<p>按照调用规范，<code class="language-plaintext highlighter-rouge">i2c_smbus_write_i2c_block_data</code> 四个参数分别存在 <code class="language-plaintext highlighter-rouge">rdi, rsi, rdx, rcx</code> 中。在 <em>Line 3ba</em> 可以看到写入的数据是 <code class="language-plaintext highlighter-rouge">%rbp - 0x3d</code> 开始的 12 个字节，也就是 <code class="language-plaintext highlighter-rouge">%rbp[-0x3c] - %rbp[-0x31]</code>。观察其它部分可以发现：</p>

<ul>
  <li><em>Line 2d9</em>：在缓冲区的前 8 个字节写入了一些和需要完成的操作（设置灯的开关）相关的信息。</li>
  <li><em>Line 318</em>：将这个设置亮度这个函数的第二个参数写入了缓冲区的第 7 字节。可以发现这个参数为 0 时表示关灯，1 时表示开灯。</li>
  <li><em>Line 32f</em>：将这个设置亮度这个函数的第一个参数写入了缓冲区的第 1 字节。可以发现这个参数是 LED 的 ID。</li>
  <li><em>Line 31c-34e</em>：计算了第 3 个字节至第 10 个字节的校验和并且（按照大端序）写入了最后两个字节。</li>
</ul>

<p>完整观察其余设置颜色、亮度等内容的代码，可以发现这 12 个字节的意义如下：</p>

<table>
  <thead>
    <tr>
      <th style="text-align: center">地址</th>
      <th>对应数据的意义</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center">0x00</td>
      <td>LED 灯的 ID</td>
    </tr>
    <tr>
      <td style="text-align: center">0x01</td>
      <td>常数：0xa0</td>
    </tr>
    <tr>
      <td style="text-align: center">0x02</td>
      <td>常数：0x01</td>
    </tr>
    <tr>
      <td style="text-align: center">0x03</td>
      <td>常数：0x00</td>
    </tr>
    <tr>
      <td style="text-align: center">0x04</td>
      <td>常数：0x00</td>
    </tr>
    <tr>
      <td style="text-align: center">0x05</td>
      <td>如果值为 1 则表示修改亮度<br />如果值为 2 则表示颜色<br />如果值为 3 则表示设置开关状态<br />如果值为 4 则表示设置闪烁状态<br />如果值为 5 则表示设置呼吸状态</td>
    </tr>
    <tr>
      <td style="text-align: center">0x06</td>
      <td>第一个参数</td>
    </tr>
    <tr>
      <td style="text-align: center">0x07</td>
      <td>第二个参数</td>
    </tr>
    <tr>
      <td style="text-align: center">0x08</td>
      <td>第三个参数</td>
    </tr>
    <tr>
      <td style="text-align: center">0x09</td>
      <td>第四个参数</td>
    </tr>
    <tr>
      <td style="text-align: center">0x0a</td>
      <td>0x01-0x09 中数据的校验码（高 8 位）</td>
    </tr>
    <tr>
      <td style="text-align: center">0x0b</td>
      <td>0x01-0x09 中数据的校验码（低 8 位）</td>
    </tr>
  </tbody>
</table>

<p>对于 0x05 处四种不同的修改内容，</p>

<ul>
  <li>如果需要修改亮度，那么第一个参数为亮度信息；</li>
  <li>如果需要修改颜色，那么前三个参数分别为 RGB 信息；</li>
  <li>如果需要开关状态，那么第一个参数为 0 或 1，分别表示关闭或者打开；</li>
  <li>如果需要设置为闪烁或呼吸状态，那么前两个参数按照大端序组成一个 16 位无符号数，表示完成一次闪烁所需要的毫秒数；后两个参数同样按照大端序组成一个 16 位无符号数，表示一次闪烁中灯亮的毫秒数。</li>
</ul>

<p>下方是使用 <code class="language-plaintext highlighter-rouge">i2cset</code> 关闭和开启电源指示灯的一个命令行示例：</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ i2cset -y 0x01 0x3a 0x00  0x00 0xa0 0x01 0x00 0x00 0x03 0x01 0x00 0x00 0x00 0x00 0xa5 i    # turn off power LED
$ i2cset -y 0x01 0x3a 0x00  0x00 0xa0 0x01 0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x00 0xa4 i    # turn on power LED
</code></pre></div></div>

<h3 id="判断修改是否成功">判断修改是否成功</h3>

<p>在发送上节中对 LED 状态的修改命令之后，可能会因为校验码没算对，或者参数没有传递正确等原因修改失败。UGOS 的驱动会在每次发送修改命令之后通过 <code class="language-plaintext highlighter-rouge">i2c_smbus_read_byte_data</code> 读取位于 <em>0x80</em> 地址处的寄存器，如果其返回 1 那么表示修改成功，否则表示失败，那么 UGOS 就会尝试再次发送相关的命令。</p>

<h2 id="一个例子">一个例子</h2>

<p>用 <a href="https://github.com/miskcoo/ugreen_dx4600_leds_controller">dx4600_leds_cli</a> 最后是可以做出这样的效果的：</p>

<p><img src="/assets/images/dx4600-pro-leds.gif" alt="" class="centered" /></p>

<p>它所需要的是如下脚本：</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo</span> ./dx4600_leds_cli all <span class="nt">-off</span> <span class="nt">-status</span>
<span class="nb">sudo</span> ./dx4600_leds_cli power  <span class="nt">-color</span> 255 0 255 <span class="nt">-blink</span> 400 600 <span class="nt">-status</span>
<span class="nb">sleep </span>0.1
<span class="nb">sudo</span> ./dx4600_leds_cli netdev <span class="nt">-color</span> 255 0 0   <span class="nt">-blink</span> 400 600 <span class="nt">-status</span>
<span class="nb">sleep </span>0.1
<span class="nb">sudo</span> ./dx4600_leds_cli disk1  <span class="nt">-color</span> 255 255 0 <span class="nt">-blink</span> 400 600 <span class="nt">-status</span>
<span class="nb">sleep </span>0.1
<span class="nb">sudo</span> ./dx4600_leds_cli disk2  <span class="nt">-color</span> 0 255 0   <span class="nt">-blink</span> 400 600 <span class="nt">-status</span>
<span class="nb">sleep </span>0.1
<span class="nb">sudo</span> ./dx4600_leds_cli disk3  <span class="nt">-color</span> 0 255 255 <span class="nt">-blink</span> 400 600 <span class="nt">-status</span>
<span class="nb">sleep </span>0.1
<span class="nb">sudo</span> ./dx4600_leds_cli disk4  <span class="nt">-color</span> 0 0 255   <span class="nt">-blink</span> 400 600 <span class="nt">-status</span>
</code></pre></div></div>

<h2 id="参考资料">参考资料</h2>
<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:ugreen_sys" role="doc-endnote">
      <p><a href="https://fast.v2ex.com/t/991429">双十一买的 DX4600 Pro，玩了两个星期，系统基本被我摸明白了，非常逆天 - V2EX</a> <a href="#fnref:ugreen_sys" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:ugreen_sys:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
    <li id="fn:ugreen_incompatibility" role="doc-endnote">
      <p><a href="https://post.smzdm.com/p/a96xdkze/">绿联NAS新系统不向前兼容 用户必须格式化硬盘后重新装机并恢复数据_网络存储_什么值得买 (smzdm.com)</a> <a href="#fnref:ugreen_incompatibility" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name></name></author><category term="折腾" /><category term="NAS" /><category term="反汇编" /><category term="Linux" /><summary type="html"><![CDATA[绿联的 DX4600 Pro 是一个四盘位的 NAS，自带的系统是基于 OpenWRT 的 UGOS，v2ex 上有很多相关的介绍以及抱怨1，还有报道说新版的系统不向下兼容旧版的系统，并且升级需要格式化硬盘2。不过这台 NAS 还是可以自己装个 Debian 或者别的开源 NAS 系统的，但问题是自己装的系统并没有机箱前边六个 LED 灯（分别是电源、网卡和四个硬盘）的驱动，默认情况下只有电源指示灯在闪烁，无法控制其他的指示灯。 双十一买的 DX4600 Pro，玩了两个星期，系统基本被我摸明白了，非常逆天 - V2EX &#8617; 绿联NAS新系统不向前兼容 用户必须格式化硬盘后重新装机并恢复数据_网络存储_什么值得买 (smzdm.com) &#8617;]]></summary></entry><entry><title type="html">家用 NAS 踩坑指北</title><link href="https://blog.miskcoo.com/2024/04/nas" rel="alternate" type="text/html" title="家用 NAS 踩坑指北" /><published>2024-04-22T00:00:00+08:00</published><updated>2024-04-22T00:00:00+08:00</updated><id>https://blog.miskcoo.com/2024/04/nas</id><content type="html" xml:base="https://blog.miskcoo.com/2024/04/nas"><![CDATA[<p>某一天，当你 { 不想把数据放在云上，想有一个 home lab } 时，你可能就会进入一个深坑。</p>

<p>这里记录了一些过去几年以来搭建 NAS 过程中发生的事情。但是在继续之前还是想说一句，<em>在捡垃圾或者买新品之前认真考虑一下，或许手头的东西已经能够实现自己的需求了，又或许自己根本没有想象中的需求</em>。总之就是千万别上头！</p>

<p>在开头先来展示一下我遇到的最大的一个坑，你能看出下面这根线有什么问题吗？</p>

<p><img src="/assets/images/nas/bad-big-d-cable.jpg" alt="" /></p>

<!-- more -->

<h2 id="什么是-nas">什么是 NAS？</h2>

<p>NAS 的全称是 Network-Attached Storage。从功能上来看只要能通过网络提供文件访问服务的任何设备都可以是一台 NAS。你的路由器如果支持插入 USB 设备并且通过 SMB 等协议在局域网共享文件，那你的路由器完全就可以是 NAS。当然，一部手机，一个树莓派，一台笔记本电脑，一台台式机，甚至是机架式服务器都可以被当作 NAS 来使用。当然，也有一些专门的厂家会做成品 NAS，例如可能大家都听说过的群晖，威联通等。</p>

<h2 id="硬件的选择">硬件的选择</h2>

<p>在硬件层面，可能可以从如下几个方面来考虑选择使用什么样的设备。</p>

<p>首先是性能的强弱。例如只是需要简单的文件共享，那么几乎任何硬件都可以满足这样的需求；但是如果想要自建影音服务器，那么可能就需要 CPU 足够强大的算力，或者有一个足够强大的显卡（比如 Intel 自带的 UHD 系列）进行转码；再比如如果需要使用类似 zfs 这样的文件系统，或者需要跑一大堆 docker 和虚拟机，那可能就需要考虑有一定大小的内存以及处理器性能。</p>

<p>然后还有可扩展性。通常大容量的 NAS 都会使用 3.5 寸机械硬盘，一台机器能够有多少个 3.5 寸盘位是购买时需要考虑的。除此之外，如果资金充足可能还会考虑全部使用 SSD 的 NAS，或者使用 SSD 作为缓存，此时使用何种接口的固态硬盘以及机器能够插入多少这样的盘也是需要考虑的。例如前一段时间有一批便宜的 U.2 盘，正常机器是没有这样的接口的，需要从 PCIe 或者 M.2 接口转接，可能还需要额外的供电。</p>

<p>如果要在局域网快速地访问 NAS 上的文件，那拥有一个足够高速的网络就是必要的了。现在常见机器的电口速率都是 1Gbps 或者 2.5Gbps，如果期望更高速的互联，就需要考虑带有 10Gbps 甚至更高速率网口的设备。</p>

<p>除此之外，还有可能会关心的是尽量避免数据的损坏。例如用 UPS 来处理意外的掉电，让 NAS 有充足的时间关机；上 ECC 内存；用软/硬 RAID 等。</p>

<p>对于部分群体来说，体积的大小也是一个重要的部分。可以想象，用路由器和树莓派这样的设备，并且没有太多硬盘的话，NAS 的占地面积是很小的，但是这样的设备可能不会有太高的性能也不能插太多的硬盘（当然你可以用 USB 外接一个大的硬盘盒）。成品 NAS 通常是平衡稍微好一些的，但是价格会比较贵，特别是某些厂家，内存和网口都和黄金一样。如果接受比成品 NAS 稍微大一些体积的机器，现在也有很多淘宝商家有做 NAS 机箱，可以直接买来自己组装一台。如果不太在意体积，那可以直接买带有比较多硬盘位的塔式机箱直接组装一台 PC。</p>

<p>最后，如果想要把 NAS 放在距离自己比较近的地方，噪音是一个非常需要注意的点。3.5 寸硬盘的随机读写有非常吵的炒豆子声音（bilibili 有原声大碟，可以前往收听），如果是 7200 转的企业盘，那硬盘和机箱共振的低频噪音在环境比较安静的时候也是极其烦人的。</p>

<h3 id="xps-和-nuc">XPS 和 NUC</h3>

<p>在最开始，我有一个移动硬盘和一台 Dell 的 XPS，并且想用来挂 PT 和用 SMB 在局域网共享文件，于是便简单地直接把这个盘插到 XPS 上。但是当时移动硬盘在硬盘侧的接口其实是比较脆弱和糟糕的，在插拔多次后会变得一碰就掉盘，稳定性特别差。此外，笔记本电脑在桌面的占地面积其实也很大了，而且我平常也要用它，不适合 7x24 小时放在那里不动。</p>

<p>在单纯只有一个移动硬盘并且需要体积比较小的机器的情况下，Intel NUC（比如豆子峡谷，或任何的迷你主机）就是一个不错的选项。</p>

<p>正经的常用的硬盘接口是 <a href="https://en.wikipedia.org/wiki/SATA">SATA</a> 口，NUC 一般会提供一个 SATA 口的 2.5 寸硬盘位。一部分移动硬盘实际上是一个这样的硬盘外面套了一层硬盘盒得到的。例如下图里我的硬盘把外壳拆掉之后可以发现就是个标准的 2.5 寸硬盘加上一个可以移除的 SATA 转 USB 的设备，所以可以直接无缝插入 NUC 的那个盘位。</p>

<p><em><strong>WARNING</strong>：如果你要拆你自己的移动硬盘请确认是否是和我的一样是 SATA 转 USB 的设计，有部分厂家的移动硬盘是直接只有 Type-C 口这样的设计。这个拆卸操作大概率是不可逆的，会弄坏你的硬盘盒外壳。还有一部分大容量的移动硬盘会比较厚，需要确认一下。</em></p>

<p><img src="/assets/images/nas/removable-hdd.jpg" alt="" /></p>

<h3 id="通过硬盘柜外接更多的硬盘">通过硬盘柜外接更多的硬盘</h3>

<p>如果想要在 NUC 上接入更多的硬盘，或者接入 3.5 寸硬盘，那么就需要额外的硬盘柜了。这类硬盘柜基本上是提供数个 SATA 接口的盘位，通过 USB 连接到主机的，一般只有 500 MB/s 的速率，对于机械硬盘来说勉强还是够用的。因为 3.5 寸盘需要的供电比较大（一个企业盘的启动功耗可以接近 30W），并且需要 12V 供电，这类硬盘柜都会有自己的独立供电。但是厂家提供的供电是否足够稳定和充足是一个问题，特别是在使用企业级硬盘的时候。</p>

<p><img src="/assets/images/nas/disk-array-without-fan.jpg" alt="" /></p>

<p>除了供电方面的问题，散热也是一个大问题。上图是两个 5400 转的 NAS 盘，它们的发热情况勉强还是可以接受的。一般按照下图这样用一个小风扇对着吹吹还是可以把温度控制在 30-40 度的。但是如果使用的是 7200 转的企业盘，这样散热风会往两边跑可能就不太够了，硬盘工作温度太高也可能会影响它的寿命。此外，这样竖插的方式可以感受到其实是不太稳的。</p>

<p><img src="/assets/images/nas/disk-array-with-fan.jpg" alt="" /></p>

<p>淘宝会有一些商家在卖下图这样的硬盘笼，并且背后可以安装一个风扇。硬盘的固定方式看起来也稍微正常一点，再在淘宝找找对应的延长线，可以构造出下面这样的方案。至少散热和硬盘的固定是解决了。但是供电还可能有些潜在的问题，我这样做的时候坏过两个盘。</p>

<p><img src="/assets/images/nas/disk-array-external.jpg" alt="" /></p>

<p>除了上面说的这个不带风扇的硬盘柜（它便宜）以外，一些公司也会出售看起来长得像成品 NAS 一样的硬盘柜。例如下图这样的。这类柜子贵一点，但是用起来也还不错。</p>

<p><img src="/assets/images/nas/disk-array-int.jpg" alt="" /></p>

<h3 id="nas-机箱">NAS 机箱</h3>

<p>XPS 或者 NUC 的问题之一就是拓展性不是特别好，例如 NUC 内置的硬盘接口一般只有一个 SATA 和一至两个 M.2，如果需要接入更多的硬盘一种方法就是用 USB 硬盘盒。还有一种方案是用 M.2 转出一条 PCIe，或者通过它带的雷电加上一个硬盘盒转到 NVMe 再转到 PCIe，然后再插一些 PCIe 转 SATA 的卡。但是这样的操作其实也有些麻烦了，并且设备的占地面积也有些大了，而且硬盘还是需要独立的电源，不如直接找个机箱组装一个正常的主机，或者用 NAS 机箱，组一台稍微比商业 NAS 大一些（但是性能高不少）的机器。</p>

<p>可能最经典的 NAS 机箱是<del>矿渣</del>蜗牛星际<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>，特点是便宜。另外还有一些个人做的机箱，这就稍微贵一些了，比如老鸽的宝藏盒<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup>，Tank 的机箱<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup>（他们家还有单独的外接硬盘笼），还有半人马座机箱<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">4</a></sup>。它们的特点就是贵，但是别的毛病其实感觉还好。除此之外还有些大厂似乎也开始做这样的机箱了，比如银欣和乔思伯。</p>

<p>购买这些机箱的时候一般要看看评测，比如硬盘的散热怎么样，能塞下多大尺寸的主板（ITX，MATX 还是 ATX），可以插的 PCIe 设备是半高还是全高的以及可以使用什么样的电源。如果只能使用 1U 或者 SFX 电源，那在电源上要花的钱可能就比能使用 ATX 电源的机箱多上不少。</p>

<p>在折腾了好几个不同的 NAS 机箱之后，我最终收敛到了一个普通的塔式机箱（后面会解释这部分内容，因为我的 NAS 和日用主机合并了）。</p>

<h3 id="cpu主板和内存">CPU、主板和内存</h3>

<p>如果只是正常的并不需要太高性能的 NAS 需求的话，估计买一些前几代的 Intel 或者 AMD 的家用中低端处理器就可以了。如果需要转码的话可以考虑 Intel 的带核显的 CPU。我之前尝试闲鱼捡过一些略微企业级的垃圾，比如超微的 <a href="https://www.supermicro.com/en/products/motherboard/x11sca-f">X11SCA-F</a>，这是块 ATX 主板，现在闲鱼价格是小几百，可以支持 8 或 9 代 Intel CPU，或者那个时间段的一些 Xeon。为什么考虑它呢？主要是想要个 IPMI，方便人不在并且把机器弄挂的时候远程管理。它还可以支持 ECC UDIMM（但是只能搭配 Xeon 或者 i3-8100），SATA 接口也足够充足，看起确实挺好的。其实还有一些更常见一点的服务器淘汰品用的是 RDIMM，相比于 UDIMM 来说也便宜很多。</p>

<p>如果期望高频一点的 CPU 但还需要 ECC 的话是可以考虑 AMD 的。Intel 在 12 代以前消费级处理器是基本不给 ECC 支持的，12 代以后虽然有了，但是主板需要用 W 系列的芯片组（比如 W680），价格会贵非常多。AMD 倒是一直都能支持，主板也不需要特殊的芯片组，只要买的时候看看厂家写的是否支持就行了。当然，如果还需要 IPMI 就麻烦很多了。</p>

<p>不过用了很长一段时间之后感觉确实也不需要太企业级的功能了，把 NAS 和正常的工作主机拆成两个还很占地方，所以最终就合并成了一台机器。找了个正常的 ATX 主板和比较新消费级 CPU，按照下面一节的方式接入硬盘。具体的使用方式是裸机上跑 Linux 作为 NAS 的系统，然后套一个 Windows 虚拟机并且直通显卡作为日常的使用环境。或许之后会单独介绍一下这部分的内容，也可以参考付主席的指南<sup id="fnref:9" role="doc-noteref"><a href="#fn:9" class="footnote" rel="footnote">5</a></sup>。</p>

<h3 id="通过-hba-卡接入更多的硬盘">通过 HBA 卡接入更多的硬盘</h3>

<p>一般主板会自带一些 SATA 口（例如 ITX 可能会带 4 个，MATX 和 ATX 可能会带有 6-8 个），如果觉得这些口不够用，那可能就需要额外的扩展卡来引出更多的 SATA 口。还有一种情况是硬盘属于 SAS 接口，那也需要 SAS 卡了。这些卡有分两种，一种是只有接入硬盘的功能，还有一种是自带硬件 RAID（这些卡也比较贵）。现代处理器其实已经不错了，可以考虑使用软 RAID。</p>

<p>比较常用的<del>可以捡到的垃圾</del>是 LSI 9207-8i/8e/4i4e<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">6</a></sup>，这里 i 表示内接（也就是如下图接口开在机箱内部），e 表示外接（类似显卡的 HDMI 接口开在机箱外部）。内接的接口是 SFF-8087，它一个口可以接四个 SATA/SAS，如果直接接入硬盘的话应该要买一个 SFF-8087 转 4x SATA 的线。此外某些 NAS 机箱的背板也会提供直接的 SFF-8087 或者 SFF-8643 接口，也就可以直接购买相应的线。内接的这些线应该最长只能到一米，外接的话是 SFF-8088 或者 SFF-8644（这个接口对应的卡是 LSI 9300-8e，<del>贵很多</del>），长度可以长一些，应该是能到两米，当然也有可以直接转出来 4x SATA 的线。</p>

<p><img src="/assets/images/nas/lsi-9207-8i.jpg" alt="" /></p>

<p>正常用的话 LSI 9207 系列就够了，一般稍微有点风吹一吹就还可以，也不算太热。官方文档写的功耗一般是 9.8W<sup id="fnref:5:1" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">6</a></sup>，如果想要再省点电，可以考虑 9211 系列，功耗是 8.04W<sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">7</a></sup>，损失只有从 PCIe 3.0 降级到了 PCIe 2.0（但都是八条通道）。一般主板芯片组扩展出来的那个 x16 外观的接口实际只有 4 个通道，PCIe 2.0 x4 的速度大约可以有 2GB/s，所以如果是 HDD 的话也没什么问题。如果主板好一些有 PCIe 拆分，或者直连 CPU 的那个通道没有什么设备占用的话，能接上 PCIe 2.0 x8 那 8 个固态应该也能跑满。</p>

<p>最后，除了上面说的 HBA 卡以外，还有一些 PCIe 转 SATA 的扩展卡也可以考虑，甚至还有一些从 M.2 转出 5 个 SATA 的设备。</p>

<p>我最终用的是 LSI 9207-8e 然后外接一个硬盘笼（上面也提到过了，其实就是把硬盘盒加上延长线的方案改成了 HBA 卡加上电源拉出来一些供电连硬盘，不过这样放在外面灰会稍微有点大）。放在外面的主要原因是买机箱的时候没注意 3.5 寸盘位的数量，最后发现有些不够而且自带的盘位散热似乎也不是特别好。外接的硬盘供电可能稍微有些麻烦，一种是从机箱电源拉出来一些线，另一种是随便找个电源，然后短接那个 24pin 其中两个开机引脚就可以了，这个操作淘宝有些方便的接口可以帮你完成。最后大概就是下面这样的感觉。</p>

<p><img src="/assets/images/nas/external-array.jpg" alt="" /></p>

<h2 id="踩坑记录">踩坑记录</h2>

<p>这里有一些踩过的坑，希望大家不会遇到它们，也不会烧掉自己的硬盘和主板。</p>

<h3 id="模组线的混用">模组线的混用</h3>

<p>如果是自己装机器，特别是用小机箱很可能会用到非原厂的定制线。虽然接入主板硬盘这样设备的那端接口是具有统一标准的，但是在电源侧的接口似乎并没有统一的规范。比如不同电源同一个形状的接口的几个引脚的定义可能会不一样。同样都是 2x2 方形的一个口，12V 和 5V 对应的引脚可以是颠倒的！所以模组线是不应该在不同型号之间电源之间互用的（换电源的时候千万别偷懒不拆线）。</p>

<p>如果用错了线，12V 和 5V 接反了那么硬盘是会烧的，主板芯片组也可以顺带烧掉，万一弄不好的话 CPU 也可以坏😦。</p>

<p>最近还有一些更糟糕的新闻，同一个厂家同一个型号的电源引脚规范还可以不一样，有人送修换新之后用旧的线把硬盘烧了<sup id="fnref:7" role="doc-noteref"><a href="#fn:7" class="footnote" rel="footnote">8</a></sup> <sup id="fnref:8" role="doc-noteref"><a href="#fn:8" class="footnote" rel="footnote">9</a></sup>。</p>

<h3 id="定制电源线">“定制”电源线</h3>

<p>那针对电源定制的模组线有没有问题呢？回到文章最开头的图，下面这个接口叫做大 4D 接口（我猜这个名字应该和它的形状有些关系，是个 D 形），现在一般可以用来直接接入硬盘笼的背板，或者用来转接一些 SATA 的供电接口的。它提供 5V 和 12V 的供电。</p>

<p>这个接口并不是对称的，中间两个引脚接地，旁边两个分别是 5V 和 12V。它的的四个引脚的意义我在下面的图标出来了。你可以发现，这根线的这两个大 4D 口无论怎样一定有一个是错的！所以用了这根线观测到的现象就是，多接几个硬盘用到了这两根中错误的那根线的时候就会闻到一阵糊味。</p>

<p><img src="/assets/images/nas/bad-big-d-cable-annotation.png" alt="" /></p>

<h3 id="sata-线">SATA 线</h3>

<p>如果说前面两个电源线相关的问题会让你的硬盘炸掉的话，那 SATA 线出问题就会让你用着很烦。我用过几根质量比较差的 SATA 线，在它们弯折角度比较大的时候会经常出现问题导致你的盘报告 <em>UDMA CRC Error</em>。有些机箱的内部空间会比较紧凑，很容易就一不小心把线 90° 弯折了，所以安装的时候最好注意一下。</p>

<h2 id="nas-系统和一些软件">NAS 系统和一些软件</h2>

<p>如果想要省事，那可以用开源的 NAS 系统比如 TrueNAS 或者考虑用 unRAID。稍微会用 Linux 的话直接在上面开几个 docker 也是可以，文件系统就用 zfs（记得定期做快照和备份）。</p>

<p>实际上常用的软件可能没几个。如果需要一个网盘的话，那么 Seafile 和 Nextcloud 都是不错的选择。Nextcloud 的功能相比 Seafile 会稍微多一些，比如有相册和一系列复杂的 Apps。它的手机端可以自动上传照片、视频等内容，还是挺方便的。</p>

<p>如果想要自建媒体服务器，可以考虑 Emby 或 Jellyfin。后者应该是前者某个时间 fork 出来的开源的版本，Emby 会提供一些更加专业的功能，但是这部分功能需要收费。Emby 的 Android 和 Windows 上的应用都可以不用转码直接播放 HEVC 和 HDR 内容，如果网络带宽够大的话还是十分方便的。Jellyfin 的话 HDR 内容可能不一定可以直接播放，需要转码，这部分可以看 Harry 的博客<sup id="fnref:harry_dg1" role="doc-noteref"><a href="#fn:harry_dg1" class="footnote" rel="footnote">10</a></sup>。</p>

<p>想要自动追剧的话有 Sonarr / Radarr / Prowlarr / qBittorrent 四个软件可以互相联动，最终可以把下载的内容自动导入 Emby / Jellyfin 媒体库。</p>

<p>上面两部分应该是 NAS 最常见的需求了，少见一点的可能是自建的 Overleaf 和 GitLab 服务。GitLab 用起来其实没太大问题，但是 Overleaf Community 版本似乎暂时还没有 git integration<sup id="fnref:ov_git" role="doc-noteref"><a href="#fn:ov_git" class="footnote" rel="footnote">11</a></sup>，用起来不一定特别方便。</p>

<h2 id="参考资料">参考资料</h2>
<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1" role="doc-endnote">
      <p><a href="https://post.smzdm.com/p/axl4rqw3/">给小姐姐的新家：新手入坑蜗牛星际</a> <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2" role="doc-endnote">
      <p><a href="https://www.bilibili.com/video/BV16Z4y1C7dH">高颜值的8盘位多用途NAS机箱——宝藏盒V1.2评测</a> <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:3" role="doc-endnote">
      <p><a href="https://www.bilibili.com/video/BV17L411C7Sk">Tank 6盘位机箱第五批装机演示</a> <a href="#fnref:3" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:4" role="doc-endnote">
      <p><a href="https://www.bilibili.com/video/BV16Z4y1b78e">半人马座nas机箱装机教程及小问题解决方案</a> <a href="#fnref:4" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:9" role="doc-endnote">
      <p><a href="https://tuna.tsinghua.edu.cn/event/2021/homemade-vm/">金枪鱼之夜：家用灵车虚拟化技术指北</a> <a href="#fnref:9" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:5" role="doc-endnote">
      <p><a href="https://docs.broadcom.com/doc/12353331">LSI® SAS 9207-8i PCI Express to 6Gb/s SAS HBA User Guide</a> <a href="#fnref:5" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:5:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
    <li id="fn:6" role="doc-endnote">
      <p><a href="https://docs.broadcom.com/doc/12353333">LSI® SAS 9211-8i PCI Express to 6Gb/s SAS HBA User Guide</a> <a href="#fnref:6" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:7" role="doc-endnote">
      <p><a href="https://www.reddit.com/r/DataHoarder/comments/1bilja1/egva_power_supply_pin_layout_change_featuring/?utm_source=embedv2&amp;utm_medium=post_embed&amp;utm_content=post_body&amp;embed_host_url=https://www.tomshardware.com/pc-components/power-supplies/evga-power-supply-allegedly-blows-up-22tb-of-customer-storage-revised-model-from-rma-had-a-different-pin-layout-and-killed-all-sata-powered-devices">EGVA power supply pin layout change - featuring fried hard drives. Beware when warrantying a PSU.</a> <a href="#fnref:7" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:8" role="doc-endnote">
      <p><a href="https://www.landiannews.com/archives/103155.html">EVGA就电源炸硬盘问题发布回应并道歉 免费为用户更换两块新硬盘</a> <a href="#fnref:8" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:harry_dg1" role="doc-endnote">
      <p><a href="https://harrychen.xyz/2024/04/01/accelerate-video-encoding-with-intel-dg1-on-linux-6.6/">在 Linux 6.6 上使用 Intel DG1 GPU 加速视频编解码</a> <a href="#fnref:harry_dg1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:ov_git" role="doc-endnote">
      <p><a href="https://github.com/overleaf/overleaf/issues/782">Support git integration in the community edition</a> <a href="#fnref:ov_git" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name></name></author><category term="折腾" /><category term="NAS" /><summary type="html"><![CDATA[某一天，当你 { 不想把数据放在云上，想有一个 home lab } 时，你可能就会进入一个深坑。]]></summary></entry><entry><title type="html">Surface Pro 8 安装 Arch Linux</title><link href="https://blog.miskcoo.com/2024/03/linux-on-surface-pro8" rel="alternate" type="text/html" title="Surface Pro 8 安装 Arch Linux" /><published>2024-03-07T00:00:00+08:00</published><updated>2024-03-07T00:00:00+08:00</updated><id>https://blog.miskcoo.com/2024/03/linux-on-surface-pro8</id><content type="html" xml:base="https://blog.miskcoo.com/2024/03/linux-on-surface-pro8"><![CDATA[<p>最近实在忍受不了 Windows 放着什么也不干功耗都能到达 10W，所以打算给 Surface Pro 8 装个 Arch (with ZFS on LUKS) 看看。目前看起来使用 <a href="https://github.com/linux-surface/linux-surface/wiki/Supported-Devices-and-Features">linux surface kernel</a> 之后除了摄像头和以外都可以得到支持。Surface Pen 也有相应的软件可以支持压感和手写笔记，并且换成 Linux 后机器的续航明显提高了！现在不干什么事情的话亮度在 30% 的时候一般是 5-6W，普通浏览网页是 7W 左右的功耗。</p>

<p>这篇文章应该会持续更新。</p>

<!-- more -->

<h2 id="准备工作">准备工作</h2>
<p>首先需要在 Windows 上给将要安装的系统分出一定的空间，这可以直接用 Windows 自带的 <em>Create and format hard disk partitions</em> 来完成。接下来需要准备一个启动盘，可以直接用现成的 Arch LiveCD，也可以自己按照<a href="https://wiki.archlinux.org/title/archiso">文档</a>做一个。</p>

<p>准备好启动盘和分配好空闲的硬盘空间之后关机，插入启动盘然后开机进 BIOS，松开开机键之后立即按住音量上键，等微软的图标闪了一下之后就可以进入 Surface UEFI 界面。在此关闭安全启动，然后选择同 USB 设备启动，就可以进入安装环境了。</p>

<h2 id="安装系统">安装系统</h2>
<p>安装的过程基本上按照 Arch Wiki 的操作来就行了<sup id="fnref:archwiki" role="doc-noteref"><a href="#fn:archwiki" class="footnote" rel="footnote">1</a></sup>。</p>

<h3 id="准备分区和挂载对应目录">准备分区和挂载对应目录</h3>
<p>这里准备两个 zpool，分别是不加密的挂载到 <em>/boot</em> 的 <em>bpool</em><sup id="fnref:notes_encryption" role="doc-noteref"><a href="#fn:notes_encryption" class="footnote" rel="footnote">2</a></sup>，和在 LUKS 上的 <em>rpool</em>。如下所示，此处新增加的两个分区是 <em>/dev/nvme0n1p5</em> 和 <em>/dev/nvme0n1p6</em>。</p>

<pre><code class="language-plain">nvme0n1     259:0    0 953.9G  0 disk
├─nvme0n1p1 259:12   0   260M  0 part
├─nvme0n1p2 259:13   0    16M  0 part
├─nvme0n1p3 259:14   0 698.6G  0 part
├─nvme0n1p4 259:15   0     1G  0 part
├─nvme0n1p5 259:16   0     8G  0 part
└─nvme0n1p6 259:17   0   244G  0 part
</code></pre>

<p>接下来创建 LUKS 设备<sup id="fnref:luks" role="doc-noteref"><a href="#fn:luks" class="footnote" rel="footnote">3</a></sup>：</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cryptsetup luksFormat <span class="nt">--sector-size</span><span class="o">=</span>4096 /dev/nvme0n1p6
cryptsetup open /dev/nvme0n1p6 root_crypt
</code></pre></div></div>

<p>然后创建 zpool：</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>zpool create <span class="se">\</span>
    <span class="nt">-o</span> <span class="nv">ashift</span><span class="o">=</span>12 <span class="se">\</span>
    <span class="nt">-o</span> <span class="nv">autotrim</span><span class="o">=</span>on <span class="se">\</span>
    <span class="nt">-o</span> <span class="nv">compatibility</span><span class="o">=</span>grub2 <span class="se">\</span>
    <span class="nt">-o</span> <span class="nv">cachefile</span><span class="o">=</span>/etc/zfs/zpool.cache <span class="se">\</span>
    <span class="nt">-O</span> <span class="nv">devices</span><span class="o">=</span>off <span class="se">\</span>
    <span class="nt">-O</span> <span class="nv">acltype</span><span class="o">=</span>posixacl <span class="nt">-O</span> <span class="nv">xattr</span><span class="o">=</span>sa <span class="se">\</span>
    <span class="nt">-O</span> <span class="nv">compression</span><span class="o">=</span>lz4 <span class="se">\</span>
    <span class="nt">-O</span> <span class="nv">normalization</span><span class="o">=</span>formD <span class="se">\</span>
    <span class="nt">-O</span> <span class="nv">relatime</span><span class="o">=</span>on <span class="se">\</span>
    <span class="nt">-O</span> <span class="nv">canmount</span><span class="o">=</span>off <span class="nt">-O</span> <span class="nv">mountpoint</span><span class="o">=</span>/boot <span class="nt">-R</span> /mnt <span class="se">\</span>
    bpool /dev/nvme0n1p5

zpool create <span class="se">\</span>
    <span class="nt">-o</span> <span class="nv">ashift</span><span class="o">=</span>12 <span class="se">\</span>
    <span class="nt">-o</span> <span class="nv">autotrim</span><span class="o">=</span>on <span class="se">\</span>
    <span class="nt">-O</span> <span class="nv">acltype</span><span class="o">=</span>posixacl <span class="nt">-O</span> <span class="nv">xattr</span><span class="o">=</span>sa <span class="nt">-O</span> <span class="nv">dnodesize</span><span class="o">=</span>auto <span class="se">\</span>
    <span class="nt">-O</span> <span class="nv">compression</span><span class="o">=</span>zstd <span class="se">\</span>
    <span class="nt">-O</span> <span class="nv">normalization</span><span class="o">=</span>formD <span class="se">\</span>
    <span class="nt">-O</span> <span class="nv">relatime</span><span class="o">=</span>on <span class="se">\</span>
    <span class="nt">-O</span> <span class="nv">canmount</span><span class="o">=</span>off <span class="nt">-O</span> <span class="nv">mountpoint</span><span class="o">=</span>/ <span class="nt">-R</span> /mnt <span class="se">\</span>
    rpool /dev/mapper/root_crypt

zpool <span class="nb">export </span>bpool
zpool <span class="nb">export </span>rpool
zpool import bpool <span class="nt">-R</span> /mnt <span class="nt">-d</span> /dev/disk/by-id
zpool import rpool <span class="nt">-R</span> /mnt <span class="nt">-d</span> /dev/disk/by-id
</code></pre></div></div>

<p>接下来创建 zfs datasets：</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>zfs create <span class="nt">-o</span> <span class="nv">canmount</span><span class="o">=</span>off    <span class="nt">-o</span> <span class="nv">mountpoint</span><span class="o">=</span>none rpool/archlinux
zfs create <span class="nt">-o</span> <span class="nv">canmount</span><span class="o">=</span>off    <span class="nt">-o</span> <span class="nv">mountpoint</span><span class="o">=</span>none bpool/archlinux

zfs create <span class="nt">-o</span> <span class="nv">canmount</span><span class="o">=</span>noauto <span class="nt">-o</span> <span class="nv">mountpoint</span><span class="o">=</span>/    rpool/archlinux/root
zfs mount rpool/archlinux/root

<span class="c"># /boot</span>
zfs create <span class="nt">-o</span> <span class="nv">mountpoint</span><span class="o">=</span>/boot bpool/archlinux/root

<span class="c"># /home and /root</span>
zfs create <span class="nt">-o</span> <span class="nv">mountpoint</span><span class="o">=</span>/home rpool/home
zfs create <span class="nt">-o</span> <span class="nv">mountpoint</span><span class="o">=</span>/root rpool/home/root
<span class="nb">chmod </span>700 /mnt/root

<span class="c"># /var</span>
zfs create <span class="nt">-o</span> <span class="nv">canmount</span><span class="o">=</span>off     rpool/var
zfs create <span class="nt">-o</span> <span class="nv">canmount</span><span class="o">=</span>off     rpool/var/lib
zfs create                     rpool/var/lib/log
zfs create                     rpool/var/lib/libvirt
</code></pre></div></div>

<h3 id="安装-arch">安装 Arch</h3>
<p>接下来在 <em>/mnt</em> 安装必要的包并 <em>chroot</em>：</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pacstrap <span class="nt">-K</span> /mnt base base-devel linux-firmware
arch-chroot /mnt
</code></pre></div></div>

<p>然后将 <a href="https://wiki.archlinux.org/title/Unofficial_user_repositories#archzfs">ArchZFS</a> 和 <a href="https://github.com/linux-surface/linux-surface/wiki/Installation-and-Setup#Arch">LinuxSurface</a> 的仓库加入 <code class="language-plaintext highlighter-rouge">/etc/pacman.conf</code> 并且<a href="https://wiki.archlinux.org/title/Pacman/Package_signing#Adding_unofficial_keys">加入相关 key</a>，并且安装相关的包：</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pacman <span class="nt">-Sy</span>
pacman <span class="nt">-S</span> linux-surface linux-surface-headers iptsd intel-ucode
pacman <span class="nt">-S</span> zfs-dkms zfs-utils
</code></pre></div></div>

<p>修改 <code class="language-plaintext highlighter-rouge">/etc/mkinitcpio.conf</code>，分别在 MODULES 和 HOOK 加入 zfs, luks 还有 surface 键盘相关模块，其中 surface 相关模块是为了在解密 LUKS 的时候可以用 Type Cover 键盘输入密码<sup id="fnref:typecover" role="doc-noteref"><a href="#fn:typecover" class="footnote" rel="footnote">4</a></sup>。</p>
<pre><code class="language-plain">MODULES=(zfs surface_aggregator surface_aggregator_registry surface_aggregator_hub surface_hid_core 8250_dw surface_hid surface_kbd intel_lpss intel_lpss_pci pinctrl_tigerlake)
HOOKS=(base udev autodetect modconf kms keyboard keymap consolefont block encrypt zfs filesystems fsck)
</code></pre>

<p>修改完成后使用 <code class="language-plaintext highlighter-rouge">mkinitcpio -P</code> 重新生成 initramfs，并且启用下列服务：</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>zpool <span class="nb">set </span><span class="nv">cachefile</span><span class="o">=</span>/etc/zfs/zpool.cache rpool
zpool <span class="nb">set </span><span class="nv">cachefile</span><span class="o">=</span>/etc/zfs/zpool.cache bpool
systemctl <span class="nb">enable </span>zfs.target
systemctl <span class="nb">enable </span>zfs-import.target
systemctl <span class="nb">enable </span>zfs-import-cache.service
systemctl <span class="nb">enable </span>zfs-mount.service
</code></pre></div></div>

<h3 id="安装引导">安装引导</h3>
<p>下面安装 Grub：</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pacman <span class="nt">-S</span> grub efibootmgr
</code></pre></div></div>

<p>因为 Grub 可能无法自动识别根目录对应的 zpool，所以需要手动修改指定（这在每次更新 Grub 后都需要进行）：</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sed</span> <span class="nt">-i</span> <span class="s1">'s/rpool=/rpool="rpool" #/'</span> /etc/grub.d/10_linux
</code></pre></div></div>

<p>接下来修改 <code class="language-plaintext highlighter-rouge">/etc/default/grub</code> 中的内核参数，指定启动时需要解密的 LUKS 设备：</p>
<pre><code class="language-plain">GRUB_CMDLINE_LINUX="cryptdevice=UUID=&lt;uuid of your LUKS partition&gt;:root_crypt:discard zfs_import_dir=/dev/disk/by-id/"
</code></pre>

<p>之后创建 <code class="language-plaintext highlighter-rouge">/boot/efi</code> 并且暂时退出 chroot 环境挂载 EFI 分区（<code class="language-plaintext highlighter-rouge">mount /dev/nvme0n1p1 /mnt/boot/efi</code>），然后再回到 chroot 安装 Grub：</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>grub-install <span class="nt">--target</span><span class="o">=</span>x86_64-efi <span class="nt">--efi-directory</span><span class="o">=</span>/boot/efi <span class="nt">--bootloader-id</span><span class="o">=</span>GRUB
grub-mkconfig <span class="nt">-o</span> /boot/grub/grub.cfg
</code></pre></div></div>

<p><strong>Update:</strong> 见评论区，<code class="language-plaintext highlighter-rouge">root=</code> 也可以直接指定。因为内核按照顺序解析参数，<code class="language-plaintext highlighter-rouge">root=</code> 交由 <code class="language-plaintext highlighter-rouge">init/do_mounts.c</code> 中的 <code class="language-plaintext highlighter-rouge">root_dev_setup</code> 处理，它干的事情只是把对应参数拷贝到某个缓冲区（就是一个 <code class="language-plaintext highlighter-rouge">strscpy</code>），因此重复的参数最终起效的会是后面的那个<sup id="fnref:dup_root" role="doc-noteref"><a href="#fn:dup_root" class="footnote" rel="footnote">5</a></sup>。</p>

<h3 id="安装系统剩余部分">安装系统剩余部分</h3>
<p>剩下的事情就是安装图形界面和创建账户了，这就和普通的安装过程没有区别了。</p>

<p>另外，如果觉得机器的内存不太够，也可以适当考虑打开 <a href="https://wiki.archlinux.org/title/Zram">zram</a>。</p>

<h3 id="secure-boot">Secure Boot</h3>
<p>目前安装的系统是不支持 Secure Boot 的，如果需要启用 Secure Boot，需要进行额外的一些操作<sup id="fnref:secureboot" role="doc-noteref"><a href="#fn:secureboot" class="footnote" rel="footnote">6</a></sup>。例如使用 <a href="https://aur.archlinux.org/packages/shim-signed/">shim-signed</a>。<del>但是我暂时没有成功。</del>实际是可以的，看了 menci 的<a href="https://blog.men.ci/luks-with-tpm2-secure-boot/#%E9%85%8D%E7%BD%AE-secure-boot">这篇博文</a>之后才发现我没认真读 archwiki，忘记把模块打包进 Grub 了<sup id="fnref:menci" role="doc-noteref"><a href="#fn:menci" class="footnote" rel="footnote">7</a></sup>。</p>

<p>按照 archwiki 的描述<sup id="fnref:archwiki_grub" role="doc-noteref"><a href="#fn:archwiki_grub" class="footnote" rel="footnote">8</a></sup>，需要把 Grub 模块全部嵌入 <code class="language-plaintext highlighter-rouge">grubx64.efi</code>（具体的模块见 wiki），并且需要在该文件中包含 sbat section，假设 <code class="language-plaintext highlighter-rouge">GRUB_MODULES</code> 环境变量包含了所需的模块，那么前边的 Grub 安装需要改成</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>grub-install --target=x86_64-efi --efi-directory=esp --modules=${GRUB_MODULES} --sbat /usr/share/grub/sbat.csv
</code></pre></div></div>

<p>然后做一个 MOK 证书，用 <code class="language-plaintext highlighter-rouge">sbsign</code> 对 <code class="language-plaintext highlighter-rouge">grubx64.efi</code> 以及 <code class="language-plaintext highlighter-rouge">zfs</code> 模块签名即可<sup id="fnref:menci:1" role="doc-noteref"><a href="#fn:menci" class="footnote" rel="footnote">7</a></sup>。</p>

<h3 id="用-tpm-来解锁-luks">用 TPM 来解锁 LUKS</h3>
<p>用 <a href="https://wiki.archlinux.org/title/Clevis#Bind_a_LUKS_volume">clevis</a> 可以不用每次都输入密码解锁 LUKS：</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>clevis luks bind -d /dev/nvme0n1p6 tpm2 '{"pcr_bank":"sha256","pcr_ids":"1,7"}'
</code></pre></div></div>
<p>完事后按照上面 wiki 安装 <code class="language-plaintext highlighter-rouge">mkinitcpio-clevis-hook</code> 并且修改 <code class="language-plaintext highlighter-rouge">mkinitcpio.conf</code> 加入相应 hook。</p>

<h3 id="hibernate">Hibernate</h3>

<p>虽然 linux-surface 里 hibernate 的支持是 <code class="language-plaintext highlighter-rouge">?</code>，但是实际上按照 <a href="https://wiki.archlinux.org/title/Power_management/Suspend_and_hibernate#Hibernation">archwiki</a> 这部分是可以成功挂起硬盘的（需要 6.6.x 版本的内核，6.8.x 似乎有时候会失败）。此外，如果只想在 hibernate 的时候启用 swap，可以参考<a href="https://serverfault.com/questions/849800/swapon-hibernate-on-power-key">这里</a>。</p>

<h2 id="功耗控制">功耗控制</h2>
<p>在 Windows 上 SP8 有三种不同的性能模式，再加上是 AC 还是电池供电有六种情况，它们的 PL1 和 PL2 分别如下：</p>

<table>
  <thead>
    <tr>
      <th>性能模式</th>
      <th>PL1 / PL2 (AC)</th>
      <th>PL1 / PL2 (BAT)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Recommend</td>
      <td>28W / 35W</td>
      <td>13W / 35W</td>
    </tr>
    <tr>
      <td>Performance</td>
      <td>28W / 45W</td>
      <td>28W / 35W</td>
    </tr>
    <tr>
      <td>Maximum Performance</td>
      <td>35W / 60W</td>
      <td>28W / 45W</td>
    </tr>
  </tbody>
</table>

<p>Linux 下面默认应该是 35W / 60W 这个状态，一不小心就过热了，可以在 <code class="language-plaintext highlighter-rouge">crontab</code> 写一个在启动时修改的脚本：</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>@reboot echo 28000000 &gt; /sys/class/powercap/intel-rapl:0/constraint_0_power_limit_uw
@reboot echo 35000000 &gt; /sys/class/powercap/intel-rapl:0/constraint_1_power_limit_uw
</code></pre></div></div>

<p>如果要在插入电源和使用电池间切换，那需要修改 udev 规则：首先编辑 <code class="language-plaintext highlighter-rouge">/usr/local/bin/power_supply_change.sh</code></p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c">#!/usr/bin/bash</span>

<span class="k">if</span> <span class="o">[</span> <span class="nv">$1</span> <span class="o">=</span> <span class="s2">"ac"</span> <span class="o">]</span><span class="p">;</span> <span class="k">then
        </span><span class="nb">echo </span>28000000 <span class="o">&gt;</span> /sys/class/powercap/intel-rapl:0/constraint_0_power_limit_uw
        <span class="nb">echo </span>35000000 <span class="o">&gt;</span> /sys/class/powercap/intel-rapl:0/constraint_1_power_limit_uw
<span class="k">elif</span> <span class="o">[</span> <span class="nv">$1</span> <span class="o">=</span> <span class="s2">"bat"</span> <span class="o">]</span><span class="p">;</span> <span class="k">then
        </span><span class="nb">echo </span>15000000 <span class="o">&gt;</span> /sys/class/powercap/intel-rapl:0/constraint_0_power_limit_uw
        <span class="nb">echo </span>35000000 <span class="o">&gt;</span> /sys/class/powercap/intel-rapl:0/constraint_1_power_limit_uw
<span class="k">fi</span>
</code></pre></div></div>

<p>然后编辑 <code class="language-plaintext highlighter-rouge">/etc/udev/rules.d/60-onbattery.rules</code>：</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># Rule for when switching to battery
SUBSYSTEM=="power_supply",ENV{POWER_SUPPLY_ONLINE}=="0",RUN+="/usr/local/bin/power_supply_change.sh bat"
# Rule for when switching to AC
SUBSYSTEM=="power_supply",ENV{POWER_SUPPLY_ONLINE}=="1",RUN+="/usr/local/bin/power_supply_change.sh ac"
</code></pre></div></div>

<p>最后重新加载 udev 规则，并给相关脚本加入可执行权限：</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">chmod</span> +x /usr/local/bin/power_supply_change.sh
udevadm control <span class="nt">--reload-rules</span>
</code></pre></div></div>

<p>此外，机器是不能长时间运行在 28W PL1 下的，过热的时候 surface 固件会把 CPU 频率设置为 200MHz 并且风扇开到最大，持续一段时间温度下来之后才会恢复<sup id="fnref:sp_throttle" role="doc-noteref"><a href="#fn:sp_throttle" class="footnote" rel="footnote">9</a></sup>。可以参考这里的 <a href="https://github.com/linux-surface/linux-surface/issues/221">issue</a> 用 thermald 来控制温度，具体配置 <code class="language-plaintext highlighter-rouge">/etc/thermald/thermal-conf.xml</code> 如下（不确定和上面电池的 PL1/PL2 修改冲不冲突）：</p>

<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">&lt;?xml version="1.0"?&gt;</span>
<span class="nt">&lt;ThermalConfiguration&gt;</span>
<span class="nt">&lt;Platform&gt;</span>
        <span class="nt">&lt;Name&gt;</span>Surface Pro 8 Thermal<span class="nt">&lt;/Name&gt;</span>
        <span class="nt">&lt;ProductName&gt;</span>*<span class="nt">&lt;/ProductName&gt;</span>
        <span class="nt">&lt;Preference&gt;</span>QUIET<span class="nt">&lt;/Preference&gt;</span>
        <span class="nt">&lt;ThermalZones&gt;</span>
                <span class="nt">&lt;ThermalZone&gt;</span>
                        <span class="nt">&lt;Type&gt;</span>cpu<span class="nt">&lt;/Type&gt;</span>
                        <span class="nt">&lt;TripPoints&gt;</span>
                                <span class="nt">&lt;TripPoint&gt;</span>
                                        <span class="nt">&lt;SensorType&gt;</span>x86_pkg_temp<span class="nt">&lt;/SensorType&gt;</span>
                                        <span class="nt">&lt;Temperature&gt;</span>65000<span class="nt">&lt;/Temperature&gt;</span>
                                        <span class="nt">&lt;type&gt;</span>passive<span class="nt">&lt;/type&gt;</span>
                                        <span class="nt">&lt;ControlType&gt;</span>SEQUENTIAL<span class="nt">&lt;/ControlType&gt;</span>
                                        <span class="nt">&lt;CoolingDevice&gt;</span>
                                                <span class="nt">&lt;index&gt;</span>1<span class="nt">&lt;/index&gt;</span>
                                                <span class="nt">&lt;type&gt;</span>rapl_controller<span class="nt">&lt;/type&gt;</span>
                                                <span class="nt">&lt;influence&gt;</span>100<span class="nt">&lt;/influence&gt;</span>
                                                <span class="nt">&lt;SamplingPeriod&gt;</span>10<span class="nt">&lt;/SamplingPeriod&gt;</span>
                                        <span class="nt">&lt;/CoolingDevice&gt;</span>
                                <span class="nt">&lt;/TripPoint&gt;</span>
                        <span class="nt">&lt;/TripPoints&gt;</span>
                <span class="nt">&lt;/ThermalZone&gt;</span>
        <span class="nt">&lt;/ThermalZones&gt;</span>
<span class="nt">&lt;/Platform&gt;</span>
<span class="nt">&lt;/ThermalConfiguration&gt;</span>
</code></pre></div></div>

<h2 id="plasma-相关设置">Plasma 相关设置</h2>
<h3 id="窗口修改-titlebar-为黑色">窗口修改 titlebar 为黑色</h3>

<p>如果在浅色主题下想要修改 Konsole 的标题栏为黑色，可以打开 System Settings - Window Rules, 添加如下规则<sup id="fnref:konsole_dark" role="doc-noteref"><a href="#fn:konsole_dark" class="footnote" rel="footnote">10</a></sup>：</p>
<ul>
  <li>Window class (application): Exact Match - org.kde.konsole</li>
  <li>Appearance &amp; Fixes: Titlebar color scheme - Force - Breeze Dark</li>
</ul>

<p>VSCode 也可以类似操作，然后在其内部修改 window.menuBarVisibility 为不可见就可以关闭菜单栏。</p>

<h3 id="konsole-修改-tab-bar-菜单为深色">Konsole 修改 Tab Bar 菜单为深色</h3>

<p>编辑 Consigure - Tab Bar / Splitters 下方的 Miscellaneous，选择 Use user-defined stylesheet 并且使用如下 CSS 文件：</p>

<div class="language-css highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c">/* Based on codemedic's work (https://gist.github.com/codemedic/f11cc460b8d9544f9afc) */</span>
<span class="nt">QWidget</span><span class="o">,</span> <span class="nt">QTabWidget</span><span class="nd">::pane</span><span class="o">,</span> <span class="nt">QTabWidget</span><span class="nd">::tab-bar</span> <span class="p">{</span>
    <span class="nl">background-color</span><span class="p">:</span> <span class="m">#383c4a</span><span class="p">;</span>
<span class="p">}</span>
<span class="nt">QTabBar</span><span class="nd">::tab</span> <span class="p">{</span>
    <span class="nl">color</span><span class="p">:</span> <span class="m">#777</span><span class="p">;</span> 
    <span class="nl">background-color</span><span class="p">:</span> <span class="m">#383c4a</span><span class="p">;</span> <span class="c">/* Pick from current color scheme from System Settings &gt; Color &gt; Modify &gt; Colors &gt; Window Background */</span>
    <span class="nl">font-size</span><span class="p">:</span> <span class="m">11px</span><span class="p">;</span>
    <span class="nl">padding</span><span class="p">:</span> <span class="m">6px</span><span class="p">;</span>
<span class="p">}</span>
<span class="nt">QTabBar</span><span class="nd">::tab:selected</span><span class="o">,</span> <span class="nt">QTabBar</span><span class="nd">::tab:hover</span> <span class="p">{</span>
    <span class="nl">color</span><span class="p">:</span> <span class="m">#d3dae3</span><span class="p">;</span> <span class="c">/* Pick from current color scheme from System Settings &gt; Color &gt; Modify &gt; Colors &gt; Window Text */</span>
    <span class="nl">background</span><span class="p">:</span> <span class="n">qlineargradient</span><span class="p">(</span><span class="n">x1</span><span class="p">:</span> <span class="m">0</span><span class="p">,</span> <span class="n">y1</span><span class="p">:</span> <span class="m">1</span><span class="p">,</span> <span class="n">x2</span><span class="p">:</span> <span class="m">0</span><span class="p">,</span> <span class="n">y2</span><span class="p">:</span> <span class="m">0</span><span class="p">,</span> <span class="n">stop</span><span class="p">:</span> <span class="m">0</span> <span class="m">#d3dae3</span><span class="p">,</span> <span class="n">stop</span><span class="p">:</span> <span class="m">0.001</span> <span class="m">#d3dae3</span><span class="p">,</span> <span class="n">stop</span><span class="p">:</span> <span class="m">0.07</span> <span class="m">#383c4a</span><span class="p">);</span>
                                                             <span class="c">/* Same as color         Same as color  Same as background-color*/</span>
<span class="p">}</span>
</code></pre></div></div>

<h3 id="super--tab">Super + Tab</h3>

<p>如果要实现类似 Windows 下 <code class="language-plaintext highlighter-rouge">Super + Tab</code> 的功能，需要修改 System Settings - Desktop Effects 下面 Present Windows 项的快捷键。</p>

<h3 id="va-api-加速视频解码">VA-API 加速视频解码</h3>

<p>参照 <a href="https://wiki.archlinux.org/title/Hardware_video_acceleration#Intel">ArchWiki</a>，需要安装 <code class="language-plaintext highlighter-rouge">intel-media-driver</code>。之后可以播放视频并且通过 <code class="language-plaintext highlighter-rouge">intel_gpu_top</code> 查看 ENGINES 下方 Video 部分是否非零（这个程序在 <code class="language-plaintext highlighter-rouge">intel-gpu-tools</code> 里）。 对于 Microsoft Edge 还需要添加 <code class="language-plaintext highlighter-rouge">--enable-features=VaapiVideoDecodeLinuxGL</code><sup id="fnref:vaapi_edge" role="doc-noteref"><a href="#fn:vaapi_edge" class="footnote" rel="footnote">11</a></sup>。对于 OBS Studio，硬件加速编码需要额外安装 <code class="language-plaintext highlighter-rouge">onevpl-intel-gpu</code>，具体参考相关 <a href="https://github.com/obsproject/obs-studio/issues/9825">issue</a>。</p>

<h3 id="字体配置">字体配置</h3>

<p>编辑 <code class="language-plaintext highlighter-rouge">~/.config/fontconfig/fonts.conf</code>：</p>
<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">&lt;?xml version="1.0"?&gt;</span>
<span class="cp">&lt;!DOCTYPE fontconfig SYSTEM "fonts.dtd"&gt;</span>
<span class="nt">&lt;fontconfig&gt;</span>
  <span class="c">&lt;!-- Serif --&gt;</span>
  <span class="nt">&lt;alias&gt;</span>
    <span class="nt">&lt;family&gt;</span>serif<span class="nt">&lt;/family&gt;</span>
    <span class="nt">&lt;prefer&gt;</span>
      <span class="nt">&lt;family&gt;</span>DejaVu Serif<span class="nt">&lt;/family&gt;</span>
      <span class="nt">&lt;family&gt;</span>Source Han Serif CN<span class="nt">&lt;/family&gt;</span>
      <span class="nt">&lt;family&gt;</span>Noto Serif CJK SC<span class="nt">&lt;/family&gt;</span>
    <span class="nt">&lt;/prefer&gt;</span>
  <span class="nt">&lt;/alias&gt;</span>
  <span class="c">&lt;!-- Sans-serif --&gt;</span>
  <span class="nt">&lt;alias&gt;</span>
    <span class="nt">&lt;family&gt;</span>sans-serif<span class="nt">&lt;/family&gt;</span>
    <span class="nt">&lt;prefer&gt;</span>
      <span class="nt">&lt;family&gt;</span>DejaVu Sans<span class="nt">&lt;/family&gt;</span>
      <span class="nt">&lt;family&gt;</span>Source Han Sans CN<span class="nt">&lt;/family&gt;</span>
      <span class="nt">&lt;family&gt;</span>Noto Sans CJK SC<span class="nt">&lt;/family&gt;</span>
    <span class="nt">&lt;/prefer&gt;</span>
  <span class="nt">&lt;/alias&gt;</span>
  <span class="c">&lt;!-- Monospace --&gt;</span>
  <span class="nt">&lt;alias&gt;</span>
    <span class="nt">&lt;family&gt;</span>monospace<span class="nt">&lt;/family&gt;</span>
    <span class="nt">&lt;prefer&gt;</span>
      <span class="nt">&lt;family&gt;</span>DejaVu Sans Mono<span class="nt">&lt;/family&gt;</span>
      <span class="nt">&lt;family&gt;</span>Source Han Sans CN<span class="nt">&lt;/family&gt;</span>
      <span class="nt">&lt;family&gt;</span>Noto Sans CJK SC<span class="nt">&lt;/family&gt;</span>
    <span class="nt">&lt;/prefer&gt;</span>
  <span class="nt">&lt;/alias&gt;</span>
<span class="nt">&lt;/fontconfig&gt;</span>
</code></pre></div></div>

<p>另外，建议安装 <code class="language-plaintext highlighter-rouge">ttf-hack-nerd</code>，会有一些图标的 patch。</p>

<h3 id="中文输入">中文输入</h3>
<p>安装 <code class="language-plaintext highlighter-rouge">fcitx5-im</code> 并且按照<a href="https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#KDE_Plasma">这里</a>的文档处理。如果使用 Microsoft Edge 或者 Google Chrome 需要增加如下参数，否则触控板是无法通过手势放大和缩小网页的。中文输入法安装 <code class="language-plaintext highlighter-rouge">fcitx5-chinese-addons</code> 即可。还有些例如 Sogou 输入法和中文维基百科的词库，可以参考 <a href="https://wiki.archlinux.org/title/Fcitx5#Import_Sogou_words_library">ArchWiki</a>。</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>microsoft-edge-stable  --enable-features=UseOzonePlatform,VaapiVideoDecodeLinuxGL --ozone-platform=wayland --enable-wayland-ime
</code></pre></div></div>

<h2 id="windows-上的相关软件">Windows 上的相关软件</h2>

<ul>
  <li>微信：现在有原生的 Linux 版本了，参见 <a href="https://wiki.archlinuxcn.org/zh/%E5%BE%AE%E4%BF%A1">ArchWiki</a></li>
  <li>Office：用 WPS，显示效果比较正常，如果使用 fcitx 可以参考<a href="https://github.com/fcitx/fcitx5/issues/83#issuecomment-749339993">这里</a>的 fix。</li>
  <li>笔记软件：Xournal++，支持 Surface Pen 以及压感，挺不错的</li>
  <li>EmbyTheater：这东西全屏的时候老是会拿窗口焦点，让人干不了别的事情，可以把对应代码删掉
    <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sed</span> <span class="nt">-i</span> <span class="s1">'s/mainWindow.focus();//'</span> /usr/lib/emby-theater/resources/app/main.js
</code></pre></div>    </div>
  </li>
</ul>

<h2 id="surface-pen-以及触摸屏相关">Surface Pen 以及触摸屏相关</h2>

<p>Surface Pen 距离屏幕比较近的时候一般关闭触摸屏功能会比较合适，这可以修改 <code class="language-plaintext highlighter-rouge">/etc/iptsd.conf</code> 的如下参数：</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>##
## Ignore all touch inputs if a stylus is in proximity.
##
DisableOnStylus = true
</code></pre></div></div>

<p>支持压感的笔记和 PDF 标注软件推荐 <a href="https://xournalpp.github.io/">Xournal++</a>。另外，ArchWiki 还有一些其它的推荐<sup id="fnref:tablet_drawing" role="doc-noteref"><a href="#fn:tablet_drawing" class="footnote" rel="footnote">12</a></sup>。</p>

<h2 id="led-彩蛋">LED 彩蛋</h2>

<p>虽然摄像头不能工作，但是摄像头的指示灯还是可以被系统识别的，这里的 <code class="language-plaintext highlighter-rouge">INT33BE_00::privacy_led</code> 和 <code class="language-plaintext highlighter-rouge">OVTID858_00::privacy_led</code> 分别是前后两个摄像头旁边的灯。</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">ls</span> /sys/class/leds/
input32::capslock  input32::scrolllock      OVTID858_00::privacy_led  SMO55F0_00::privacy_led
input32::numlock   INT33BE_00::privacy_led  phy0-led
</code></pre></div></div>

<p>既然可以控制它，那就可以用它来干点好玩的事情，比如用来显示网卡的工作情况：</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">led</span><span class="o">=</span><span class="s2">"INT33BE_00::privacy_led"</span>
modprobe ledtrig-netdev
<span class="nb">echo </span>netdev <span class="o">&gt;</span> <span class="s2">"/sys/class/leds/</span><span class="nv">$led</span><span class="s2">/trigger"</span> 
<span class="nb">echo </span>1 <span class="o">&gt;</span> <span class="s2">"/sys/class/leds/</span><span class="nv">$led</span><span class="s2">/tx"</span> 
<span class="nb">echo </span>1 <span class="o">&gt;</span> <span class="s2">"/sys/class/leds/</span><span class="nv">$led</span><span class="s2">/rx"</span> 
<span class="nb">echo </span>1 <span class="o">&gt;</span> <span class="s2">"/sys/class/leds/</span><span class="nv">$led</span><span class="s2">/link"</span> 
<span class="nb">echo </span>wlp0s20f3 <span class="o">&gt;</span> <span class="s2">"/sys/class/leds/</span><span class="nv">$led</span><span class="s2">/device_name"</span> 
</code></pre></div></div>

<video src="/assets/videos/blink-surface-front-led.mp4" class="centered" style="max-width: 100%" controls=""></video>

<h2 id="参考资料">参考资料</h2>
<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:archwiki" role="doc-endnote">
      <p><a href="https://wiki.archlinux.org/title/Install_Arch_Linux_on_ZFS#Install_and_configure_Arch_Linux">Install Arch Linux on ZFS - ArchWiki</a> <a href="#fnref:archwiki" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:notes_encryption" role="doc-endnote">
      <p>Grub2 好像也可以处理完全加密的情况，但是这里还是分开成 bpool 和 rpool 两个部分。 <a href="#fnref:notes_encryption" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:luks" role="doc-endnote">
      <p>此处可以参考 <a href="https://wiki.archlinux.org/title/dm-crypt/Device_encryption">dm-crypt/Device encryption - ArchWiki (archlinux.org)</a>。 <a href="#fnref:luks" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:typecover" role="doc-endnote">
      <p><a href="https://github.com/linux-surface/linux-surface/wiki/Disk-Encryption">Disk Encryption · linux-surface/linux-surface Wiki (github.com)</a> <a href="#fnref:typecover" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:dup_root" role="doc-endnote">
      <p><a href="https://unix.stackexchange.com/questions/29017/multiple-root-options-in-linux-command-line">Multiple root options in Linux command line</a> <a href="#fnref:dup_root" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:secureboot" role="doc-endnote">
      <p><a href="https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#shim">Unified Extensible Firmware Interface/Secure Boot - ArchWiki (archlinux.org)</a> <a href="#fnref:secureboot" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:menci" role="doc-endnote">
      <p><a href="https://blog.men.ci/luks-with-tpm2-secure-boot/#%E7%AD%BE%E5%90%8D%E5%B9%B6%E5%AE%89%E8%A3%85-grub">基于 TPM 2.0 与 Secure Boot 的 LUKS 自动解密 - Menci’s Blog</a> <a href="#fnref:menci" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:menci:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
    <li id="fn:archwiki_grub" role="doc-endnote">
      <p><a href="https://wiki.archlinux.org/title/GRUB#Shim-lock">GRUB: Shim-lock - ArchWiki</a> <a href="#fnref:archwiki_grub" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:sp_throttle" role="doc-endnote">
      <p><a href="https://github.com/linux-surface/linux-surface/issues/221">https://github.com/linux-surface/linux-surface/issues/221</a> <a href="#fnref:sp_throttle" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:konsole_dark" role="doc-endnote">
      <p><a href="https://www.reddit.com/r/kde/comments/6pllc4/tip_dark_theme_for_konsole/">Dark theme for konsole</a> <a href="#fnref:konsole_dark" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:vaapi_edge" role="doc-endnote">
      <p><a href="https://wiki.archlinux.org/title/Chromium#Hardware_video_acceleration">https://wiki.archlinux.org/title/Chromium#Hardware_video_acceleration</a> <a href="#fnref:vaapi_edge" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:tablet_drawing" role="doc-endnote">
      <p><a href="https://wiki.archlinux.org/title/Graphics_tablet">https://wiki.archlinux.org/title/Graphics_tablet</a> <a href="#fnref:tablet_drawing" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name></name></author><category term="折腾" /><category term="Linux" /><summary type="html"><![CDATA[最近实在忍受不了 Windows 放着什么也不干功耗都能到达 10W，所以打算给 Surface Pro 8 装个 Arch (with ZFS on LUKS) 看看。目前看起来使用 linux surface kernel 之后除了摄像头和以外都可以得到支持。Surface Pen 也有相应的软件可以支持压感和手写笔记，并且换成 Linux 后机器的续航明显提高了！现在不干什么事情的话亮度在 30% 的时候一般是 5-6W，普通浏览网页是 7W 左右的功耗。]]></summary></entry><entry><title type="html">记录一次服务器硬盘扩容</title><link href="https://blog.miskcoo.com/2023/12/expand-raid" rel="alternate" type="text/html" title="记录一次服务器硬盘扩容" /><published>2023-12-20T00:00:00+08:00</published><updated>2023-12-20T00:00:00+08:00</updated><id>https://blog.miskcoo.com/2023/12/expand-raid</id><content type="html" xml:base="https://blog.miskcoo.com/2023/12/expand-raid"><![CDATA[<p>前一段时间组里的一些机器硬盘满了，需要进行扩容。这些机器的盘一共是 4 个 1.8T 的固态，接在一张 LSI9361-8i RAID 卡上，组成一个 RAID5 使用。机器上可用的盘位还有 4 个，我们决定给这个阵列扩充两个同样大小的盘。</p>

<p>整个扩容分成三个步骤。首先是去机房把新的硬盘插入机器，确认系统可以看到盘之后就可以走人了。</p>

<h2 id="阵列的扩容">阵列的扩容</h2>

<p>接下来是对阵列的扩容，它可以使用 MegaCli 来完成<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>。这一步对用户是透明的，不会影响正在使用对应设备的程序。首先需要通过 <code class="language-plaintext highlighter-rouge">MegaCli64 -LDInfo -Lall -aALL</code> 查看待扩容阵列的 ID 和 RAID 卡 ID，这两个 ID 分别对应前面的参数 <code class="language-plaintext highlighter-rouge">-L</code> 和 <code class="language-plaintext highlighter-rouge">-a</code>。例如我们的机器只有一个阵列和一张 RAID 卡，得到的是如下输出，对应的就是 <code class="language-plaintext highlighter-rouge">-L0 -a0</code>：</p>

<figure class="highlight"><pre><code class="language-plain" data-lang="plain">Adapter 0 -- Virtual Drive Information:
Virtual Drive: 0 (Target Id: 0)
Name                :
RAID Level          : Primary-5, Secondary-0, RAID Level Qualifier-3
Size                : 8.729 TB
Sector Size         : 512
Is VD emulated      : Yes
Parity Size         : 1.745 TB
State               : Optimal
Strip Size          : 256 KB
Number Of Drives    : 6
Span Depth          : 1
Default Cache Policy: WriteThrough, ReadAhead, Direct, No Write Cache if Bad BBU
Current Cache Policy: WriteThrough, ReadAhead, Direct, No Write Cache if Bad BBU
Default Access Policy: Read/Write
Current Access Policy: Read/Write
Disk Cache Policy   : Disk's Default
Encryption Type     : None
Bad Blocks Exist: No
PI type: No PI

Is VD Cached: No</code></pre></figure>

<p>接下来通过 <code class="language-plaintext highlighter-rouge">MegaCli64 -PDList -aALL</code> 确认新插入硬盘的 <em>Enclosure Device ID</em> 和 <em>Slot Number</em>，如果我们两个盘的对应的值分别是 <em>252, 5</em> 以及 <em>252, 6</em> 那么可以通过如下命令扩容（注意同时增加多个硬盘需要一条命令写全，否则相当于两次重建）：</p>

<figure class="highlight"><pre><code class="language-shell" data-lang="shell">MegaCli64 <span class="nt">-LDRecon</span> <span class="nt">-Start</span> <span class="nt">-r5</span> <span class="nt">-Add</span> <span class="nt">-PhysDrv</span><span class="o">[</span>252:5,252:6] <span class="nt">-L0</span> <span class="nt">-a0</span></code></pre></figure>

<p>扩容过程中可以通过 <code class="language-plaintext highlighter-rouge">MegaCli64 -LDRecon -ShowProg -L0 -a0</code> 来查看扩容进度。</p>

<h2 id="文件系统扩容">文件系统扩容</h2>

<p>如果原先的阵列对应的 <code class="language-plaintext highlighter-rouge">/dev/sda</code>，那么接下来确认没有程序占用它后，需要使用 <code class="language-plaintext highlighter-rouge">echo 1 &gt; /sys/class/block/sda/device/rescan</code> 来让系统认出扩容后阵列的正确大小。然后修改分区表，并且用相关命令扩容文件系统<sup id="fnref:1:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>。例如 ext4 则可以直接 <code class="language-plaintext highlighter-rouge">resize2fs</code>，然后应该还需要用 <code class="language-plaintext highlighter-rouge">tune2fs</code> 修改一下 <code class="language-plaintext highlighter-rouge">strip-width</code>。</p>

<h2 id="参考资料">参考资料</h2>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1" role="doc-endnote">
      <p><a href="https://www.advancedclustering.com/act_kb/how-to-expand-an-existing-lsi-raid-array-using-megacli/">How to expand an existing LSI raid array using MegaCli - Advanced Clustering Technologies</a> <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:1:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
  </ol>
</div>]]></content><author><name></name></author><category term="折腾" /><category term="Linux" /><summary type="html"><![CDATA[前一段时间组里的一些机器硬盘满了，需要进行扩容。这些机器的盘一共是 4 个 1.8T 的固态，接在一张 LSI9361-8i RAID 卡上，组成一个 RAID5 使用。机器上可用的盘位还有 4 个，我们决定给这个阵列扩充两个同样大小的盘。]]></summary></entry><entry><title type="html">用 ESP8266 制备室内温度和空气检测器</title><link href="https://blog.miskcoo.com/2023/09/esp8266-sensor" rel="alternate" type="text/html" title="用 ESP8266 制备室内温度和空气检测器" /><published>2023-09-04T00:00:00+08:00</published><updated>2023-09-04T00:00:00+08:00</updated><id>https://blog.miskcoo.com/2023/09/esp8266-sensor</id><content type="html" xml:base="https://blog.miskcoo.com/2023/09/esp8266-sensor"><![CDATA[<p>之前用闲置的树莓派搭了个室内的温度和空气质量监测器，但是问题是树莓派太贵了，这样的方案不太容易批量复制。另外一种便宜的方案是用 ESP8266（大约十来块钱）来作为传感器和电脑之间的中介，它可以通过自带的 WiFi 和电脑连接。</p>

<p>实物图大概长这样。</p>

<p><img src="/assets/images/esp8266-sensor/esp8266.jpg" alt="ESP8266" /></p>

<p>传感器还是之前树莓派时候的 AM2320 和 SGP30。至于接线，我们把 AM2320 的 <code class="language-plaintext highlighter-rouge">SCL</code> 和 <code class="language-plaintext highlighter-rouge">SDA</code> 分别接入 <code class="language-plaintext highlighter-rouge">GPIO14 (D5)</code> 和 <code class="language-plaintext highlighter-rouge">GPIO12 (D6)</code>；把 SGP30 的 <code class="language-plaintext highlighter-rouge">SCL</code> 和 <code class="language-plaintext highlighter-rouge">SDA</code> 接入标准的 I2C 引脚：<code class="language-plaintext highlighter-rouge">GPIO5 (D2)</code> 和 <code class="language-plaintext highlighter-rouge">GPIO4 (D1)</code>. 大概按照 <a href="https://randomnerdtutorials.com/esp8266-pinout-reference-gpios/">这里</a> 对应的 ESP8266 12-E NodeMCU Kit 部分的引脚图接线就行。</p>

<p>完成接线后按照 <a href="https://github.com/miskcoo/esp8266_sensor">这里</a> 的说明，安装 <a href="https://github.com/arduino/arduino-cli">arduino-cli</a> 和对应的 ESP8266 相关包，设置好 WiFi 密码后编译并且写入固件即可。其中有一个可选的步骤是设置 SGP30 的 baseline，默认情况下可以不进行，这个传感器每次初始化后会自动处理，一般会需要一段时间后会到达稳定。如果想要初始化更快一些，按照 SGP30 说明书可以运行 12 小时后记录对应 baseline 作为初始的值。</p>

<p>传感器的数据获取通过访问 <code class="language-plaintext highlighter-rouge">http://对应ESP8266的IP</code> 来进行，下方是一个样例输出：</p>

<figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w"> 
    </span><span class="nl">"uptime"</span><span class="p">:</span><span class="w"> </span><span class="mi">3318604</span><span class="p">,</span><span class="w"> 
    </span><span class="nl">"am2320"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"> 
        </span><span class="nl">"status"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ok"</span><span class="p">,</span><span class="w"> 
        </span><span class="nl">"temperature"</span><span class="p">:</span><span class="w"> </span><span class="mf">28.60</span><span class="p">,</span><span class="w"> 
        </span><span class="nl">"humidity"</span><span class="p">:</span><span class="w"> </span><span class="mf">65.10</span><span class="p">,</span><span class="w"> 
        </span><span class="nl">"last_time"</span><span class="p">:</span><span class="w"> </span><span class="mi">12154</span><span class="w"> 
    </span><span class="p">},</span><span class="w"> 
    </span><span class="nl">"sgp30"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"> 
        </span><span class="nl">"status"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ok"</span><span class="p">,</span><span class="w"> 
        </span><span class="nl">"eCO2"</span><span class="p">:</span><span class="w"> </span><span class="mi">408</span><span class="p">,</span><span class="w"> 
        </span><span class="nl">"TVOC"</span><span class="p">:</span><span class="w"> </span><span class="mi">273</span><span class="p">,</span><span class="w"> 
        </span><span class="nl">"last_time"</span><span class="p">:</span><span class="w"> </span><span class="mi">158</span><span class="w"> 
    </span><span class="p">},</span><span class="w"> 
    </span><span class="nl">"sgp30_baseline"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"> 
        </span><span class="nl">"eCO2"</span><span class="p">:</span><span class="w"> </span><span class="mi">36622</span><span class="p">,</span><span class="w"> 
        </span><span class="nl">"TVOC"</span><span class="p">:</span><span class="w"> </span><span class="mi">41061</span><span class="p">,</span><span class="w"> 
        </span><span class="nl">"last_time"</span><span class="p">:</span><span class="w"> </span><span class="mi">12152</span><span class="w"> 
    </span><span class="p">}</span><span class="w"> 
</span><span class="p">}</span></code></pre></figure>

<p>最后，只要按时把数据灌入 grafana 家用灵车传感器就完成了。</p>

<p><img src="/assets/images/esp8266-sensor/esp8266-final.jpg" alt="ESP8266成品" /></p>

<p><strong>Update 2023-09-04</strong>: 突然发现有些十元一个的小 OLED 屏幕，再买了个面包板又生成了一个新型的环境监测器。</p>

<p><img src="/assets/images/esp8266-sensor/esp8266-new.jpg" alt="" /></p>]]></content><author><name></name></author><category term="折腾" /><category term="家用灵车" /><category term="传感器" /><summary type="html"><![CDATA[之前用闲置的树莓派搭了个室内的温度和空气质量监测器，但是问题是树莓派太贵了，这样的方案不太容易批量复制。另外一种便宜的方案是用 ESP8266（大约十来块钱）来作为传感器和电脑之间的中介，它可以通过自带的 WiFi 和电脑连接。]]></summary></entry><entry><title type="html">博客搬家及主题更换</title><link href="https://blog.miskcoo.com/2020/08/blog-transfer" rel="alternate" type="text/html" title="博客搬家及主题更换" /><published>2020-08-10T00:00:00+08:00</published><updated>2020-08-10T00:00:00+08:00</updated><id>https://blog.miskcoo.com/2020/08/blog-transfer</id><content type="html" xml:base="https://blog.miskcoo.com/2020/08/blog-transfer"><![CDATA[<p>2020 真是糟糕的一年，从寒假离校到现在已经在家里半年了。六月本该返校毕业，但是北京疫情突然反弹，返校被临时叫停。</p>

<p>闲暇之余打开博客，发现服务器时常因内存不足而导致数据库服务停止。看来是时候将这个博客从 WordPress 搬迁到静态的框架上了。</p>

<p>在 GitHub 上逛了一圈，发现了一个不错的 Jekyll 主题 <a href="https://github.com/Huxpro/huxpro.github.io">Huxpro</a>。
在修改了部分样式之后我就开始了整个博客的搬迁。
由于原来用 WordPress 写文章的时候较为随意，整个搬迁过程还是挺麻烦的。
不幸的是我没有太多的精力来确认每一篇文章都被正确移动到当前的框架下，因此在这篇文章之前的文章很可能会有些看起来格式等不太正确的地方。如果您发现了这样的地方可以在评论区给我留言。</p>

<p>此外，还有一个不幸的消息是原来博客所有的评论已经全部消失了。</p>

<p><strong>Update 2024-05-24</strong>：评论算是恢复了。</p>]]></content><author><name>miskcoo</name></author><category term="杂记" /><summary type="html"><![CDATA[2020 真是糟糕的一年，从寒假离校到现在已经在家里半年了。六月本该返校毕业，但是北京疫情突然反弹，返校被临时叫停。]]></summary></entry></feed>