№001 硬件 数码产品

用 ROG Flow Z13-KJP 做 AI 编程:我为什么决定退货

把 128 GB 统一内存装进一台 13 英寸平板,听起来非常适合跑本地模型和编译大型 Rust 项目。在 CachyOS 上作为日常主力用了一个多月之后,来说说哪里出了问题、我修好了什么,以及为什么我宁愿买一台台式机。

其他语言版本 English 繁體中文 Deutsch Русский 日本語 한국어 हिन्दी Español

本页目录

ROG Flow Z13-KJP 是华硕 2025 款 Flow Z13(型号 GZ302EAC)的小岛工作室(Kojima Productions)联名版:AMD Ryzen AI Max+ 395 处理器,CPU 与 GPU 共享 128 GB LPDDR5X,全部装进一台带可拆卸键盘的 13.4 英寸平板里。纸面上看,它是 AI 辅助编程的梦想机器:本地模型和 Rust 工作区可以同时放得下,还能装进包里随身带走。

我把它当作日常主力机,在 CachyOS 搭配 Hyprland 的环境下用了一个多月。一开始非常顺手。后来它开始崩溃,我花了很多个晚上排查原因。我决定退货。如果你正在考虑用这台机器,或者它的兄弟机型 ProArt PX13,来做繁重的开发工作,下面是我希望自己早点知道的事。

长话短说#

  1. 接口捉襟见肘。两个 USB4 接口被我的两台显示器占满,其他所有设备只剩一个 10 Gbps 的 USB-A 接口可用。
  2. 合盖模式在 Linux 上没有现成的正确配置,一旦配错,笔记本就会在包里把自己烤熟。
  3. 不支持 ASUS Pen 3.0。更新的 ProArt PX13 支持,Z13 不支持。
  4. SSD 插槽是 M.2 2230,而这个尺寸的硬盘全都没有 DRAM 缓存。
  5. 我换上的 2 TB Kingston NV3 挂了十二次,而且不是过热导致的。
  6. 它是一台带背部支架的平板,在车里用非常痛苦。
  7. 在持续编译负载下,它会过热断电,即使风扇已经全速运转。

1. 两个 USB4 接口加一个 USB-A 接口#

Z13 有两个 USB4 Type-C 接口(40 Gbps,支持 DisplayPort 输出和充电)、一个 HDMI 2.1 接口、一个 10 Gbps 的 USB 3.2 Gen 2 Type-A 接口、一个 microSD 读卡器和一个耳机孔。

两台外接显示器分别接在两个 USB-C 接口上之后,两个 USB4 接口就都没了。我的扩展坞最后只能插在 USB-A 接口上,而它没有视频输出、不能充电,带宽也只有四分之一。对于一台以能撑起整套桌面工作环境为卖点的机器来说,这样的接口配置实在太紧张了。

2. 合盖模式:很容易配错,配错代价很大#

把键盘合上盖住屏幕、只用外接显示器工作,听起来再简单不过。但在 Linux 上,没有任何东西会帮你配置好,而且出错时的后果是最糟的那种:合上盖子后机器依然醒着,在包里慢慢把自己烤熟。

试过好几个手写脚本之后,最终表现正常的方案只是三行 systemd-logind 配置。logind 本身就知道是否连接了外接显示器:

ini
# /etc/systemd/logind.conf.d/10-gz302-lid.conf
[Login]
HandleLidSwitch=suspend                 # 使用电池且无外接显示器:睡眠
HandleLidSwitchExternalPower=ignore     # 接通电源:绝不因显示器计数错误而挂起
HandleLidSwitchDocked=ignore            # 已连接外接显示器:保持运行

在这块主板上,睡眠本身还需要额外处理。我不得不:

  • 禁用面板自刷新(amdgpu.dcdebugmask=0x610),否则唤醒后内置屏幕会一直黑屏;
  • 在恢复后重新绑定键盘盖的 USB 接口,因为它们恢复后毫无反应;
  • 将摄像头驱动(amd_isp4)加入黑名单,因为它会让机器在恢复时卡死,代价是没法再用摄像头;
  • 阻止 USB4 控制器唤醒机器。

这些都不算什么冷门操作,但也都没有任何文档记载。

3. 不支持 ASUS Pen 3.0#

Z13 支持 ASUS Pen 2.0 (SA203H, MPP 2.0)。后继机型 ProArt PX13 支持更新的 ASUS Pen 3.0 (SA205H)。如果你希望用上当前这一代的触控笔,那 Z13 就选错了。

4. M.2 2230,以及无 DRAM 缓存对编译意味着什么#

