包含关键字 linux 的文章

最开始我的ThinkPad使用的是RTL8852AE,后来我使用蛟龙5-76s时也顺手在咸鱼买了同款网卡换上(只要二十几块)。
这一延续本身基于一个习惯:如果你的屎山能跑就别动他。
但是现在这个反向升级屎山的问题也逐渐暴露出来了,早期在Linux下RTL8852AE的延迟表现并不算太好,经常出现延迟抖动和断流,后续随着我更换发行版使用更新的内核基本上解决了断流问题,但是对比身边其他朋友对公司同一网络进行游戏的体感反馈发现这块网卡的延迟抖动还是很严重的。也许和设备温度也有很大关系,但是这种问题很难解决。
在经过一翻新近日期的测评对比和评论区体感反馈后我决定给自己换一块网卡,下一块网卡我计划使用RZ616(AMD产品命名) 实际就是MT7921K的升级版MT7922。
我猜会有人问我为什么不换AX210;当然也是考虑过的,但是AX210目前最低价在80RMB 而MT7922只要36.9包邮...
这个价格是非常具有吸引力的。 Intel的保值网卡谁爱买谁买吧,老早之前也差不多是这个价钱,这么久过去了RZ616在驱动更新后网友评论区体验反馈看上去和AX210没什么区别,甚至比早期版本的AX210还强一些。

前排提示一个热知识:Intel驱动在CN地区禁用了AX210及其Killer产品线变体AX1675的160Mhz频宽
从法理上说CN地区缺少一些频段,大家都没WI-FI6E (默认160Mhz)可用,大多数设备最多也就能用一下WI-FI6 (80Mhz)
So,也别扯什么锁澳洲了,不是自己家也玩不了这些邪门操作。
等网卡到了换上试试体验效果。

2026年3月17日:
换上试了试,Windows下驱动在fenvi.cn,Linux下无需额外安装驱动。

162RMB/年的HK三网优化线路(目前IDC下单自动提供六折优惠,叠加互联网烂大街测评九折优惠码)

我很少在自己博客给IDC打广告,但是这个价格和性能真的强无敌,我只推荐下面俩款:

HK大陆三网优化

HK.AMD.D 1核1GB 10GB SSD 月流 500GB 带宽 200 Mbps ¥300¥180/年
香港VPS 大陆三网优化 (本博客同款,延迟已经很低,但比不过CNIX这种类专线性质的,适合一般免备案建站/NAS Frp转发用途)

HK非大陆优化(送CNIX入口)

HK.BGP.A 1核1GB 10GB SSD 月流 1TB 带宽 500 Mbps ¥168 238¥/年
送香港BGP国际网络云主机 原生IP 送CNIX NAT入口 AMD 7542 NVMe
(这个得抢购,没有CNIX配置能力或者不愿意加预算买国内大厂前置鸡的就没必要。)
至于啥是CNIX,请看:前海交换中心成立的目的与意义

推荐的IDC全部产品列表

所有产品列表

其他?

这公司域名备案的,你去ICP备案查 yt.net,想想2字符.net域名什么含金量。

切线公告

得益于过去随手记录的好习惯,本次访问线路切换速度非常快。当你看到本文章时,博客和Linux用户站已经完成线路切换了,欢迎来到ipv4 only 快如闪电的新时代!

厂商型号:YR-CP100
主板版本:CP102-MAIN-V2.2
主要芯片:RG200U-CN V3MF-D10-DDC(移远通信)
其他硬件:塑料外壳,3根FPC天线(疑似5G/4G),2根WIFI天线。1个USB Type-C 接口,1个RJ45网线接口。
开盖后取下主板风扇可见各个模块及2个SIM芯片(预计为移动和电信)还有一个空SIM芯片引脚,以及一个没有引出接线位置的SIM卡槽标识位置。

固件备份

经过不懈努力终于在一众工具中找到了我能正常使用的备份工具。
除了spd_dump是可用的,还有SPRDC_Core也是可用的。但是这两个工具对本设备仍然有一些概率性的玄学问题,比如莫名其妙的信号灯超时时间已到报错。
备份分区表:

