文档教程【免费下载链接】pikvmOpen and inexpensive DIY IP-KVM based on Raspberry Pi项目地址https://gitcode.com/gh_mirrors/pi/pikvm点击查看免费下载KVMD 3.82021 年 7 月发布是 PiKVM 历史上针对 Apple 平台的一次标志性修复它解决了长期困扰用户的Intel Mac 无法在启动菜单中移动鼠标、恢复模式强制要求外接鼠标两大顽疾并让 M1 Mac 在使用默认 OTG HID 时不再被荒谬的提示页拦截。本文以这次发布为核心结合仓库中的 鼠标模式文档、Arduino HID 文档 与 固件刷写文档从绝对/相对鼠标原理讲起完整还原修复内容、配置方法和升级步骤帮助读者理解并复现用 PiKVM 完全远程操控 Mac的完整链路。一、背景为什么以前无法完全远程控制 Mac在 KVMD 3.8 之前PiKVM 在 Apple 平台上一直存在与鼠标、键盘相关的历史问题导致完全远程控制 Mac成为不可能启动菜单Boot Menu中鼠标不可用进入 macOS 的启动选择界面后模拟鼠标无法驱动光标移动用户无法远程选择启动磁盘恢复模式Recovery Mode强制要求物理鼠标即使光标本身可以工作系统仍会显示要求再连接一个鼠标的界面远程会话被硬性卡住由于上述缺陷叠加此前无法在不接触 Mac 实体机的情况下完成启动项切换、恢复模式操作等关键运维动作。该问题深藏在 Apple 驱动内部而 macOS 是闭源系统没有其他途径探知内核层到底发生了什么。据发布说明记载作者为此专门采购了一台硬件 USB 协议分析仪花费近 $1500来抓取真实 HID 交互过程最终定位并绕过了这一驱动行为。二、预备知识绝对鼠标与相对鼠标两种模式要理解这次修复的技术含义必须先分清 PiKVM 模拟指针设备的两种模式详见 docs/mouse.md绝对模式Absolute输入设备直接上报目标坐标(X, Y)光标应当移动到哪个位置由设备指定。触摸屏、绘图板就是这种工作方式。相对模式Relative输入设备只上报相对当前位置的偏移(dX, dY)设备本身并不知道光标当前在屏幕何处。普通物理鼠标就是这种工作方式。PiKVM 默认使用绝对定位因为它对用户和上层软件最方便但 BIOS/UEFI 以及某些特殊启动环境并不总是支持绝对鼠标。为此 PiKVM 提供了相对模式支持可通过配置开启。使用相对模式时有两点体验上的注意在 Web UI 的流窗口中点击一次后浏览器会独占捕获鼠标按Esc后浏览器释放鼠标。相对模式会产生大量移动事件可能受网络质量影响或被 BIOS/UEFI 驱动缓慢处理。PiKVM 通过向量求和对事件做优化并可在 Web 菜单System - Squash mouse moves中开关若遇到鼠标加速异常可尝试关闭该项。另外相对模式当时尚未被 PiKVM VNC 服务器 支持也不支持移动端浏览器。三、KVMD 3.8 修复了什么两条平台各自的解法KVMD 3.8 的修复策略按 Mac 平台架构分两条路径3.1 Intel Mac配合 Arduino HID 进入启动菜单对于基于 Intel 的 Mac使用 Arduino HID键盘鼠标模拟器即可进入不同的启动菜单如按Option选择启动磁盘或按CmdR进入恢复模式在启动管理器Boot Manager中相对鼠标现在可以正常工作在恢复模式Recovery Mode中相对鼠标与绝对鼠标均可正常工作。也就是说只要在旧式 DIY PiKVM 方案中接入 Arduino HID并配合 KVMD 3.8 使用相对模式就能在 macOS 的启动阶段完全接管鼠标。3.2 M1 Mac直接使用默认 OTG HID对于搭载 Apple SiliconM1的 Mac无需额外硬件直接使用默认的 OTG HID 即可不再出现那个荒谬的请再连接一个鼠标的提示画面进入恢复模式时不再需要物理外设远程会话可以一路操作到底。值得说明的是这一行为依赖 HID 在目标机电源循环期间的持续供电能力。仓库中 Pico HID 零件清单 也指出保持按键在目标机重启期间持续按下对 macOS 进入启动菜单尤为重要这也是该文档强烈建议加装 1N5819 二极管的原因。四、动手配置为 Mac 场景启用合适的鼠标模式无论使用 Arduino HID 还是 OTG HID都需要在 PiKVM OS 中按需配置鼠标模式。PiKVM OS 的文件系统默认只读所有自定义配置都写入/etc/kvmd/override.yaml主默认值位于/usr/lib/kvmd/main.yaml切勿直接编辑机制详见 docs/config.md。4.1 开启双模式可在 Web UI 中实时切换在System菜单中无需重启即可在绝对/相对鼠标之间切换但对兼容性考虑默认关闭。开启方法用命令rw将文件系统切换为可写编辑/etc/kvmd/override.yaml加入kvmd: hid: mouse_alt: device: /dev/kvmd-hid-mouse-alt执行reboot重启后同样重启被控电脑。4.2 单相对模式Intel Mac 启动菜单场景推荐如果只需要相对鼠标配置如下kvmd: hid: mouse: absolute: false mouse_alt: device: 4.3 最大化 BIOS/UEFI 兼容性若 BIOS/UEFI 仍检测不到鼠标可进一步禁用水平滚轮kvmd: hid: mouse: absolute: false horizontal_wheel: false mouse_alt: device: 改完后执行reboot生效。此外kvmd -M可用于校验 override 配置的语法详细说明见 docs/config.md。五、Intel Mac 路径的关键硬件Arduino HID 部署Arduino HID 是旧式 DIY PiKVMV0/V1时代的标准键盘鼠标模拟器基于 ATMega32u4 的 Arduino Pro Micro / Micro。它支持两种连接方式配置位置均在/etc/kvmd/override.yaml的kvmd/hid段。5.1 Serial HID串口方案适合除 Pi Zero W 外的树莓派需先确保版本支持。在 override 中加入kvmd: hid: type: serial reset_pin: 4 device: /dev/kvmd-hid并创建 udev 规则/etc/udev/rules.d/99-kvmd-extra.rulesKERNELttyAMA0, SYMLINKkvmd-hid还需systemctl disable gettyttyAMA0.service并从/boot/cmdline.txt中移除consolettyAMA0,115200或consoleserial0,115200及kgdboc...参数。5.2 SPI HIDSPI 方案SPI 方案的优势是不占用与蓝牙共享的 UART 引脚、无需禁用蓝牙。需在/boot/config.txt中加入dtoverlayspi0-1cs然后配置kvmd: hid: type: spi chip: 0 bus: 0 sw_cs_pin: 7 reset_pin: 25 reset_inverted: true保存后systemctl restart kvmd并清理浏览器缓存。5.3 固件编译选项动态切换相对/绝对鼠标Arduino HID 固件通过platformio-avr.ini中的构建标志决定功能。默认配置启用动态模式切换[_common] build_flags -DHID_PS2_KBD_CLOCK_PIN7 -DHID_PS2_KBD_DATA_PIN5 -DHID_USB_CHECK_ENDPOINT # ----- The default config with dynamic switching ----- -DHID_DYNAMIC -DHID_WITH_USB -DHID_SET_USB_KBD -DHID_SET_USB_MOUSE_ABS # ----- PS2 keyboard only ----- # -DHID_WITH_PS2 # -DHID_SET_PS2_KBD # ----- PS2 keyboard USB absolute mouse ----- # -DHID_WITH_USB # -DHID_WITH_PS2 # -DHID_SET_PS2_KBD # -DHID_SET_USB_MOUSE_ABS # ----- PS2 keyboard USB relative mouse ----- # -DHID_WITH_USB # -DHID_WITH_PS2 # -DHID_SET_PS2_KBD # -DHID_SET_USB_MOUSE_REL例如要用 USB 鼠标 PS/2 键盘就取消对应组合的注释、注释掉默认块。这正是 KVMD 3.8 中启动管理器相对鼠标可用所依赖的能力动态切换使固件能在不同启动阶段提供不同鼠标模式。完整接线图与零件清单见 docs/arduino_hid.mdSPI 连接的示意图见docs/arduino_hid/arduino_spi_hid.png、串口方案见docs/arduino_hid/arduino_serial_hid.jpg。六、刷写 Arduino HID 固件Intel Mac 路径要生效需要重刷固件。通用刷写步骤详见 docs/flashing_hid.md# rw # systemctl stop kvmd # cp -r /usr/share/kvmd/hid/arduino ~ # cd ~/arduino # make # make install # rebootSPI 方式用make spi代替make且无需断开 RESET 线串口刷写时需要断开。新版镜像不再预装刷写工具需先安装pacman -S platformio-core avrdude七、升级到 KVMD 3.8 并验证在树莓派控制台SSH 或 Web Terminal执行标准升级流程rw pacman -Syu reboot升级完成后务必重新刷写 Arduino HID 固件对应章节六否则 Intel Mac 路径的新鼠标行为不会生效。升级后即可验证Intel Mac开机按住Option进入启动管理器确认相对鼠标可驱动光标进入恢复模式后确认相对/绝对两种模式均可使用M1 Mac使用默认 OTG HID 进入恢复模式确认不再出现请连接另一个鼠标的提示。八、演进从 Arduino HID 到 Pico HID需要说明的是Arduino HID 属于旧式 DIY 方案的遗留组件。仓库现文档如 docs/arduino_hid.md 顶部与 docs/flashing_hid.md已标注 Legacy 警告如今更推荐使用 Pico HID 作为其原位兼容替代新方案同样支持启动阶段保持按键、满足 macOS 进入启动菜单的需求。理解 KVMD 3.8 这次 Apple 修复的来龙去脉依然是理解 PiKVM 鼠标模式机制与 macOS 远程运维方案的最佳入口。赞分享文档教程【免费下载链接】pikvmOpen and inexpensive DIY IP-KVM based on Raspberry Pi项目地址https://gitcode.com/gh_mirrors/pi/pikvm点击查看免费下载相关推荐PiKVM KVMD 2.4 特性解析相对鼠标模式与蓝牙 HID 键盘鼠标模拟PiKVM KVMD 2.4 特性解析相对鼠标模式与蓝牙 HID 键盘鼠标模拟 KVMD 2.4 是 PiKVM 软件栈KVMD即 KVM 守护进程在文档教程PiKVM蓝牙HID终极指南无线键盘鼠标远程控制教程PiKVM蓝牙HID终极指南无线键盘鼠标远程控制教程 PiKVM作为基于树莓派的开源DIY IP KVM解决方案提供了强大的远程管理功能。其中蓝牙HID功能文档教程Tolaria 隐私优先遥测架构Sentry 崩溃上报 PostHog 产品分析的双轨 Opt-in 设计Tolaria 隐私优先遥测架构Sentry 崩溃上报 PostHog 产品分析的双轨 Opt in 设计 本文基于 Tolaria基于 Tauri v文档教程上一篇如何在Krita中一键实现智能选区krita-vision-tools终极指南下一篇如何用Krita Vision Tools实现AI智能选区5分钟轻松搞定复杂抠图创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考