Nexmon is a framework for patching Broadcom Wi-Fi firmware. Since Broadcom chipsets are largely FullMAC, it is harder to do nonstandard things with them, such as the patches required to connect to the Wii U as a gamepad. This repository adds patches to enable Broadcom chipsets to do that.
- BCM4356 (Nintendo Switch)
For the Nintendo Switch running L4T kernel 4.9, you should be able to download the release files and do the following:
-
Back up the original firmware located at the following location to somewhere safe:
/lib/firmware/brcm/brcmfmac4356-pcie.bin -
Replace the original firmware:
sudo cp brcmfmac4356-pcie.bin /lib/firmware/brcm/ -
Load the new kernel module: The standard
brcmfmackernel module refuses to load custom firmware we installed, so we must use a modified version. This can be loaded temporarily, but upon next boot the original module will refuse to load until the original firmware is restored (or the custom module is once again loaded). Therefore you may find it more convenient to install it permanently. The custom module/firmware should still remain compatible with standard Wi-Fi connections, however there's a chance you will experience degraded network performance due to the lack of Switch-specific patches in our custom firmware.- Load custom kernel module temporarily:
sudo rmmod brcmfmac sudo insmod brcmfmac.ko - Install and load custom kernel module permanently:
sudo rmmod brcmfmac sudo cp brcmfmac.ko /lib/modules/4.9.*/kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/ sudo modprobe brcmfmac
- Load custom kernel module temporarily:
You should now be able to use Vanilla as normal.
-
Open a Terminal. It is recommended to enter root mode to make installation easier using one of the following:
sudo -iOR
su -
Install the dependencies:
apt install linux-headers-$(uname -r) git libgmp3-dev gawk qpdf bison flex make autoconf libtool texinfo- On 32-bit systems:
TODO - On 64-bit systems:
sudo dpkg --add-architecture armhf sudo apt-get update sudo apt-get install libc6:armhf libisl23:armhf libmpfr6:armhf libmpc3:armhf libstdc++6:armhf sudo ln -s /usr/lib/arm-linux-gnueabihf/libisl.so.23.* /usr/lib/arm-linux-gnueabihf/libisl.so.10 sudo ln -s /usr/lib/arm-linux-gnueabihf/libmpfr.so.6.* /usr/lib/arm-linux-gnueabihf/libmpfr.so.4
- On 32-bit systems:
-
Clone the repository and enter it:
git clone https://github.com/vanilla-wiiu/nexmon.git cd nexmon -
Set up the build environment:
source setup_env.sh -
Compile various tools used during the patching process:
make -
Browse to the
wiiupatch for your chipset. For example, for BCM4356:cd patches/bcm4356/7_35_101_5_sta/wiiu -
Backup the original firmware:
make backup-firmware -
Compile and install the new firmware, and load the custom kernel module:
make install-firmware
NOTE: This will permanently replace the custom firmware but only temporarily load the custom kernel module. Upon next boot, the original kernel module will be loaded and refuse to load the modified firmware. To remedy this, you should either restore the backup firmware made in step 7 or load/install the custom kernel module again (see Usage section for more details).
This is merely a fork of Nexmon that adds patches for the Wii U. For more information about Nexmon, please check the upstream repository.