mirror of
https://github.com/YusufOzmen01/quest-kexec.git
synced 2026-10-26 19:37:39 +00:00
Updated README
This commit is contained in:
1 file changed
+10
-31
@@ -1,43 +1,25 @@
|
||||
# Meta Quest kexec
|
||||
# Quest-KeXec
|
||||
|
||||
An experimental ARM64 kexec implementation for Meta Quest headsets.
|
||||
|
||||
It starts a custom Linux kernel from rooted Android without flashing a
|
||||
partition. The included RAM-only initramfs provides a BusyBox shell over USB
|
||||
Ethernet.
|
||||
A kernel module for Meta Quest headsets that allows you to load a custom kernel without unlocking the bootloader of the headset. Based on [kexec-at-home](https://github.com/provide-salad/kexec-at-home)
|
||||
|
||||
> **Note:** This project has only been developed and tested on Meta Quest Pro.
|
||||
> Other Quest headsets require device-specific kernel and loader work.
|
||||
> Other Quest headsets require device specific kernel and loader work.
|
||||
> **ROOT IS REQUIRED**
|
||||
|
||||
## What works on Quest Pro
|
||||
|
||||
- all 8 CPUs
|
||||
- DRM and both panels
|
||||
- USB Ethernet shell
|
||||
- AOP/QMP handoff
|
||||
- syncboss
|
||||
- camera CPAS/CDM
|
||||
- SPMI and SMB5 charging
|
||||
|
||||
The tested kernel changes are available in:
|
||||
|
||||
https://github.com/YusufOzmen01/oculus-linux-kernel
|
||||
|
||||
Patch copies are also included under `kernel/patches/`.
|
||||
A modified kernel for this kexec for the Quest Pro is available [from the repository here](https://github.com/YusufOzmen01/oculus-linux-kernel)
|
||||
The changes done to the kernel are in `kernel/patches/` as patches.
|
||||
|
||||
## Basic build
|
||||
|
||||
Install Clang/LLD, an `aarch64-linux-gnu-` toolchain, Python 3, `adb`, `dtc`,
|
||||
`fdtput`, `curl` and `make`.
|
||||
Install Clang/LLD, an `aarch64-linux-gnu-` toolchain, Python 3, `adb`, `dtc`, `fdtput`, `curl` and `make`.
|
||||
|
||||
Build the kexec modules against the exact Android kernel running on the headset:
|
||||
|
||||
```sh
|
||||
make module KDIR=/path/to/android-kernel-out \
|
||||
LOCALVERSION=-g49638c7a8637
|
||||
make module KDIR=/path/to/android-kernel-out LOCALVERSION=-g49638c7a8637
|
||||
```
|
||||
|
||||
Build the BusyBox USB-network initramfs:
|
||||
To build a basic initramfs that has busybox and USB ethernet (to get shell), run:
|
||||
|
||||
```sh
|
||||
make initramfs
|
||||
@@ -48,15 +30,12 @@ kernel trees.
|
||||
|
||||
## Basic usage
|
||||
|
||||
With rooted Android running:
|
||||
|
||||
```sh
|
||||
# Capture the current runtime device tree and kernel information
|
||||
tools/capture.sh out/captured
|
||||
|
||||
# Prepare the target payload
|
||||
tools/prep.sh out/captured /path/to/target/Image \
|
||||
out/initramfs.gz out/payload
|
||||
tools/prep.sh out/captured /path/to/target/Image out/initramfs.gz out/payload
|
||||
|
||||
# Push, verify and boot it
|
||||
tools/run.sh out/payload
|
||||
|
||||
Reference in new issue
Block a user