Skip to content

Latest commit

 

History

History
105 lines (82 loc) · 3.78 KB

setup-linux.md

File metadata and controls

105 lines (82 loc) · 3.78 KB

Linux

Device specific steps

Some devices require additional setup for UDPIH to work. Click on the device you want to use:

Raspberry Pi Zero (W) / A / A+ / Zero 2 W / 4 / 5 (Expand)

ℹ️ For the Pi Zero and Zero 2 W you will need 2 USB cables, one for powering the Zero and one which can be connected to the Wii U.

ℹ️ For the Pi 4 and 5 you need to provide power through the power headers because the USB-C port is the only port the supports USB OTG and must get connected to the Wii U. Unfortunately, when trying to power the Pi over USB-C using the Wii U's USB ports, the Pi doesn't boot fast enough. The USB-A ports do not support USB OTG and cannot be used for this exploit: you must connect the USB-C port to the Wii U during the exploit.

ℹ️ This guide expects that you use Raspberry Pi OS.

To use USB gadgets(OTG) you need to enable dwc2 by running the command below:

⚠️ Prior to Raspberry Pi OS Bookworm, Raspberry Pi OS stored the boot partition at /boot/.

echo "dtoverlay=dwc2" | sudo tee -a /boot/firmware/config.txt

After running the command reboot the system.

To install the required dependencies run the command below:

sudo apt install git build-essential raspberrypi-kernel-headers
Steam Deck (Expand)

To build and use UDPIH on the Steam Deck, you need to disable the read-only filesystem and initialize the pacman keyring. If you haven't done this before you can follow this guide.

Install the required dependencies by running the command below:

sudo pacman -S base-devel

Next you need to install the required linux headers. Start with figuring out the kernel version by running the following command:

uname -r

You'll get an output like this:

6.1.52-valve16-1-neptune-61

In this case you'd want to install the linux headers for neptune-61:

sudo pacman -S linux-neptune-61-headers # replace neptune-61 with your kernel version

Next you'll have to enable USB Dual Role Device in the BIOS:

  • Power off the Steam Deck.
  • Enter the BIOS by holding the Volume Up (+) button and pressing the Power button.
  • Select Setup Utility.
  • Navigate to Advanced > USB Configuration and select USB Dual Role Device.
  • Change it from XHCI to DRD.
  • Navigate to Exit and select Exit Saving Changes.

Building the UDPIH gadget

  • Clone the repo:
    git clone https://github.com/GaryOderNichts/udpih.git
    cd udpih
  • Download the latest arm_kernel.bin.h from the releases page and copy it to the arm_kernel directory.
    You can also simply run:
    curl -L https://github.com/GaryOderNichts/udpih/releases/latest/download/arm_kernel.bin.h > arm_kernel/arm_kernel.bin.h
  • Now build the kernel module:
    cd linux
    make

Running the UDPIH gadget

Start your device and leave it running for the duration of the exploit. You will leave the device on for all attempts at getting the timing right.

Run the command below to insert the kernel module into the kernel:

sudo insmod udpih.ko

The device is now ready to be used for udpih.

Note

If you reboot your udpih device, you will need to load the kernel module again with the above command.

Continue with "Booting the recovery_menu".

Additional information

If you want to remove the module from the kernel:

sudo rmmod udpih

To show logs and debug information:

sudo dmesg -w