Skip to content

Commit

Permalink
Merge pull request #221 from suchmememanyskill/for-upstream
Browse files Browse the repository at this point in the history
Guide rewrite
  • Loading branch information
eip618 authored Jun 30, 2024
2 parents 737fe21 + 10f7362 commit 03471dd
Show file tree
Hide file tree
Showing 112 changed files with 2,258 additions and 1,667 deletions.
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@

Nintendo Switch homebrew guide written by staff members of the Nintendo Homebrew Discord server.

![nh-server.github.io/switch-guide](https://phoenix.s-ul.eu/opEhcK7q.png)
## Development
You will need Python 3 installed as well as pip3. The [mkdocs website](https://www.mkdocs.org) will explain how to do this, and how to install mkdocs. This guide was developed on Python 3.6 and 3.7.

Expand Down
79 changes: 49 additions & 30 deletions docs/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,36 +2,55 @@

# About this guide

This guide was written by staff members of the [Nintendo Homebrew Discord Server](https://discord.gg/C29hYvh)

 

!!! tip "Credits"
**Flump, jerbear64, Phoenix, xGhostBoyx, Such Meme Many Skill, PhazonicRidley, emmo, dennthecafebabe, Dax, and oreo639.**

Thank you to [everyone else](https://github.com/nh-server/switch-guide/graphs/contributors) that contributed to the guide on GitHub, but special thanks to **noirscape**.

!!! tip ""
[You can find this guide on GitHub](https://github.com/nh-server/switch-guide), It is licensed under the [ISC license.](https://github.com/nh-server/switch-guide/blob/master/LICENSE.md)

!!! tip "Developer / Tool credits"
- [**Atmosphere-NX**](https://github.com/Atmosphere-NX) for [Atmosphere](https://github.com/Atmosphere-NX/Atmosphere).
- [**switchbrew**](https://github.com/switchbrew) for [nx-hbloader](https://github.com/switchbrew/nx-hbloader) and [nx-hbmenu](https://github.com/switchbrew/nx-hbmenu).
- [**nwert**](https://github.com/nwert) and [**CTCaer**](https://github.com/CTCaer) for [Hekate](https://github.com/CTCaer/hekate).
- [**WerWolv**](https://github.com/WerWolv) for [EdiZon](https://github.com/WerWolv/EdiZon).
- [**J-D-K**](https://github.com/J-D-K) for [JKSV](https://github.com/J-D-K/JKSV).
- [**Flagbrew**](https://github.com/FlagBrew) for [Checkpoint](https://github.com/FlagBrew/Checkpoint).
- [**mtheall**](https://github.com/mtheall) for [FTPD](https://github.com/mtheall/ftpd/).
- [**joel16**](https://github.com/joel16/) for [NX-Shell](https://github.com/joel16/NX-Shell).
- [**Cease & DeSwitch**](https://github.com/Cease-and-DeSwitch) for [fusee-gelee](https://github.com/Qyriad/fusee-launcher).
- [**MenosGrante**](https://github.com/MenosGrante) for [Rekado](https://github.com/MenosGrante/Rekado).
- [**eliboa**](https://github.com/eliboa) for [TegraRcmGUI](https://github.com/eliboa/TegraRcmGUI).
- [**vgmoose**](https://github.com/vgmoose), [**pwsincd**](https://github.com/pwsincd), [**rw-r-r_0644**](https://github.com/rw-r-r-0644) and [**crc32**](https://github.com/crc-32) for [hb-appstore](https://github.com/vgmoose/hb-appstore).
- [**Essometer**](https://gbatemp.net/members/essometer.265523/) for collecting patched Switch serials.
- [**Ave**](https://gitlab.com/a) for [90DNS](https://gitlab.com/a/90dns).
- [**Nexrem (meganukebmp)**](https://github.com/meganukebmp) for the [Switch 90DNS Tester](https://github.com/meganukebmp/Switch_90DNS_tester).
- [**exelix11**](https://github.com/exelix11) for [Switch Theme Injector](https://github.com/exelix11/SwitchThemeInjector).
- [**suchmememanyskill**](https://github.com/suchmememanyskill) for [TegraExplorer](https://github.com/suchmememanyskill/TegraExplorer)
This guide was written by community members of the [Nintendo Homebrew Discord Server](https://discord.gg/C29hYvh).

[You can find this guide on GitHub](https://github.com/nh-server/switch-guide), It is licensed under the [ISC license](https://github.com/nh-server/switch-guide/blob/master/LICENSE.md).

-----

### Guide Writers / Maintainers
- [SuchMemeManySkill](https://github.com/suchmememanyskill)
- [DefenderOfHyrule](https://github.com/DefenderOfHyrule)
- [ha1vorsen](https://github.com/ha1vorsen)
- [Dardel](https://codeberg.org/Dardel)
- [MarigoldZephyrNio](https://github.com/MarigoldZephyrNio)
- [Sanras](https://github.com/Sanrax)
- [JeffVi](https://github.com/JeffVi)
- [eip618](https://github.com/eip618)
- [Flump](https://github.com/Flumpster)
- [oreo639](https://github.com/oreo639)
- [thedax](https://github.com/thedax)
- [dorkeline](https://github.com/dorkeline)
- [ihaveahax](https://github.com/ihaveamac)
- [PhazonicRidley](https://github.com/PhazonicRidley)
- [xGhostBoyx](https://github.com/xGhostBoyx)
- jerbear64
- Phoenix
- the Nintendo Homebrew community

Thank you to [everyone else](https://github.com/nh-server/switch-guide/graphs/contributors) that contributed to the guide on GitHub, but special thanks to **noirscape**.

-----

### Developers

- [**Atmosphere-NX**](https://github.com/Atmosphere-NX) for [Atmosphere](https://github.com/Atmosphere-NX/Atmosphere).
- [**switchbrew**](https://github.com/switchbrew) for [nx-hbloader](https://github.com/switchbrew/nx-hbloader) and [nx-hbmenu](https://github.com/switchbrew/nx-hbmenu).
- [**nwert**](https://github.com/nwert) and [**CTCaer**](https://github.com/CTCaer) for [Hekate](https://github.com/CTCaer/hekate).
- [**WerWolv**](https://github.com/WerWolv) for [EdiZon](https://github.com/WerWolv/EdiZon).
- [**J-D-K**](https://github.com/J-D-K) for [JKSV](https://github.com/J-D-K/JKSV).
- [**Flagbrew**](https://github.com/FlagBrew) for [Checkpoint](https://github.com/FlagBrew/Checkpoint).
- [**mtheall**](https://github.com/mtheall) for [FTPD](https://github.com/mtheall/ftpd/).
- [**joel16**](https://github.com/joel16/) for [NX-Shell](https://github.com/joel16/NX-Shell).
- [**Cease & DeSwitch**](https://github.com/Cease-and-DeSwitch) for [fusee-gelee](https://github.com/Qyriad/fusee-launcher).
- [**MenosGrante**](https://github.com/MenosGrante) for [Rekado](https://github.com/MenosGrante/Rekado).
- [**eliboa**](https://github.com/eliboa) for [TegraRcmGUI](https://github.com/eliboa/TegraRcmGUI).
- [**vgmoose**](https://github.com/vgmoose), [**pwsincd**](https://github.com/pwsincd), [**rw-r-r_0644**](https://github.com/rw-r-r-0644) and [**crc32**](https://github.com/crc-32) for [hb-appstore](https://github.com/vgmoose/hb-appstore).
- [**Essometer**](https://gbatemp.net/members/essometer.265523/) for collecting patched Switch serials.
- [**Ave**](https://gitlab.com/a) for [90DNS](https://gitlab.com/a/90dns).
- [**Nexrem (meganukebmp)**](https://github.com/meganukebmp) for the [Switch 90DNS Tester](https://github.com/meganukebmp/Switch_90DNS_tester).
- [**exelix11**](https://github.com/exelix11) for [Switch Theme Injector](https://github.com/exelix11/SwitchThemeInjector).
- [**suchmememanyskill**](https://github.com/suchmememanyskill) for [TegraExplorer](https://github.com/suchmememanyskill/TegraExplorer)

!!! tip ""
![Nintendo Homebrew](img/nh.jpg)
35 changes: 23 additions & 12 deletions docs/css/custom.css
Original file line number Diff line number Diff line change
@@ -1,16 +1,27 @@
summary {
cursor: pointer;
outline: none;
}

code {
white-space: normal !important;
}
@media screen and (min-width: 76.25em) {
.md-nav--lifted > .md-nav__list > .md-nav__item--active > .md-nav__link {
position: absolute;
box-shadow: none;
padding-top: 4px;
}

body {
color: #E0E0E0;
}
.md-sidebar__scrollwrap {
background: rgba(0, 0, 0, 0.2);
border-radius: 10px;
height: fit-content !important;
}

a:not([class]) {
color: #00A3D1;
.md-sidebar__scrollwrap > .md-sidebar__inner {
padding-top: 5px;
padding-bottom: 20px;
}

.md-sidebar.md-sidebar--primary {
order: 1;
}

.md-sidebar__scrollwrap:not(:has(.md-nav.md-nav--secondary)) {
background: transparent;
}
}
31 changes: 15 additions & 16 deletions docs/extras/adding_udev.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
# Linux - Run payload sender without root
# Linux - Run payload injector without root

This section details how to add an udev rule to let you send a payload to the Nintendo Switch without needing to use `sudo`.
This section details how to add an `udev` rule to let you send a payload to your Switch without needing to use `sudo`.

!!! tip ""
The following instructions only work if you have a system that implements `udev`. Most modern distros come with `systemd` already installed, which includes a `udev` implementation.
The following instructions only work if you have a system that implements `udev`. Most modern distros come with `systemd` already installed, which includes a `udev` implementation.

!!! tip ""
Do the following instructions while your Switch is _not_ connected to your computer.
Do the following instructions while your Switch is _not_ connected to your computer.

!!! note "For Arch Linux users:"
The package `android-udev` includes rules that will also allow for payload injection to work without root. Do note this also allows Android specific commands such as `adb` and `fastboot` to also work without root (as is the intention of it.)

 

## Option 1: Manually adding rules and group
### **Option 1: Manually adding rules and group**

!!! tip ""
The following instructions are not for beginners. Only do this if you understand what you are doing.
The following instructions are not for beginners. Only do this if you understand what you are doing.

### Creating a new group
#### **Creating a new group**

To start, we will create a new group and add ourselves to it. The group the Nintendo Switch device will be owned by on Linux will be set to this group.

Expand All @@ -25,12 +25,12 @@ To start, we will create a new group and add ourselves to it. The group the Nint
4. Enter the following command: `sudo usermod -a -G nintendo_switch $USER`. Make sure that the `G` is capitalized!
5. Close the terminal.

### Adding a udev rule
#### **Adding a udev rule**

Next we're gonna add a new udev rule. udev is a device manager for the linux kernel. The rule we're gonna specify is that if the Switch is connected in RCM mode, the group the Switch belongs to will be the group we made in the previous section.
Next we're gonna add a new `udev` rule. `udev` is a device manager for the linux kernel. The rule we're gonna specify is that if the Switch is connected in `RCM`, the group the Switch belongs to will be the group we made in the previous section.

1. Open a terminal.
2. Change to the root user with the following command: `sudo su`. Enter your password when prompted.
2. Change to the root user with the following command: `sudo -i`. Enter your password when prompted.
3. Enter the following command: `mkdir -p /etc/udev/rules.d`.
4. Enter the following command: `echo 'SUBSYSTEMS=="usb", ATTRS{manufacturer}=="NVIDIA Corp.", ATTRS{product}=="APX", GROUP="nintendo_switch"' > /etc/udev/rules.d/10-switch.rules`.
5. Enter the following command: `udevadm control --reload`.
Expand All @@ -41,10 +41,9 @@ You should now be able to run the payload sender without having to use `sudo`.

 

## Option 2: Installing a package with the rules
### **Option 2: Installing a package with the rules**

!!! tip "Note:"
These rules will actually allow _ANY_ user to access your switch via USB, not only _your_ user.
These rules will actually allow _ANY_ user to access your Switch via USB, not only _your_ user.

You may just follow the instructions at <a href="https://github.com/pheki/nx-udev" target="_blank">nx-udev</a>, or if you're on Ubuntu / Debian:

Expand Down
52 changes: 25 additions & 27 deletions docs/extras/alternate_bootsetups.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,43 +3,41 @@
If you need to troubleshoot something, or need to try a different boot setup, read on.

!!! danger "Do I need any of these?"
Unless you are experiencing problems with booting or Atmosphere itself, it's strongly recommended to use the main guide instead of these. They are provided for the sake of completeness.
Unless you are experiencing problems with booting or Atmosphère itself, it's strongly recommended to use the main guide instead of these. They are provided for the sake of completeness.

&nbsp;

### Chainloading Fusee from Hekate
### **Chainloading Fusee from Hekate**

- The latest release of [Hekate](https://github.com/CTCaer/hekate/releases/)
- The latest release of [Atmosphère](https://github.com/Atmosphere-NX/Atmosphere/releases)
- You will need to download both the release zip and the `fusee.bin`

!!! tip "What you need"
- The latest release of [Hekate](https://github.com/CTCaer/hekate/releases/)
- The latest release of [Atmosphere](https://github.com/Atmosphere-NX/Atmosphere/releases)
- You will need to download both the release zip and the `fusee.bin`
- <a href="../../files/extras/hekate_ipl.ini" download>hekate_ipl.ini</a>
#### **Instructions:**


### Instructions

!!! tip ""
1. Insert your Switch's SD card into your PC
2. Copy *the contents of* the Atmosphere `.zip` file to the root of your SD card
3. Copy `fusee.bin` to the atmosphere folder on your SD card
4. Copy the `bootloader` folder from the Hekate `.zip` file to the root of your SD card
5. Copy `hekate_ipl.ini` to the `bootloader` folder on your SD card
6. Setup is complete, now you can boot CFW by injecting the hekate_ctcaer `.bin` file from the Hekate zip
1. Insert your Switch's microSD card into your PC.
2. Copy *the contents of* the Atmosphere `.zip` file to the root of your microSD card.
3. Copy the `bootloader` folder from the Hekate `.zip` file to the root of your microSD card.
4. Copy `fusee.bin` to the `sd:/bootloader/payloads` folder on your microSD card.
5. The setup is complete, you can inject the Hekate payload (Unpatched Switch users) or place the Hekate payload on the root of your microSD card and rename it to `payload.bin` (Modchipped Switch users).
6. Navigate to and select `Payloads` > `fusee.bin`.
- Note: `fusee` uses a set boot order that is not as easily configurable as Hekate. Its boot order is `emuMMC` > `sysCFW` > `stock`.
If an emuMMC isn't present, it will boot into sysCFW for example. Make sure you have a method of blocking Nintendo's servers set up (such as [DNS-MITM](../extras/blocking_nintendo.md/#instructions-ams-dns-redirection)) if you do use `fusee` and have an `emuMMC`.


&nbsp;

### Using Fusee without Hekate
### **Using Fusee without Hekate**

This method will *not* work for Modchipped Switch users.

- The latest release of [Atmosphère](https://github.com/Atmosphere-NX/Atmosphere/releases)
- You will need to download both the release zip and the `fusee.bin`

!!! tip "What you need"
- The latest release of [Atmosphere](https://github.com/Atmosphere-NX/Atmosphere/releases)
- You will need to download both the release zip and the `fusee.bin`

### Instructions
#### **Instructions:**

!!! tip ""
1. Insert your Switch's SD card into your PC
2. Copy *the contents of* the Atmosphere `.zip` file to the root of your SD card
3. Setup is complete, now you can boot CFW by injecting `fusee.bin`
1. Insert your Switch's microSD card into your PC.
2. Copy *the contents of* the Atmosphere `.zip` file to the root of your microSD card.
3. The setup is complete, you can inject the `fusee.bin` payload.
- Note: `fusee` uses a set boot order that is not as easily configurable as Hekate. Its boot order is `emuMMC` > `sysCFW` > `stock`.
If an emuMMC isn't present, it will boot into sysCFW for example. Make sure you have a method of blocking Nintendo's servers set up (such as [DNS-MITM](../extras/blocking_nintendo.md/#instructions-ams-dns-redirection)) if you do use `fusee` and have an `emuMMC`.
Loading

0 comments on commit 03471dd

Please sign in to comment.