让 HP Envy 17-DA0013dx 正常启动 OpenBSD

Lobsters Hottest 新闻

摘要

一篇详细的文章,介绍如何修复 HP Envy 17-DA0013dx 笔记本上 OpenBSD 启动卡死的问题——最终发现罪魁祸首是有缺陷的 ACPI/AML 实现,通过更新 BIOS 得以解决。

<p><a href="https://lobste.rs/s/gl8yly/un_hanging_hp_envy_17_da0013dx_for_openbsd">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/10/18 13:49

# 让 HP Envy 17-DA0013dx 不再卡死:OpenBSD 适配记录 Source: https://darwinsys.com/blog/20260925-hp-envy-17/ 我最近入手了一台轻度使用的 HP Envy 17 英寸笔记本,型号 DA0013dx,当然想在上面运行 OpenBSD (https://openbsd.org/)。它预装了 Windows 11,系统安装在内部 NVME 固态硬盘上。从 USB 设备引导 OpenBSD 很快就失败了:直接卡死。要解决这个问题,首先当然得在 BIOS 中禁用"安全启动"(Secure Boot)。然后,引导过程在设备探测阶段中途卡住了。BSD 用户从 1979 年起就对此很熟悉——探测(probing)就是操作系统逐一尝试它所认识的每个设备,如果设备响应正确,就将其标记为激活并在控制台打印一条简短消息。其他操作系统也经历同样的过程,但三大主流操作系统只是选择用 GUI 把它隐藏起来。Linux 和 macOS 都有源自 Unix 的 `dmesg` 命令,可以打印引导时被隐藏的消息。在 Windows 上,你得进入系统设置之类的地方才能获取硬件信息。 所以,在这台 HP Envy 上,设备探测在 iwx(4)(Intel AX211 WiFi)探测之后就停止了。这意味着在探测序列中,iwx 之后的某个设备在尝试驱动时出了问题。我们怎么找出是哪个设备出了问题? ## 突破设备探测卡死 最简单的方法是在调试内核上使用 ddb(4): - `boot -c bsd.gdb` 这个文件是内核构建的一部分,所以你可能需要自己编译内核才能获得它。 - 在配置提示符下,输入 `ddb` 进入内核调试器 - `write autoconf_verbose 1` - `continue` # 回到配置 - `quit` # 继续引导 这会产生大量输出,速度之快以至于 24FPS 的普通录像机会出现文字重叠、难以辨认。我确实尝试了几个不同的内核,最终有一个会 panic 而不是无声卡死。通过对一段模糊视频的解码,我读出了 panic 信息:`panic: cpu at apic id 0 already attached.`。经过一番思考,我怀疑 ACPI/AML 实现有缺陷。这引出了下一个巨大的飞跃:更新 BIOS!果然,这台机器运行的是 2024 年的 BIOS——也就是这台机器首发的年份。如今首发版本往往实际上就是测试版,于是我去找更新。有一个 2026 年的版本可用,包含大量修正,其中一个正是关键的那个。由于我还没能把 Windows 搞掉,更新 BIOS 毫无问题,过程非常顺利。然后,从 USB 外部驱动器引导就顺利进入了 OpenBSD,毫无问题! 接下来是更换 NVME 固态硬盘:把我旧笔记本上的 4TB OpenBSD 硬盘拆下来装到这里,把装着 Windows 的 1TB 硬盘收起来以备将来更新 BIOS 之需。是的,我仍然偏执到*在运行 MS Windows 时拔掉 OpenBSD 的 NVME 硬盘*。安全总比后悔好。 这里我们遇到了两个与我正在替换的 Framework 笔记本不同的地方,给维修带来了一些小麻烦。首先,固定 HP 外壳底部的螺丝不是防脱落的,如果不小心就会弄丢(我很小心,所以没丢)。其次,固定外壳底部的螺丝用的是 Torx(梅花)头,而固定 NVME 固态硬盘本身的螺丝用的是 Philips(十字)头。HP 让所有维修螺丝用同一种头,能有多难?Framework 好几年前就这么做了。所以这也许是第三点:大公司应该克服自己的傲慢,看看新来者在做什么。 第一组螺丝拆下来之后,取下外壳底盖经历了一场艰苦的战斗。底盖的四个边都用压合式卡扣沿着每条边固定,所以你必须拼命撬才能取下来。顺便说一下,底座是塑料的,会弯曲,但还是很烦人。我想当在一个昂贵的笔记本上使用廉价塑料件时,你不得不这样(?)。 ## 巨兽内部 hp envy17 内部 终于,我把 OpenBSD 的 NVME 装进去了。开机。什么都没有!只有片刻的沉默。哦,完蛋了!我想。我是不是弄坏了里面什么东西!?别急。在经历了几分钟的绝望之后,我正准备重新弄好外部 OpenBSD 引导盘,这时出现了一个关于 CMOS 损坏的 BIOS 画面,问是否可以重新计算?当然,在我读完之前它就消失了。再次重启后,我让它回到这个弹出提示,接受了它,然后,*mirabile dictu(奇迹般地)*,机器完全启动了。看来这些机器在你更换内存或硬盘时经常会出问题,需要一些时间和/或一次"确定"的点击才能稳定下来。 所以,我现在让这台机器运行 -current,所有文件都从旧笔记本上迁移过来了。搞定! ## 关于这台笔记本 我以前从未有过 17 英寸的笔记本,所以它的尺寸和重量,嗯,确实不太一样。我的轻量笔记本背包,能装下我的 Framework 13 (https://frame.work/),但就是拉不上拉链!好在一个更大的背包可以。 提醒一下:对于任何笔记本我们有两个尺寸度量:屏幕对角线和实际物理宽度。更大的笔记本对角线一般是 17 英寸,但大多数的底座宽度"只有"15 英寸或 15.6 英寸。前者用于广告宣传,例如"HP Envy 17",后者用于选择背包或便携包的尺寸。 HP 原装配了一个 65W 电源适配器(有一个带额外显卡的型号配的是 100W)。所以它当然可以使用我 Framework 13 的 65W 电源适配器运行,但时不时(在运行 Windows 时)会弹出通知,说 HP 建议使用 HP 原装电源适配器。 请注意 Envy 17 有多种变体,用一串字符和数字来标识。这里列出的一些细节是我这台 DA0013dx 型号特有的。我的 Envy 是二手的,没有附带官方电源适配器,也没有附带扩展坞 USB dock——它固定提供三个 USB-A、两个 USB-C/DP(其中一个用于供电)、一个 HDMI 和一个 1/8 英寸耳机插孔。另外,我的 Framework 有一系列可互换的端口模块,13 英寸的可以同时使用其中任意 4 个,Framework 更大的笔记本可以同时使用更多;如果你需要在左边或右边使用特定的线缆,这非常好用。 屏幕明亮美丽,与 OpenBSD 的 X Windows 系统"开箱即用"。这款 Envy 配备 1920x1024 显示屏,可以通过 HDMI 端口驱动最高 4K 的外部 HDMI 显示器,或通过 USB-C 端口驱动 DisplayPort 显示器。1920x1024 是如今许多显示器使用的 19:6 比例,但由于尺寸和分辨率不同,我花了相当多时间才把 XFCE4 的布局调整到我想要的样子。与许多低端笔记本不同,这款产品配备了触摸屏,在 OpenBSD 的 ism(4)(触控板和触摸屏)驱动下可以正常工作,下面会提到一个重要例外。 以下是我的 XFCE4 设置截图。 xfce4 framework xfce4 hp envy Framework(之前) HP Envy 17 CPU 是 Intel® Core™ Ultra 7 155H,4484.32 MHz (https://www.intel.com/content/www/us/en/products/sku/236847/intel-core-ultra-7-processor-155h-24m-cache-up-to-4-80-ghz/specifications.html)。我们就叫它 4.5GHz,即最高频率。这是一颗"Meteor Lake"CPU,有多种类型的核心(6 个性能核心,每个双线程,8 个能效核心,2 个低功耗能效核心,总计 22 个线程;在 dmesg 中显示为 22 个 CPU)。Envy 17 还有较便宜的 120U CPU 版本可选。 这款标配 16GB 内存,但 HP 也提供 32GB 配置。使用的是 DDR-5 SODIMM 内存,所以理论上你可以升级到你负担得起的任何容量。类似地,Envy 17 有 1TB 或 2TB SSD 的配置可选;我把 Framework 里的 4TB NVME SSD 移到了 HP Envy 里,工作正常。我的 Framework 有朝一日可能会通过安装一块性能更强的主板而获得新生,甚至比我这台 Envy 的 CPU 更强 (https://frame.work/,正如他们承诺和一贯的文化,他们继续为所有型号推出升级件)。 ## 小瑕疵: 屏幕铰链非常紧。 键盘各行的位置似乎有点偏,但我想这取决于你习惯了什么样的键盘。而且它比大多数键盘都宽。 触摸板旁边有一个 Intel 官方贴纸,大小和 SD 卡差不多,我一直想把它擦掉。等烦了我就把它刮掉。 HP 的 "AML"(ACPI Machine Language,告诉操作系统硬件详细信息的语言)里有一个错误。这导致了如下错误:`# AML PARSE ERROR (0x944): Undefined name: \_SB_.PC00.LPCB.MXTP`。这是一个尝试提供 CPU 可以安全运行的最高温度(MaXimum TemPerature)但失败了的实现。在这种情况下,`acpitz` 驱动不知道最高温度。我直接在 `/etc/sensorsd.conf` 中设置了 temp:high=90C,比某些笔记本提供的 100C 更保守一些。 ## 剩余待解决的问题 还有一些小问题需要解决。 - 上面提到的 AML 问题意味着 ACPI 不知道最高温度,所以如果我同时对 CPU 要求太多,它可能会着火。这很可能是"不予修复"的问题。 - 引导时有一条 DRM 警告消息,原因是"调用了一个我们没有的驱动"(jsg@)。之前还有几个其他错误,但大多数在最近一次(8.0 前)的提交中修复了。 - Intel WiFi(AX210)的驱动在引导时会给出一个看似无害的错误:`iwx0: timeout waiting for master` - 当有两个显示器时,触摸屏表现为 x = k*x(如果两者宽度相同则 k 为 2,否则视情况而定)。这似乎是 X 的一个根本性问题。其中大部分应该很快会得到解决。 - sndio 无法正确通过音频设备与内置扬声器通信;用 USB 耳机可以正常工作。我不在意,因为我不喜欢弹出广告时突然发出的噪音打扰周围的人。 - 当有两个显示器时,鼠标工作正常,但触摸屏表现为 x = k*x(如果两者宽度相同则 k 为 2,否则视情况而定)。这似乎是 X 的一个根本性问题。 其中大部分应该最终都会解决。 ## 经验教训: - 多带几把不同规格的螺丝刀。 - 如果有疑问,就更新你的 PC 的 BIOS。 - 大电脑公司:多看看周围在做什么。 ## 最后的话 如果你想用一台带 16:9 触摸屏的现代笔记本运行 OpenBSD,HP Envy 是一个不错的选择。

相似文章

修复变砖的 Framework Laptop

Hacker News Top

用户详细描述了如何在一次失败的 BIOS 更新后,使用廉价工具修复了搭载 AMD 7040 系列的变砖 Framework 13" 笔记本电脑,以避免昂贵的主板更换。

笔记本电脑上的 FreeBSD 15

Lobsters Hottest

作者分享了他们在笔记本电脑上使用 FreeBSD 15 的积极体验,重点介绍了 pkgbase、LinuxKPI 驱动程序和笔记本电脑支持项目等改进,并提供了在 ThinkPad X1 Carbon 上安装和配置 KDE Plasma 6 的分步指南。

健忘的 CPU(M4 上的 Linux)

Lobsters Hottest

一篇详细的技术文章,讲述如何在 M4 Mac mini 上启动主线 Linux,克服新引入且强制启用的 SPTM(安全页表监控器)——它破坏了现有的基于 m1n1 虚拟机管理程序的工作流程,并让 SoC 启动到足以通过串口控制台进行调试的程度。作者对 Asahi Linux 团队表示感谢,并记录了被锁定的 GXF/RVBAR 寄存器以及早期 Linux 启动的进展。