Z13 和 PX13 都只能装一块 M.2 2230 SSD。只有 30 mm 长,放不下 DRAM 芯片,所以实际上这个尺寸能买到的硬盘全都没有 DRAM 缓存。这类硬盘会借用一小块系统内存(HMB)来存放映射表,并用闪存自身上的高速 SLC 缓存来吸收写入。一旦长时间的连续写入把这块缓存填满,速度就会跌到闪存本身的原始水平。

这对 Rust 很重要。Debug 构建会一遍又一遍地写入数 GB 的编译产物。可选的硬盘很少,而硬盘本身还要饱受摧残。

5. 一再挂掉的 Kingston NV3#

原装的 1 TB 硬盘太小,于是我换上了一块 2 TB 的 Kingston NV3(2230,慧荣 Silicon Motion SM2268XT2 主控,固件 SDX01100)。一开始用得好好的。后来机器开始卡死,文件系统变成只读。本地日志从来保存不下来,所以我通过 UDP 把内核日志实时发送到一台树莓派上。每一次都是硬盘自己的主控崩溃了:

text
nvme nvme0: controller is down; will reset: CSTS=0x3, PCI_STATUS=0x10
nvme nvme0: Disabling device after reset failure: -19
BTRFS: error (device nvme0n1p2 state EA) in ... Transaction aborted (error -5)

CSTS=0x3 表示 Controller Fatal Status(控制器致命状态):SSD 的固件放弃了,硬盘从 PCIe 总线上消失。这种情况我一个月里抓到了十二次。不是过热。最近一次挂掉时,机器几乎处于空闲状态(29 W,55 °C),硬盘本身只有大约 34 °C。

尝试的办法结果
禁用 NVMe 电源状态切换(nvme_core.default_ps_max_latency_us=0)依然崩溃
禁用 PCIe ASPM(pcie_aspm=off)依然崩溃
LTS 内核 6.18依然崩溃
BIOS 301 → 304依然崩溃
固件更新金士顿没有为 SDX01100 提供任何更新
崩溃后移除设备并重新扫描不彻底断电就再也回不来

另外,这期间 SMART 始终一切正常。卡死的主控没法记录自己的卡死。

我手上只有一块,所以没法断言每块 NV3 都会这样。我能告诉你的是:我的这块会,任何软件设置都无济于事,而且 PX13 同样受 2230 的限制。如果你要在这两台机器中的任何一台上做大量编译,请谨慎选择硬盘,并把构建目录放在丢了也无所谓的地方。

6. 在车上当不了笔记本#

Z13 是一台平板。屏幕角度靠背后的支架调节,而不是靠转轴。放在桌上没问题。但在行驶中的车里放在腿上,没有任何东西能固定住角度,我最后放弃了在车上工作。

7. 散热:它的第二种死法#

SSD 之外还有第二种崩溃,从外表看完全一样:卡死,只能长按电源键。但日志讲的是另一回事。内核日志在一行中间戛然而止,没有任何报错。机器是瞬间断电的。

其中五次发生在持续负载下(cargo 构建、本地推理),而且每次的温度都落在一度之内:

断电前最后一次采样CPU 温度SoC 功耗风扇(RPM)
9 月 28 日 13:2886.00 °C62.5 W6500 / 6900
9 月 28 日 17:5585.25 °C62.6 W5700 / 6100
9 月 29 日 07:4485.75 °C60.1 W6400 / 6800
9 月 29 日 13:0685.38 °C67.1 W6400 / 6800
9 月 29 日 14:0486.00 °C66.1 W8600 / 8600

五次关机的温度相差不到一度,说明这是一个断电阈值,而不是热失控。排查过程中我发现了一个真正的 bug:风扇曲线在 70 °C 时就封顶在 64 %。我修好了它,风扇转到了全速,可机器还是在 86.00 °C 时断电了,也就是上表的最后一行。在整个记录期间,CPU 有将近一半的时间处于 84 °C 或以上。这个机身压不住这颗芯片的持续满载。最后一个实验(换用更低的功耗模式)还没做完,我就把它退了。

结论:买台式机#

如果你想要 128 GB 统一内存来做 AI 编程(本地模型、大型构建,全都同时进行),别把它放进平板里。现在内存贵得让人肉疼。既然要为 128 GB 掏钱,就把它放在能全力运转的地方。

Framework Desktop 用的是同一颗 Ryzen AI Max+ 395,最高 128 GB 内存,有两个 M.2 2280 插槽而不是一个 2230,还有真正的风扇和充足的散热空间。Z13 是一件漂亮的东西,作为一台能玩游戏的平板,它令人印象深刻。但作为开发工作站,它发热严重、接口不够用,还废掉了一块 SSD。我的这台要退回去了。