<?xml version="1.0" encoding="utf-8"?>
<Partitions>
  <Partition id="prodnv" size="4" />
  <Partition id="miscdata" size="1" />
  <Partition id="recovery" size="16" />
  <Partition id="misc" size="1" />
  <Partition id="trustos" size="1" />
  <Partition id="sml" size="1" />
  <Partition id="uboot" size="2" />
  <Partition id="boot" size="16" />
  <Partition id="system" size="53" />
  <Partition id="userdata" size="0xFFFFFFFF" />
  <Partition id="nr_fixnv2" size="6" />
  <Partition id="nr_runtimenv2" size="9" />
  <Partition id="nr_pmsys" size="1" />
  <Partition id="nr_agdsp" size="6" />
  <Partition id="nr_modem" size="27" />
  <Partition id="nr_v3phy" size="6" />
  <Partition id="nr_nrphy" size="3" />
  <Partition id="nr_nrdsp1" size="2" />
  <Partition id="nr_nrdsp2" size="2" />
  <Partition id="nr_deltanv" size="1" />
  <Partition id="ubipac" size="248" />
</Partitions>

这个东西的价格和性能符合我的预期,到的第一天内置移动卡5G测速150Mbps下 50Mbps上,不过这个WI-FI性能就比较怪异了,特别是延迟极端的不稳定,插线用倒是完全没问题,跟手机USB网络共享的热点延迟一致。

简单逆向分析

通过hexdump查看分区镜像文件数据头部的魔数(Magic Number)为:DHTB
xfox@fedora:~/Dev/YR-CP100$ hexdump /home/xfox/Dev/YR-CP100/all_part_backup/system_payload.bin -C | head -5
00000000 44 48 54 42 01 00 00 00 00 00 00 00 00 00 00 00 |DHTB............|
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000030 00 2e df 01 00 00 00 00 00 2e df 01 00 00 00 00 |................|
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
查询相关资料可以确定这是紫光展锐设备特有的DHTB分区格式Dynamic Hybrid Trusted Boot,根据已有信息,DHTB分区会把原始分区放置在DHTB数据头后。
直接使用ImHex编辑器查看整个system.img发现0x1000处出现了68 73 71 73 -> hsqs字样。
结合DS对hexdump回显的前几十行原始数据的分析:

根据你之前 hexdump 的结果:
在 0x30 处的值 00 2e df 01 (小端序为 0x01df2e00,约30MB) 很可能指示了**某个数据段的长度。**
在 0x1000 处出现了 68 73 71 73 (hsqs),这很可能是**一个有效数据块的起始标志**,但它不是UBI格式。
因此,你的 system.img 结构很可能如下:
偏移量 0x0:    DHTB 文件头 (包含长度等信息)
偏移量 0x1000:  某个数据块开始 (可能是压缩的映像,如 squashfs)

所以确定原始分区是一个基于Linux的SquashFS只读压缩文件系统,通过dd命令取出原始分区:
dd if=system.img of=system_payload.bin bs=4096 skip=1
SquashFS分区镜像可以直接挂载。

确定架构

cat /etc/os-release
ID=unisoc-initgc
NAME="unisoc-initgc-distro"
VERSION="udx710-module+unisoc-initgc-1.0+W25.38.5:10.52.14+user+native (sumo)"
VERSION_ID=udx710-module-unisoc-initgc-1.0-w25.38.5:10.52.14-user-native
PRETTY_NAME="unisoc-initgc-distro udx710-module+unisoc-initgc-1.0+W25.38.5:10.52.14+user+native (sumo)"
DISTRO_CODENAME="sumo"

从Yocto sumo的时间点看貌似是2018年的老版本了,Linux Kernel 4.14.98估计是厂商提供给开发者的SDK。
比较有趣的是,解包后里面开发者写的后台PHP代码基本上和安全俩字没什么关系,连我这个纯外行都能看出来有明显的漏洞,群友们表示尝试过修改镜像并刷回但是因为没有厂商提供的证书签名启动不了。
所以后续Crack完全没必要改来改去硬刷镜像,理论上可以通过Web渗透完成既定目的。

2026年1月26日,Got Shell!

昨天通过对后台PHP代码的查看确定了后台处于不设防的状态:

    function quoteArgument($value) {
        return empty($value) ? "'null'" : "'{$value}'";
    }

    function quoteArgument_int($value) {
        return empty($value) ? "0" : "'{$value}'";
    }

    function execShell ($cmd) {
        $result = shell_exec($cmd);
        $json = json_decode($result);

        if ($json->result === 0)
            return "success";
        else
            return "error";
    }

今天一通尝试,终于构造了post请求拿下了root shell,看/usr/bin有adbd看起来可以启用adbd.
/etc/init.d/下发现了adbd-init 当然,默认是没启用。

