Developer xerpi as released Linux for the 3DS, xerpi has done quite a bit of work in the Vita scene and 3DS scene. A while back you may have seen a tweet about Linux on the 3DS, at that time xerpi was doing the porting of it and back then it didn’t do much.

Here what he had to say about his release;

Since I’m using Brahma2, it will only work on FW less or equal than 9.2.

Currently, the environment is very simple, you have Busybox (which “simulates” some programs like ls, cat, top, etc) and Weston (the Wayland compositor) plus a few Weston clients demos (don’t expect me to try to run the X server).Currently, it doesn’t support the SD card, Wi-Fi, the touchscreen, etc because only the ARM9 CPU has access to them

Note: Currently it doesn’t support the SD card, Wi-Fi, the touchscreen, etc because only the ARM9 CPU has access to them, and Linux runs on the ARM11 CPU.

I will have to add a custom ARM9 “kernel” that communicates with the ARM11 CPU.

Don’t expect me to have it coded very soon.



Downloads:

How to compile it yourself:

Step 1: Compiling or Downloading the toolchain Step 1.a: Downloading the toolchain if you have Linux x86-64 Download the Precompiled ARM toolchain Uncompress it to /opt/x-tools/arm-unknown-linux-gnueabihf Step 1.b: Compiling the ARM toolchain Git clone https://github.com/crosstool-ng/crosstool-ng.git Run: autoconf && ./configure –enable-local && make install Run ./ct-ng ct-ng menuconfig Go to Target options Target Architecture -> Select arm Floating point -> Select hardware (FPU) Emit assembly for CPU -> Write mpcore Exit -> Exit -> Save? Yes Run ./ct-ng build



Step 2: Build buildroot Git clone https://github.com/buildroot/buildroot.git Apply the Buildroot patch Copy the Buildroot .config to the buildroot folder Run make (-jN)



Step 3: Build Linux Git clone https://github.com/xerpi/linux.git Copy buildroot/output/images/rootfs.cpio.gz to the linux folder Run sh make_3ds.sh (you can edit the script and change -j3 to the value you want to speedup the compilation)



Step 4: Copy Linux to the SD Copy linux/arch/arm/boot/zImage to the root of your SD card Copy linux/arch/arm/boot/dts/nintendo3ds_ctr.dtb to the root of your SD card



Step 5: Build and copy the 3DS Linux Loader to the SD Git clone https://github.com/xerpi/3DS-Linux-Loader Run make Copy the generated 3DS-Linux-Loader.3dsx to your SD card (inside the 3ds folder or wherever you want)



Source: