Nintendo 3DS (nintendo-ctr)
WARNING: This device is not recommended for future use with postmarketOS due to its armhf architecture. Alpine Linux (the distribution that postmarketOS extends) pmaports#599 has been considering dropping it. The processor of the device may support the armv7 architecture. If so, you can modify the device package and change the architecture accordingly. |
Nintendo 3DS Nintendo 3DS | |
Manufacturer | Nintendo |
---|---|
Name | 3DS |
Codename | nintendo-ctr |
Released | 2011 |
Hardware | |
Chipset | CHANGE_ME |
CPU | ARM11, ARM9, CHANGE_ME |
GPU | CHANGE_ME |
Display | 400x240, 320x200 w/ touchscreen |
Storage | CHANGE_ME |
Memory | 128mb |
Architecture | armhf |
Software | |
Original software | 3DS OS |
postmarketOS | |
Category | testing |
Pre-built images | no |
Mainline | partial |
postmarketOS kernel | 5.11-rc1 |
WARNING: This device is not recommended for future use with postmarketOS due to its armhf architecture. Alpine Linux (the distribution that postmarketOS extends) pmaports#599 has been considering dropping it. The processor of the device may support the armv7 architecture. If so, you can modify the device package and change the architecture accordingly. |
Status: Required packages build and boot, still need a way to get rootfs working
Nintendo 3DS Nintendo 3DS | |
Manufacturer | Nintendo |
---|---|
Name | New 3DS |
Codename | nintendo-ktr |
Released | 2014 |
Hardware | |
Chipset | CHANGE_ME |
CPU | ARM11, ARM9, CHANGE_ME |
GPU | CHANGE_ME |
Display | 400x240, 320x200 w/ touchscreen |
Storage | CHANGE_ME |
Memory | 256mb |
Architecture | armhf |
Software | |
Original software | 3DS OS |
postmarketOS | |
Category | testing |
Pre-built images | no |
Mainline | partial |
postmarketOS kernel | 5.11-rc1 |
The Nintendo 3DS is a handheld video game console released by Nintendo in 2011. A later revision, the New Nintendo 3DS, was released in 2014.
Contributors
Maintainer(s)
Users owning this device
- AAT596 (Notes: Testing/Experimenting with Homebrew)
- AlleM43 (Notes: New XL and Original, both on CFW)
- Bastindo (Notes: Original 3DS with custom firmware)
- BlackEyedSquid (Notes: Original Nintendo 3DS with Luma3DS CFW)
- Coatlessali
- Dolphinana (Notes: XL red, Luma3DS, can run GNU/Linux from firmware loader)
- Earboxer (Notes: nintendo-ktr: New Nintendo 3DS XL)
- Illen (Notes: Nintendo 3DS XL)
- Jacobk (Notes: original model, couldn't figure out how to boot pmOS though)
- Knuxify (Notes: New Nintendo 3DS XL)
- Little-miss-synth (Notes: runs luma3ds, with 3dslinux as alt payload)
- Neko (Notes: 2DS - Homebrewed)
- Oliver193 (Notes: Old 3DS XL, 64GB SDXC, EU firmware, No cfw installed.)
- Roboe (Notes: (second hand) aqua blue O3DS, CTR-001(EUR); version-hardware: CTR-S-EUR-C2, firmware: Sys 11.11.0-43E, storage: 32GB (SD card); never connected to the internet; running Luma3DS CFW chainloaded with boot9strap bootloader (not fastboot3DS!))
- Roboe (Notes: (second hand) black-turquoise N2DS XL, JAN-001; version-hardware: JAN-S-C0, firmware: Sys 11.10.0-43E, storage: 128GB (microSD card); never connected to the internet; running Luma3DS CFW chainloaded with boot9strap bootloader (not fastboot3DS!))
- Schrmh (Notes: 3DS on FW 1.0.0E; 3DS xl and new 3DS. Also have a GW card & Cubic Ninja)
- Sputnik1973 (Notes: XL model super smash bros limited edition.)
- Tfuxu (Notes: Owns a original CTR version in Cosmo Black color)
- Thejsa (Notes: New Nintendo 3DS (nintendo-ktr) x2)
- TryzenAlpensky (Notes: I own both O2DS and O3DS)
- UltrasonicMadness
- Veast (Notes: Untested)
- Vladuwka12 (Notes: New 3DS. Running Luma3DS)
- Zephyr1112 (Notes: Old 2DS, 16GB SDHC, latest EU firmware w/ Luma3DS)
Software used
This port makes use of the 3DS Linux fork, arm9linuxfw and firm_linux_loader maintained by members of the linux-3ds organization on GitHub.
TODO: Looks like there's an upstream MR for adding initrd loading support... perhaps try to package this again? |
Installation
Note: Before you can run Linux on the console, you will first need to install Luma3DS. To do so, follow the guide on 3ds.hacks.guide. Avoid video tutorials as they may be obsolete. |
This is completely safe and will not overwrite your 3DS's internal memory. The kernel is loaded off the SD card by the firm_linux_loader (which can be triggered at startup from Luma3DS's firmware selection menu).
In pmbootstrap init
, choose:
nintendo-ctr
if you own an Old 3DS, Old 3DS XL or Old 2DS.nintendo-ktr
if you own a New 3DS, New 3DS XL or New 2DS XL
Then, run pmbootstrap install
.
The Nintendo 3DS does not have a flashing method, and the bootloader is loaded from the SD card. As such, to install postmarketOS to the device, run the following commands:
$ codename="ctr" # replace with ctr or ktr depending on your console
$ mkdir ~/linux3ds
$ mkdir ~/linux3ds/linux
$ mkdir -p ~/linux3ds/luma/payloads
$ pmbootstrap export
$ cp /tmp/postmarketOS-export/vmlinuz-nintendo-3ds ~/linux3ds/linux/zImage
$ cp ~/.local/var/pmbootstrap/chroot_rootfs_nintendo-*tr/boot/nintendo3ds_*tr.dtb ~/linux3ds/linux
$ cp ~/.local/var/pmbootstrap/chroot_rootfs_nintendo-*tr/lib/firmware/3ds/arm9linuxfw.bin ~/linux3ds/linux
$ cp ~/.local/var/pmbootstrap/chroot_rootfs_nintendo-*tr/lib/firmware/3ds/firm_linux_loader.firm ~/linux3ds/luma/payloads
Then copy the contents of the ~/linux3ds
folder to the root of your 3DS's SD card.
Booting
Note: This does not work yet, and booting will just result in a kernel panic due to the initramfs not being loaded. The initramfs cannot be loaded by the bootloader yet, it is currently meant to be built into the kernel (however this experimental package does not build it with the initramfs). |
While booting your 3DS (on the Luma3DS splash screen, if enabled) press the Start button. A menu will pop up allowing you to select a firmware. Choose firm_linux_loader
from the list.