关于
我的公众号
QQ群:934149291
请喝杯饮料微信:
支付宝:
initrd遇到的问题及initramfs相关
initrd遇到的问题及initramfs相关问题背景最新在升级新驱动时遇到了一个很奇葩的问题:在客户某个版本的系统下,不管是将核外驱动包以前的老版本卸载后再安装新版本,还是直接升级该核外驱动包的新版本,从加载的驱动中读出的驱动版本一直是老的,甚至将该驱动包卸载后驱动还会加载,且为老版本,查找了一圈发现连KO都已经不存在了,奇了怪了,最后就把目光怀疑到了 **initrd**,果然在initrd里面有这个wifi驱动。
那它是怎么进去的呢?默认的initrd是没有将该wifi驱动放在里面的,后来发现居然是其他驱动的dkms包hooks脚本暴力将整个updates/dkms目录拉进了initrd ~~
下面,我们来看看这个 initrd 与 initramfs, 以下主要以 Debian/Ubuntu 系的发行版为例。
initrd与initramfsinitramfs 和 initrd 都是 Linux 启动过程中用于临时根文件系统(initial root filesystem)的机制,目的是在挂载真正的根文件系统之前加载必要的驱动、模块和工具。虽然它们目标一致,但在实现方式、历史演 ...
PCIe之ASPM及子状态(L0s L1)简介
PCIe之ASPM及子状态(L0s L1)简介ASPM(Active State Power Management,主动状态电源管理) 是 PCI Express(PCIe)规范中用于在设备处于 工作状态(D0) 时动态降低链路功耗的关键机制。它通过控制物理链路的低功耗状态,无需将设备完全挂起到深度睡眠(如 D3),从而在保持功能可用性的同时节省电能。
ASPM 定义了多个链路级低功耗子状态,主要包括:
L0s
L1(基础状态,也称 L1.0)
L1.1
L1.2
下面对这四种状态进行简单介绍。
一、总体架构:ASPM 的层次关系
状态
类型
是否需两端协商
典型延迟
功耗节省
L0
正常活动
—
0
无
L0s
轻度节能
❌ 单端可进
~10–100 ns
低
L1.0
中度节能
✅ 必须两端同意
~1–2 μs
中
L1.1
深度节能
✅ + CLKREQ#
~2–10 μs
高
L1.2
极致节能
✅ + CLKREQ#
~50–200 μs
极高
✅ 所有状态都发生在 设备处于 D0(运行状态) 时,与系统睡眠状态(S0/S3)无 ...
蓝牙之低功耗音频-LE Audio
蓝牙之低功耗音频-LE AudioLE Audio(Low Energy Audio) 是蓝牙技术联盟(Bluetooth SIG)于2020年1月正式发布的新一代蓝牙音频标准规范,旨在取代传统的经典蓝牙音频(BR/EDR Audio),并基于蓝牙低功耗(BLE, Bluetooth Low Energy)技术构建。LE Audio 不仅提升了音频质量、降低了功耗,还引入了多项创新功能,如多流音频(Multi-Stream Audio)、广播音频(Broadcast Audio)以及对助听设备的支持等。
系统架构LE Audio(Low Energy Audio) 引入了一个全新架构支持使用蓝牙技术的音频应用,并为未来 20 年的无线音频创新奠定了基础(面向下一代蓝牙音频)。
以上LE Audio系统架构图中各个模块分别对应一个蓝牙技术规范,概述于下列表格中:
规范
描述
蓝牙核心规范
蓝牙核心规范于 2019 年 12 月扩充到可通过低功耗蓝牙传输音频,包括新的低功耗等时通道功能。
编解码器:低复杂度通信编解码器(LC3)
2020 年 9 月发布的新规范,定义了 ...
WIFI无线网络之无线监管域
WIFI无线网络之无线监管域(国家码)什么是 Wi-Fi 无线监管域(国家码)?Wi-Fi 国家码,也称为无线监管域,是一个由两个字母组成的代码,用于标识设备所在的国家或地区。这个代码至关重要,因为它决定了 Wi-Fi 设备在哪个频段、信道和发射功率限制下运行。
为什么需要国家码?世界各地的无线电频谱管理法规不同。例如:
2.4 GHz 频段:在大多数国家,信道 1-11 是通用的,但在日本,还可以使用信道 12, 13, 14。
5 GHz 频段:不同国家开放的信道差别更大。例如,美国允许使用信道 36-165,而中国在早期只允许使用 149-165 等信道。此外,一些信道需要支持 DFS(动态频率选择)和 TPC(发射功率控制)以避免干扰雷达等系统。
6 GHz 频段:这是最新的 Wi-Fi 频段,各国的开放进度和规则也各不相同。
因此,设置正确的国家码是为了确保您的 Wi-Fi 设备合法、安全地运行,并且能够解锁该地区允许的所有信道和功能,从而获得最佳性能并避免干扰。
Linux下的无线监管域管理
我们通过将合规性纳入cfg80211中,使其成为新无线驱动程序所使 ...
USB LTM(Latency Tolerance Messaging)简介
USB LTM(Latency Tolerance Messaging)简介什么是 USB LTM(Latency Tolerance Messaging)?LTM(Latency Tolerance Messaging) 是 USB 3.0(SuperSpeed)及更高版本(如 USB 3.1/3.2/USB4)规范中引入的一种电源管理机制,用于优化主机与设备之间的功耗与性能平衡。它允许 USB 设备向主机控制器通告自己能容忍的最大中断延迟(即“我可以等多久才收到下一个数据包”)。主机据此优化调度和电源状态切换(如进入 U1/U2 低功耗状态),以节省功耗。
简单来说:
LTM 允许 USB 设备通过 LTM 消息主动告诉主机:“我最多能容忍多长时间不被访问”。
主机根据这个信息,决定是否可以让总线进入低功耗状态(如 U1、U2),以及何时唤醒。
可以将其理解为设备给主机的一张“请假条”或“离岗时间表”。设备通过这张“请假条”告诉主机:“我接下来要进入低功耗状态了,在这段时间内(例如 X 微秒),我可能无法响应你的呼叫,但请放心,我能承受这么久的延迟,你到时再发数据给我就 ...
WIFI无线网络之WPA3
WIFI无线网络之WPA3Wi-Fi WPA3(Wi-Fi Protected Access 3)是 Wi-Fi 联盟于 2018 年推出的最新一代无线网络安全协议,旨在解决 WPA2 中存在的安全缺陷(如 KRACK 攻击、离线字典攻击等),并为不同使用场景提供更强的隐私保护和认证机制。
WPA3 分为两个主要版本,分别面向不同用户群体:
WPA3 的两大核心模式1. WPA3-Personal(面向家庭/小型办公室)
替代:WPA2-Personal(即使用预共享密钥 PSK 的传统家庭 Wi-Fi)
核心机制:SAE(Simultaneous Authentication of Equals,对等实体同时认证)
目标:防止离线字典攻击、提升前向保密性
✅ 安全增强点:
抗暴力破解:即使攻击者捕获了完整的握手过程,也无法通过离线字典攻击快速破解密码(WPA2 的 4-Way Handshake 存在此漏洞)。
前向保密(Forward Secrecy):每次连接生成唯一的加密密钥。即使未来密码泄露,历史通信仍无法解密。
双向认证:客户端和 AP 都验证对方是否知道密码,防止“伪 ...
Windows系统之新式待机模式
Windows系统之新式待机模式Windows 10 新式待机扩展了 Windows 8.1 连接待机电源模型。 连接待机以及随后的新式待机可实现随开即用/随关随停的用户体验,类似于智能手机电源模型。 与手机一样,S0 低功耗空闲模型使系统能够在低功耗模式下保持网络连接。
新式待机功能概述新式待机会话包含整个屏幕关闭到屏幕打开的用户方案。 但是,单独的屏幕关闭和睡眠段构成了整个新式待机会话。 这些状态将软件行为静默期与长期低功耗期区分开来。 出于这个原因,Microsoft 将新式睡眠概念化为与传统 S3 睡眠等效,并增加了允许增值软件活动定期运行的优势。
Windows 10 通过以下方式实现低功耗:只有在绝对必要时才从最低功耗状态中唤醒,并且只允许软件在短时间、受控的突发活动中执行,从而显著减少了软件组件的执行机会。 Windows 和 SoC 硬件始终在侦听感兴趣的事件(例如网络数据包或键盘上的用户输入),并在需要时立即唤醒。 系统将在需要实时操作时唤醒,例如 OS 维护或用户唤醒系统时。
新式待机由多种硬件和软件电源模式组成,所有这些模式都在屏幕关闭时出现。 新式待机的复杂性在 ...
网络协议之DHCP
网络协议之DHCP概述DHCP(Dynamic Host Configuration Protocol,动态主机配置协议) 是一种用于自动分配IP地址及其他网络配置参数的网络协议,它是现代 TCP/IP 网络不可或缺的协议。它大大简化了网络管理,特别是在大型网络环境中,避免了手动为每台设备配置IP地址的繁琐工作,极大提升了网络部署与管理的效率。
📦 小贴士:在家庭网络中,你的无线路由器通常就内置了一个 DHCP 服务器,负责为手机、电脑等设备分配 IP 地址。
DHCP 的作用DHCP 主要用于自动为客户端设备分配以下网络参数:
IP 地址(IPv4 或 IPv6)
子网掩码(Subnet Mask)
默认网关(Default Gateway)
DNS 服务器地址
其他可选参数(如 NTP 服务器、WINS 服务器、域名、租期等)
DHCP 的工作原理(以 IPv4 为例)DHCP 使用 客户端-服务器(C/S)模型,通信基于 UDP 协议:
客户端 → 服务器:使用 UDP 端口 68
服务器 → 客户端:使用 UDP 端口 67
DHCP 的四个阶段(DORA 过程) ...
MPTCP(Multipath TCP)简介
MPTCP(Multipath TCP)简介概述MPTCP(Multipath TCP,多路径 TCP) 是一种对传统 TCP 协议的扩展,旨在允许单个 TCP 连接同时通过多个网络路径(如 Wi-Fi、蜂窝网络、以太网等)传输数据,从而提升吞吐量、提高网络资源利用率,并增强连接的鲁棒性(容错能力)。
为什么需要 MPTCP?
传统 TCP 问题
MPTCP 解决方案
单路径传输,带宽利用率低
聚合多路径带宽(Wi-Fi + 4G/5G)
网络切换时连接中断
无缝切换(如从 Wi-Fi 切换到 5G)
无法利用冗余路径提升可靠性
多路径容错(单路径故障不影响服务)
中间设备(NAT)导致路径固化
动态添加/删除路径
✅ 关键价值:在不改变应用层接口的前提下,透明提升吞吐量 40%~100%**(实测聚合 Wi-Fi + 5G 场景),切换延迟 < 100ms**。
MPTCP 的设计目标
提升吞吐量:利用多条路径并行传输数据,充分利用可用带宽。
增强鲁棒性:当某条路径中断时,其他路径仍可维持连接,避免断连。
向后兼容:与传统 TCP 兼容,中间网络设 ...
Shell之echo遇到的困惑
Shell之echo遇到的困惑背景最近用AI写了个脚本,在进行验证时,报了个错:
./scripts/xxx.sh:行67: 32m[2025-09-25:未找到命令
报错的位置是这样的,大致就是调用另外一个脚本,获取脚本的返回值来处理:
... ...
log "提取内核: $kernel_version"
local extract_result
if ! extract_result=$(bash "$SCRIPT_DIR/kernel-extractor.sh" prepare "$kernel_version"); then
error "内核提取失败"
return 1
fi
... ...
这里另外一个脚本使用echo来返回字符串或数组。
尝试用AI修复了几次,没有成功,只能自己去研究研究。后面发现就是这个echo使用的问题。
根本原因及解决办法根本原因在使用echo返回数据的函数中,又使用了echo来打印日志。这样在获取函数返回值时打印的日志会被命令替换$(...)捕获,从而被错误当成返回值被处理。这时 ...
M.2接口浅析
M.2接口浅析M.2 物理接口基础概念什么是 M.2?M.2(原名 NGFF - Next Generation Form Factor)是一种用于内部扩展卡的物理接口规范和外形尺寸标准,主要用于替代 mSATA 和 mini PCIe接口。它支持多种通信协议,包括 PCIe、SATA、USB 等,广泛应用于 SSD、Wi-Fi 卡、蓝牙模块、5G 模块等设备。
核心价值:M.2 提供了小型化、高性能、多协议支持的解决方案,成为现代计算机系统(笔记本、台式机、服务器)的标准扩展接口。
M.2 与相关技术对比
特性
M.2
mSATA
PCIe 插槽
U.2
物理尺寸
小型化 (22x30mm 到 22x110mm)
中等 (50.8x29.85mm)
大型
2.5 英寸硬盘尺寸
协议支持
PCIe、SATA、USB、I2C
SATA
PCIe
PCIe、SATA
最大带宽
PCIe 4.0 x4: 7.88GB/s
SATA 3.0: 600MB/s
PCIe 5.0 x16: 63GB/s
PCIe 4.0 x4: 7.88GB/s
应用场景
SSD、网卡 ...



