slab: (Default)
slab ([personal profile] slab) wrote2020-05-17 10:15 am

HOWTO make a BeagleBone Black be a flash drive for Xbox modding

If you're wanting to softmod an original xbox, the procedure involves using a small USB flash drive to function as a memory unit in order to get a carefully-crafted save file into the system.

I didn't have a USB flash drive small enough to work, but I do have some BeagleBone Blacks around.

I was able to make a BeagleBone Black act convincingly like a 512MB flash drive with the following process:

  • Grab a firmware image and put it on an SD card. I used "AM3358 Debian 10.3 2020-04-06 4GB SD IoT", which was the current version at the time of this writing.

  • In /etc/defaut/bb-boot:
    • set USB_NETWORK_DISABLED=yes

  • In /opt/scripts/boot/am335x_evm.sh:
    • change usb_ms_ro=1 to 0
    • comment out or remove the following lines for the serial gadget function in run_libcomposite:
      • #mkdir -p functions/acm.usb0
      • #ln -s functions/acm.usb0 configs/c.1

  • By default we load cape overlays, but we don't have any capes, so to improve boot time, in /boot/uEnv.txt:
    • change enable_uboot_overlays=1 to 0
    • change enable_uboot_cape_universal=1 to enable_uboot_cape_universal=0

  • Set up the image file with:
    • rm /var/local/bb_usb_mass_storage.img
    • dd if=/dev/zero of=/var/local/bb_usb_mass_storage.img bs=1024 count=524288
    • mkfs.vfat /var/local/bb_usb_mass_storage.img



You'll probably want to have a external FTDI cable, as this process disables the serial and network interfaces over USB. However, with this setup, I was able to have the Xbox recognize the flash drive as a memory unit and reformat it. ("The memory unit you inserted isn't working correctly. It has been erased.")