<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Godvmxi Blog</title>
  
  <subtitle>Ball Virtual Blog | 蛋种的博客</subtitle>
  <link href="http://vball.fun/atom.xml" rel="self"/>
  
  <link href="http://vball.fun/"/>
  <updated>2026-03-10T18:19:08.950Z</updated>
  <id>http://vball.fun/</id>
  
  <author>
    <name>Bright Jiang</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>Facebook market tagger Privacy Policy</title>
    <link href="http://vball.fun/2026/03/10/fb-market-privacy/"/>
    <id>http://vball.fun/2026/03/10/fb-market-privacy/</id>
    <published>2026-03-10T02:49:29.000Z</published>
    <updated>2026-03-10T18:19:08.950Z</updated>
    
    <content type="html"><![CDATA[<p>Index:</p><!-- toc --><ul><li><a href="#privacy-policy">Privacy Policy</a><ul><li><a href="#privacy-policy-for-faceboot-market-tag-tool">Privacy Policy for Faceboot-Market Tag Tool</a><ul><li><a href="#overview">Overview</a></li><li><a href="#data-collection">Data Collection</a></li><li><a href="#how-the-tool-works">How the Tool Works</a></li><li><a href="#third-party-services">Third-Party Services</a></li><li><a href="#childrens-privacy">Children’s Privacy</a></li><li><a href="#changes-to-this-privacy-policy">Changes to This Privacy Policy</a></li><li><a href="#contact">Contact</a></li></ul></li></ul></li></ul><!-- tocstop --><h1><span id="privacy-policy">Privacy Policy</span></h1><p><strong>Effective Date:</strong> January 1, 2025</p><hr><h2><span id="privacy-policy-for-faceboot-market-tag-tool">Privacy Policy for Faceboot-Market Tag Tool</span></h2><h3><span id="overview">Overview</span></h3><p>This Privacy Policy describes how the Faceboot-Market Tag Tool (“the Tool”, “we”, “our”) handles information in connection with your use of this application. We are committed to being transparent about our data practices and protecting your privacy.</p><hr><h3><span id="data-collection">Data Collection</span></h3><p><strong>We do not collect, store, transmit, process, or share any personal data or personally identifiable information (PII) of any kind.</strong></p><p>This includes, but is not limited to:</p><ul><li>Personal identification information (name, email address, phone number, etc.)</li><li>Device information or identifiers</li><li>Location data</li><li>Usage statistics or analytics</li><li>Cookies or tracking data</li><li>Financial or payment information</li><li>Browsing history or behavioral data</li><li>Any form of metadata associated with your activity</li></ul><hr><h3><span id="how-the-tool-works">How the Tool Works</span></h3><p>The Faceboot-Market Tag Tool operates entirely on a local or client-side basis. Any data you input or interact with while using the Tool remains solely on your own device and is never transmitted to any external server, database, or third party.</p><hr><h3><span id="third-party-services">Third-Party Services</span></h3><p>This Tool does not integrate with any third-party analytics platforms, advertising networks, or data brokers. No third-party services capable of data collection are embedded within the Tool.</p><hr><h3><span id="childrens-privacy">Children’s Privacy</span></h3><p>Since we collect no data whatsoever, there is no risk to the privacy of children or any other group of users. The Tool is safe for use by individuals of all ages in accordance with applicable local regulations.</p><hr><h3><span id="changes-to-this-privacy-policy">Changes to This Privacy Policy</span></h3><p>In the event that our data practices change in the future, this Privacy Policy will be updated accordingly, and users will be notified through appropriate channels. The current version will always reflect our most up-to-date practices.</p><hr><h3><span id="contact">Contact</span></h3><p>If you have any questions or concerns regarding this Privacy Policy, please feel free to reach out through the official support channel associated with this Tool.</p><hr><p><em>This Privacy Policy is provided in good faith and reflects an honest representation of our data handling practices. We respect your privacy and are committed to maintaining a zero-data-collection standard.</em></p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;Index:&lt;/p&gt;
&lt;!-- toc --&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#privacy-policy&quot;&gt;Privacy Policy&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#privacy-policy-for-faceboot-market-tag-t</summary>
      
    
    
    
    
    <category term="Chrome" scheme="http://vball.fun/tags/Chrome/"/>
    
    <category term="Js" scheme="http://vball.fun/tags/Js/"/>
    
  </entry>
  
  <entry>
    <title>Star Miner</title>
    <link href="http://vball.fun/2023/10/23/game-star-miner/"/>
    <id>http://vball.fun/2023/10/23/game-star-miner/</id>
    <published>2023-10-23T07:24:16.000Z</published>
    <updated>2026-03-10T18:19:08.950Z</updated>
    
    <content type="html"><![CDATA[<p>Just for fun</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br></pre></td><td class="code"><pre><span class="line">graph BT</span><br><span class="line"></span><br><span class="line">    subgraph ELE</span><br><span class="line">        ELE_C((碳C))</span><br><span class="line">        ELE_Mn((锰Mn))</span><br><span class="line">        ELE_Co((钴Co))</span><br><span class="line">        ELE_Pb((铅Pb))</span><br><span class="line">        ELE_Sn((锡Sn))</span><br><span class="line">        ELE_Bi((铋Bi))</span><br><span class="line">        ELE_Gold((Gold))</span><br><span class="line">    end</span><br><span class="line"></span><br><span class="line">    subgraph COM</span><br><span class="line">        COM_Cable(Cable)</span><br><span class="line">        COM_Fuse(Fuse)</span><br><span class="line">        COM_Glass(Glass)</span><br><span class="line">    end</span><br><span class="line"></span><br><span class="line">    subgraph COM2</span><br><span class="line">        COM2_Bearing(Bearing)</span><br><span class="line">        COM2_Camer(Camer)</span><br><span class="line">        COM2_Sensor(Sensor)</span><br><span class="line">        COM2_Laser(Laser)</span><br><span class="line">        COM2_Circuit(Circuit)</span><br><span class="line">    end</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"></span><br><span class="line"></span><br><span class="line">    ELE_C -- 5 --&gt; COM_Cable</span><br><span class="line"></span><br><span class="line">    ELE_Sn -- 5 --&gt; COM_Fuse</span><br><span class="line"></span><br><span class="line">    </span><br><span class="line"></span><br><span class="line">    ELE_Co -- 5 --&gt; COM2_Bearing</span><br><span class="line"></span><br><span class="line">    COM_Fuse -- 2 --&gt; COM2_Bearing</span><br><span class="line"></span><br><span class="line">    ELE_Bi  -- 10 --&gt; COM_Glass</span><br><span class="line"></span><br><span class="line">    ELE_Bi  -- 5 --&gt; COM2_Circuit</span><br><span class="line">    COM_Cable  -- 10 --&gt; COM2_Circuit</span><br><span class="line">    ELE_Pb  -- 5 --&gt; COM2_Circuit</span><br><span class="line"></span><br><span class="line">    COM_Cable -- 2 --&gt; COM2_Sensor</span><br><span class="line">    ELE_C -- 10 --&gt; COM2_Sensor</span><br><span class="line"></span><br><span class="line">    COM_Glass(Glass) -- 1 --&gt; COM2_Camer</span><br><span class="line">    ELE_Mn -- 5 --&gt; COM2_Camer</span><br><span class="line"></span><br><span class="line">    ELE_Sn -- 10 --&gt; COM2_Laser</span><br><span class="line">    ELE_Sn -- 1 --&gt; COM2_Laser</span><br><span class="line">    ELE_Gold -- 5 --&gt; COM2_Laser</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"></span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;Just for fun&lt;/p&gt;
&lt;figure class=&quot;highlight plaintext&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;1&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;</summary>
      
    
    
    
    
    <category term="Game" scheme="http://vball.fun/tags/Game/"/>
    
  </entry>
  
  <entry>
    <title>Vscode Tips</title>
    <link href="http://vball.fun/2023/10/23/program-vscode-tips/"/>
    <id>http://vball.fun/2023/10/23/program-vscode-tips/</id>
    <published>2023-10-23T03:19:42.000Z</published>
    <updated>2026-03-10T18:19:08.980Z</updated>
    
    <content type="html"><![CDATA[<h1><span id="remote-gdb-server">Remote GDB server</span></h1><h2><span id="install-vscode-extention-native-debug">Install vscode extention - Native Debug</span></h2><p><a href="https://marketplace.visualstudio.com/items?itemName=webfreak.debug">Market</a><br>Press ctrl-p (cmd+p on OS X) and run</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ext install webfreak.debug</span><br></pre></td></tr></table></figure><h2><span id="set-a-gdb-attach-task">Set a gdb attach task</span></h2><p>.vscode&#x2F;launch.json</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><span class="line">&#123;</span><br><span class="line">    // Use IntelliSense to learn about possible attributes.</span><br><span class="line">    // Hover to view descriptions of existing attributes.</span><br><span class="line">    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387</span><br><span class="line">    <span class="string">&quot;version&quot;</span>: <span class="string">&quot;0.2.0&quot;</span>,</span><br><span class="line">    <span class="string">&quot;configurations&quot;</span>: [</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="string">&quot;type&quot;</span>: <span class="string">&quot;gdb&quot;</span>,</span><br><span class="line">            <span class="string">&quot;request&quot;</span>: <span class="string">&quot;attach&quot;</span>,</span><br><span class="line">            <span class="string">&quot;name&quot;</span>: <span class="string">&quot;Attach to gdbserver&quot;</span>,</span><br><span class="line">            <span class="string">&quot;executable&quot;</span>: <span class="string">&quot;<span class="variable">$&#123;workspaceRoot&#125;</span>/recipes-eth/ethapi_test&quot;</span>,</span><br><span class="line">            <span class="string">&quot;target&quot;</span>: <span class="string">&quot;:7777&quot;</span>,</span><br><span class="line">            <span class="string">&quot;stopAtEntry&quot;</span>: <span class="literal">true</span>,</span><br><span class="line">            <span class="string">&quot;remote&quot;</span>: <span class="literal">true</span>,</span><br><span class="line">            <span class="string">&quot;cwd&quot;</span>: <span class="string">&quot;<span class="variable">$&#123;workspaceRoot&#125;</span>&quot;</span>,</span><br><span class="line">            <span class="string">&quot;valuesFormatting&quot;</span>: <span class="string">&quot;parseText&quot;</span></span><br><span class="line">        &#125;</span><br><span class="line">    ]</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;h1&gt;&lt;span id=&quot;remote-gdb-server&quot;&gt;Remote GDB server&lt;/span&gt;&lt;/h1&gt;&lt;h2&gt;&lt;span id=&quot;install-vscode-extention-native-debug&quot;&gt;Install vscode extention </summary>
      
    
    
    
    
    <category term="Vscode" scheme="http://vball.fun/tags/Vscode/"/>
    
    <category term="Tips" scheme="http://vball.fun/tags/Tips/"/>
    
    <category term="Gdb" scheme="http://vball.fun/tags/Gdb/"/>
    
  </entry>
  
  <entry>
    <title>Yocto Tips</title>
    <link href="http://vball.fun/2023/10/23/program-yocto-tips/"/>
    <id>http://vball.fun/2023/10/23/program-yocto-tips/</id>
    <published>2023-10-23T03:17:17.000Z</published>
    <updated>2026-03-10T18:19:08.980Z</updated>
    
    <content type="html"><![CDATA[<h1><span id="add-gdb-to-target">Add GDB to target</span></h1><p>conf&#x2F;local.conf</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">EXTRA_IMAGE_FEATURES += <span class="string">&quot; tools-debug&quot;</span></span><br><span class="line">WHITELIST_GPL-3.0 += <span class="string">&quot;gdb&quot;</span></span><br><span class="line">WHITELIST_GPL-3.0 += <span class="string">&quot;gdbserver&quot;</span></span><br></pre></td></tr></table></figure><p>Do add the licence to whitelist, other wise it will report license error:</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">Parsing of 1108 .bb files complete (0 cached, 1108 parsed). 1771 targets, 268 skipped, 0 masked, 0 errors.</span><br><span class="line">NOTE: Resolving any missing task queue dependencies</span><br><span class="line">ERROR: Nothing RPROVIDES <span class="string">&#x27;gdb&#x27;</span> (but /srv/build-autolinux/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb RDEPENDS on or otherwise requires it)</span><br><span class="line">gdb was skipped: it has incompatible license(s): GPL-3.0 LGPL-3.0</span><br></pre></td></tr></table></figure><h1><span id="resize-root-file-system-size">Resize root file system size</span></h1><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">diff --git a/recipes-xxx-subcore/images/xxx-subcore-image.bb b/recipes-xxx-subcore/images/xxx-subcore-image.bb</span><br><span class="line">index 63cfb05..d7a817f 100644</span><br><span class="line">--- a/recipes-xxx-subcore/images/xxx-subcore-image.bb</span><br><span class="line">+++ b/recipes-xxx-subcore/images/xxx-subcore-image.bb</span><br><span class="line">@@ -6,7 +6,7 @@ inherit core-image chk_security <span class="variable">$&#123;@bb.utils.contains(&#x27;INVITE_PLATFORM&#x27;, &#x27;fw-upda</span></span><br><span class="line"><span class="variable"> IMAGE_FSTYPES ?= &quot;ext4&quot;</span></span><br><span class="line"><span class="variable"> IMAGE_FSTYPES_xxxxxx= &quot;ext4&quot;</span></span><br><span class="line"><span class="variable"> IMAGE_FSTYPES_xxxxxx = &quot;cpio&quot;</span></span><br><span class="line"><span class="variable">-IMAGE_ROOTFS_SIZE = &quot;10240&quot;</span></span><br><span class="line"><span class="variable">+IMAGE_ROOTFS_SIZE = &quot;409600&quot;</span></span><br></pre></td></tr></table></figure><h1><span id="yocto-command">Yocto command</span></h1><table><thead><tr><th>Useful</th><th>commands</th></tr></thead><tbody><tr><td>bitbake-layers show-recipes</td><td>Show all recipes</td></tr><tr><td>bitbake linux-xxx -c do_listtasks</td><td>Show all task of a package</td></tr><tr><td>bitbake-layers show-appends</td><td>Show bbappends are used</td></tr><tr><td>bitbake linux-xxx -c menuconfig</td><td>Enter the menuconfig of kernel</td></tr><tr><td>bitbake linux-xxx -c devshell</td><td>Enter the devshell of a package</td></tr><tr><td>bitbake-layers show-recipes “<em>-image-</em>“</td><td>Show all support target images</td></tr><tr><td>bitbake <image> -g -u depexp</image></td><td>Show the package dependency for image. <p>Example: To show all packages included on fsl-image-gui </p><p>$ bitbake fsl-image-gui -g -u depexp </p><p>NOTE: This command will open a UI window, so it must be execute on a console inside the host machine (either virtual or native).</p></td></tr></tbody></table><p><a href="https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/Useful-bitbake-commands/ta-p/1128559">More</a></p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1&gt;&lt;span id=&quot;add-gdb-to-target&quot;&gt;Add GDB to target&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;conf&amp;#x2F;local.conf&lt;/p&gt;
&lt;figure class=&quot;highlight bash&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td clas</summary>
      
    
    
    
    
    <category term="Linux" scheme="http://vball.fun/tags/Linux/"/>
    
    <category term="Tips" scheme="http://vball.fun/tags/Tips/"/>
    
    <category term="yocto" scheme="http://vball.fun/tags/yocto/"/>
    
  </entry>
  
  <entry>
    <title>Multiable VLAN support in Windows</title>
    <link href="http://vball.fun/2023/08/23/program-win32-vlan-solution/"/>
    <id>http://vball.fun/2023/08/23/program-win32-vlan-solution/</id>
    <published>2023-08-23T06:16:32.000Z</published>
    <updated>2026-03-10T18:19:08.980Z</updated>
    
    <content type="html"><![CDATA[<h2><span id="backgroud">backgroud</span></h2><p>Fuck windows, not support VLAN, shame on it.<br>We need some all kinds of test traffic with vlan tag in windows.<br>But we encounter so many problem, we tried some solution and found many disadvantages</p><ol><li>Add VLAN TAG in drvier, working on some adaptor<br> disadvantages</li></ol>]]></content>
    
    
      
      
    <summary type="html">&lt;h2&gt;&lt;span id=&quot;backgroud&quot;&gt;backgroud&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Fuck windows, not support VLAN, shame on it.&lt;br&gt;We need some all kinds of test traffic with</summary>
      
    
    
    
    
    <category term="VLAN" scheme="http://vball.fun/tags/VLAN/"/>
    
    <category term="WIN" scheme="http://vball.fun/tags/WIN/"/>
    
  </entry>
  
  <entry>
    <title>Create VLAN Interface in Win10</title>
    <link href="http://vball.fun/2023/08/07/sys-create-vlan-in-win10/"/>
    <id>http://vball.fun/2023/08/07/sys-create-vlan-in-win10/</id>
    <published>2023-08-07T05:58:49.000Z</published>
    <updated>2026-03-10T18:19:08.982Z</updated>
    
    <content type="html"><![CDATA[<p>Run your power shell with admin </p><p>NOTE: All the test is basd on USB ASIX AX88179A USB Ethernet adapter</p><h1><span id="create-virtual-switch">Create Virtual Switch</span></h1><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">New-VMSwitch -name VS0 -NetAdapterName DLINK100 -AllowManagementOS <span class="variable">$false</span></span><br></pre></td></tr></table></figure><h1><span id="create-virtual-interface">Create Virtual Interface</span></h1><p>We can add more virtual interfaces on each virtual switch</p><h2><span id="add-iface-and-set-mac">Add iface and set mac</span></h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">Add-VMNetworkAdapter -Switch VS0 -ManagementOS -Name <span class="string">&quot;DLINK_V45&quot;</span> -StaticMacAddress 02-04-00-00-00-22</span><br><span class="line"></span><br></pre></td></tr></table></figure><h2><span id="set-vlan-id">Set VLAN ID</span></h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName <span class="string">&quot;DLINK_V45&quot;</span> -Access -VlanID 45</span><br></pre></td></tr></table></figure><h1><span id="management-comand">Management comand</span></h1><h2><span id="get-all-virtual-switch">Get all virtual switch</span></h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">get-vmnetworkadapter -managementos</span><br><span class="line"></span><br><span class="line">Name                   IsManagementOs VMName SwitchName     MacAddress   Status IPAddresses</span><br><span class="line">----                   -------------- ------ ----------     ----------   ------ -----------</span><br><span class="line">Container NIC 63053bc9 True                  Default Switch 00155D870D43 &#123;Ok&#125;</span><br><span class="line">DLINK_V45              True                  VS0            020600000022 &#123;Ok&#125;</span><br></pre></td></tr></table></figure><h2><span id="delete-virtual-interface">Delete virtual interface</span></h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">remove-vmnetworkadapter -managementos -name <span class="string">&quot;DLINK_V45&quot;</span></span><br></pre></td></tr></table></figure><h2><span id="check-status-of-virtual-interface">Check status of virtual interface</span></h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">Get-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName <span class="string">&quot;DLINK_V45&quot;</span></span><br><span class="line"></span><br><span class="line">VMName VMNetworkAdapterName Mode   VlanList</span><br><span class="line">------ -------------------- ----   --------</span><br><span class="line">       DLINK_V45            Access 45</span><br></pre></td></tr></table></figure><h2><span id="delete-virtual-switch">Delete Virtual Switch</span></h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Remove-VMSwitch -name <span class="string">&quot;VS0&quot;</span> -Force -Confirm</span><br></pre></td></tr></table></figure><h1><span id="whole-flow">Whole flow</span></h1><h2><span id="add-all">Add All</span></h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br></pre></td><td class="code"><pre><span class="line">New-VMSwitch -name VS0 -NetAdapterName DLINK100 -AllowManagementOS <span class="variable">$false</span></span><br><span class="line">Add-VMNetworkAdapter -Switch VS0 -ManagementOS -Name <span class="string">&quot;VLAN45&quot;</span> -StaticMacAddress 02-04-00-00-00-22</span><br><span class="line">Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName <span class="string">&quot;VLAN45&quot;</span> -Access -VlanID 45</span><br><span class="line"></span><br><span class="line">Add-VMNetworkAdapter -Switch VS0 -ManagementOS -Name <span class="string">&quot;VLAN65&quot;</span> -StaticMacAddress 02-04-00-00-00-44</span><br><span class="line">Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName <span class="string">&quot;VLAN65&quot;</span> -Access -VlanID 65</span><br><span class="line"></span><br><span class="line">Get-VMNetworkAdapterVlan -ManagementOS</span><br><span class="line">get-vmnetworkadapter -managementos</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="comment">#OR</span></span><br><span class="line">New-VMSwitch -name VS0 -NetAdapterName ASIX1000 -AllowManagementOS <span class="variable">$true</span></span><br><span class="line">Add-VMNetworkAdapter -Switch VS0 -ManagementOS -Name <span class="string">&quot;VLAN45&quot;</span> -StaticMacAddress 02-04-00-00-00-22</span><br><span class="line">Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName <span class="string">&quot;VLAN45&quot;</span> -Access -VlanID 45</span><br><span class="line">Get-VMNetworkAdapterVlan -ManagementOS</span><br><span class="line">get-vmnetworkadapter -managementos</span><br><span class="line"></span><br><span class="line">New-VMSwitch -name VS0 -NetAdapterName Ethernet -AllowManagementOS <span class="variable">$false</span></span><br><span class="line"></span><br><span class="line">Add-VMNetworkAdapter -Switch VS0 -ManagementOS -Name <span class="string">&quot;VLAN45&quot;</span> -StaticMacAddress 02-04-00-00-00-22</span><br><span class="line">Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName <span class="string">&quot;VLAN45&quot;</span> -Access -VlanID 45</span><br><span class="line">Add-VMNetworkAdapter -Switch VS0 -ManagementOS -Name <span class="string">&quot;TRUNK&quot;</span> -StaticMacAddress 02-04-00-00-00-33</span><br><span class="line">Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName <span class="string">&quot;TRUNK&quot;</span>  -Trunk -AllowedVlanIdList 2-100 -NativeVlanId 1</span><br><span class="line">Get-VMNetworkAdapterVlan -ManagementOS</span><br><span class="line">get-vmnetworkadapter -managementos</span><br><span class="line"></span><br><span class="line"></span><br><span class="line">Add-VMNetworkAdapter -Switch VS1 -ManagementOS -Name <span class="string">&quot;TRUNK&quot;</span> -StaticMacAddress 02-04-00-00-00-33</span><br><span class="line">Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName <span class="string">&quot;TRUNK&quot;</span>  -Trunk -AllowedVlanIdList 1-4094 -NativeVlanId 1</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"></span><br><span class="line">Add-VMNetworkAdapter -Switch VS1 -ManagementOS -Name <span class="string">&quot;VLAN45&quot;</span> -StaticMacAddress 02-04-00-00-00-22</span><br><span class="line">Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName <span class="string">&quot;VLAN45&quot;</span> -Access -VlanID 45</span><br><span class="line"></span><br></pre></td></tr></table></figure><h2><span id="check-all">Check all</span></h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">Get-VMNetworkAdapterVlan -ManagementOS</span><br><span class="line">Get-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName <span class="string">&quot;VLAN45&quot;</span></span><br><span class="line">get-vmnetworkadapter -managementos</span><br><span class="line"></span><br></pre></td></tr></table></figure><h2><span id="delete-all">Delete ALL</span></h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">remove-vmnetworkadapter -managementos -name <span class="string">&quot;VLAN45&quot;</span></span><br><span class="line">remove-vmnetworkadapter -managementos -name <span class="string">&quot;TRUNK&quot;</span></span><br><span class="line">Remove-VMSwitch -name <span class="string">&quot;VS0&quot;</span> -Force</span><br><span class="line"></span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;Run your power shell with admin &lt;/p&gt;
&lt;p&gt;NOTE: All the test is basd on USB ASIX AX88179A USB Ethernet adapter&lt;/p&gt;
&lt;h1&gt;&lt;span id=&quot;create-vir</summary>
      
    
    
    
    
    <category term="VLAN" scheme="http://vball.fun/tags/VLAN/"/>
    
    <category term="WIN" scheme="http://vball.fun/tags/WIN/"/>
    
  </entry>
  
  <entry>
    <title>Git Tips</title>
    <link href="http://vball.fun/2023/07/25/program-git-tips/"/>
    <id>http://vball.fun/2023/07/25/program-git-tips/</id>
    <published>2023-07-25T02:21:26.000Z</published>
    <updated>2026-03-10T18:19:08.980Z</updated>
    
    <content type="html"><![CDATA[<h1><span id="change-multiple-commit-info">Change multiple commit info</span></h1><p>change the latest 2 commit info</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git rebase -i HEAD~2 -x <span class="string">&quot;git commit --amend --author &#x27;Ball Virtual (Fun Bay) &lt;fun.bay@vball.fun&gt;&#x27; --no-edit&quot;</span></span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;h1&gt;&lt;span id=&quot;change-multiple-commit-info&quot;&gt;Change multiple commit info&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;change the latest 2 commit info&lt;/p&gt;
&lt;figure class=&quot;high</summary>
      
    
    
    
    
    <category term="Git" scheme="http://vball.fun/tags/Git/"/>
    
    <category term="Tips" scheme="http://vball.fun/tags/Tips/"/>
    
  </entry>
  
  <entry>
    <title>红孩儿十八赢 - 耳光乐队 歌词</title>
    <link href="http://vball.fun/2023/05/30/collection-win-18-times/"/>
    <id>http://vball.fun/2023/05/30/collection-win-18-times/</id>
    <published>2023-05-30T07:23:48.000Z</published>
    <updated>2026-03-10T18:19:08.944Z</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.youtube.com/watch?v=uqPEB7BIQ2A&pp=ygUM6ICz5YWJ5LmQ6Zif">耳光乐队《红孩儿十八赢》</a></p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br></pre></td><td class="code"><pre><span class="line">红孩儿圣婴大王名叫牛圣婴</span><br><span class="line">牛魔王铁扇公主对他惯养又娇生</span><br><span class="line">所以他三百多岁还是个大龄儿童</span><br><span class="line">火云洞山神和土地常被他瞎折腾</span><br><span class="line">山神和土地慢慢都习惯了被捉弄</span><br><span class="line">个个都得了斯德哥尔摩综合症</span><br><span class="line">红孩儿也有严重的被迫害妄想症</span><br><span class="line">就在这圣婴的世界 他们都能十八赢</span><br><span class="line"></span><br><span class="line">那一年唐僧师徒来到了火云洞</span><br><span class="line">想解救山神土地 他们却不领情</span><br><span class="line">红孩儿撒泼打滚儿 大战那孙悟空</span><br><span class="line">别妨碍咱火云洞 动态大清零</span><br><span class="line">那唐僧师徒 唐匪害人虫</span><br><span class="line">土地说没钱别装打人的王思聪</span><br><span class="line">火云洞专家能把咱处处十八赢</span><br><span class="line">哪容得你这外国的和尚来念经</span><br><span class="line"></span><br><span class="line">一赢那比你酷来 二赢比你炫</span><br><span class="line">秀一秀江西今年天价的彩礼钱</span><br><span class="line">冰墩墩开始你这BBQ的一年</span><br><span class="line">东航的坠机惨案至今还没答案</span><br><span class="line">谷爱凌女运动员收入排第三</span><br><span class="line">战斗的民族总是命犯那演艺圈</span><br><span class="line">从前有一个老演员终结了冷战</span><br><span class="line">现在又一个演员不服就干玻尿酸</span><br><span class="line"></span><br><span class="line">三赢那比你优来 四赢比你秀</span><br><span class="line">秀一秀谁能抢到那黄桃罐头</span><br><span class="line">小镇的做题家易烊千玺在尽头</span><br><span class="line">谁治愈精神内耗 苦难的二舅</span><br><span class="line">副市长女副局长巫山云雨后</span><br><span class="line">男女的副区长那翻云覆雨手</span><br><span class="line">高端的人际关系的XXOO</span><br><span class="line">往往用最原始的方式来交流</span><br><span class="line"></span><br><span class="line">五赢你身份地位 六赢你落差</span><br><span class="line">评一评东八区的先生的奇葩</span><br><span class="line">不让那女子上大学 中世纪家法</span><br><span class="line">全世界声援女性 纷纷剪头发</span><br><span class="line">八个孩的妈妈 她铁链脖子上挂</span><br><span class="line">判死刑烧死妻子 狠毒的人渣</span><br><span class="line">不能把唐山说成像哥谭镇一样啊</span><br><span class="line">毕竟那哥谭镇里 还有个蝙蝠侠</span><br><span class="line"></span><br><span class="line">七赢你根儿正苗红 八赢你精英</span><br><span class="line">看一看爱情的神话 听它的破碎声</span><br><span class="line">大S汪小菲的床垫叫海丝腾</span><br><span class="line">看老炮双子吴亦凡后李易峰</span><br><span class="line">与张庭夫妇迅速切割的小陶虹</span><br><span class="line">总攻姐大陶红又发起了总攻</span><br><span class="line">无奈的郑智化 爱你的王心凌</span><br><span class="line">能不能别拿我的星星来点灯</span><br><span class="line">爱拼才会赢</span><br><span class="line"></span><br><span class="line">九赢你数来你傻来 十赢我聪明</span><br><span class="line">想一想人生大事孰重又孰轻</span><br><span class="line">三岁娃煤气中毒 没核酸不放行</span><br><span class="line">疫情这三年就是这孩子的一生</span><br><span class="line">刘书记错过女儿成人礼太伤情</span><br><span class="line">没核酸活活憋死一岁的幼童</span><br><span class="line">有些人心里除了阴性和阳性</span><br><span class="line">还应该有一点点起码的人性</span><br><span class="line"></span><br><span class="line">十一赢一刀切啊 十二赢变变变</span><br><span class="line">看一看模仿卡塔尔小王子的脑残</span><br><span class="line">搞不懂扑朔迷离的高中生失踪案</span><br><span class="line">广州开宝马冲撞人群的杀人犯</span><br><span class="line">普大帝到处都有孝子来点赞</span><br><span class="line">佩洛西真敢窜访咱就跟她干</span><br><span class="line">安倍的遇刺振奋了爱国的青年</span><br><span class="line">再兴奋也得顶风冒雨下楼 你做核酸</span><br><span class="line"></span><br><span class="line">十三赢谁主沉浮 十四赢谁前卫</span><br><span class="line">尝一尝那瑞士卷艿头肉我不配</span><br><span class="line">毒教材比夏日祭更顶你的肺</span><br><span class="line">把女孩捆绑跪地的白色纠察队</span><br><span class="line">那冈本六君子真双标汪汪队</span><br><span class="line">天通苑召开万湖会议的居委会</span><br><span class="line">他们的嘴里我们致命的软肋</span><br><span class="line">也是咱最坚硬的铠甲和装备</span><br><span class="line"></span><br><span class="line">十五赢比你用心 十六赢认真</span><br><span class="line">赛一赛谁能抢到连花清瘟布洛芬</span><br><span class="line">暴雷的村镇银行 红码操作神</span><br><span class="line">现实版万里归途 富士康大军</span><br><span class="line">转过年又见蓝色兔子吓唬人</span><br><span class="line">世界杯终于到了诸神的黄昏</span><br><span class="line">阿根廷靠梅西 终于亲吻了大力神</span><br><span class="line">中国也拷走了一个吹头发的人</span><br><span class="line"></span><br><span class="line">十七赢放眼世界谁能比咱强</span><br><span class="line">唱一唱同一首歌友谊比天长</span><br><span class="line">戈尔巴乔夫 长者 英国的女王</span><br><span class="line">贝利那一代球王也上了天堂</span><br><span class="line"><span class="number">22</span>年收获还挺让人热泪盈眶</span><br><span class="line">二百次免费的核酸 三针疫苗还加强</span><br><span class="line">还有了大把不用工作的时光</span><br><span class="line">到年底每个人还分配了一只羊</span><br><span class="line"></span><br><span class="line">十八赢比比最后谁能不挨刀</span><br><span class="line">瞧一瞧山花烂漫谁在丛中笑</span><br><span class="line">那么多核酸亭子一夜不见了</span><br><span class="line">那么多核酸技术人才哪儿需要</span><br><span class="line">和死神抢父母这冬天太煎熬</span><br><span class="line">有人啊发钱发药 咱们发高烧</span><br><span class="line">不奢望永远小队长 中队长当不了</span><br><span class="line">祝大家阳过阳康别王重阳就好</span><br><span class="line"></span><br><span class="line">红孩儿十八赢都是科技和狠活儿</span><br><span class="line">感谢你浪费三年时间保护我</span><br><span class="line">虽然啊最后难免还是一哆嗦</span><br><span class="line">用真心我龙傲天誓死保卫刘波儿</span><br><span class="line">忘不了隐入尘烟 大火大巴车</span><br><span class="line">就像是孤身走暗巷的孤勇者</span><br><span class="line">听一听最伟大的作品诞生了</span><br><span class="line">生在这伟大的时代 咱就偷着乐</span><br><span class="line"></span><br><span class="line">三分天注定 七分靠打拼</span><br><span class="line">爱拼才会赢</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=uqPEB7BIQ2A&amp;pp=ygUM6ICz5YWJ5LmQ6Zif&quot;&gt;耳光乐队《红孩儿十八赢》&lt;/a&gt;&lt;/p&gt;
&lt;figure class=&quot;highlight c&quot;&gt;&lt;table&gt;&lt;tr</summary>
      
    
    
    
    
    <category term="耳光乐队" scheme="http://vball.fun/tags/%E8%80%B3%E5%85%89%E4%B9%90%E9%98%9F/"/>
    
  </entry>
  
  <entry>
    <title>Debug Python With Vscode</title>
    <link href="http://vball.fun/2023/05/26/program-debug-python-in-vscode/"/>
    <id>http://vball.fun/2023/05/26/program-debug-python-in-vscode/</id>
    <published>2023-05-26T03:39:49.000Z</published>
    <updated>2026-03-10T18:19:08.979Z</updated>
    
    <content type="html"><![CDATA[<ul><li>python</li></ul><!-- toc --><ul><li><a href="#demo-app">Demo app</a></li><li><a href="#attach-mode">Attach mode</a><ul><li><a href="#install-debugpy">Install debugpy</a></li><li><a href="#run-your-application-with-debugpy">Run your application with debugpy</a></li><li><a href="#attach-with-vscode">Attach with vscode</a></li></ul></li><li><a href="#normal-mode">Normal mode</a><ul><li><a href="#select-python-version">Select python version</a></li><li><a href="#launch-with-vscode">Launch with vscode</a></li></ul></li></ul><!-- tocstop --><h1><span id="demo-app">Demo app</span></h1><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> sys</span><br><span class="line"><span class="keyword">if</span> __name__ == <span class="string">&quot;__main__&quot;</span>:</span><br><span class="line">    <span class="built_in">print</span>(sys.version)</span><br><span class="line">    <span class="built_in">print</span>(sys.argv)</span><br></pre></td></tr></table></figure><h1><span id="attach-mode">Attach mode</span></h1><p>In this mode, you can update any running para as your wish </p><h2><span id="install-debugpy">Install debugpy</span></h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">pip3 install debugpy</span><br><span class="line"><span class="comment">#or </span></span><br><span class="line">pip2 install debugpy</span><br></pre></td></tr></table></figure><h2><span id="run-your-application-with-debugpy">Run your application with debugpy</span></h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">python2 -m debugpy --listen 7777 --wait-for-client  version.py</span><br></pre></td></tr></table></figure><h2><span id="attach-with-vscode">Attach with vscode</span></h2><p>Add lunch configure to vscode</p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="punctuation">&#123;</span></span><br><span class="line">    <span class="attr">&quot;name&quot;</span><span class="punctuation">:</span> <span class="string">&quot;Python: Attach&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;type&quot;</span><span class="punctuation">:</span> <span class="string">&quot;python&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;request&quot;</span><span class="punctuation">:</span> <span class="string">&quot;attach&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;connect&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line">        <span class="attr">&quot;host&quot;</span><span class="punctuation">:</span> <span class="string">&quot;127.0.0.1&quot;</span><span class="punctuation">,</span></span><br><span class="line">        <span class="attr">&quot;port&quot;</span><span class="punctuation">:</span> <span class="number">7777</span></span><br><span class="line">    <span class="punctuation">&#125;</span></span><br><span class="line"><span class="punctuation">&#125;</span></span><br></pre></td></tr></table></figure><p>Add breakpoint and attch you program</p><h1><span id="normal-mode">Normal mode</span></h1><h2><span id="select-python-version">Select python version</span></h2><p><strong>Ctrl + Shift + P -&gt; python Select Interpreter</strong><br><img src="/2023/05/26/program-debug-python-in-vscode/python.png"></p><h2><span id="launch-with-vscode">Launch with vscode</span></h2><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="punctuation">&#123;</span></span><br><span class="line">    <span class="attr">&quot;name&quot;</span><span class="punctuation">:</span> <span class="string">&quot;Python: launch Debug&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;type&quot;</span><span class="punctuation">:</span> <span class="string">&quot;python&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;request&quot;</span><span class="punctuation">:</span> <span class="string">&quot;launch&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;program&quot;</span><span class="punctuation">:</span> <span class="string">&quot;$&#123;file&#125;&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;console&quot;</span> <span class="punctuation">:</span><span class="string">&quot;integratedTerminal&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;args&quot;</span><span class="punctuation">:</span><span class="punctuation">[</span><span class="string">&quot;p1&quot;</span><span class="punctuation">,</span> <span class="string">&quot;p2&quot;</span><span class="punctuation">]</span></span><br><span class="line"><span class="punctuation">&#125;</span></span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;ul&gt;
&lt;li&gt;python&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- toc --&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#demo-app&quot;&gt;Demo app&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#attach-mode&quot;&gt;Attach mode&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;</summary>
      
    
    
    
    
  </entry>
  
  <entry>
    <title>心跳检测遗书的思路</title>
    <link href="http://vball.fun/2023/05/18/program-openssl-encrypt-file/"/>
    <id>http://vball.fun/2023/05/18/program-openssl-encrypt-file/</id>
    <published>2023-05-18T03:43:56.000Z</published>
    <updated>2026-03-10T18:19:08.980Z</updated>
    
    <content type="html"><![CDATA[<p>openssl encrypt and decrypt large file<br><strong>人活得还好好的</strong></p><!-- toc --><ul><li><a href="#todo">TODO</a></li><li><a href="#%E8%83%8C%E6%99%AF">背景</a></li><li><a href="#%E5%AE%9E%E7%8E%B0%E6%80%9D%E8%B7%AF">实现思路</a></li><li><a href="#%E6%8A%80%E6%9C%AF%E7%BB%86%E8%8A%82%E6%8E%A2%E7%A9%B6">技术细节探究</a><ul><li><a href="#%E9%9D%9E%E5%AF%B9%E7%A7%B0%E5%8A%A0%E5%AF%86">非对称加密</a><ul><li><a href="#%E8%BD%AC%E6%8D%A2ssh-key">转换SSH KEY</a><ul><li><a href="#%E7%A7%81%E9%92%A5%E8%BD%AC%E6%8D%A2">私钥转换</a></li><li><a href="#%E5%85%AC%E9%92%A5%E8%BD%AC%E6%8D%A2">公钥转换</a></li></ul></li></ul></li><li><a href="#%E5%8A%A0%E8%A7%A3%E5%AF%86%E5%B0%8F%E6%96%87%E4%BB%B6">加解密小文件</a></li><li><a href="#%E5%8A%A0%E8%A7%A3%E5%AF%86%E5%A4%A7%E6%96%87%E4%BB%B6">加解密大文件</a><ul><li><a href="#%E7%94%9F%E6%88%90%E9%9A%8F%E6%9C%BA%E5%AF%86%E7%A0%81%E6%96%87%E4%BB%B6">生成随机密码文件</a></li><li><a href="#%E5%8A%A0%E5%AF%86%E5%AF%86%E7%A0%81%E6%96%87%E4%BB%B6">加密密码文件</a></li><li><a href="#%E4%BD%BF%E7%94%A8%E5%AF%86%E7%A0%81%E6%96%87%E4%BB%B6%E5%8A%A0%E5%AF%86%E7%9B%AE%E6%A0%87%E6%96%87%E4%BB%B6">使用密码文件加密目标文件</a></li><li><a href="#%E8%A7%A3%E5%AF%86%E5%8A%A0%E5%AF%86%E5%90%8E%E7%9A%84%E5%AF%86%E7%A0%81%E6%96%87%E4%BB%B6">解密加密后的密码文件</a></li><li><a href="#%E4%BD%BF%E7%94%A8%E5%AF%86%E7%A0%81%E6%96%87%E4%BB%B6%E6%81%A2%E5%A4%8D%E5%8A%A0%E5%AF%86%E5%90%8E%E7%9A%84%E7%9B%AE%E6%A0%87%E6%96%87%E4%BB%B6">使用密码文件恢复加密后的目标文件</a></li><li><a href="#show-me-the-whole-shit">Show me the whole shit</a></li></ul></li><li><a href="#github-actions-%E6%94%AF%E6%8C%81">Github actions 支持</a><ul><li><a href="#%E8%B0%83%E7%94%A8repo-secret%E8%A7%A3%E5%AF%86">调用repo secret解密</a></li><li><a href="#%E9%80%9A%E8%BF%87email%E5%8F%91%E9%80%81%E8%A7%A3%E5%AF%86%E5%90%8E%E7%9A%84%E6%96%87%E4%BB%B6">通过email发送解密后的文件</a></li></ul></li><li><a href="#full-code">full code</a></li></ul></li></ul><!-- tocstop --><h1><span id="todo">TODO</span></h1><h1><span id="背景">背景</span></h1><p>过去几年，听闻好多个30多岁的程序员大佬突然离去，虽然现在工作环境已经很安逸，但是考虑到过去几年透支的身体，还是感觉要定时回顾一下自己的一生，留下点自己的感悟和遗言。<br>遗言嘛，能说实话还是说实话，但是为了避免人还活着，但已经社死，考虑结合加密算法和github action来定时检测自己是否活着，如果自己的github超过一段时间没有更新，就把遗言解密用邮件发给家人吧。</p><h1><span id="实现思路">实现思路</span></h1><p>一步步的实现，后续慢慢补充吧</p><ol><li>非对称机密日常遗言</li><li>推送github repo</li><li>Github actions 心跳检测是否存活</li><li>超时解密发送亲朋好友</li></ol><h1><span id="技术细节探究">技术细节探究</span></h1><h2><span id="非对称加密">非对称加密</span></h2><p>非对称加密的优势就是加密时使用公钥，解密时可以使用私钥，二者可以分开保存，安全性更高。<br>密钥默认就有ssh-keygen 生成的密钥对吧，方便日常书写，也方便Repo推送， 工具就使用openssl吧，后期结合git hooks，用python实现一个自动化的工具，避免把未加密的遗言推送到repo过早社死</p><h3><span id="转换ssh-key">转换SSH KEY</span></h3><p>因为SSH KEY默认已经是SSH2-formated，无法直接被openssl直接识别，需要转换成格式</p><h4><span id="私钥转换">私钥转换</span></h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ssh-keygen -p -m PKCS8  -f ssh/id_rsa </span><br></pre></td></tr></table></figure><h4><span id="公钥转换">公钥转换</span></h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ssh-keygen -e -f ssh/id_rsa.pub -m PKCS8 &gt; id_rsa.pub.pkcs8</span><br></pre></td></tr></table></figure><p>后续使用openssl时，使用的公钥就是id_rsa.pub.pkcs8</p><h2><span id="加解密小文件">加解密小文件</span></h2><p>对于普通小文件，可以直接使用openssl加密</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">#enc</span></span><br><span class="line">openssl pkeyutl -encrypt -pubin -inkey <span class="variable">$&#123;PUBKEY&#125;</span> -<span class="keyword">in</span> <span class="variable">$&#123;ORIGIN_FILE&#125;</span> -out <span class="variable">$&#123;ENC_OUT&#125;</span></span><br><span class="line"><span class="comment">#dec</span></span><br><span class="line">openssl pkeyutl -decrypt -inkey <span class="variable">$&#123;SSH_KEY&#125;</span>  -<span class="keyword">in</span> <span class="variable">$&#123;ENC_OUT&#125;</span>  -out <span class="variable">$&#123;DEC_OUT&#125;</span></span><br></pre></td></tr></table></figure><h2><span id="加解密大文件">加解密大文件</span></h2><p>对于大文件，一般不适用公私钥直接进行加解密，实现流程如下：</p><ol><li><strong>加密</strong> &#x3D;&gt; 生成随机密码文件</li><li><strong>加密</strong> &#x3D;&gt; 使用公钥加密随机密码文件</li><li><strong>加密</strong> &#x3D;&gt; 使用随机密码文件加密目标文件</li><li>&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D; 按需求保存或者发送<strong>加密后的随机密码和加密后的目标文件</strong></li><li><strong>解密</strong> &lt;&#x3D; 使用私钥解密加密后的随机密码文件，还原出密码</li><li><strong>解密</strong> &lt;&#x3D; 使用密码文件还原目标文件</li></ol><h3><span id="生成随机密码文件">生成随机密码文件</span></h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">openssl rand -<span class="built_in">base64</span> 256 &gt; key.bin</span><br></pre></td></tr></table></figure><h3><span id="加密密码文件">加密密码文件</span></h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">openssl pkeyutl -encrypt -pubin -inkey <span class="variable">$&#123;PUBKEY&#125;</span> -<span class="keyword">in</span> <span class="variable">$&#123;RAND_KEY&#125;</span> -out <span class="variable">$&#123;RAND_KEY_ENC&#125;</span></span><br></pre></td></tr></table></figure><h3><span id="使用密码文件加密目标文件">使用密码文件加密目标文件</span></h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">openssl enc -aes-256-cbc -salt -pbkdf2 -<span class="keyword">in</span> <span class="variable">$&#123;ORI_IN&#125;</span> -out <span class="variable">$&#123;ENC_OUT&#125;</span>  -pass file:<span class="variable">$&#123;RAND_KEY&#125;</span></span><br></pre></td></tr></table></figure><h3><span id="解密加密后的密码文件">解密加密后的密码文件</span></h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">openssl pkeyutl -decrypt -inkey <span class="variable">$&#123;SSH_KEY&#125;</span>  -<span class="keyword">in</span> <span class="variable">$&#123;RAND_KEY_ENC&#125;</span>  -out <span class="variable">$&#123;RAND_KEY_DEC&#125;</span></span><br></pre></td></tr></table></figure><h3><span id="使用密码文件恢复加密后的目标文件">使用密码文件恢复加密后的目标文件</span></h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">openssl enc  -d -aes-256-cbc -pbkdf2 -<span class="keyword">in</span> <span class="variable">$&#123;ENC_OUT&#125;</span> -out <span class="variable">$&#123;DEC_OUT&#125;</span> -pass file:<span class="variable">$&#123;RAND_KEY_DEC&#125;</span></span><br></pre></td></tr></table></figure><h3><span id="show-me-the-whole-shit">Show me the whole shit</span></h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line"><span class="built_in">set</span> -x -e</span><br><span class="line"></span><br><span class="line">SSH_KEY=ssh/id_rsa</span><br><span class="line">SSH_KEY_PUB=<span class="variable">$&#123;SSH_KEY&#125;</span>.pub</span><br><span class="line">ORI_IN=origin.md</span><br><span class="line">ENC_OUT=origin.md.encrypted</span><br><span class="line">DEC_OUT=origin.md.decrypted</span><br><span class="line">PUBKEY=pub.pkcs8</span><br><span class="line">RAND_KEY=key.bin</span><br><span class="line">RAND_KEY_ENC=key.bin.encrypted</span><br><span class="line">RAND_KEY_DEC=key.bin.decrypted</span><br><span class="line"></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Get rsakey PKCS8 PUB KEY&quot;</span></span><br><span class="line">ssh-keygen -e -f <span class="variable">$&#123;SSH_KEY_PUB&#125;</span> -m PKCS8 &gt; <span class="variable">$&#123;PUBKEY&#125;</span></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Generate a 256 bit(32 bytes) random key&quot;</span></span><br><span class="line">openssl rand -<span class="built_in">base64</span> 256 &gt; key.bin</span><br><span class="line"><span class="comment">#cat  $&#123;PUBKEY&#125;</span></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Start encrypt&quot;</span></span><br><span class="line"><span class="built_in">md5sum</span> <span class="variable">$&#123;ORI_IN&#125;</span></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Encrypt key file&quot;</span></span><br><span class="line">openssl pkeyutl -encrypt -pubin -inkey <span class="variable">$&#123;PUBKEY&#125;</span> -<span class="keyword">in</span> <span class="variable">$&#123;RAND_KEY&#125;</span> -out <span class="variable">$&#123;RAND_KEY_ENC&#125;</span></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Encryot our file&quot;</span></span><br><span class="line"><span class="comment">#openssl pkeyutl -encrypt -pubin -inkey $&#123;PUBKEY&#125; -in $&#123;ORI_IN&#125; -out $&#123;ENC_OUT&#125;</span></span><br><span class="line">openssl enc -aes-256-cbc -salt -pbkdf2 -<span class="keyword">in</span> <span class="variable">$&#123;ORI_IN&#125;</span> -out <span class="variable">$&#123;ENC_OUT&#125;</span>  -pass file:<span class="variable">$&#123;RAND_KEY&#125;</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Start Decrypt&quot;</span></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Decrypt key file&quot;</span></span><br><span class="line">openssl pkeyutl -decrypt -inkey <span class="variable">$&#123;SSH_KEY&#125;</span>  -<span class="keyword">in</span> <span class="variable">$&#123;RAND_KEY_ENC&#125;</span>  -out <span class="variable">$&#123;RAND_KEY_DEC&#125;</span></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Decrypt file&quot;</span></span><br><span class="line">openssl enc  -d -aes-256-cbc -pbkdf2 -<span class="keyword">in</span> <span class="variable">$&#123;ENC_OUT&#125;</span> -out <span class="variable">$&#123;DEC_OUT&#125;</span> -pass file:<span class="variable">$&#123;RAND_KEY_DEC&#125;</span></span><br></pre></td></tr></table></figure><h2><span id="github-actions-支持">Github actions 支持</span></h2><h3><span id="调用repo-secret解密">调用repo secret解密</span></h3><p>可以将私钥保存到github repo的secret环境中，在github action调用私钥解密即可，就可以对文本进行解密</p><h3><span id="通过email发送解密后的文件">通过email发送解密后的文件</span></h3><h2><span id="full-code">full code</span></h2><p>on the way</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;openssl encrypt and decrypt large file&lt;br&gt;&lt;strong&gt;人活得还好好的&lt;/strong&gt;&lt;/p&gt;
&lt;!-- toc --&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#todo&quot;&gt;TODO&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;</summary>
      
    
    
    
    
    <category term="openssl" scheme="http://vball.fun/tags/openssl/"/>
    
    <category term="ssh" scheme="http://vball.fun/tags/ssh/"/>
    
  </entry>
  
  <entry>
    <title>红米K40s刷国际版记录，过play，gpay，网银认证</title>
    <link href="http://vball.fun/2023/05/03/android-redmi-k40s-flash-global-rom-cn/"/>
    <id>http://vball.fun/2023/05/03/android-redmi-k40s-flash-global-rom-cn/</id>
    <published>2023-05-03T08:19:18.000Z</published>
    <updated>2026-03-10T18:19:08.941Z</updated>
    
    <content type="html"><![CDATA[<!-- toc --><ul><li><a href="#change-log">Change Log</a></li><li><a href="#%E9%97%AE%E9%A2%98%E8%BF%9B%E5%BA%A6">问题进度</a></li><li><a href="#%E8%B5%B7%E5%9B%A0">起因</a></li><li><a href="#%E5%A1%AB%E5%9D%91%E5%BC%80%E5%A7%8B">填坑开始</a><ul><li><a href="#%E8%B4%AD%E6%9C%BA%E8%BD%AC%E8%BF%90">购机，转运</a></li><li><a href="#%E8%A7%A3%E9%94%81">解锁</a></li><li><a href="#%E5%88%B7%E6%9C%BA">刷机</a><ul><li><a href="#rom%E4%B8%8B%E8%BD%BD">ROM下载</a></li><li><a href="#%E5%BC%80%E5%A7%8B%E5%88%B7%E6%9C%BA">开始刷机</a></li><li><a href="#%E5%AE%89%E8%A3%85magisk">安装magisk</a><ul><li><a href="#%E4%B8%8B%E8%BD%BDmagisk">下载magisk</a></li><li><a href="#%E4%B8%8B%E8%BD%BDfastboot">下载fastboot</a></li><li><a href="#%E5%AF%B9ramdisk%E6%89%93%E8%A1%A5%E4%B8%81">对Ramdisk打补丁</a></li><li><a href="#%E9%87%8D%E6%96%B0%E5%88%B7%E5%85%A5%E6%89%93%E4%BA%86%E8%A1%A5%E4%B8%81%E7%9A%84ramdisk">重新刷入打了补丁的Ramdisk</a></li><li><a href="#%E6%B2%BB%E7%96%97%E4%B8%8D%E6%98%8E%E7%99%BD%E8%AF%B7%E7%A7%BB%E6%AD%A5magiskcn%E8%AF%A6%E7%BB%86%E6%95%99%E7%A8%8B%E7%A0%94%E8%AF%BB">治疗不明白，请移步MagiskCN详细教程研读</a></li></ul></li><li><a href="#%E9%85%8D%E7%BD%AEcts%E4%BF%A1%E6%81%AF%E8%BF%87play%E9%AA%8C%E8%AF%81">配置CTS信息过play验证</a><ul><li><a href="#%E5%AE%89%E8%A3%85safetynet-fix-%E6%9C%80%E6%96%B0%E5%A1%AB%E5%9D%91">安装safetynet-fix–最新填坑</a></li><li><a href="#%E5%AE%89%E8%A3%85magiskhide-props-config-%E6%A8%A1%E5%9D%97">安装MagiskHide Props Config 模块</a></li><li><a href="#%E5%AE%89%E8%A3%85termux">安装termux</a></li><li><a href="#%E9%85%8D%E7%BD%AEprops%E4%BF%A1%E6%81%AF">配置Props信息</a></li></ul></li><li><a href="#%E6%A3%80%E6%9F%A5%E5%AE%89%E5%85%A8%E9%80%9A%E8%BF%87">检查安全通过</a><ul><li><a href="#safetynettest">SafetyNetTest</a></li><li><a href="#google-%E9%AA%8C%E8%AF%81">google 验证</a></li></ul></li><li><a href="#%E9%9A%90%E8%97%8F">隐藏</a><ul><li><a href="#%E9%9A%90%E8%97%8Froot">隐藏root</a></li><li><a href="#%E9%9A%90%E8%97%8F%E5%BA%94%E7%94%A8%E5%88%97%E8%A1%A8">隐藏应用列表</a></li></ul></li><li><a href="#%E5%90%8E%E7%BB%AD%E5%AE%89%E8%A3%85lsposed">后续安装LSPosed</a></li></ul></li><li><a href="#%E6%97%A0%E6%B3%95%E6%8B%A8%E5%8F%B7">无法拨号</a></li><li><a href="#%E6%91%84%E5%83%8F%E5%A4%B4%E4%BF%AE%E5%A4%8D">摄像头修复</a></li></ul></li><li><a href="#%E6%80%BB%E7%BB%93">总结</a></li></ul><!-- tocstop --><h1><span id="change-log">Change Log</span></h1><ul><li>大致记录</li><li>2023&#x2F;05&#x2F;19 修复摄像头错误</li><li>2023&#x2F;07&#x2F;12 雷猴偷摸升级导致CTS错误，修复之，顺便补充Shamiko和Hide My Applist install， 现在除了singpass不能用，其他都可以了</li></ul><h1><span id="问题进度">问题进度</span></h1><p>解决的问题汇总：</p><ul><li>刷入国际版</li><li>隐藏root，bootloader未加锁<ul><li>play认证</li><li>gpay认证</li><li>各种网银检测</li></ul></li><li>解决部分运营商不能打电话问题<ul><li>原生拨号软件没有支持volte，运营商又不支持GSM等</li></ul></li><li>前后相机翻转<ul><li>网银人脸识别摄像头错误</li><li>支付宝摄像头报错</li></ul></li></ul><p>待解决问题：</p><p>发现：</p><ul><li>国行内置老大哥不是吹的，插卡进手机就是反诈骗中心、大使馆短信，垃圾短信三联</li><li>谷歌全家桶真好用</li></ul><h1><span id="起因">起因</span></h1><p>坡县东西真贵，看了一圈手机，成功被三星，OV等一系列的超低性价比劝退，寻觅一圈，Redmi K40s进入眼球。</p><ul><li>晓龙870当打之年</li><li>12G RAM + 256G ROM</li><li>NFC</li><li>红外</li><li>国外对应POCO F4，有多种版本可以刷新</li><li>其他要啥自行车</li></ul><h1><span id="填坑开始">填坑开始</span></h1><h2><span id="购机转运">购机，转运</span></h2><p>狗东打折1700入手，转运加税20天到手</p><h2><span id="解锁">解锁</span></h2><p>感谢我家静静的小米员工身份，解锁零等待，普通的用户请登录小米账户，168小时后再去申请解锁。<a href="http://www.miui.com/unlock/">http://www.miui.com/unlock/</a></p><h2><span id="刷机">刷机</span></h2><h3><span id="rom下载">ROM下载</span></h3><p>ROM自行选择下载：<a href="https://xiaomifirmwareupdater.com/archive/miui/munch/">xiaomifirmwareupdater</a>, <a href="https://xiaomirom.com/en/rom/redmi-k40s-poco-f4-munch-indonesia-fastboot-recovery-rom/">xiaomirom</a>, <a href="https://roms.miuier.com/en-us/devices/munch/">miuier</a>, 我用了第三个   </p><p>下载后解压，确保你能找到images目录，后续多次用到</p><p>版本选择：</p><ul><li>Global-TLMMIXM（没发现老大哥系列，如果需要红外遥控器参数，刷这个）</li><li>EEA-TLMEUXM（原来说是没有小米全家桶，其实发现还有部分，我用的这个）</li><li>CN- TLMCNXM（肯定不选啊）</li></ul><h3><span id="开始刷机">开始刷机</span></h3><p>下载miflash tool, <a href="https://xiaomiflashtool.com/">xiaomiflashtool</a>, <a href="https://www.xiaomiflash.com/">xiaomiflash</a>   </p><ol><li>软件下载后第一次运行建议右键使用管理员权限，需要安装必要的驱动   </li><li>手机关机，然后音量下+电源进入fastboot</li><li>选择你的rom目录，包含images的那层，选择最下边的删除所有，如果不小心选择了删除后锁定，你就开不了机了，重新解锁即可</li></ol><p><img src="/2023/05/03/android-redmi-k40s-flash-global-rom-cn/miflash.jpg"></p><p>此刻你已经拥有了比较完整的国际版体验，但是很多应用会检测到你系统已经解锁，导致无法使用，比如play和gpay，如果没有需求，say bye bye</p><h3><span id="安装magisk">安装magisk</span></h3><h4><span id="下载magisk">下载magisk</span></h4><p>我使用了是Magisk Delta，官方版本没有内置支持MagiskHide, 并且使用shamiko貌似也没有很好的隐藏（大概率是我没用好）<br><a href="https://github.com/HuskyDG/magisk-files/releases">Magisk Delta</a>, <a href="https://github.com/topjohnwu/Magisk/releases/tag/v26.1">Magisk Official</a><br><img src="/2023/05/03/android-redmi-k40s-flash-global-rom-cn/MagiskDeltaHide.jpg">，<br>复制到手机进行安装，安装后启动可以检测三个选项：</p><ul><li><ol><li>版本号</li></ol></li><li><ol start="2"><li>Zygisk状态</li></ol></li><li><ol start="3"><li>Ramdisk 状态</li></ol></li></ul><p><img src="/2023/05/03/android-redmi-k40s-flash-global-rom-cn/MagiskDelta.jpg"></p><p>点击右上角齿轮进入设置，使能Zygisk<br><img src="/2023/05/03/android-redmi-k40s-flash-global-rom-cn/MagiskDeltaEnableZygisk.jpg"></p><h4><span id="下载fastboot">下载fastboot</span></h4><p>后边需要单独刷写boot.img,需要下载fastboot工具， <a href="https://www.pc6.com/softview/SoftView_85883.html">pc6</a>, <a href="https://dl.google.com/android/repository/platform-tools-latest-windows.zip?spm=a2c6h.12873639.article-detail.4.41157f83HBuIQi&file=platform-tools-latest-windows.zip">google</a>, 下载解压。<br><img src="/2023/05/03/android-redmi-k40s-flash-global-rom-cn/fastboot_dir.jpg"></p><h4><span id="对ramdisk打补丁">对Ramdisk打补丁</span></h4><p>去解压后的镜像目录找到boot.img, 复制到你的手机中（我一般选择downloads目录），运行magisk，依次安装-&gt;选择并修补一个文件，找到你的boot.img,选择打补丁, 会在同目录生成一个boot_xxxx.img的文件，要的就是它。然后复制到电脑上，放置在你上一步解压的fastboot目录<br><img src="/2023/05/03/android-redmi-k40s-flash-global-rom-cn/MagiskDeltaInstall_1.jpg"></p><h4><span id="重新刷入打了补丁的ramdisk">重新刷入打了补丁的Ramdisk</span></h4><p>关机重启手机到fastboot模式，命令行切换到fastboot目录，执行</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">fastboot.exe flash boot boot_xxxx.img</span><br><span class="line">fastboot.exe reboot</span><br></pre></td></tr></table></figure><p>重启手机后可以发现三个选项全部为使能即可<br><img src="/2023/05/03/android-redmi-k40s-flash-global-rom-cn/MagiskDelta.jpg"></p><p>进入设置，勾选上强制使用超级用户列表，这里是个可以访问超级用户权限的白名单，如果需要程序su超级用户访问，需要这边勾选对应的程序<br><img src="/2023/05/03/android-redmi-k40s-flash-global-rom-cn/MagiskDeltaHide.jpg"></p><h4><span id="治疗不明白请移步magiskcn详细教程研读">治疗不明白，请移步MagiskCN详细教程研读</span></h4><p><strong>如果觉得我写的不清楚，移步<a href="https://magiskcn.com/">magiskcn</a>反复研读</strong></p><h3><span id="配置cts信息过play验证">配置CTS信息过play验证</span></h3><h4><span id="安装safetynet-fix最新填坑">安装safetynet-fix–最新填坑</span></h4><p>下载<a href="https://github.com/Displax/safetynet-fix/releases/tag/v2.3.1-MOD_3.0">safetynet-fix</a>,一开始安装了2.4.0，结果雷猴升级后，CTS会花样失败，降级到2.3.1就可以了</p><h4><span id="安装magiskhide-props-config-模块">安装MagiskHide Props Config 模块</span></h4><p>下载<a href="https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/releases">MagiskHide Props Config</a><br>复制zip包到手机中，回到magisk delta，选择模块，安装，选择对应的zip包，安装完成重启。</p><h4><span id="安装termux">安装termux</span></h4><p>这里需要bash命令行，你也可以用adb shell， 这里选择termux-app, <a href="https://github.com/termux/termux-app/releases">github</a>,复制到手机进行安装</p><h4><span id="配置props信息">配置Props信息</span></h4><p>进入MagiskDelta,对termux给与<br>进入termux，设置-&gt;Magiskhide, 配置超级用户列表，勾选termux。<br><img src="/2023/05/03/android-redmi-k40s-flash-global-rom-cn/MagiskDeltaSuList.jpg"></p><p>手机启动termux， 执行命令</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">su -c props</span><br></pre></td></tr></table></figure><p>同意su权限，选择1配置手机型号，后续一路继续，然后重启即可<br><img src="/2023/05/03/android-redmi-k40s-flash-global-rom-cn/Props.jpg"></p><h3><span id="检查安全通过">检查安全通过</span></h3><h4><span id="safetynettest">SafetyNetTest</span></h4><p><a href="https://play.google.com/store/apps/details?id=rikka.safetynetchecker">safetynetchecker</a> OR<br><a href="https://play.google.com/store/apps/details?id=org.freeandroidtools.safetynettest">safetynettest</a></p><p>验证结果<br><img src="/2023/05/03/android-redmi-k40s-flash-global-rom-cn/SafetyNetTest.jpg"></p><h4><span id="google-验证">google 验证</span></h4><p>play商店中，应该已经没有了未验证设备信息了，gpay也不会出现错误了<br><img src="/2023/05/03/android-redmi-k40s-flash-global-rom-cn/GpayFail.jpg"></p><h3><span id="隐藏">隐藏</span></h3><h4><span id="隐藏root">隐藏root</span></h4><p>可以使用magisk_delta自带的hide功能，也可以使用Shamiko，我倾向于使用后者，毕竟跟着magisk代码主枝最稳，维护delta的孩子太忙了，啥也别说，充电就行了。   </p><p>下载<a href="https://github.com/LSPosed/LSPosed.github.io/releases">Shamiko</a>, 安装完后创建对应的模式文件就进入白名单模式:<br>白名单：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">mkdir</span> /data/adb/shamiko</span><br><span class="line"><span class="built_in">touch</span> /data/adb/shamiko/whitelist</span><br></pre></td></tr></table></figure><p>如果需要获取root权限，临时禁用点Shamiko即可。</p><ul><li>白名单模式：<a href="https://magiskcn.com/shamiko-whitelist">Shamiko-whitelist </a></li><li>黑名单模式：<a href="https://magiskcn.com/shamiko-whitelist">Magisk-configure-denylist </a><br>只能选一个模式运行。</li></ul><h4><span id="隐藏应用列表">隐藏应用列表</span></h4><p>隐藏应用列表：<a href="https://magiskcn.com/hide-my-applist-install">Hide My Applist install</a>, 核心步骤是：</p><ol><li>创建黑白名单模块<br>2：选择应用匹配模板</li></ol><h3><span id="后续安装lsposed">后续安装LSPosed</span></h3><p>这个移步<a href="https://magiskcn.com/lsposed-install">magiskcn</a></p><h2><span id="无法拨号">无法拨号</span></h2><p>坡县或者其他地方的运营商默认关闭了GSM网络，导致google 拨号不能打电话，安装对应运营商的volte软件即可  </p><h2><span id="摄像头修复">摄像头修复</span></h2><p>使用同一版本号CN镜像的的摄像头配置文件替换即可, 这里写了一个magisk module，使用magisk刷入即可 <a href="https://github.com/godvmxi/magisk-module-fix-redmi-k40s-camera">magisk module</a></p><h1><span id="总结">总结</span></h1><p>不得不说中国手机供应商做的真好，各种适配和二次开发确实厉害， 相比之下，谷歌原生就是个半成品，如果没有圣上翻大饼和各种老大哥应用的嵌入，养蛊玩法的大陆手机，玩死其他手机厂商不是梦。<br>其实在各行各业，大陆的厂家都是养蛊式的内卷，相比之下，外边真是一个能打的都没有。<br>圣上赶紧滚蛋吧，给中国经济一条活路。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;!-- toc --&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#change-log&quot;&gt;Change Log&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#%E9%97%AE%E9%A2%98%E8%BF%9B%E5%BA%A6&quot;&gt;问题进度&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a hr</summary>
      
    
    
    
    
    <category term="Redmi" scheme="http://vball.fun/tags/Redmi/"/>
    
    <category term="K40s" scheme="http://vball.fun/tags/K40s/"/>
    
    <category term="Poco F4" scheme="http://vball.fun/tags/Poco-F4/"/>
    
  </entry>
  
  <entry>
    <title>cmake tips</title>
    <link href="http://vball.fun/2023/02/24/program-cmake-tips/"/>
    <id>http://vball.fun/2023/02/24/program-cmake-tips/</id>
    <published>2023-02-24T11:36:23.000Z</published>
    <updated>2026-03-10T18:19:08.979Z</updated>
    
    <content type="html"><![CDATA[<!-- toc --><ul><li><a href="#cmake-build-in-ms-toolchains">cmake build in MS toolchains</a><ul><li><a href="#config">config</a><ul><li><a href="#generater">generater</a></li><li><a href="#win32-example">Win32 Example</a></li><li><a href="#green-hills-multi">Green Hills MULTI</a></li><li><a href="#android-example">Android Example</a></li></ul></li><li><a href="#build">Build</a></li></ul></li></ul><!-- tocstop --><h1><span id="cmake-build-in-ms-toolchains">cmake build in MS toolchains</span></h1><h2><span id="config">config</span></h2><h3><span id="generater">generater</span></h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><span class="line"><span class="string">&quot;Ninja&quot;</span></span><br><span class="line"><span class="string">&quot;Unix Makefiles&quot;</span></span><br><span class="line"><span class="string">&quot;Visual Studio 16 2019&quot;</span></span><br><span class="line"><span class="string">&quot;Visual Studio 16 2019 Win64&quot;</span></span><br><span class="line"><span class="string">&quot;Visual Studio 16 2019 ARM&quot;</span></span><br><span class="line"><span class="string">&quot;Visual Studio 15 2017&quot;</span></span><br><span class="line"><span class="string">&quot;Visual Studio 15 2017 Win64&quot;</span></span><br><span class="line"><span class="string">&quot;Visual Studio 15 2017 ARM&quot;</span></span><br><span class="line"><span class="string">&quot;Visual Studio 14 2015&quot;</span></span><br><span class="line"><span class="string">&quot;Visual Studio 14 2015 Win64&quot;</span></span><br><span class="line"><span class="string">&quot;Visual Studio 14 2015 ARM&quot;</span></span><br><span class="line">Visual Studio 6</span><br><span class="line">Visual Studio 7</span><br><span class="line">Visual Studio 7 .NET 2003</span><br><span class="line">Visual Studio 8 2005</span><br><span class="line">Visual Studio 9 2008</span><br><span class="line">Visual Studio 10 2010</span><br><span class="line">Visual Studio 11 2012</span><br><span class="line">Visual Studio 12 2013</span><br><span class="line">Visual Studio 17 2022</span><br><span class="line"><span class="string">&quot;Green Hills MULTI&quot;</span></span><br></pre></td></tr></table></figure><h3><span id="win32-example">Win32 Example</span></h3><p>Use <strong>-A</strong> to specific the arch</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><span class="line">cmake -G <span class="string">&quot;Visual Studio 15 2017 64&quot;</span></span><br><span class="line"><span class="comment">#&lt;===&gt;</span></span><br><span class="line">cmake -G <span class="string">&quot;Visual Studio 15 2017&quot;</span> -A x64</span><br><span class="line"></span><br><span class="line"><span class="comment">#others </span></span><br><span class="line">cmake -G <span class="string">&quot;Visual Studio 15 2017&quot;</span> -A Win32</span><br><span class="line">cmake -G <span class="string">&quot;Visual Studio 15 2017&quot;</span> -A ARM</span><br><span class="line">cmake -G <span class="string">&quot;Visual Studio 17 2022&quot;</span> -A ARM64</span><br><span class="line"></span><br><span class="line">$ cmake -G <span class="string">&quot;Visual Studio 15 2017&quot;</span> -A x64  ../src/</span><br><span class="line">-- Selecting Windows SDK version 10.0.18362.0 to target Windows 10.0.19044.</span><br><span class="line">-- The CXX compiler identification is MSVC 19.16.27048.0</span><br><span class="line">-- Detecting CXX compiler ABI info</span><br><span class="line">-- Detecting CXX compiler ABI info - <span class="keyword">done</span></span><br><span class="line">-- Check <span class="keyword">for</span> working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe - skipped</span><br><span class="line">-- Detecting CXX compile features</span><br><span class="line">-- Detecting CXX compile features - <span class="keyword">done</span></span><br><span class="line">-- Configuring <span class="keyword">done</span></span><br><span class="line">-- Generating <span class="keyword">done</span></span><br><span class="line">-- Build files have been written to: D:/Work/Code/pcap_tool_master/build</span><br><span class="line"></span><br></pre></td></tr></table></figure><p>Use <strong>-T</strong> to specific the toolchain   </p><h3><span id="green-hills-multi">Green Hills MULTI</span></h3><p><a href="https://cmake.org/cmake/help/latest/generator/Green%20Hills%20MULTI.html#generator:Green%20Hills%20MULTI">Green Hills MULTI</a></p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">cmake -G <span class="string">&quot;Green Hills MULTI&quot;</span> -T comp_201754 <span class="keyword">for</span> /usr/ghs/comp_201754.</span><br><span class="line">cmake -G <span class="string">&quot;Green Hills MULTI&quot;</span> -T comp_201754 -D GHS_TOOLSET_ROOT=/opt/ghs <span class="keyword">for</span> /opt/ghs/comp_201754.</span><br><span class="line">cmake -G <span class="string">&quot;Green Hills MULTI&quot;</span> -T /usr/ghs/comp_201554</span><br><span class="line">cmake -G <span class="string">&quot;Green Hills MULTI&quot;</span> -T C:/ghs/comp_201754</span><br><span class="line"></span><br></pre></td></tr></table></figure><h3><span id="android-example">Android Example</span></h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">cmake ../src \</span><br><span class="line">  -DCMAKE_SYSTEM_NAME=Android \</span><br><span class="line">  -DCMAKE_SYSTEM_VERSION=21 \</span><br><span class="line">  -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a \</span><br><span class="line">  -DCMAKE_ANDROID_NDK=/path/to/android-ndk \</span><br><span class="line">  -DCMAKE_ANDROID_STL_TYPE=gnustl_static</span><br></pre></td></tr></table></figure><h2><span id="build">Build</span></h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">$ cmake --build . --config Release --target ALL_BUILD</span><br><span class="line">Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 <span class="keyword">for</span> .NET Framework</span><br><span class="line">Copyright (C) Microsoft Corporation. All rights reserved.</span><br><span class="line"></span><br><span class="line">  Checking Build System</span><br><span class="line">  Building Custom Rule D:/Work/Code/pcap_tool_master/rmu_tool/fw_tool/CMakeLists.txt</span><br><span class="line"></span><br><span class="line">  fw_parser.vcxproj -&gt; D:\Work\Code\pcap_tool_master\build\Release\fw_parser.exe</span><br><span class="line">  Building Custom Rule D:/Work/Code/pcap_tool_master/rmu_tool/fw_tool/CMakeLists.txt</span><br><span class="line"></span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;!-- toc --&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#cmake-build-in-ms-toolchains&quot;&gt;cmake build in MS toolchains&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#config&quot;&gt;config&lt;/a&gt;&lt;ul&gt;
&lt;li</summary>
      
    
    
    
    
  </entry>
  
  <entry>
    <title>bash tool advanced usage</title>
    <link href="http://vball.fun/2023/02/24/linux-bash-special/"/>
    <id>http://vball.fun/2023/02/24/linux-bash-special/</id>
    <published>2023-02-24T11:33:12.000Z</published>
    <updated>2026-03-10T18:19:08.976Z</updated>
    
    <content type="html"><![CDATA[<!-- toc --><ul><li><a href="#hexdump-with-ascii">hexdump with ascii</a></li></ul><!-- tocstop --><h1><span id="hexdump-with-ascii">hexdump with ascii</span></h1><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">root@soc1:/build<span class="comment"># hexdump -C Makefile </span></span><br><span class="line">00000000  23 20 43 4d 41 4b 45 20  67 65 6e 65 72 61 74 65  |<span class="comment"># CMAKE generate|</span></span><br><span class="line">00000010  64 20 66 69 6c 65 3a 20  44 4f 20 4e 4f 54 20 45  |d file: DO NOT E|</span><br><span class="line">00000020  44 49 54 21 0a 23 20 47  65 6e 65 72 61 74 65 64  |DIT!.<span class="comment"># Generated|</span></span><br><span class="line">00000030  20 62 79 20 22 55 6e 69  78 20 4d 61 6b 65 66 69  | by <span class="string">&quot;Unix Makefi|</span></span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;!-- toc --&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#hexdump-with-ascii&quot;&gt;hexdump with ascii&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- tocstop --&gt;

&lt;h1&gt;&lt;span id=&quot;hexdump-with-ascii&quot;&gt;h</summary>
      
    
    
    
    
    <category term="Linux" scheme="http://vball.fun/tags/Linux/"/>
    
    <category term="Bash" scheme="http://vball.fun/tags/Bash/"/>
    
  </entry>
  
  <entry>
    <title>家庭科学一体机方案-GFW all in one</title>
    <link href="http://vball.fun/2023/02/20/pve-gfw-home-usage/"/>
    <id>http://vball.fun/2023/02/20/pve-gfw-home-usage/</id>
    <published>2023-02-20T03:59:15.000Z</published>
    <updated>2026-03-10T18:19:08.980Z</updated>
    
    <content type="html"><![CDATA[<!-- toc --><ul><li><a href="#%E9%9C%80%E6%B1%82%E8%AF%B4%E6%98%8E">需求说明</a><ul><li><a href="#%E9%9C%80%E6%B1%82%E6%94%B6%E9%9B%86">需求收集</a></li><li><a href="#%E7%A7%91%E5%AD%A6%E6%96%B9%E6%B3%95%E5%8F%8A%E8%A7%84%E5%88%92">科学方法及规划</a></li><li><a href="#%E6%95%B4%E4%BD%93%E7%BD%91%E7%BB%9C%E7%BB%93%E6%9E%84">整体网络结构</a></li><li><a href="#%E7%A7%91%E5%AD%A6%E9%83%A8%E5%88%86">科学部分</a></li><li><a href="#%E6%B5%8B%E8%AF%95%E7%82%B9%E9%A2%84%E6%9C%9F%E6%B5%81%E9%87%8F">测试点预期流量</a></li><li><a href="#%E6%97%81%E8%B7%AF%E7%94%B1%E6%9C%89%E7%AE%80%E5%8C%96%E7%89%88%E6%9C%AC">旁路由有简化版本</a></li></ul></li><li><a href="#pve%E9%85%8D%E7%BD%AE">PVE配置</a></li><li><a href="#%E7%BD%91%E7%BB%9C%E9%85%8D%E7%BD%AE">网络配置</a></li><li><a href="#%E7%BD%91%E7%BB%9C%E4%B8%BB%E6%9C%BA%E5%88%86%E9%85%8D">网络主机分配</a></li><li><a href="#%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95">使用方法</a><ul><li><a href="#%E6%A8%A1%E5%BC%8F%E4%B8%80">模式一</a></li><li><a href="#%E6%A8%A1%E5%BC%8F%E4%BA%8C">模式二</a></li></ul></li><li><a href="#%E6%89%93%E5%BC%80%E4%BB%BB%E6%84%8F%E4%B8%BB%E6%9C%BA%E7%9A%84%E6%8E%A7%E5%88%B6%E5%8F%B0">打开任意主机的控制台</a></li><li><a href="#%E8%AF%8A%E6%96%AD%E6%96%B9%E6%B3%95">诊断方法</a></li><li><a href="#%E5%BF%AB%E7%85%A7%E5%8A%9F%E8%83%BD">快照功能</a><ul><li><a href="#%E5%88%9B%E5%BB%BA%E5%BF%AB%E7%85%A7">创建快照</a></li><li><a href="#%E5%9B%9E%E6%BB%9A%E5%BF%AB%E7%85%A7">回滚快照</a></li></ul></li><li><a href="#%E5%85%B3%E4%BA%8E%E5%A4%87%E4%BB%BD">关于备份</a></li><li><a href="#%E9%87%8D%E7%BD%AE%E5%AF%86%E7%A0%81">重置密码</a><ul><li><a href="#%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%AF%86%E7%A0%81%E9%87%8D%E7%BD%AE">服务器密码重置</a></li></ul></li></ul><!-- tocstop --><h1><span id="需求说明">需求说明</span></h1><h2><span id="需求收集">需求收集</span></h2><ul><li>所有设备都想访问Samba共享</li><li>部分设备需要完全科学网络<ul><li>机顶盒原生</li><li>数据安全考量（仅供参考）</li><li>强制数据流走向</li></ul></li><li>部分应用只需要socks&#x2F;http代理<ul><li>SmartTubeNg支持第三方YouTube，仅需socks代理即可</li><li>chrome浏览器用Proxy SwitchyOmega上网</li></ul></li><li>科学节点数量有限<ul><li>分享出去可以突破</li><li>分享到广域网也可以。注意安全</li></ul></li></ul><h2><span id="科学方法及规划">科学方法及规划</span></h2><p>这里不讨论分流问题，分流自己用浏览器插件控制   </p><ul><li>插入特定物理网口完全科学</li><li>设置指定网关即可完全科学</li><li>指定socks代理可以自定义流量规则</li><li>默认网络不科学，不干扰日常流量</li></ul><p>整理需要实现：</p><ul><li>可以运行任何一款科学软件</li><li>在全局提供socks代理</li><li>提供一个完全科学的物理网口</li><li>提供手动完全可以的网关，并嵌入原始局域网网段</li></ul><h2><span id="整体网络结构">整体网络结构</span></h2><pre class="mermaid">graph TB    PhyIface>实体硬件网口]    VmBridge>虚拟网桥]    VmMachine>虚拟机]    classDef CssGreen fill:#9f6,stroke:#333,stroke-width:2px;    classDef CssOrange fill:#f96,stroke:#333,stroke-width:4px;    classDef CssRed    fill:#ff0,stroke:#333,stroke-width:4px;    classDef CssReal    fill:#666,stroke:#333,stroke-width:4px;    class PhyIface CssOrange    class VmBridge CssRed    class VmMachine CssGreen</pre><pre class="mermaid">graph TB    BrDial(虚拟网桥/光猫拨号网络/分配物理网口ens0p0)    BrHome(虚拟网桥/普通家庭网络/分配物理网口ens1p0)    BrGfwPhy(一体机物理网口ens2p0/即插即纯科学)        BrDialPhy(一体机物理网口ens0p0)    BrHomePhy(一体机物理网口ens1p0)    Modem(光猫)    SwitchPoe(交换机/选配POE)      subgraph VmSubDial[Vm拨号主路由]        DialRouter[拨号, 流控, AC管理器]        DiagWan0[Wan0] --> DialRouter        DialRouter --> DialLan0[Lan0<br>192.168.1.1]    end    BrDialPhy --> BrDial    BrDial  --> DiagWan0    subgraph SubPhyRouter[实体拨号主路由]        SubPhyRouterWan[Wan0]        SubPhyRouterWan --> SubPhyRouterOp[物理拨号路由]        SubPhyRouterOp --> SubPhyRouterOpLan0[Lan0<br>192.168.1.1]    end    subgraph SubVmService[虚拟服务节点]        LXC -.-> Media(多媒体服务)        Media -.-> Emby                Media -.-> NasTools        Media -.-> Dsm        Media -.-> Alist        Media -.-> Qb[Qb/Tr下载]        LXC -.-> HA        LXC -.-> Frp            end    subgraph SubGfwService[科学服务]        GfwClash[各种科学软件<br>Clash/SSR/熊猫]        GfwProxy[代理服务<br>socks:1090<br>http:1091]        GfwPhyIface[完全科学网口<br>192.168.2.x/dhcp/dns]    end    BrHome === BrHomePhy    BrHomePhy === SwitchPoe    subgraph SubRealDevice[实体物理设备]        SwitchPoe --> APx(AP0/AP1/APx)            SwitchPoe --> IPTV(IPTV)        SwitchPoe --> TV(电视/台式机)        APx --> Mobile(手机)        APx --> Tablet(平板)        APx --> Laptio(笔记本)        APx --> Device(智能家居)    end    BrHome --> LXC(家用服务Vm/Docker/LXC)    BrHome === SubGfwService    SubRealDevice -.-> SubGfwService    SubVmService -.-> SubGfwService         Modem -->|使用虚拟路由拨号| BrDialPhy        DialLan0 -->|使用虚拟路由拨号| BrHome    Modem -.->|使用物理路由拨号| SubPhyRouterWan    SubPhyRouterOpLan0 -.->|使用物理路由拨号| BrHomePhy    classDef CssGreen fill:#9f6,stroke:#333,stroke-width:2px;    classDef CssOrange fill:#f96,stroke:#333,stroke-width:4px;    classDef CssRed    fill:#ff0,stroke:#333,stroke-width:4px;    classDef CssReal    fill:#666,stroke:#333,stroke-width:4px;    classDef CssGfw    fill:#AAAAAA,stroke:#333,stroke-width:4px;    class BrDial,BrHome,BrGfw CssOrange    class VmSubDial,SubVmService CssGreen    class SubVmService CssGreen    class BrGfwPhy,BrHomePhy,BrDialPhy CssRed    class SubRealDevice CssReal    class SubPhyRouter CssReal    class Modem CssReal    class SubGfwService CssGreen</pre><h2><span id="科学部分">科学部分</span></h2><pre class="mermaid">graph TB    BrHome(虚拟网桥/普通家庭网络/分配物理网口ens1p0)    BrGfw(虚拟网桥/Gfw科学网络/分配物理网口ens2p0)        BrHomePhy(一体机物理网口ens1p0)    BrGfwPhy(一体机物理网口ens2p0/即插即纯科学)    DialLan0[主网关192.168.1.1]    DialLan0 ==> BrHome    subgraph SubVmWin0[Vm科学机/Win7]        SubVmWin0Eth(网卡/静态<br>192.168.1.112)        GfwSw(科学软件<br>Clash/SSR/熊猫)        GfwProxy(代理服务socks/http<br>socks:1090<br>http:1091)        GfwVpn(对内VPN)        SubVmWin0Eth --> GfwSw        GfwSw --> GfwProxy        GfwSw -.-> GfwVpn    end    subgraph SubVmOp1[Vm路由1<br>]        SubVmOp1OpWan[Wan0<br>192.168.1.x] --> SubVmOp1Op        SubVmOp1Op[全局子网流量转代理<br>LAN->Proxy<br>Clash/SSR/PassWall]        SubVmOp1Op --> SubVmOp1OpLan[Lan0<br>192.168.2.242]    end    subgraph SubVmOp2[Vm路由2/旁路由网关]        SubVmOp2OpWan[Wan0<br>192.168.2.x] --> SubVmOp2Op        SubVmOp2Op[旁路由器/关闭DHCP]        SubVmOp2Op --> SubVmOp2OpLan[Lan0<br>192.168.1.242]    end    BrHome --> SubVmWin0Eth    GfwProxy --> BrHome    BrHome === BrHomePhy            BrHome --> SubVmOp1OpWan    SubVmOp1Op -.->  GfwProxy    SubVmOp1OpLan --> BrGfw    BrGfw --> SubVmOp2OpWan    BrGfw --> BrGfwPhy    SubVmOp2OpLan --> BrHome        classDef CssGreen fill:#9f6,stroke:#333,stroke-width:2px;    classDef CssOrange fill:#f96,stroke:#333,stroke-width:4px;    classDef CssRed    fill:#ff0,stroke:#333,stroke-width:4px;    classDef CssReal    fill:#666,stroke:#333,stroke-width:4px;    class BrDial,BrHome,BrGfw CssOrange    class SubVmWin0,SubVmOp1,SubVmOp2,VmSubDial,SubVmService CssGreen    class SubVmService CssGreen    class BrGfwPhy,BrHomePhy,BrDialPhy CssRed    class SubRealDevice CssReal    class SubPhyRouter CssReal</pre><h2><span id="测试点预期流量">测试点预期流量</span></h2><pre class="mermaid">graph TB    BrHome(虚拟网桥/普通家庭网络/分配物理网口ens1p0)    BrGfw(虚拟网桥/Gfw科学网络/分配物理网口ens2p0)        BrHomePhy(一体机物理网口ens1p0)    BrGfwPhy(一体机物理网口ens2p0/即插即纯科学)    DialLan0[主网关192.168.1.1]    DialLan0 ==> BrHome    subgraph SubVmWin0[Vm科学机/Win7]        SubVmWin0Eth(网卡/静态<br>192.168.1.112)        GfwSw(科学软件<br>Clash/SSR/熊猫)        GfwProxy(代理服务socks/http<br>socks:1090<br>http:1091)        GfwVpn(对内VPN)        SubVmWin0Eth --> GfwSw        GfwSw --> GfwProxy        GfwSw -.-> GfwVpn    end    subgraph SubVmOp1[Vm路由1]        SubVmOp1OpWan[Wan0<br>192.168.1.x] --> SubVmOp1Op        SubVmOp1Op[全局子网流量转代理<br>LAN->Proxy<br>Clash/SSR/PassWall]        SubVmOp1Op --> SubVmOp1OpLan[Lan0<br>192.168.2.242]    end    subgraph SubVmOp2[Vm路由2/旁路由网关]        SubVmOp2OpWan[Wan0<br>192.168.2.x] --> SubVmOp2Op        SubVmOp2Op[旁路由器/关闭DHCP]        SubVmOp2Op --> SubVmOp2OpLan[Lan0<br>192.168.1.242]    end    BrHome --> SubVmWin0Eth    GfwProxy --> BrHome    BrHome === BrHomePhy            BrHome --> SubVmOp1OpWan    SubVmOp1Op -.->  GfwProxy    SubVmOp1OpLan --> BrGfw    BrGfw --> SubVmOp2OpWan    BrGfw --> BrGfwPhy    SubVmOp2OpLan --> BrHome    TestPoint0[测试点0<br>网关192.168.1.1] --> BrHome    TestPoint1[测试点1<br>网关192.168.1.242] --> BrHome    TestPoint2[测试点2<br>网关192.168.2.244] --> BrGfw    TestPoint0 -.->|预期流量1| DialLan0    TestPoint0 -.->|预期流量2| GfwProxy    TestPoint1 -.->|预期流量| SubVmOp2OpLan    TestPoint2 -.->|预期流量| SubVmOp1OpLan        classDef CssGreen fill:#9f6,stroke:#333,stroke-width:2px;    classDef CssOrange fill:#f96,stroke:#333,stroke-width:4px;    classDef CssRed    fill:#ff0,stroke:#333,stroke-width:4px;    classDef CssReal    fill:#666,stroke:#333,stroke-width:4px;    class BrDial,BrHome,BrGfw CssOrange    class SubVmWin0,SubVmOp1,SubVmOp2,VmSubDial,SubVmService CssGreen    class SubVmService CssGreen    class BrGfwPhy,BrHomePhy,BrDialPhy CssRed    class SubRealDevice CssReal    class SubPhyRouter CssReal</pre><h2><span id="旁路由有简化版本">旁路由有简化版本</span></h2><p>如果你不需要一个可以即插即用的物理科学网口，可以做一些简化，去掉VM路由1部分</p><pre class="mermaid">graph TB    BrHome(虚拟网桥/普通家庭网络/分配物理网口ens1p0)        BrHomePhy(一体机物理网口ens1p0)    DialLan0[主网关192.168.1.1]    DialLan0 ==> BrHome    subgraph SubVmWin0[Vm科学机/Win7]        SubVmWin0Eth(网卡/静态<br>192.168.1.112)        GfwSw(科学软件<br>Clash/SSR/熊猫)        GfwProxy(代理服务socks/http<br>socks:1090<br>http:1091)        GfwVpn(对内VPN)        SubVmWin0Eth --> GfwSw        GfwSw --> GfwProxy        GfwSw -.-> GfwVpn    end    subgraph SubVmOp2[Vm路由2/旁路由网关]        SubVmOp2OpWan[Wan0<br>192.168.2.x<br>非必须设置<br>网卡都可以不需要] -.-> SubVmOp2Op        SubVmOp2Op[旁路由器/关闭DHCP<br>流量转代理<br>LAN->Proxy<br>Clash/SSR/PassWall]        SubVmOp2Op --- SubVmOp2OpLan[Lan0<br>192.168.1.242]    end    BrHome --> SubVmWin0Eth    GfwProxy --> BrHome    BrHome === BrHomePhy    SubVmOp2Op -.->|预期科学流量| GfwProxy    SubVmOp2Op -.->|预期普通流量| BrHome            SubVmOp2OpLan --- BrHome        classDef CssGreen fill:#9f6,stroke:#333,stroke-width:2px;    classDef CssOrange fill:#f96,stroke:#333,stroke-width:4px;    classDef CssRed    fill:#ff0,stroke:#333,stroke-width:4px;    classDef CssReal    fill:#666,stroke:#333,stroke-width:4px;    class BrDial,BrHome,BrGfw CssOrange    class SubVmWin0,SubVmOp1,SubVmOp2,VmSubDial,SubVmService CssGreen    class SubVmService CssGreen    class BrGfwPhy,BrHomePhy,BrDialPhy CssRed    class SubRealDevice CssReal    class SubPhyRouter CssReal</pre><h1><span id="pve配置">PVE配置</span></h1><p>这里仅仅是基于PVE测试，同样适用于unraid，Exsi等</p><h1><span id="网络配置">网络配置</span></h1><p>主机后边有两个网口，一个 标记为入（后续描述为网口1），一个标记为出（后续描述为网口2），请直接使用网线连接网口1到家庭的网络。</p><h1><span id="网络主机分配">网络主机分配</span></h1><p>这里有如下几种主机</p><table><thead><tr><th align="left">主机名字</th><th align="left">IP地址</th><th align="left">主机号</th><th align="left">网桥</th><th align="left">备注</th></tr></thead><tbody><tr><td align="left">PVE服务器</td><td align="left">192.168.1.240（网口1）<br>192.168.1.241（网口2）</td><td align="left"></td><td align="left">br0<br>br1<br>br2</td><td align="left">一般使用240就可以了，使用浏览器访问：<a href="https://192.168.1.240:8006/">https://192.168.1.240:8006</a></td></tr><tr><td align="left">代理机</td><td align="left">192.168.1.242</td><td align="left">110</td><td align="left">br0</td><td align="left">win7，可以安装熊猫或者clash，提供代理服务 ( socks5端口号1090， https代理1091)</td></tr><tr><td align="left">网关机1</td><td align="left">192.168.2.244</td><td align="left">104</td><td align="left">br1<br>br2</td><td align="left">OP，任何接入网口出的设备，都能自动科学</td></tr><tr><td align="left">网关机2</td><td align="left">192.168.1.243</td><td align="left">101</td><td align="left">br0<br>br1</td><td align="left">OP，所有数据流量走网口入，需要手动指定IP地址和网关地址192.168.1.243</td></tr><tr><td align="left">测试机0</td><td align="left"></td><td align="left">106</td><td align="left">br0</td><td align="left">测试网口入的家庭网络，不科学</td></tr><tr><td align="left">测试机1</td><td align="left"></td><td align="left">107</td><td align="left">br0</td><td align="left">测试网口入手动设置网关的科学网络</td></tr><tr><td align="left">测试机2</td><td align="left"></td><td align="left">105</td><td align="left">br2</td><td align="left">测试网口出的自动科学网络</td></tr><tr><td align="left">nps穿透机</td><td align="left"></td><td align="left">103</td><td align="left">br0</td><td align="left">用来远程接入网络，远程调试使用</td></tr><tr><td align="left">win测试机</td><td align="left">auto</td><td align="left">109</td><td align="left">切换后需要重启</td><td align="left">调试网络，用来动态接入不同网络进行测试</td></tr></tbody></table><p><img src="/2023/02/20/pve-gfw-home-usage/pve_node.png"></p><h1><span id="使用方法">使用方法</span></h1><p>通过网线连接网口入后，开机就可以使用任何一个浏览器访问PVE的web控制页面, 任何想要科学的主机，可以使用如下任意一种方法开启科学模式</p><h2><span id="模式一">模式一</span></h2><p>客户机接入到与网口1同级网络，192.168.1.X，并且确保可以访问PVE的web页面，然后手动指定网关到网关机2（192.168.1.243），DNS设置为192.168.1.243或者8.8.8.8</p><h2><span id="模式二">模式二</span></h2><p>该模式需要将客户机连接到网络2同级网络（端口不够，可以使用交换机对网络2进行扩展），上网模式设置自动获取</p><h1><span id="打开任意主机的控制台">打开任意主机的控制台</span></h1><p>这里理解为显示器<br><img src="/2023/02/20/pve-gfw-home-usage/open_node.png"></p><p>win控制台<br><img src="/2023/02/20/pve-gfw-home-usage/win_node.png"></p><p>linux控制台<br><img src="/2023/02/20/pve-gfw-home-usage/linux_node.png"></p><h1><span id="诊断方法">诊断方法</span></h1><p>这里提供了三个测试机，接入不同的网络进行测试</p><p>默认网络测试命令: </p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">curl http://ifconfig.io/all</span><br><span class="line"></span><br></pre></td></tr></table></figure><p>代理网络测试命令: </p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">proxychain4 curl http://ifconfig.io/all</span><br><span class="line"></span><br></pre></td></tr></table></figure><p>该命令会反馈出不同的结果，可以观察结果中的IP和国家信息来判断是否已经科学。</p><p><img src="/2023/02/20/pve-gfw-home-usage/ifconfig.png"></p><p>测试机网络归属</p><table><thead><tr><th align="left">测试机名字</th><th align="left">网桥</th><th align="left">网关</th><th align="left">科学</th><th align="left"></th></tr></thead><tbody><tr><td align="left">test-gateway-0</td><td align="left">br0</td><td align="left">192.168.1.1</td><td align="left">否，仅测试网络</td><td align="left"></td></tr><tr><td align="left">test-gateway-0+proxychain4</td><td align="left">br0</td><td align="left">192.168.1.1</td><td align="left">科学，使用win7 socks代理上网</td><td align="left"></td></tr><tr><td align="left">test-gateway-1</td><td align="left">br0</td><td align="left">192.168.1.242</td><td align="left">是</td><td align="left"></td></tr><tr><td align="left">test-gateway-2</td><td align="left">br2</td><td align="left">192.168.2.244</td><td align="left">是</td><td align="left"></td></tr></tbody></table><h1><span id="快照功能">快照功能</span></h1><p>任何一台虚拟机，都可以使用快照功能记录当前虚拟机的设置信息。如果出现问题，可以随时使用快照回滚的功能进行恢复。</p><h2><span id="创建快照">创建快照</span></h2><p>选择主机-&gt; Snapshots-&gt;Take Snapshot<br><img src="/2023/02/20/pve-gfw-home-usage/snapshot.png"></p><h2><span id="回滚快照">回滚快照</span></h2><p>选择主机-&gt; Snapshots-&gt;选择回滚的版本-&gt; Rollback</p><h1><span id="关于备份">关于备份</span></h1><p>主机用了蜗牛的机箱（手边没有其他的。。），所有只有两个最下边的硬盘槽位可以用来引导系统 ，在任意一个槽位插入硬盘，上电确保亮灯应该就可以启动系统。</p><p>随机有两个系统盘，内容完全一样，用来作为备份引导盘救急，所以平时只需要插入一个硬盘就可以，另一个硬盘拆下来收藏起来即可（插入槽位就会上电，会影响硬盘寿命）</p><h1><span id="重置密码">重置密码</span></h1><h2><span id="服务器密码重置">服务器密码重置</span></h2><ul><li>Boot into <strong>grub</strong>, select <em><strong>single user</strong></em> but <strong>do not press enter</strong>.</li><li>Press <strong>e</strong> to go into <strong>edit</strong> mode.</li><li>Scroll down to the <strong>kernel</strong> line you will boot from, it starts with “linux &#x2F;boot&#x2F;vmlinuz-…….”</li><li>Scroll to the end of that line and press <strong>space key</strong> once and type init&#x3D;&#x2F;bin&#x2F;bash</li><li>Press <strong>Ctrl X</strong> to boot<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"># Remount / as Read/Write</span><br><span class="line">mount -rw -o remount /</span><br><span class="line"># Change the root account password with</span><br><span class="line">passwd</span><br><span class="line"># Change any other account password with</span><br><span class="line">passwd username</span><br><span class="line"># type new password, confirm and hit enter and then reboot.</span><br></pre></td></tr></table></figure></li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;!-- toc --&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#%E9%9C%80%E6%B1%82%E8%AF%B4%E6%98%8E&quot;&gt;需求说明&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#%E9%9C%80%E6%B1%82%E6%94%B6%E9%9B%86&quot;&gt;需求收集</summary>
      
    
    
    
    
    <category term="GFW" scheme="http://vball.fun/tags/GFW/"/>
    
    <category term="PVE" scheme="http://vball.fun/tags/PVE/"/>
    
    <category term="UNRAID" scheme="http://vball.fun/tags/UNRAID/"/>
    
    <category term="KVM" scheme="http://vball.fun/tags/KVM/"/>
    
  </entry>
  
  <entry>
    <title>pve copy &amp; merge VM node from old disk</title>
    <link href="http://vball.fun/2023/02/13/sys-nas-pve-copy-vm-from-old-disk/"/>
    <id>http://vball.fun/2023/02/13/sys-nas-pve-copy-vm-from-old-disk/</id>
    <published>2023-02-13T10:50:35.000Z</published>
    <updated>2026-03-10T18:19:08.982Z</updated>
    
    <content type="html"><![CDATA[<!-- toc --><ul><li><a href="#todo">TODO</a></li><li><a href="#you-can-use-web-backup-and-restore-always">You can use web backup and restore always</a></li><li><a href="#lets-go">Let’s go</a><ul><li><a href="#link-the-old-disk-to-your-new-pve-machine">Link the old disk to your new PVE machine</a></li><li><a href="#mount-old-disk">Mount old disk</a><ul><li><a href="#scan-your-lvm-disk">Scan your lvm disk</a><ul><li><a href="#identify-the-old-and-new-disk">Identify the old and new disk</a></li><li><a href="#rename-the-old-one">Rename the old one</a></li></ul></li><li><a href="#active-the-old-pve-disk">Active the old pve disk</a></li><li><a href="#locathe-the-disk-of-your-old-vm">Locathe the disk of your old VM</a></li></ul></li><li><a href="#dump-the-old-disk-to-qcow2-format">Dump the old disk to qcow2 format</a></li><li><a href="#create-a-new-vm-node-in-your-system">Create a new VM node in your system</a></li><li><a href="#attach-the-vm-disk-in-the-webgui">Attach the vm disk in the webgui</a></li><li><a href="#maybe-old-pve-setting-in-old_diskvarlibpve-clusterconfigdb">Maybe old pve setting in old_disk&#x2F;var&#x2F;lib&#x2F;pve-cluster&#x2F;config.db</a></li></ul></li></ul><!-- tocstop --><h1><span id="todo">TODO</span></h1><ul><li><input disabled type="checkbox"> Copy the old vm config from the disk</li><li><input disabled type="checkbox"> Copy the lxc and config from the disk</li><li><input disabled type="checkbox"> Add real bash log</li></ul><h1><span id="you-can-use-web-backup-and-restore-always">You can use web backup and restore always</span></h1><p>When the old system can not boot up, it will not be a good way.   </p><p>NOTE:</p><ul><li>1 disk</li><li>LVM</li></ul><h1><span id="lets-go">Let’s go</span></h1><h2><span id="link-the-old-disk-to-your-new-pve-machine">Link the old disk to your new PVE machine</span></h2><h2><span id="mount-old-disk">Mount old disk</span></h2><h3><span id="scan-your-lvm-disk">Scan your lvm disk</span></h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># vgscan </span></span><br></pre></td></tr></table></figure><p>You can find your new and old lvm disk, if they has same name, you may need rename the old lvm name.</p><h4><span id="identify-the-old-and-new-disk">Identify the old and new disk</span></h4><p>record the UUID of the old disk</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># vgdisplay</span></span><br></pre></td></tr></table></figure><h4><span id="rename-the-old-one">Rename the old one</span></h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vgrename UUID_old_disk new_vg_name</span><br></pre></td></tr></table></figure><h3><span id="active-the-old-pve-disk">Active the old pve disk</span></h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vgchange  -a y new_vg_name</span><br></pre></td></tr></table></figure><h3><span id="locathe-the-disk-of-your-old-vm">Locathe the disk of your old VM</span></h3><p>you will find your vm node disk in <strong>&#x2F;dev&#x2F;new_vg_name&#x2F;vm_1xx_disk_0</strong></p><h2><span id="dump-the-old-disk-to-qcow2-format">Dump the old disk to qcow2 format</span></h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">qemu-img convert -f -O qcow2 /dev/new_vg_name/vm_1xx_disk_0 vm_1xx_disk.qcow2</span><br></pre></td></tr></table></figure><h2><span id="create-a-new-vm-node-in-your-system">Create a new VM node in your system</span></h2><p>Do not create vm disk, and use the command to import the above disk image</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">qm importdisk new_vm_id  vm_1xx_disk.qcow2  local-lvm</span><br></pre></td></tr></table></figure><h2><span id="attach-the-vm-disk-in-the-webgui">Attach the vm disk in the webgui</span></h2><p>You may need to modify your vm setting to adjust the old disk, such as disk bus, mac and so on</p><h2><span id="maybe-old-pve-setting-in-old_diskx2fvarx2flibx2fpve-clusterx2fconfigdb">Maybe old pve setting in old_disk&#x2F;var&#x2F;lib&#x2F;pve-cluster&#x2F;config.db</span></h2><p>Enjoy it.</p>]]></content>
    
    
      
      
    <summary type="html">&lt;!-- toc --&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#todo&quot;&gt;TODO&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#you-can-use-web-backup-and-restore-always&quot;&gt;You can use web backup and res</summary>
      
    
    
    
    
    <category term="PVE" scheme="http://vball.fun/tags/PVE/"/>
    
    <category term="Sysadmin" scheme="http://vball.fun/tags/Sysadmin/"/>
    
    <category term="Nas" scheme="http://vball.fun/tags/Nas/"/>
    
  </entry>
  
  <entry>
    <title>NAS 家庭配置选择</title>
    <link href="http://vball.fun/2023/02/10/nas-cpu-choice/"/>
    <id>http://vball.fun/2023/02/10/nas-cpu-choice/</id>
    <published>2023-02-10T09:28:11.000Z</published>
    <updated>2026-03-10T18:19:08.976Z</updated>
    
    <content type="html"><![CDATA[<!-- toc --><ul><li><a href="#todo">TODO</a></li><li><a href="#nas%E5%AE%B6%E5%BA%AD%E9%80%89%E6%8B%A9%E7%9A%84%E8%80%83%E8%99%91%E5%9B%A0%E7%B4%A0">NAS家庭选择的考虑因素</a></li><li><a href="#cpu">CPU</a></li><li><a href="#%E4%B8%BB%E6%9D%BF">主板</a></li><li><a href="#%E9%98%B5%E5%88%97">阵列</a></li><li><a href="#%E7%B3%BB%E7%BB%9F">系统</a></li></ul><!-- tocstop --><h1><span id="todo">TODO</span></h1><ul><li><input checked disabled type="checkbox"> CPU 90%</li><li><input disabled type="checkbox"> motherboard</li><li><input disabled type="checkbox"> raid</li><li><input disabled type="checkbox"> OS</li></ul><h1><span id="nas家庭选择的考虑因素">NAS家庭选择的考虑因素</span></h1><ul><li>能耗</li><li>编解码能力</li><li>价格</li></ul><h1><span id="cpu">CPU</span></h1><p>如果不考虑上独立显卡，CPU集显的解码能里就非常关键，便与emby实时转码播放,暂时没列出来AMD更多</p><table><thead><tr><th>part</th><th align="center">E3-1265L V3</th><th align="center">I3 6100T</th><th align="center">I3-7100T</th><th align="center">I3-8~11100T</th><th align="center">I3-12100T</th><th align="center">200GE</th><th align="center">N5100</th></tr></thead><tbody><tr><td>Power</td><td align="center">45W</td><td align="center">35W</td><td align="center">35W</td><td align="center">35W</td><td align="center">35W</td><td align="center">35W</td><td align="center">6W</td></tr><tr><td>Cores</td><td align="center">4</td><td align="center">2</td><td align="center">2</td><td align="center">4</td><td align="center">4</td><td align="center">2</td><td align="center">:—:</td></tr><tr><td>Hyperthreading</td><td align="center">Yes</td><td align="center">Yes</td><td align="center">Yes</td><td align="center">Yes</td><td align="center">Yes</td><td align="center">:—:</td><td align="center"></td></tr><tr><td>GPU</td><td align="center">GT1</td><td align="center">G530</td><td align="center">G630</td><td align="center">G630</td><td align="center">G730</td><td align="center">Vega3</td><td align="center">JasperLake24</td></tr><tr><td>H264</td><td align="center">dec&#x2F;enc</td><td align="center">dec&#x2F;enc</td><td align="center">dec&#x2F;enc</td><td align="center">dec&#x2F;enc</td><td align="center">dec&#x2F;enc</td><td align="center">dec&#x2F;enc</td><td align="center">dec&#x2F;enc</td></tr><tr><td>H265</td><td align="center">-</td><td align="center">dec&#x2F;enc</td><td align="center">dec&#x2F;enc</td><td align="center">dec&#x2F;enc</td><td align="center">dec&#x2F;enc</td><td align="center">dec&#x2F;enc</td><td align="center">dec&#x2F;enc</td></tr><tr><td>H265&#x2F;10bit</td><td align="center">-</td><td align="center">dec</td><td align="center">dec&#x2F;enc</td><td align="center">dec&#x2F;enc</td><td align="center">dec&#x2F;enc</td><td align="center">dec&#x2F;enc</td><td align="center">dec&#x2F;enc</td></tr><tr><td>VP8</td><td align="center">-</td><td align="center">dec&#x2F;enc</td><td align="center">dec&#x2F;enc</td><td align="center">dec&#x2F;enc</td><td align="center">dec&#x2F;enc</td><td align="center">dec&#x2F;enc</td><td align="center">dec&#x2F;enc</td></tr><tr><td>VP9</td><td align="center">-</td><td align="center">dec</td><td align="center">dec&#x2F;enc</td><td align="center">dec&#x2F;enc</td><td align="center">dec&#x2F;enc</td><td align="center">dec&#x2F;enc</td><td align="center">dec&#x2F;enc</td></tr><tr><td>AV1</td><td align="center">-</td><td align="center">-</td><td align="center">-</td><td align="center">-</td><td align="center">dec</td><td align="center">-</td><td align="center">-</td></tr><tr><td>DDR</td><td align="center">3</td><td align="center">4</td><td align="center">4</td><td align="center">4</td><td align="center">4</td><td align="center">4</td><td align="center">4</td></tr></tbody></table><h1><span id="主板">主板</span></h1><h1><span id="阵列">阵列</span></h1><h1><span id="系统">系统</span></h1>]]></content>
    
    
      
      
    <summary type="html">&lt;!-- toc --&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#todo&quot;&gt;TODO&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#nas%E5%AE%B6%E5%BA%AD%E9%80%89%E6%8B%A9%E7%9A%84%E8%80%83%E8%99%91%E5%9B%</summary>
      
    
    
    
    
    <category term="NAS" scheme="http://vball.fun/tags/NAS/"/>
    
  </entry>
  
  <entry>
    <title>python学习方向和常用库介绍</title>
    <link href="http://vball.fun/2023/02/09/program-python-next-steps/"/>
    <id>http://vball.fun/2023/02/09/program-python-next-steps/</id>
    <published>2023-02-09T08:40:15.000Z</published>
    <updated>2026-03-10T18:19:08.980Z</updated>
    
    <content type="html"><![CDATA[<!-- toc --><ul><li><a href="#%E8%BD%AC%E7%A0%81%E5%AD%A6%E4%B9%A0python%E7%9A%84%E5%B7%A5%E4%BD%9C%E6%96%B9%E5%90%91">转码学习python的工作方向</a></li><li><a href="#%E5%B8%B8%E7%94%A8%E5%BA%93">常用库</a><ul><li><a href="#%E6%A1%8C%E9%9D%A2%E7%A8%8B%E5%BA%8F%E5%BC%80%E5%8F%91">桌面程序开发</a><ul><li><a href="#pyside">pyside</a></li><li><a href="#pyqt">pyqt</a></li><li><a href="#wxpython">wxpython</a></li></ul></li><li><a href="#web%E5%BC%80%E5%8F%91">Web开发</a><ul><li><a href="#django">Django</a></li><li><a href="#flask">flask</a></li><li><a href="#web2py">web2py</a></li></ul></li><li><a href="#%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD">人工智能</a><ul><li><a href="#tensorflow">tensorflow</a></li></ul></li><li><a href="#%E5%8A%9E%E5%85%AC%E6%95%88%E7%8E%87">办公效率</a><ul><li><a href="#xlsxwriter">XlsxWriter</a></li></ul></li><li><a href="#%E7%BD%91%E7%BB%9C%E7%9B%B8%E5%85%B3">网络相关</a><ul><li><a href="#scapy">scapy</a></li><li><a href="#requests">requests</a></li><li><a href="#pyquery">pyquery</a></li><li><a href="#beautifulsoup">BeautifulSoup</a></li></ul></li><li><a href="#%E6%B5%8B%E8%AF%95">测试</a><ul><li><a href="#robotframework">robotframework</a></li><li><a href="#selenium">Selenium</a></li></ul></li><li><a href="#%E6%B8%B8%E6%88%8F">游戏</a><ul><li><a href="#pygame">PyGame</a></li></ul></li><li><a href="#%E7%A7%91%E5%AD%A6%E8%AE%A1%E7%AE%97">科学计算</a><ul><li><a href="#matplotlib">Matplotlib</a></li><li><a href="#scipy">SciPy</a></li><li><a href="#numpy">NumPy</a></li></ul></li><li><a href="#%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6">配置文件</a><ul><li><a href="#json">json</a></li></ul></li><li><a href="#%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86">图像处理</a><ul><li><a href="#opencv">opencv</a></li><li><a href="#pil">PIL</a></li></ul></li><li><a href="#%E6%95%B0%E6%8D%AE%E5%BA%93">数据库</a><ul><li><a href="#pysqlite">PySQLite</a></li><li><a href="#mysqldb">MySQLdb</a></li></ul></li><li><a href="#%E5%8F%91%E5%B8%83%E6%89%93%E5%8C%85">发布打包</a><ul><li><a href="#cx_freeze">cx_Freeze</a></li><li><a href="#pyinstaller">pyinstaller</a></li></ul></li></ul></li></ul><!-- tocstop --><h1><span id="转码学习python的工作方向">转码学习python的工作方向</span></h1><ul><li><p>测试工程师</p></li><li><p>软件工程师</p></li><li><p>服务器管理</p></li></ul><h1><span id="常用库">常用库</span></h1><h2><span id="桌面程序开发">桌面程序开发</span></h2><h3><span id="pyside">pyside</span></h3><p>PySide是Qt的亲儿子，各种接口的便捷程度自己脑补</p><h3><span id="pyqt">pyqt</span></h3><p>PyQt就比较成熟了，并且资料也很完善，最开始是有PyQt4对应的是Qt4版本，后来推出了PyQt5，对应Qt5版本</p><h3><span id="wxpython">wxpython</span></h3><p>Python下的GUI编程框架，与MFC的架构相似，除非你没选择了</p><h2><span id="web开发">Web开发</span></h2><p>总体来说，python开发网站后端不主流，但是也有啊</p><h3><span id="django">Django</span></h3><p><a href="http://www.djangoproject.com/">http://www.djangoproject.com/</a></p><h3><span id="flask">flask</span></h3><p><a href="https://flask.palletsprojects.com/en/2.2.x/">https://flask.palletsprojects.com/en/2.2.x/</a><br><a href="https://www.fullstackpython.com/flask.html">https://www.fullstackpython.com/flask.html</a></p><h3><span id="web2py">web2py</span></h3><p>小</p><h2><span id="人工智能">人工智能</span></h2><h3><span id="tensorflow">tensorflow</span></h3><p>谷歌出品，热门首选</p><h2><span id="办公效率">办公效率</span></h2><h3><span id="xlsxwriter">XlsxWriter</span></h3><p>方便的生成excel文件，格式丰富<br><a href="https://xlsxwriter.readthedocs.io/">https://xlsxwriter.readthedocs.io/</a></p><h2><span id="网络相关">网络相关</span></h2><h3><span id="scapy">scapy</span></h3><p>数据包分析，构造，强大到发质的库，自带cli操作</p><h3><span id="requests">requests</span></h3><p>请求http资源的神器，最好用，没有之一<br><a href="https://realpython.com/python-requests/">https://realpython.com/python-requests/</a></p><h3><span id="pyquery">pyquery</span></h3><p>瑞士军刀jquery的python版本，在Python中如网页的 jQuery一样处理文档, 快速解析html文件的好东西，配合lxml可以分析网页</p><h3><span id="beautifulsoup">BeautifulSoup</span></h3><p>解析网页的老师傅。没有上边好用，但是可以备用</p><h2><span id="测试">测试</span></h2><h3><span id="robotframework">robotframework</span></h3><p>python开发的测试框架，研究一下他的各种插件库，对于当一个测试工程师是必须的</p><h3><span id="selenium">Selenium</span></h3><p>操作浏览的超神工具，做网页测试或者爬网页的必备</p><h2><span id="游戏">游戏</span></h2><h3><span id="pygame">PyGame</span></h3><p>基于Python的多媒体开发和游戏软件开发模块<br>下载地址：<a href="http://www.pygame.org/download.shtml">http://www.pygame.org/download.shtml</a></p><h2><span id="科学计算">科学计算</span></h2><h3><span id="matplotlib">Matplotlib</span></h3><p>用Python实现的类matlab的第三方库，用以绘制一些高质量的数学二维图形</p><p>下载地址：<br><a href="http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.1.0/">http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.1.0/</a></p><h3><span id="scipy">SciPy</span></h3><p>基于Python的matlab实现，旨在实现matlab的所有功能</p><p>下载地址：<a href="http://pypi.python.org/pypi/scipy/">http://pypi.python.org/pypi/scipy/</a></p><h3><span id="numpy">NumPy</span></h3><p>基于Python的科学计算第三方库，提供了矩阵，线性代数，傅立叶变换等等的解决方案</p><p>下载地址：<a href="http://pypi.python.org/pypi/numpy/">http://pypi.python.org/pypi/numpy/</a></p><h2><span id="配置文件">配置文件</span></h2><h3><span id="json">json</span></h3><p>读写json文件，快速在python数据结构和json之间转换</p><h2><span id="图像处理">图像处理</span></h2><h3><span id="opencv">opencv</span></h3><p>处理视频等,比如<a href="/2021/11/16/add-watermarker-to-h264-tool/">视频水印添加</a></p><h3><span id="pil">PIL</span></h3><p>基于Python的图像处理库，功能强大，对图形文件的格式支持广泛</p><h2><span id="数据库">数据库</span></h2><h3><span id="pysqlite">PySQLite</span></h3><p>小而美的单文件数据库支持</p><h3><span id="mysqldb">MySQLdb</span></h3><p>mysql大佬们的玩法</p><h2><span id="发布打包">发布打包</span></h2><p>写完代码后总要发不成二进制文件给别人用吧</p><h3><span id="cx_freeze">cx_Freeze</span></h3><p>方便简洁的打包工具，可跨平台！</p><h3><span id="pyinstaller">pyinstaller</span></h3><p>打包到windows平台的常用工具<br><a href="https://www.pyinstaller.org/">https://www.pyinstaller.org/</a></p><p>下载地址：<a href="https://cx-freeze.readthedocs.io/en/latest/">https://cx-freeze.readthedocs.io/en/latest/</a></p>]]></content>
    
    
      
      
    <summary type="html">&lt;!-- toc --&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#%E8%BD%AC%E7%A0%81%E5%AD%A6%E4%B9%A0python%E7%9A%84%E5%B7%A5%E4%BD%9C%E6%96%B9%E5%90%91&quot;&gt;转码学习python的工作方向&lt;/a</summary>
      
    
    
    
    
    <category term="python" scheme="http://vball.fun/tags/python/"/>
    
  </entry>
  
  <entry>
    <title>mermaid support check page</title>
    <link href="http://vball.fun/2023/02/08/hexo-feature-verify/"/>
    <id>http://vball.fun/2023/02/08/hexo-feature-verify/</id>
    <published>2023-02-08T07:46:34.000Z</published>
    <updated>2026-03-10T18:19:08.968Z</updated>
    
    <content type="html"><![CDATA[<!-- toc --><ul><li><a href="#diagram-example">Diagram Example</a><ul><li><a href="#state">State</a></li><li><a href="#state-v2">State v2</a></li><li><a href="#er">ER</a></li><li><a href="#gantt">Gantt</a></li><li><a href="#user-journey">User Journey</a></li><li><a href="#gitgraph">GitGraph</a></li><li><a href="#pie">Pie</a></li><li><a href="#class">Class</a></li><li><a href="#mindmap">Mindmap</a></li></ul></li><li><a href="#not-support">Not support</a><ul><li><a href="#class-1">Class</a></li><li><a href="#c4context">C4Context</a></li></ul></li></ul><!-- tocstop --><h1><span id="diagram-example">Diagram Example</span></h1><h2><span id="state">State</span></h2><pre class="mermaid">stateDiagram       [*] --> Active       state Active {           [*] --> NumLockOff           NumLockOff --> NumLockOn : EvNumLockPressed           NumLockOn --> NumLockOff : EvNumLockPressed           --           [*] --> CapsLockOff           CapsLockOff --> CapsLockOn : EvCapsLockPressed           CapsLockOn --> CapsLockOff : EvCapsLockPressed           --           [*] --> ScrollLockOff           ScrollLockOff --> ScrollLockOn : EvCapsLockPressed           ScrollLockOn --> ScrollLockOff : EvCapsLockPressed       }</pre><h2><span id="state-v2">State v2</span></h2><pre class="mermaid">stateDiagram-v2    [*] --> Still    Still --> [*]    Still --> Moving    Moving --> Still    Moving --> Crash    Crash --> [*]</pre><h2><span id="er">ER</span></h2><pre class="mermaid">erDiagram    CUSTOMER }|..|{ DELIVERY-ADDRESS : has    CUSTOMER ||--o{ ORDER : places    CUSTOMER ||--o{ INVOICE : "liable for"    DELIVERY-ADDRESS ||--o{ ORDER : receives    INVOICE ||--|{ ORDER : covers    ORDER ||--|{ ORDER-ITEM : includes    PRODUCT-CATEGORY ||--|{ PRODUCT : contains    PRODUCT ||--o{ ORDER-ITEM : "ordered in"</pre><h2><span id="gantt">Gantt</span></h2><pre class="mermaid">gantt    title A Gantt Diagram    dateFormat  YYYY-MM-DD    section Section    A task           :a1, 2014-01-01, 30d    Another task     :after a1  , 20d    section Another    Task in sec      :2014-01-12  , 12d    another task      : 24d</pre><h2><span id="user-journey">User Journey</span></h2><pre class="mermaid">journey    title My working day    section Go to work      Make tea: 5: Me      Go upstairs: 3: Me      Do work: 1: Me, Cat    section Go home      Go downstairs: 5: Me      Sit down: 3: Me</pre><h2><span id="gitgraph">GitGraph</span></h2><pre class="mermaid">gitGraph    commit    commit    branch develop    checkout develop    commit    commit    checkout main    merge develop    commit    commit</pre><h2><span id="pie">Pie</span></h2><pre class="mermaid">pie title Pets adopted by volunteers    "Dogs" : 386    "Cats" : 85    "Rats" : 15</pre><h2><span id="class">Class</span></h2><p>Simple usage, many item will report fail: such as <strong>&lt;–</strong></p><pre class="mermaid">---title: Bank example---classDiagram    class Animal{      int age      mate()    }    class D0{      +String beakColor      +quack()    }    class D1{      -int sizeInFeet      -canEat()    }    class D2{      +bool is_wild      +run()    }    class D3{      +bool is_wild      +run()    }    class D4{      +bool is_wild      +run()    }    class D5{      +bool is_wild      +run()    }    class D6    class D7    Animal *-- D0    Animal o-- D1    Animal --> D2    Animal ..> D3    Animal -- D4    Animal .. D5    Animal --|> D6    D7 --|> Animal</pre><h2><span id="mindmap">Mindmap</span></h2><pre class="mermaid">mindmap  root((mindmap))    Origins      Long history      ::icon(fa fa-book)      Popularisation        British popular psychology author Tony Buzan    Research      On effectivness<br>and features      On Automatic creation        Uses            Creative techniques            Strategic planning            Argument mapping    Tools      Pen and paper      Mermaid</pre><h1><span id="not-support">Not support</span></h1><h2><span id="class">Class</span></h2><pre class="mermaid">classDiagram    Animal <|-- duck animal <|-- fish zebra : +int age +string gender animal: +ismammal() +mate() class duck{ beakcolor +swim() +quack() } fish{ -int sizeinfeet -caneat() zebra{ +bool is_wild +run() }< pre><h2><span id="c4context">C4Context</span></h2><pre class="mermaid">C4Context      title System Context diagram for Internet Banking System      Enterprise_Boundary(b0, "BankBoundary0") {        Person(customerA, "Banking Customer A", "A customer of the bank, with personal bank accounts.")        Person(customerB, "Banking Customer B")        Person_Ext(customerC, "Banking Customer C", "desc")        Person(customerD, "Banking Customer D", "A customer of the bank, <br> with personal bank accounts.")        System(SystemAA, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.")        Enterprise_Boundary(b1, "BankBoundary") {          SystemDb_Ext(SystemE, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.")          System_Boundary(b2, "BankBoundary2") {            System(SystemA, "Banking System A")            System(SystemB, "Banking System B", "A system of the bank, with personal bank accounts. next line.")          }          System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.")          SystemDb(SystemD, "Banking System D Database", "A system of the bank, with personal bank accounts.")          Boundary(b3, "BankBoundary3", "boundary") {            SystemQueue(SystemF, "Banking System F Queue", "A system of the bank.")            SystemQueue_Ext(SystemG, "Banking System G Queue", "A system of the bank, with personal bank accounts.")          }        }      }      BiRel(customerA, SystemAA, "Uses")      BiRel(SystemAA, SystemE, "Uses")      Rel(SystemAA, SystemC, "Sends e-mails", "SMTP")      Rel(SystemC, customerA, "Sends e-mails to")      UpdateElementStyle(customerA, $fontColor="red", $bgColor="grey", $borderColor="red")      UpdateRelStyle(customerA, SystemAA, $textColor="blue", $lineColor="blue", $offsetX="5")      UpdateRelStyle(SystemAA, SystemE, $textColor="blue", $lineColor="blue", $offsetY="-10")      UpdateRelStyle(SystemAA, SystemC, $textColor="blue", $lineColor="blue", $offsetY="-40", $offsetX="-50")      UpdateRelStyle(SystemC, customerA, $textColor="red", $lineColor="red", $offsetX="-50", $offsetY="20")      UpdateLayoutConfig($c4ShapeInRow="3", $c4BoundaryInRow="1")</pre></|--></pre>]]></content>
    
    
      
      
    <summary type="html">&lt;!-- toc --&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#diagram-example&quot;&gt;Diagram Example&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#state&quot;&gt;State&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#state-v2&quot;&gt;State </summary>
      
    
    
    
    
  </entry>
  
  <entry>
    <title>Install ca certificates exported from windows</title>
    <link href="http://vball.fun/2023/01/04/program-install-ca-from-window/"/>
    <id>http://vball.fun/2023/01/04/program-install-ca-from-window/</id>
    <published>2023-01-04T09:03:55.000Z</published>
    <updated>2026-03-10T18:19:08.980Z</updated>
    
    <content type="html"><![CDATA[<!-- toc --><ul><li><a href="#export-ca-from-windows">Export CA from windows</a></li><li><a href="#convert-ca-format-from-windows-to-linux">Convert CA format from windows to linux</a></li><li><a href="#copy-your-ca-to-dir">Copy your CA to dir</a></li><li><a href="#update-ubuntu-ca-store">Update ubuntu CA store</a></li><li><a href="#extra">Extra</a><ul><li><a href="#get-ca-from-server">Get ca from server</a></li></ul></li></ul><!-- tocstop --><p>Sometime we need to sync ca from windows to linux</p><h1><span id="export-ca-from-windows">Export CA from windows</span></h1><p><img src="/2023/01/04/program-install-ca-from-window/export.png"></p><h1><span id="convert-ca-format-from-windows-to-linux">Convert CA format from windows to linux</span></h1><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">openssl x509 -inform PEM -<span class="keyword">in</span> certificate.cer -out certificate.crt</span><br></pre></td></tr></table></figure><p>But CER is an X.509 certificate in binary form, DER encoded. CRT is a binary X.509 certificate, encapsulated in text (base-64) encoding.<br>Because of that, you maybe should use:</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">openssl x509 -inform DER -<span class="keyword">in</span> certificate.cer -out certificate.crt</span><br></pre></td></tr></table></figure><h1><span id="copy-your-ca-to-dir">Copy your CA to dir</span></h1><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">/usr/local/share/ca-certificates/</span><br></pre></td></tr></table></figure><h1><span id="update-ubuntu-ca-store">Update ubuntu CA store</span></h1><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo update-ca-certificates</span><br></pre></td></tr></table></figure><h1><span id="extra">Extra</span></h1><h2><span id="get-ca-from-server">Get ca from server</span></h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">openssl s_client -connect www.google.com:443 2&gt;/dev/null &lt;/dev/null |  sed -ne <span class="string">&#x27;/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p&#x27;</span></span><br><span class="line"></span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;!-- toc --&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#export-ca-from-windows&quot;&gt;Export CA from windows&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#convert-ca-format-from-windows-to-lin</summary>
      
    
    
    
    
    <category term="openssl" scheme="http://vball.fun/tags/openssl/"/>
    
    <category term="CA" scheme="http://vball.fun/tags/CA/"/>
    
  </entry>
  
  <entry>
    <title>gmock tips</title>
    <link href="http://vball.fun/2022/12/29/program-gmock/"/>
    <id>http://vball.fun/2022/12/29/program-gmock/</id>
    <published>2022-12-29T06:31:06.000Z</published>
    <updated>2026-03-10T18:19:08.980Z</updated>
    
    <content type="html"><![CDATA[<h1><span id="some-tips">some tips</span></h1><p>–gmock_verbose&#x3D;info</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1&gt;&lt;span id=&quot;some-tips&quot;&gt;some tips&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;–gmock_verbose&amp;#x3D;info&lt;/p&gt;
</summary>
      
    
    
    
    
    <category term="gtest" scheme="http://vball.fun/tags/gtest/"/>
    
    <category term="gmock" scheme="http://vball.fun/tags/gmock/"/>
    
  </entry>
  
</feed>
