ps5-linux-loader:利用 Hypervisor 漏洞运行自定义引导加载程序的 Linux 载荷

Lobsters Hottest 工具

摘要

ps5-linux-loader 是一种 Linux 载荷,它利用 PS5 Phat 和 Slim 主机(固件 3.00-7.61)上的 Hypervisor 漏洞运行自定义引导加载程序,从而启用完整的 Linux 桌面使用,支持 GPU 加速、USB、蓝牙和 M.2 SSD。

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

缓存时间: 2026/07/05 10:29

ps5-linux/ps5-linux-loader 源代码:https://github.com/ps5-linux/ps5-linux-loader

ps5-linux

ps5-linux 利用修补过的 HV 漏洞,将你的 PS5 Phat 和 Slim 主机(运行 3.00-7.61 固件)改造为一台功能强大的 Linux 电脑,充分释放其硬件潜能用于桌面使用。凭借 8 个 CPU 核心(16 线程)@ 3.5 GHz2.23 GHz 的 GPU,它提供了足够的性能来流畅运行 Steam 游戏和各种模拟器。

特性:

  • HDMI 4K60 视频和音频输出
  • M.2 SSD 作为专用 Linux 分区
  • 所有 USB 端口可用于外设
  • 通过自定义 ahci 驱动使用蓝光光驱
  • 通过自定义 xhci 驱动使用内部蓝牙
  • 通过自定义 gbe 驱动使用以太网端口

替代文本

PS5 固件

ps5-linux 仅在以下固件版本的 PS5 Phat 和 Slim 上得到支持:

  • 3.003.103.203.21(不支持 M.2)
  • 4.004.024.034.504.51(支持 M.2)
  • 5.005.025.105.50(支持 M.2)
  • 6.006.026.50(支持 M.2)
  • 7.207.407.61(支持 M.2)