2026年1月27日

扒拉到/etc/usbenum/usbenum.ini

[machine]
machine=udx710-module
[property]
virtualcn=0
diag=1
log=1
debug=1
usbch=mode0
iq_vser=close
udc=29100000.dwc3
afterpowerloss=1
#virtualcn 0-rndis|1-ecm|2-ncm|3-mbim|4-8*AT|5-1*ecm|6-2*ecm|7-3*ecm|8-4*ecm|9-1*ncm|10-2*ncm|11-3*ncm|12-4*ncm|13-test

看上去我完全有机会使用USB cdc-ncm 替换RDNIS,当然...前提是能修改好镜像。
似乎可以通过overlay完成对SquashFS的写入存储?但是一改/etc/fstab就涉及现有鸡还是现有蛋的问题了,早于系统启动之前完成修改是不可能的,最终还是得诉诸于修改和重新打包刷入system镜像。

示例 僵尸恐慌—起源 Zombie Panic Source

参考资料:engine.so: cannot enable executable stack as shared object requires: Invalid argument
启动日志:

xfox@fedora:~/.local/share/Steam/steamapps/common/Zombie Panic Source$ ./zps_linux 
SDL video target is 'x11'
SDL video target is 'x11'
This system supports the OpenGL extension GL_EXT_framebuffer_object.
This system supports the OpenGL extension GL_EXT_framebuffer_blit.
This system supports the OpenGL extension GL_EXT_framebuffer_multisample.
This system DOES NOT support the OpenGL extension GL_APPLE_fence.
This system supports the OpenGL extension GL_NV_fence.
This system supports the OpenGL extension GL_ARB_sync.
This system supports the OpenGL extension GL_EXT_draw_buffers2.
This system supports the OpenGL extension GL_EXT_bindable_uniform.
This system DOES NOT support the OpenGL extension GL_APPLE_flush_buffer_range.
This system supports the OpenGL extension GL_ARB_map_buffer_range.
This system supports the OpenGL extension GL_ARB_vertex_buffer_object.
This system supports the OpenGL extension GL_ARB_occlusion_query.
This system DOES NOT support the OpenGL extension GL_APPLE_texture_range.
This system DOES NOT support the OpenGL extension GL_APPLE_client_storage.
This system DOES NOT support the OpenGL extension GL_ARB_uniform_buffer.
This system supports the OpenGL extension GL_ARB_vertex_array_bgra.
This system supports the OpenGL extension GL_EXT_vertex_array_bgra.
This system supports the OpenGL extension GL_ARB_framebuffer_object.
This system DOES NOT support the OpenGL extension GL_GREMEDY_string_marker.
This system supports the OpenGL extension GL_ARB_debug_output.
This system supports the OpenGL extension GL_EXT_direct_state_access.
This system supports the OpenGL extension GL_NV_bindless_texture.
This system DOES NOT support the OpenGL extension GL_AMD_pinned_memory.
This system supports the OpenGL extension GL_EXT_framebuffer_multisample_blit_scaled.
This system supports the OpenGL extension GL_EXT_texture_sRGB_decode.
This system supports the OpenGL extension GL_NVX_gpu_memory_info.
This system DOES NOT support the OpenGL extension GL_ATI_meminfo.
This system supports the OpenGL extension GL_EXT_texture_compression_s3tc.
This system supports the OpenGL extension GL_EXT_texture_compression_dxt1.
This system DOES NOT support the OpenGL extension GL_ANGLE_texture_compression_dxt3.
This system DOES NOT support the OpenGL extension GL_ANGLE_texture_compression_dxt5.
This system supports the OpenGL extension GL_ARB_buffer_storage.
This system DOES NOT support the OpenGL extension GLX_EXT_swap_control_tear.
OpenGL: NVIDIA GeForce RTX 3060 Laptop GPU/PCIe/SSE2 4.6.0 NVIDIA 580.119.02 (4.6.0)
GL_NV_bindless_texture: DISABLED
GL_AMD_pinned_memory: DISABLED
GL_ARB_buffer_storage: AVAILABLE
GL_EXT_texture_sRGB_decode: AVAILABLE
 failed to dlopen /home/xfox/.local/share/Steam/steamapps/common/Zombie Panic Source/bin/engine.so error=/home/xfox/.local/share/Steam/steamapps/common/Zombie Panic Source/bin/engine.so: cannot enable executable stack as shared object requires: Invalid argument
