<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>滴星</title>
    <link>https://blog.xu42.com/</link>
    <description>Recent content on 滴星</description>
    <generator>Hugo</generator>
    <language>en</language>
    <copyright>© 滴星 All rights reserved</copyright>
    <lastBuildDate>Tue, 03 Mar 2026 10:00:00 +0800</lastBuildDate>
    <atom:link href="https://blog.xu42.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>PVE折腾记录</title>
      <link>https://blog.xu42.com/posts/%E7%AC%94%E8%AE%B0%E6%9C%AC%E4%B8%BB%E6%9D%BF%E5%81%9Anas/</link>
      <pubDate>Tue, 03 Mar 2026 10:00:00 +0800</pubDate>
      <guid>https://blog.xu42.com/posts/%E7%AC%94%E8%AE%B0%E6%9C%AC%E4%B8%BB%E6%9D%BF%E5%81%9Anas/</guid>
      <description>&lt;h1 id=&#34;load负载虚高&#34;&gt;load负载虚高&lt;/h1&gt;&#xA;&lt;p&gt;因为笔记本主板的设备很多，内核会不断探测，导致负载过高。&lt;/p&gt;&#xA;&lt;h2 id=&#34;解决&#34;&gt;解决&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;#编辑 /etc/default/grub 文件替换为&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#953800&#34;&gt;GRUB_CMDLINE_LINUX_DEFAULT&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;quiet module_blacklist=sdhci_pci,sdhci,ac,rtsx_usb_sdmmc,rtsx_usb video=eDP-1:d acpi_enforce_resources=lax&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;#然后执行&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;update-grub &lt;span style=&#34;color:#0550ae&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; reboot&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;以下是AI对此的解释：&lt;/p&gt;&#xA;&lt;h3 id=&#34;1-存储与读卡器驱动屏蔽解决-load-高的关键&#34;&gt;1. 存储与读卡器驱动屏蔽（解决 Load 高的关键）&lt;/h3&gt;&#xA;&lt;p&gt;这部分解决了你之前在 &lt;code&gt;ps&lt;/code&gt; 和 &lt;code&gt;stack&lt;/code&gt; 中看到的 &lt;code&gt;kworker&lt;/code&gt; 进程陷入 &lt;strong&gt;D 状态（不可中断睡眠）&lt;/strong&gt; 的问题。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;code&gt;module_blacklist=sdhci_pci,sdhci&lt;/code&gt;&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;作用&lt;/strong&gt;：禁止内核加载 PCIe 总线的 SD/eMMC 控制器驱动。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;原因&lt;/strong&gt;：你的主板 eMMC 芯片物理缺失，内核不断尝试初始化它会导致 &lt;code&gt;Failed to initialize&lt;/code&gt; 报错并阻塞进程。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;code&gt;rtsx_usb_sdmmc,rtsx_usb&lt;/code&gt;&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;作用&lt;/strong&gt;：禁用 Realtek USB 接口的内置读卡器驱动。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;原因&lt;/strong&gt;：堆栈显示 &lt;code&gt;rtsx_usb_sdmmc&lt;/code&gt; 正在不断进行 &lt;code&gt;mmc_rescan&lt;/code&gt;（重新扫描），试图寻找不存在的 SD 卡，这是导致你最后 1.5 负载的真凶。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;2-电源与显示输出优化&#34;&gt;2. 电源与显示输出优化&lt;/h3&gt;&#xA;&lt;p&gt;针对你裸板运行、无电池、无屏幕的物理现状进行清理。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;code&gt;module_blacklist=...,ac&lt;/code&gt;&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;作用&lt;/strong&gt;：屏蔽 AC 适配器探测驱动。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;原因&lt;/strong&gt;：由于你采用短接开机且处于裸板模式，内核探测 AC 电源状态时会发生 &lt;code&gt;error -17&lt;/code&gt;（资源忙）冲突。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;code&gt;video=eDP-1:d&lt;/code&gt;&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;作用&lt;/strong&gt;：强制禁用 eDP（笔记本内置显示屏）接口。&lt;/p&gt;</description>
    </item>
    <item>
      <title>PVE折腾记录</title>
      <link>https://blog.xu42.com/posts/pve/</link>
      <pubDate>Wed, 06 Sep 2023 13:00:00 +0800</pubDate>
      <guid>https://blog.xu42.com/posts/pve/</guid>
      <description>&lt;h1 id=&#34;pve-74&#34;&gt;PVE 7.4&lt;/h1&gt;&#xA;&lt;h2 id=&#34;换源&#34;&gt;换源&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cp /etc/apt/sources.list /etc/apt/sources.list.bak&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sed -i &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;s|^deb http://ftp.debian.org|deb https://mirrors.ustc.edu.cn|g&amp;#39;&lt;/span&gt; /etc/apt/sources.list&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sed -i &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;s|^deb http://security.debian.org|deb https://mirrors.ustc.edu.cn/debian-security|g&amp;#39;&lt;/span&gt; /etc/apt/sources.list&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;# 屏蔽企业订阅源&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mv /etc/apt/sources.list.d/pve-enterprise.list  /etc/apt/sources.list.d/pve-no-subscription.list.bak&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm.bak&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sed -i &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;s|http://download.proxmox.com|https://mirrors.ustc.edu.cn/proxmox|g&amp;#39;&lt;/span&gt; /usr/share/perl5/PVE/APLInfo.pm&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;#CEPH源更换&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sed -i.bak &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;s#http://download.proxmox.com/debian#https://mirrors.ustc.edu.cn/proxmox/debian#g&amp;#34;&lt;/span&gt; /usr/share/perl5/PVE/CLI/pveceph.pm&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;#删除订阅弹窗&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sed -Ezi.bak &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;s/(Ext.Msg.show\(\{\s+title: gettext\(&amp;#39;No valid sub)/void\(\{ \/\/\1/g&amp;#34;&lt;/span&gt; /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js &lt;span style=&#34;color:#0550ae&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; systemctl restart pveproxy.service&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;自动挂载硬盘&#34;&gt;自动挂载硬盘&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mkfs.ext4 /dev/sda1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mkdir -p /mnt/local-sda&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mount /dev/sda1 /mnt/local-sda&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6639ba&#34;&gt;echo&lt;/span&gt; &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;/dev/sda1 /mnt/local-sda ext4 defaults 0 0&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; /etc/fstab&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;直通&#34;&gt;直通&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;#编辑 /etc/default/grub 文件替换为&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#953800&#34;&gt;GRUB_CMDLINE_LINUX_DEFAULT&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;quiet intel_iommu=on&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;#然后执行&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;update-grub &lt;span style=&#34;color:#0550ae&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; reboot&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>ESXi 6.7 安装 openwrt</title>
      <link>https://blog.xu42.com/posts/esxi-6.7-%E5%AE%89%E8%A3%85-openwrt/</link>
      <pubDate>Wed, 25 Aug 2021 16:00:00 +0800</pubDate>
      <guid>https://blog.xu42.com/posts/esxi-6.7-%E5%AE%89%E8%A3%85-openwrt/</guid>
      <description>&lt;p&gt;网上的教程似乎都比较旧了，如果遇到了启动报错，可以尝试下面的解决方案。&lt;/p&gt;&#xA;&lt;p&gt;如果你按照网上的教程，出现了下面报错，可以参考一下。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;“scsi0:0”的磁盘类型 2 不受支持或无效&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;h1 id=&#34;1-下载openwrt最新镜像&#34;&gt;1. 下载openwrt最新镜像&lt;/h1&gt;&#xA;&lt;p&gt;当前最新的稳定版本是 19.07.8 在&lt;a href=&#34;https://downloads.openwrt.org/releases/19.07.8/targets/x86/generic/&#34;&gt;这里下载&lt;/a&gt;即可。&lt;/p&gt;&#xA;&lt;h1 id=&#34;2-img转换为vmdk&#34;&gt;2. img转换为vmdk&lt;/h1&gt;&#xA;&lt;p&gt;下载之后进行解压，得到 &lt;code&gt;.img&lt;/code&gt;文件，需要转换为 &lt;code&gt;.vmdk&lt;/code&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;# 如果没有安装，可以安装一下&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;brew install qemu&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;# 转换&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qemu-img convert -f raw -O vmdk openwrt-19.07.8-x86-generic-combined-ext4.img openwrt-19.07.8-x86-generic-combined-ext4.vmdk&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;3-修复vmdk&#34;&gt;3. 修复vmdk&lt;/h1&gt;&#xA;&lt;p&gt;把上一步转换后的文件进行上传，上传后登录到ESXi，并执行vmdk的修复&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;# 因版本等问题需进行修复&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;vmkfstools -i openwrt-19.07.8-x86-generic-combined-ext4.vmdk openwrt-19.07.8-x86-generic-combined-ext4-new.vmdk -d thin&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;# 删除旧的&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rm -f openwrt-19.07.8-x86-generic-combined-ext4.vmdk&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;之后正常新建虚拟机、添加现有硬盘即可&lt;/p&gt;&#xA;&lt;h1 id=&#34;参考&#34;&gt;参考&lt;/h1&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://blog.csdn.net/h106140873/article/details/76737048&#34;&gt;无法打开磁盘 scsi0:0: 磁盘类型 不受支持或无效。请确保磁盘已导入&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;</description>
    </item>
    <item>
      <title>关于</title>
      <link>https://blog.xu42.com/about/</link>
      <pubDate>Thu, 29 Apr 2021 00:00:00 +0000</pubDate>
      <guid>https://blog.xu42.com/about/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;一切皆有可能, Just Do IT!&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Email: xu42.cn#gmail.com&lt;/li&gt;&#xA;&lt;li&gt;GitHub: &lt;a href=&#34;https://github.com/xu42&#34;&gt;https://github.com/xu42&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;我的产品&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Online Chart Maker: &lt;a href=&#34;https://www.onlinechartmaker.com&#34;&gt;https://www.onlinechartmaker.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;椰子壳: &lt;a href=&#34;https://yzk.co&#34;&gt;https://yzk.co&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;短信拦截: &lt;a href=&#34;https://apps.apple.com/us/app/id1639460076&#34;&gt;https://apps.apple.com/us/app/id1639460076&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;简单快捷翻译: &lt;a href=&#34;https://apps.apple.com/us/app/id6738653169&#34;&gt;https://apps.apple.com/us/app/id6738653169&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;OCR快捷翻译: &lt;a href=&#34;https://apps.apple.com/us/app/id6742777183&#34;&gt;https://apps.apple.com/us/app/id6742777183&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;友链&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Cal: &lt;a href=&#34;https://cal.com/miaomiao-xuyang-o9kemh&#34;&gt;https://cal.com/miaomiao-xuyang-o9kemh&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Evernote: &lt;a href=&#34;https://lite.evernote.com/note/3faa8162-cb92-4049-a001-816fc6056e47&#34;&gt;https://lite.evernote.com/note/3faa8162-cb92-4049-a001-816fc6056e47&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Linktr: &lt;a href=&#34;https://linktr.ee/montyxu&#34;&gt;https://linktr.ee/montyxu&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Creem: &lt;a href=&#34;https://www.creem.io/bip/monty&#34;&gt;https://www.creem.io/bip/monty&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;SubStack: &lt;a href=&#34;https://substack.com/@monty710770&#34;&gt;https://substack.com/@monty710770&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>手把手教你把Java SDK发布到中央仓库</title>
      <link>https://blog.xu42.com/posts/%E6%89%8B%E6%8A%8A%E6%89%8B%E6%95%99%E4%BD%A0%E6%8A%8Ajava-sdk%E5%8F%91%E5%B8%83%E5%88%B0%E4%B8%AD%E5%A4%AE%E4%BB%93%E5%BA%93/</link>
      <pubDate>Sat, 27 Jun 2020 18:00:00 +0800</pubDate>
      <guid>https://blog.xu42.com/posts/%E6%89%8B%E6%8A%8A%E6%89%8B%E6%95%99%E4%BD%A0%E6%8A%8Ajava-sdk%E5%8F%91%E5%B8%83%E5%88%B0%E4%B8%AD%E5%A4%AE%E4%BB%93%E5%BA%93/</guid>
      <description>&lt;p&gt;写了个Java SDK（ava Library），想要让更多的猿媛使用，如何发布到中央仓库（Maven Central）呢？&lt;/p&gt;&#xA;&lt;p&gt;踩了挺多坑，简单记录下。&lt;/p&gt;&#xA;&lt;h1 id=&#34;1-向官方申请自己的-groupid&#34;&gt;1. 向官方申请自己的 &lt;code&gt;groupId&lt;/code&gt;&lt;/h1&gt;&#xA;&lt;p&gt;首先，你需要向官方申请唯一的 &lt;code&gt;groupId&lt;/code&gt;。如何申请呢？&lt;/p&gt;&#xA;&lt;h2 id=&#34;11-注册帐户&#34;&gt;1.1. 注册帐户&lt;/h2&gt;&#xA;&lt;p&gt;打开链接，注册一个帐户并登录： &lt;a href=&#34;https://issues.sonatype.org/secure/Signup!default.jspa&#34;&gt;https://issues.sonatype.org/secure/Signup!default.jspa&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;12-创建一个jira&#34;&gt;1.2. 创建一个Jira&lt;/h2&gt;&#xA;&lt;p&gt;点击导航栏中的 &lt;code&gt;Create&lt;/code&gt;，&lt;br&gt;&#xA;Project 选择 &lt;code&gt;Community Support - Open Source Project Repository Hosting (OSSRH)&lt;/code&gt;&lt;br&gt;&#xA;Issue Type 选择 &lt;code&gt;New Project&lt;/code&gt;&lt;br&gt;&#xA;Summary 可输入 &lt;code&gt;my code project&lt;/code&gt;&lt;br&gt;&#xA;Group Id 可输入你心仪的（我这里输入的是 &lt;code&gt;com.github.xu42&lt;/code&gt; ，如果你需要用自己的域名倒置 一般需要做一下TXT解析）&lt;br&gt;&#xA;Project URL 输入你的github project地址&lt;br&gt;&#xA;SCM url同理&lt;br&gt;&#xA;Username 输入你的用户名&lt;/p&gt;&#xA;&lt;p&gt;这是我之前的，可以参考下： &lt;a href=&#34;https://issues.sonatype.org/browse/OSSRH-41340&#34;&gt;https://issues.sonatype.org/browse/OSSRH-41340&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;13-等&#34;&gt;1.3. 等&lt;/h2&gt;&#xA;&lt;p&gt;然后等待官方人员审核，一般2小时，审核通过后，可进行下一步&lt;/p&gt;&#xA;&lt;h1 id=&#34;2-加密-pgp&#34;&gt;2. 加密 &lt;code&gt;pgp&lt;/code&gt;&lt;/h1&gt;&#xA;&lt;p&gt;安全需要，需要对发布的代码进行pgp加密，如果本机没有安装 &lt;code&gt;pgp&lt;/code&gt;，自行搜索安装一下。&lt;/p&gt;&#xA;&lt;h2 id=&#34;21-生成&#34;&gt;2.1 生成&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;gpg --gen-key&lt;/code&gt;，根据提示一路走下去，输入的密码要记一下，后面会用到&lt;/p&gt;&#xA;&lt;h2 id=&#34;22-发布公钥&#34;&gt;2.2 发布公钥&lt;/h2&gt;&#xA;&lt;p&gt;怎么发布呢？&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;gpg --keyserver hkp://keyserver.ubuntu.com --send-keys XXXXXX&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;gpg --keyserver hkp://pool.sks-keyservers.net --send-keys XXXXXX&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;gpg --keyserver hkp://keys.openpgp.org --send-keys XXXXXX&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这一步就完事了，继续后面的&lt;/p&gt;</description>
    </item>
    <item>
      <title>No plugin found for prefix &#39;dockerfile&#39; in the current project</title>
      <link>https://blog.xu42.com/posts/no-plugin-found-for-prefix-dockerfile-in-the-current-project/</link>
      <pubDate>Sun, 18 Aug 2019 19:00:00 +0800</pubDate>
      <guid>https://blog.xu42.com/posts/no-plugin-found-for-prefix-dockerfile-in-the-current-project/</guid>
      <description>&lt;p&gt;在给SpringBoot应用添加docker部署时，遇到了这个问题。怎么解决呢？&lt;/p&gt;&#xA;&lt;p&gt;在 &lt;code&gt;~/.m2/settings.xml&lt;/code&gt; 文件内，添加下面配置&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &amp;lt;pluginGroups&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &amp;lt;pluginGroup&amp;gt;com.spotify&amp;lt;/pluginGroup&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &amp;lt;/pluginGroups&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>文章</title>
      <link>https://blog.xu42.com/archives/</link>
      <pubDate>Tue, 28 May 2019 00:00:00 +0000</pubDate>
      <guid>https://blog.xu42.com/archives/</guid>
      <description></description>
    </item>
    <item>
      <title>为独立开发者推荐两个收款渠道(更新于2019-06-30)</title>
      <link>https://blog.xu42.com/posts/%E4%B8%BA%E7%8B%AC%E7%AB%8B%E5%BC%80%E5%8F%91%E8%80%85%E6%8E%A8%E8%8D%90%E4%B8%A4%E4%B8%AA%E6%94%B6%E6%AC%BE%E6%B8%A0%E9%81%93%E6%9B%B4%E6%96%B0%E4%BA%8E2019-06-30/</link>
      <pubDate>Mon, 27 May 2019 22:00:00 +0800</pubDate>
      <guid>https://blog.xu42.com/posts/%E4%B8%BA%E7%8B%AC%E7%AB%8B%E5%BC%80%E5%8F%91%E8%80%85%E6%8E%A8%E8%8D%90%E4%B8%A4%E4%B8%AA%E6%94%B6%E6%AC%BE%E6%B8%A0%E9%81%93%E6%9B%B4%E6%96%B0%E4%BA%8E2019-06-30/</guid>
      <description>&lt;p&gt;即时收款，是独立开发者(没有公司资质的)提供付费服务来增收的一个重要渠道。&lt;/p&gt;&#xA;&lt;p&gt;对个人免签的渠道，除去不稳定且不安全的监听App通知消息、再除去不靠谱的四方聚合，剩下可用的更少。&lt;/p&gt;&#xA;&lt;p&gt;这里推荐两个渠道，可以参考一下：&lt;/p&gt;</description>
    </item>
    <item>
      <title>Java NIO 系列学习 10 - ServerSocketChannel</title>
      <link>https://blog.xu42.com/posts/java-nio-%E7%B3%BB%E5%88%97%E5%AD%A6%E4%B9%A0-10---serversocketchannel/</link>
      <pubDate>Thu, 16 May 2019 22:00:00 +0800</pubDate>
      <guid>https://blog.xu42.com/posts/java-nio-%E7%B3%BB%E5%88%97%E5%AD%A6%E4%B9%A0-10---serversocketchannel/</guid>
      <description>&lt;p&gt;ServerSocketChannel 可以监听传入的TCP连接，与Java标准库的ServerSocket类似。&lt;/p&gt;&#xA;&lt;p&gt;举个例子：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ServerSocketChannel&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;serverSocketChannel&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;ServerSocketChannel&lt;span style=&#34;color:#1f2328&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;open&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;();&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;&lt;/span&gt;serverSocketChannel&lt;span style=&#34;color:#1f2328&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;socket&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;().&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;bind&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;new&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;InetSocketAddress&lt;span style=&#34;color:#1f2328&#34;&gt;(&lt;/span&gt;9999&lt;span style=&#34;color:#1f2328&#34;&gt;));&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;while&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;){&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;SocketChannel&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;socketChannel&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;serverSocketChannel&lt;span style=&#34;color:#1f2328&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;accept&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;();&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;//do something with socketChannel...&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Java NIO 系列学习 09 - SocketChannel</title>
      <link>https://blog.xu42.com/posts/java-nio-%E7%B3%BB%E5%88%97%E5%AD%A6%E4%B9%A0-09---socketchannel/</link>
      <pubDate>Sun, 12 May 2019 22:00:00 +0800</pubDate>
      <guid>https://blog.xu42.com/posts/java-nio-%E7%B3%BB%E5%88%97%E5%AD%A6%E4%B9%A0-09---socketchannel/</guid>
      <description>&lt;p&gt;Java NIO SocketChannel 是一个连接TCP网络socket的channel。与标准库的网络Socket是等效的。有两个办法可以来建立SocketChannel&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;打开了 SocketChannel 连接到了网络上的一个服务&lt;/li&gt;&#xA;&lt;li&gt;传入了 ServerSocketChannel 连接&lt;/li&gt;&#xA;&lt;/ol&gt;</description>
    </item>
  </channel>
</rss>