未来可能会添加对 1.xx 和 2.xx 固件的支持,但我们不会优先进行这项工作。如果你的固件版本介于之间,或者你想更新到特定固件,请从 darthsternie.net 下载正确的 PUP(https://darthsternie.net/ps5-firmwares/)并按照官方指南(https://www.playstation.com/en-us/support/hardware/reinstall-playstation-system-software-safe-mode)升级你的 PS5。显然你不能降级。

硬件

要运行 ps5-linux,你需要一些必需和可选的硬件:

  • 必需:至少 64GB 的 USB 驱动器(最好是外置 SSD),用于安装和运行 Linux。
  • 必需:USB 键盘/鼠标(也支持无线适配器)。
  • 可选:USB 无线网卡,用于 WLAN 上网。
  • 可选:兼容 PS5 的 M.2 SSD(参见官方指南(https://www.playstation.com/en-us/support/hardware/ps5-install-m2-ssd)),用于从 SSD 运行 Linux。
  • 可选:蓝牙适配器,用于连接 PS5 DualSense 手柄。

配置 PS5 设置

  • 非常重要:启用休息模式功能:
    • 进入 设置系统省电休息模式中可用的功能,将 为 USB 端口供电 设置为 始终
  • 非常重要:禁用 HDMI 设备关联:
    • 进入 设置HDMI启用 HDMI 设备关联
  • 建议:禁用自动更新:
    • 进入 设置系统软件系统软件更新与设置
  • 建议:禁用自动错误报告:
    • 进入 设置系统软件自动报告系统软件错误

如果你重置了 PS5 设置或重新安装了固件,你需要重新应用这些设置。

安装

1. 获取 Linux 镜像

预构建镜像

你可以从 ps5-linux-image(https://github.com/ps5-linux/ps5-linux-image/releases/tag/latest)下载。推荐使用 ps5-ubuntu2604.img.xz。解压 .xz 文件。

自行构建镜像

如果你使用 Windows,以管理员身份在 PowerShell 或 CMD 中运行以下命令安装 WSL:

bash wsl --install

安装 docker:

bash sudo apt update sudo apt install docker.io -y sudo service docker start sudo usermod -aG docker $USER

然后克隆并构建:

bash cd ~/ git clone https://github.com/ps5-linux/ps5-linux-image cd ps5-linux-image chmod +x ./build_image.sh ./build_image.sh --distro ubuntu2604

构建完成的镜像写入到 output/ps5-ubuntu2604.img

2. 将镜像刷写到 USB

最小驱动器容量:64 GB。强烈建议使用外置 SSD。

Linux/macOS:

``bash

使用 lsblk / diskutil list 检查驱动器名称

sudo dd if=output/ps5-ubuntu2604.img of=/dev/sdX bs=4M status=progress conv=fsync ``

Windows(Balena Etcher):

下载 Balena Etcher(https://etcher.balena.io/),选择 .img 文件,选择你的 USB 驱动器,点击“刷写”。

3. 将 USB 驱动器插入 PS5

以下 USB 端口支持启动:

  • 前下部的 Type-C 端口
  • 后部的 Type-A 端口

前上部的 Type-A 端口是 USB 2.0,速度较慢,因此不推荐。

4. 运行越狱

固件 3.00-5.50

  1. 通过 git clone https://github.com/idlesauce/umtx2 克隆
  2. 通过 dns.conf 配置 fake dns,将 manuals.playstation.net 指向你电脑的 IP 地址
  3. 运行 fake dns:sudo python fakedns.py -c dns.conf
  4. 在另一个终端中运行 HTTPS 服务器:sudo python host.py
  5. 进入 PS5 高级网络设置,将主 DNS 设置为你电脑的 IP 地址,次 DNS 保留为 0.0.0.0
  6. 进入设置中的用户手册,接受未受信任的证书提示,然后运行。

固件 6.00-7.61

  1. 按照 https://github.com/Gezine/Y2JB 安装 Y2JB。
  2. 运行内核 exploit:python3 payload_sender.py $PS5IP 50000 payloads/lapse.js

5. 发送载荷

如果你在 ARM64 Linux 上,请先安装 x86-64 交叉编译工具:

bash sudo apt install gcc-x86-64-linux-gnu binutils-x86-64-linux-gnu

下载 ps5-linux-loader.elf(https://github.com/ps5-linux/ps5-linux-loader/releases/),或者安装 ps5-payload-sdk(https://github.com/ps5-payload-dev/sdk)并自行编译:

bash git clone https://github.com/ps5-linux/ps5-linux-loader cd ps5-linux-loader make

使用你的 $PS5IP(页面显示)发送载荷:

bash socat -t 99999999 - TCP:$PS5IP:9021 < ps5-linux-loader.elf

如果一切成功,载荷将自动进入休息模式。等待橙色 LED 停止闪烁并保持常亮。只有此时,再次按下电源按钮启动 PS5 进入 Linux。如果启动成功,LED 应变为白色。如果它启动回 PS5 系统,则是因为你过早按下了电源按钮。或者你没有按照上述说明启用休息模式功能。如果它卡死而非进入休息模式,则可能是因为启用了 incompatible 的 etahen/kstuff。请禁用它们。如果 LED 白亮但屏幕仍然黑屏,则:

  • 尝试删除 cmdline.txt 中的 video=DP-1:1920x1080@60 行。
  • 尝试开启或关闭 HDCP(两种都试)。
  • 尝试不同的显示器或采集卡,最好是不同的分辨率。目前,某些显示器存在问题。
  • 尝试在 USB 驱动器的 FAT32 分区的 cmdline.txt 中设置 amdgpu.force_1080p=1

如果这些都不行,请在我们的 Discord 服务器(https://discord.gg/PeMGVB7BAm)中报告问题,并提供你的 EDID 信息。

首次启动

配置系统并记住你的登录密码。然后,我们建议执行以下设置和命令:

  1. 禁用屏幕保护,因为它目前存在错误。
  2. 你可能需要禁用并重新启用有线/WLAN 连接才能上网。
  3. 锁定软件包以防止在执行 apt upgrade 时更新内核:

bash sudo apt-mark hold linux-generic linux-generic-hwe-24.04 linux-generic-hwe-26.04 linux-image-generic linux-image-generic-hwe-24.04 linux-image-generic-hwe-26.04 linux-headers-generic linux-headers-generic-hwe-24.04 linux-headers-generic-hwe-26.04

  1. 安装 Firefox:

bash sudo snap install firefox

  1. 更新 mesa:

bash sudo snap refresh mesa-2404 --channel=latest/edge sudo add-apt-repository ppa:kisak/kisak-mesa sudo apt update sudo apt upgrade

  1. 克隆我们的 ps5-linux-tools(https://github.com/ps5-linux/ps5-linux-tools):

bash sudo apt install zlib1g-dev git clone https://github.com/ps5-linux/ps5-linux-tools cd ps5-linux-tools make

  1. 如果你有 Marvell WLAN 芯片(lspci -nn 显示 40:00.7 Ethernet controller [0200]: Marvell Technology Group Ltd. Device [1b4b:2b56] (rev 02)),则可以安装 WLAN 驱动:

bash git clone https://github.com/ps5-linux/ps5-linux-mwifiex cd ps5-linux-mwifiex sudo ./install.sh

M.2 安装

你可以将 M.2 SSD 专用于 Linux(这意味着你不能将其用于 PS5 游戏存储)。

  1. 按照官方指南(https://www.playstation.com/en-us/support/hardware/ps5-install-m2-ssd)安装 M.2 SSD。
  2. 非常重要:如果你之前将 M.2 SSD 用于游戏,请在 PS5 上进入 设置存储M.2 SSD 存储 重新格式化它。
  3. 在 PS5 上启动 Linux,并运行以下命令初始化你的 M.2:

bash cd ps5-linux-tools sudo ./m2_init

  1. 通过 sudo reboot 重启。如果你的 PS5 再次要求你格式化 M.2,请在我们的 Discord 服务器(https://discord.gg/PeMGVB7BAm)中报告此问题,并提供你的 M.2 型号和存储容量。
  2. 在 PS5 上重新启动 Linux。
  3. 复制你在安装期间构建的 ps5-ubuntu2604.img 镜像,或在 PS5 上重新构建。然后,将其安装到你的 M.2:

bash cd ps5-linux-tools chmod +x ./m2_install.sh sudo ./m2_install.sh --install $PATH_TO_YOUR_IMG

现在,你可以通过以下命令从 M.2 启动进入 Linux:

bash cd ps5-linux-tools chmod +x ./m2_exec.sh sudo ./m2_exec.sh

然后按照上一节的相同说明操作。为了每次从 M.2 启动 Linux,你可以编辑 /boot/efi/cmdline.txt 中的标签,将 root=LABEL=ubuntu2604 改为 root=LABEL=ubuntu2604-m2。你仍然需要一个 FAT32 格式的 USB 驱动器,但你可以重新格式化 ext4 分区。

风扇与增压控制

我们提供了一个简单工具,允许你将 CPU 提升至 3500MHz,GPU 提升至 2230MHz,并调整风扇曲线:

bash cd ps5-linux-tools sudo ./ps5_control --fan on sudo ./ps5_control --boost on

开启增压时务必同时开启风扇,这是官方 PS5 系统的做法。

更新 ps5-linux

对于未来的任何 ps5-linux 更新,你可以从 ps5-linux-patches(https://github.com/ps5-linux/ps5-linux-patches/releases)在 PS5 上下载 .deb.pkg.tar.zst,并像普通软件包一样安装它们。

常见问题

  • 问:未来会支持 >=8.00 的更高固件吗?
  • 答:不会。
  • 问:为什么我不能在 3.xx 上使用 M.2?
  • 答:因为 PS5 在连接 M.2 的情况下无法启动。
  • 问:我可以双系统启动 Linux 和 PS5 系统吗?
  • 答:不能,这是一个软改。你需要重新运行 exploit 才能启动进入 Linux。
  • 问:我可以让 Linux 进入待机状态并恢复吗?
  • 答:不能,不支持此功能。不过我们可能会添加一个关机功能,将你的 PS5 置于休息模式,这样再次开机时可以重新启动 Linux。
  • 问:如果我安装 Linux,还能继续使用 PS5 吗?
  • 答:可以,内部 SSD 不会被修改。
  • 问:我可以在 Linux 中使用 PS5 的网卡/WLAN 模块吗?
  • 答:目前仅 Marvell 芯片组支持 WLAN。所有型号都支持以太网。
  • 问:DualSense 手柄能用吗?
  • 答:可以,通过内部蓝牙和蓝牙适配器均可。
  • 问:支持哪些分辨率和刷新率?
  • 答:广泛支持 1080p、1440p 和 2160p @ 60Hz。目前仅在 DELL S3225QC 上确认支持 1440p@120Hz。未来可能会添加 120Hz 或 30Hz 支持。
  • 问:重启后出现“正在修复”屏幕和“您的 PS5 未正确关闭。”屏幕,这正常吗?
  • 答:正常,且无害。

提示与技巧

  • 如果游戏中出现图形问题,可以添加环境变量 RADV_DEBUG=nohiz,这也是 BC250(https://elektricm.github.io/amd-bc250-docs/drivers/environment/#critical-environment-variables)推荐的做法。
  • 你可以调整 FAT32 分区中 cmdline.txt 里的内核命令行。
  • 你可以调整 FAT32 分区中 vram.txt 里的 VRAM 大小。默认使用 512MB(0x20000000),这启用了动态 VRAM 分配(https://elektricm.github.io/amd-bc250-docs/bios/flashing/#why-flash-the-bios)。
  • 显示器热插拔可能有效,但不会自动更改分辨率。
  • 某些显示器如果在 cmdline.txt 中设置了 video=DP-1: 参数,会黑屏。以下显示器已确认在没有 video=DP-1:1920x1080@60 的情况下正常工作:
    • MSI MAG274Q QD E2、DELL S2721DGF、DELL U2515H(1440p@60Hz)
    • 可能也包括:LG 27GL850、Lenovo Legion Y27q、ViewSonic Elite XG270QG

AMD BC250 文档(https://elektricm.github.io/amd-bc250-docs/)中的许多配置、提示和技巧也适用于 PS5。

错误

  • 屏幕保护程序无法正常工作
  • 某些显示器上 HDMI 音频输出无效
  • 某些显示器上 HDMI 1440p 和 2160p 视频输出无效

上游提交的更改

在本项目期间,我们向上游提交了一些更改:

  • drm/amd: fix dcn 2.01 check(https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/gpu/drm/amd/display/dc?id=39f44f54afa58661ecae9c27e15f5dbce2372892)
  • amd/addrlib: Add more GFX1013 GPUs(https://gitlab.freedesktop.org/mesa/mesa/-/commit/44bed00b8bbcb1825e2c920cf1a828efdc72b1f1)

Discord

加入我们的 Discord 服务器(https://discord.gg/PeMGVB7BAm),一起庆祝 PS5 上的 Linux,获取帮助,学习技巧与诀窍,参与开发,或报告问题。

致谢

  • theflow(https://github.com/TheOfficialFloW):ps5-linux-loader(https://github.com/ps5-linux/ps5-linux-loader)、ps5-linux-patches(https://github.com/ps5-linux/ps5-linux-patches)、ps5-linux-tools(https://github.com/ps5-linux/ps5-linux-tools)
  • c0w(https://github.com/c0w-ar):ps5-linux-loader(https://github.com/ps5-linux/ps5-linux-loader)
  • resulknad(https://github.com/resulknad):ps5-linux-image(https://github.com/ps5-linux/ps5-linux-image)
  • rmuxnet(https://github.com/rmuxnet):PS5 以太网驱动(https://github.com/ps5-linux/ps5-linux-patches/commit/643e214d7bd37f292045fc0dbb821e421f7a3e47)
  • fail0verflow(https://github.com/fail0verflow):prosperous(https://github.com/fail0verflow/prosperous)
  • flatz(https://github.com/flatz):HV exploit(https://gist.github.com/flatz/620ddda6d64acca6d1c990dc3080ac0e)
  • cragson(https://github.com/cragson):HV exploit 实现(https://github.com/cragson/ps5-hen)
  • john-tornblom(https://github.com/john-tornblom):PS5 SDK(https://github.com/ps5-payload-dev/sdk)
  • echostretch(https://github.com/echostretch):偏移量和测试
  • kirathenotebook(https://github.com/kirathenotebook):Beta 测试和 README 贡献
  • 15432:BC-250 上的测试

相似文章

Sega MegaDrive上的Linux

Hacker News Top

一个项目将Linux移植到Sega MegaDrive游戏机,使用EverDrive卡带,提供了构建和启动指南,以及一个用于模拟的自定义QEMU分支。

HDD固件破解 第一部分

Lobsters Hottest

作者详细描述了如何通过硬件和软件技术,在没有AI辅助的情况下,对HDD固件进行转储、分析和修改,以实现Xbox 360的延迟利用。

usbliter8 - Apple A12/A13 bootROM漏洞利用

Lobsters Hottest

本文详细介绍了苹果A12/A13 SoC中一种新颖的bootROM漏洞,该漏洞利用USB控制器中的硬件缺陷和配置缺陷,从而破坏了启动链。文中还提供了一个概念验证。

usbliter8: A12/A13 SecureROM漏洞利用

Lobsters Hottest

usbliter8是一种针对苹果A12和A13 SoC的tethered bootrom漏洞利用,使用基于RP2350的微控制器板,通过利用USB控制器漏洞来获取底层设备访问权限。