AppFramework : Unable to load module engine.so!
Unable to load interface VCvarQuery001 from engine.so

修复方案:

execstack -c "~/.local/share/Steam/steamapps/common/Zombie Panic Source/bin/engine.so"
如果你使用了其他存储设备存储steam游戏库,应修改为对应的挂载位置。

问题原因:

GNU C 库 2.41 版本现已发布:如果共享库要求,dlopen 和 dlmopen 不再使栈可执行,可能是因为缺少 GNU_STACK ELF 头部(以及默认 ABI 权限对可执行位的设置),或者显式地因为 GNU_STACK 中有可执行位,而栈本身还不是可执行的。相反,加载此类对象会失败。

因为输入法问题我已经在博客寫過很多文章:
debian12安装fcitx5-rime
输入法耻辱柱 附解决方案 Fedora41 Fcitx5-rime输入法配置
fcitx-rime异常
在linux mint下使用中州韵RIME输入法
不管是fcitx或者fcitx5又或者ibus,默認安裝後的rime使用的是明月拼音而非明月拼音-簡化字。
所以中國大陸地區需要配置設置默認使用簡體字方案。

你是否需要RIME?

当你安装fcitx5 fcitx5-chinese-addons之后,实际上你已经可以使用Fcitx5的Pinyin软件包 完成中文输入了,如果你不需要更复杂的功能,你完全没必要再进行下列复杂操作。

Fcitx5-RIME安装

sudo dnf install fcitx5 fcitx5-chinese-addons fcitx5-rime

任何發行版的RIME必要的配置

強烈建議新手先閱讀Rime 中的數據文件分佈及作用 瞭解下文中配置文件的位置。
本文默認使用明月拼音-簡化字方案 并不使用官方的额外配置工具 其他方案操作類似,觀看文檔自行揣摩。
参考文本时默认你已经在Fcitx5或者IBus中添加了RIME输入法方案,并在KDE中设置虚拟键盘为IBus Wayland/Fcitx5 Wayland实验性配置

設置默認使用簡體字方案

Fcitx5: ~/.local/share/fcitx5/rime ~.config/fcitx5/rime/
IBus: ~/.config/ibus/rime
以下操作可以参照注释手动在文件管理器里完成,不必强迫自己用命令完成。

cd ~.config/ibus/rime                   #进入RIME的用户目录
touch default.custom.yaml               #创建自定义全局配置文件
nano default.custom.yaml                #编辑文件(随便你用什么编辑器)
不要创建default.yaml,这个文件是RIME在启动后自动动态拼接多个配置文件产生的总配置文件,直接创建并修改这一文件会在软件更新,重新部署等时刻丢失你的配置信息!
在你的自定义输入法配置文件中加入如下内容:
# default.custom.yaml
# 用户  输入法配置
patch:  
  schema_list:  # 输入方案列表
    - schema: luna_pinyin_simp  # 不使用其它输入方案, 只保留明月拼音-简化字输入方案
  menu:
    page_size: 5  # 候选词为5个

接下来鼠标右键点击右下角输入法图标点击部署手动刷新输入法当前配置文件。
其他你都可以忽略,现在你已经可以使用自己的简体中文输入法了!
更复杂的配置方案请查看官网,本文的诞生有赖于我在2022年第一次使用RIME时在博客的认真记录(全面换装自由的开源输入法),做笔记对于记忆力一般的我来说真是一个好习惯啊......

使用东风破

上文是不使用东风破的简易配置方案,但是你也可以用更简便的官方的配置方案:
東風破 /plum/: Rime configuration manager and input schema repository
我相信大部分人在知道官方有完善方案后不会再费劲自己手配,但是问题是现在还在手配的人大部分除了大佬都是完全不知道东风破的纯萌新。

RIME的其他输入方案

就普适性推荐使用雾凇拼音
按照仓库提示安装后默认推荐的配置将添加过多不必要的双拼方案,只使用全拼的用户可以编辑用户自定义配置文件修改方案列表仅使用全拼:

#default.custom.yaml
patch:
    schema_list:  # 输入方案列表
        - schema: rime_ice # 仅使用雾凇全拼(同其他官方方案类似将会自动添加一个RIME默认的英文输入方案)
# 以下根据自己所需自行定义,仅做参考。
# 针对对应处方的定制条目,请使用 <recipe>.custom.yaml 中配置,例如 rime_ice.custom.yaml
    menu:
        page_size: 5  # 候选词为5个

