incognitojam/vita-linux-port

GitHub: incognitojam/vita-linux-port

将 Linux 6.12 内核移植到 PlayStation Vita 掌机,修复 L2 缓存问题并实现核心硬件驱动支持。

Stars: 0 | Forks: 0

# PlayStation Vita 上的 Linux

PS Vita (PCH-1103) running Linux 6.12 with fastfetch
My Vita (PCH-1103) with fastfetch (custom config, colours need some work)

这是一个将 Linux 6.12 移植到 PlayStation Vita(ARM Cortex-A9 四核 SoC)的项目,基于 [xerpi 的原始 Vita Linux 移植][xerpi-gist] 构建。可以启动到 Buildroot shell,支持 SMP、framebuffer、触摸屏、存储等功能。xerpi 的移植最后在 Linux 5.x 上运行。由于过期的 PL310 L2 缓存数据,较新的内核在解压过程中会挂起或数据损坏(解压程序的 CP15 缓存操作不会传播到需要 MMIO 的 PL310)。xerpi 在 HENkaku Discord 中[确定了根本原因][xerpi-l2-discord]。此次移植应用了该修复方案,并变基到了 Linux 6.12,同时添加了用于 SDHCI 存储、SCE 分区表和基于 syscon 重启的新驱动程序。 ## 状态 **Linux 可启动到 Shell。** 这是一个活跃的开发/研究项目。 已支持: - 4x Cortex-A9 CPUs (SMP),480 MB RAM - 960x544 OLED framebuffer - UART 串口控制台 - 触摸屏和按键输入(通过 syscon) - GPIO LED,RTC - eMMC 存储 (SDHCI) — 所有 VitaOS 分区可挂载 - WiFi(Marvell SD8787 通过 mwifiex)— 定制 syscon 电源序列 - 干净重启回 VitaOS 尚未支持: - USB(UDC 基址未知 — 需要逆向工程) - SD2Vita(需要先设置 VitaOS 插件) - Sony 专有记忆棒(从 Linux 端) 详细发现和后续步骤请参阅 [PROGRESS.md](PROGRESS.md)。 ## 快速入门 需要一台固件版本为 3.60 或 3.65 的 PS Vita(1000/2000/PSTV),并安装了 [HENkaku enso](https://henkaku.xyz/) 以及 UART 串口连接。 ``` git clone --recursive https://github.com/incognitojam/vita-linux-port.git ``` 有关前置条件(macOS 或 Linux)以及构建/部署说明,请参阅 **[BUILDING.md](BUILDING.md)**。简短版本:`make deploy` 构建内核,通过 FTP 上传到 Vita,并启动 Linux。 ## 文档 - [BUILDING.md](BUILDING.md) — 构建前置条件和说明 - [PROGRESS.md](PROGRESS.md) — 详细状态、技术发现、后续步骤 - [HARDWARE.md](HARDWARE.md) — 外设地址、寄存器映射、引脚定义 ## 仓库结构 | Path | Description | |------|-------------| | `linux_vita/` | 内核源码 (git submodule) | | `vita-baremetal-linux-loader/` | Baremetal 加载器 (git submodule) | | `Makefile` | 构建/部署/启动编排 | | `serial_log.py` | 带日志记录的串口控制台 | | `boot_watch.sh` | 带阶段跟踪的启动进度监视器 | | `vita_cmd.sh` | 通过串口在 Vita 上运行命令 | ## 致谢 本项目建立在 Vita 自制软件和逆向工程社区许多人的工作基础之上: - **[xerpi](https://github.com/xerpi)** — Vita 的原始 Linux 移植、baremetal 加载器、libbaremetal 以及广泛的硬件研究。 [构建说明][xerpi-gist] · [Kernel 仓库](https://github.com/xerpi/linux_vita) · [Baremetal 加载器](https://github.com/xerpi/vita-baremetal-linux-loader) - **[Team Molecule](https://twitter.com/teammolecule)** (Davee, Proxima, xyz, YifanLu) — HENkaku、enso 以及 Vita 安全研究,使这一切成为可能 - **[TheFloW](https://github.com/TheOfficialFloW)** — 对 Vita 自制软件和漏洞利用的主要贡献 - **[motoharu-gosuto](https://github.com/motoharu-gosuto)** — 逆向了 SceSdif/SceSdstor(我们 SDHCI 驱动中使用的 SDIF GIC 中断号的来源) - **[HENkaku][henkaku-discord]** 社区和 **[wiki](https://wiki.henkaku.xyz/)** 贡献者 另请参阅 [HENkaku wiki Linux 驱动状态页面][driver-status]。 ## 关于 AI 的说明 我在这个项目中广泛使用 AI —— 用于逆向工程、硬件分析、编写和审查代码,以及理解内核中不熟悉的部分。我尝试在实践中学习和理解,将 AI 作为帮助我开发的工具,而不是让它自主工作。我不打算直接向上游提交 AI 生成的代码。
标签:ARM Cortex-A9, Buildroot, Cutter, eMMC存储, FrameBuffer, HENkaku, Homebrew, Linux 6.12, Linux内核移植, mwifiex, PlayStation Vita, SDHCI, SMP多核, SONY PSV, UART串口, WiFi驱动, 云资产清单, 内核开发, 固件研究, 嵌入式系统, 开源硬件, 掌机, 极客项目, 物联网, 硬件破解, 系统底层, 网络安全监控, 自制软件, 逆向工具, 逆向工程, 驱动开发