Nintendo 3DS (nintendo-ctr)

From postmarketOS
Jump to navigation Jump to search
Nintendo 3DS
200px
Nintendo 3DS
Manufacturer Nintendo
Name 3DS
Codename nintendo-ctr
Released 2011
Category testing
Original software 3DS OS
postmarketOS kernel 5.11-rc1
Hardware
Chipset CHANGE_ME
CPU ARM11, ARM9, CHANGE_ME
GPU CHANGE_ME
Display 400x240, 320x200 w/ touchscreen
Storage CHANGE_ME
Memory 128mb
Architecture armhf
Non-Android based device
Features
USB Networking
Unavailable
Flashing
Unavailable
Touchscreen
Display
WiFi
Xwayland
FDE
Mainline
Partial
Battery
3D Acceleration
Accelerometer
Audio
Bluetooth
Unavailable
Camera
GPS
Unavailable
Mobile data
Unavailable
SMS
Unavailable
Calls
Unavailable
USB OTG
Unavailable
NFC
Nintendo New 3DS
200px
Nintendo 3DS
Manufacturer Nintendo
Name New 3DS
Codename nintendo-ktr
Released 2014
Category testing
Original software 3DS OS
postmarketOS kernel 5.11-rc1
Hardware
Chipset CHANGE_ME
CPU ARM11, ARM9, CHANGE_ME
GPU CHANGE_ME
Display 400x240, 320x200 w/ touchscreen
Storage CHANGE_ME
Memory 256mb
Architecture armhf
Non-Android based device
Features
USB Networking
Unavailable
Flashing
Unavailable
Touchscreen
Display
WiFi
Xwayland
FDE
Mainline
Partial
Battery
3D Acceleration
Accelerometer
Audio
Bluetooth
Unavailable
Camera
GPS
Unavailable
Mobile data
Unavailable
SMS
Unavailable
Calls
Unavailable
USB OTG
Unavailable
NFC

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


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 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 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.

See also