2025-12-11T16:19:32.png
重新点击部署即可愉快使用。

这是困扰我许久的问题,但是一直没有时间解决,我已经无法忍受这种局面今天务必解决。

错误日志

通过podman logs -f 命令可以看到关键报错如下

[error][2025-11-27 20:26:34][0a5900036928433ebea500015475dab0][/work/utils/send/send.go:80][email protected]%!(EXTRA string=域名mx记录查询失败,检查邮箱是否存在!)
[debug][2025-11-27 20:26:34][/work/utils/smtp/smtp.go:415]SendMail, ,smtp.gmail.com:25 ,[email protected] ,linuxuser.site ,[[email protected]] 
[info][2025-11-27 20:26:36][0a5900036928433ebea500015475dab0][/work/utils/send/send.go:135]SMTP STARTTLS on 25 Send Error. dial tcp: lookup smtp.gmail.com: i/o timeout
[info][2025-11-27 20:26:38][0a5900036928433ebea500015475dab0][/work/utils/send/send.go:142]SMTPS on 587 Send Error. dial tcp: lookup smtp.gmail.com: i/o timeout
[info][2025-11-27 20:26:40][0a5900036928433ebea500015475dab0][/work/utils/send/send.go:149]SMTPS on 465 Send Error. dial tcp: lookup smtp.gmail.com: i/o timeout
[error][2025-11-27 20:26:42][0a5900036928433ebea500015475dab0][/work/utils/send/send.go:159][0xc000290380] 邮件投递失败dial tcp: lookup smtp.gmail.com: i/o timeout
[debug][2025-11-27 20:26:42][0a5900036928433ebea500015475dab0][/work/controllers/email/send.go:210]插件执行--SendAfter
[debug][2025-11-27 20:26:42][0a5900036928433ebea500015475dab0][/work/hooks/base.go:74][wechat_push]Plugin SendAfter Start
[debug][2025-11-27 20:26:42][0a5900036928433ebea500015475dab0][/work/hooks/base.go:74][spam_block]Plugin SendAfter Start
[error][2025-11-27 20:26:42][/work/hooks/framework/framework.go:123]params error json: cannot unmarshal object into Go struct field HookDTO.ErrMap of type error
[debug][2025-11-27 20:26:42][0a5900036928433ebea500015475dab0][/work/hooks/base.go:88][wechat_push]Plugin SendAfter End
[error][2025-11-27 20:26:42][/work/hooks/framework/framework.go:123]params error json: cannot unmarshal object into Go struct field HookDTO.ErrMap of type error
[debug][2025-11-27 20:26:42][0a5900036928433ebea500015475dab0][/work/hooks/base.go:88][spam_block]Plugin SendAfter End
[debug][2025-11-27 20:26:42][0a5900036928433ebea500015475dab0][/work/controllers/email/send.go:222]插件执行--SendAfter

分析问题

显然DNS解析有问题,容器的网络似乎存在异常。
现在宿主机nslookup smtp.gmail.com确定主机网络无异常。
podman exec -it pmail /bin/ash 进入容器内再次执行ping等测试均失败确定容器网络确实有问题。

- 阅读剩余部分 -

当你感到睡眠会打断你持续摄入使大脑兴奋的刺激时,你有权选择违背健康原则拒绝休息。
顺便,还可以点一杯奶茶,恩令你加倍愉悦。🥰
一个21世纪的人应该永远留给自己放纵的权利。————本博主

首先解决了一下证书问题,证书现在由acme.sh正确管理,并且使用了一个脚本确保证书文件被同步到pmail的配置路径。
然后刚修好就看见日志里不停歇的撞库.....难绷啊

最后,祝大家阖家团圆,中秋快乐!

2025年10月7日02点22分

把家里和RN的Debian服务器BBR都启用了(我启用之前完全没想到我之前竟然用的cubic),算法选择: fq_codel

sudo nano /etc/sysctl.conf
net.core.default_qdisc=fq_codel
net.ipv4.tcp_congestion_control=bbr
#别忘了
sysctl -p 

如果是Fedora的桌面PC,应该更标准点修改: /etc/sysctl.d/99-sysctl.conf
sudo sysctl --system
这样应该可以一定程度上减少运营商对上行的恶意限制,尽可能跑满实际最大上行。
吃的好饱,嗝~