├── 899-ehci_enable_large_ctl_xfers.patch ├── fusee-nano └── Makefile └── README.md /899-ehci_enable_large_ctl_xfers.patch: -------------------------------------------------------------------------------- 1 | --- a/drivers/usb/host/ehci-hcd.c 2 | +++ b/drivers/usb/host/ehci-hcd.c 3 | @@ -859,14 +859,6 @@ 4 | INIT_LIST_HEAD (&qtd_list); 5 | 6 | switch (usb_pipetype (urb->pipe)) { 7 | - case PIPE_CONTROL: 8 | - /* qh_completions() code doesn't handle all the fault cases 9 | - * in multi-TD control transfers. Even 1KB is rare anyway. 10 | - */ 11 | - if (urb->transfer_buffer_length > (16 * 1024)) 12 | - return -EMSGSIZE; 13 | - /* FALLTHROUGH */ 14 | - /* case PIPE_BULK: */ 15 | default: 16 | if (!qh_urb_transaction (ehci, urb, &qtd_list, mem_flags)) 17 | return -ENOMEM; 18 | -------------------------------------------------------------------------------- /fusee-nano/Makefile: -------------------------------------------------------------------------------- 1 | include $(TOPDIR)/rules.mk 2 | 3 | PKG_NAME:=fusee-nano 4 | PKG_VERSION:=0.4 5 | PKG_RELEASE:=2 6 | 7 | PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) 8 | PKG_SOURCE:=$(PKG_VERSION).tar.gz 9 | PKG_SOURCE_URL:=https://github.com/DavidBuchanan314/fusee-nano/archive/ 10 | PKG_CAT:=zcat 11 | 12 | include $(INCLUDE_DIR)/package.mk 13 | 14 | define Package/fusee-nano 15 | SECTION:=utils 16 | CATEGORY:=Utilities 17 | TITLE:=Tiny FG exploit implementation 18 | URL:=https://github.com/DavidBuchanan314/fusee-nano/ 19 | endef 20 | 21 | define Package/fusee-nano/description 22 | Tiny FG exploit implementation 23 | endef 24 | 25 | define Build/Compile 26 | $(call Build/Compile/Default,INTERMEZZO=/usr/share/fusee-nano/intermezzo.bin) 27 | endef 28 | 29 | define Package/fusee-nano/install 30 | $(INSTALL_DIR) $(1)/usr/bin 31 | $(INSTALL_BIN) $(PKG_BUILD_DIR)/fusee-nano $(1)/usr/bin/ 32 | $(INSTALL_DIR) $(1)/etc/hotplug.d/usb/ 33 | $(INSTALL_DATA) $(PKG_BUILD_DIR)/files/20-tegra_rcm $(1)/etc/hotplug.d/usb/ 34 | $(INSTALL_DIR) $(1)/usr/share/fusee-nano/ 35 | $(INSTALL_DATA) $(PKG_BUILD_DIR)/files/intermezzo.bin $(1)/usr/share/fusee-nano/ 36 | $(INSTALL_DATA) $(PKG_BUILD_DIR)/files/fusee.bin $(1)/usr/share/fusee-nano/payload.bin 37 | endef 38 | 39 | $(eval $(call BuildPackage,fusee-nano)) 40 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # fusee-lede 2 | Instructions/files for building a custom LEDE image to turn cheap routers into a Nintendo Switch "modchip"/"dongle" 3 | 4 | These instructions target the "A5-V11" devices, although you should be able to make this work on any router with USB host support. 5 | 6 | These instructions do not cover the actual installation to the device, see https://openwrt.org/toh/unbranded/a5-v11 7 | 8 | # Usage 9 | 10 | Once installed, just plug in your switch in RCM mode, and the payload will get launched automagically! 11 | 12 | To set a custom payload, replace `/usr/share/fusee-nano/payload.bin`. (`fusee.bin` is bundled as a default payload, from https://github.com/ktemkin/Atmosphere/tree/poc_nvidia/fusee) 13 | 14 | # Compiling From Source 15 | 16 | 1. Clone this repo, and the main LEDE repo 17 | 18 | ```sh 19 | git clone https://github.com/DavidBuchanan314/fusee-lede/ 20 | git clone -b lede-17.01 https://git.lede-project.org/source.git lede 21 | ``` 22 | 23 | 2. Copy over the `fusee-nano` package, and the EHCI patch 24 | 25 | ```sh 26 | cp -r fusee-lede/fusee-nano lede/package/utils/ 27 | cp fusee-lede/899-ehci_enable_large_ctl_xfers.patch lede/target/linux/generic/patches-4.4/ 28 | ``` 29 | 30 | 3. Update LEDE feeds and configure 31 | 32 | ``` 33 | cd lede 34 | ./scripts/feeds update -a 35 | ./scripts/feeds install -a 36 | 37 | make menuconfig 38 | ``` 39 | 40 | If you run into issues here, refer to https://wiki.openwrt.org/doc/howto/build 41 | 42 | When in the configuration menu, you will need to set the following options: 43 | 44 | ``` 45 | Target System => MediaTek Ralink MIPS 46 | Subtarget => RT3x5x/RT5350 based boards 47 | Target Profile => A5-V11 48 | Utilities > fusee-nano => <*> 49 | ``` 50 | 51 | 4. Compile! 52 | 53 | ``` 54 | make -j12 55 | ``` 56 | If all goes well, you should find files ready to flash here: 57 | 58 | ``` 59 | bin/targets/ramips/rt305x/lede-ramips-rt305x-a5-v11-squashfs-factory.bin 60 | bin/targets/ramips/rt305x/lede-ramips-rt305x-a5-v11-squashfs-sysupgrade.bin 61 | ``` 62 | --------------------------------------------------------------------------------