-
Notifications
You must be signed in to change notification settings - Fork 16
Home
$ sudo apt install git build-essential flex bison gcc-arm-linux-gnueabi libssl-dev bc gcc-arm-none-eabi
Make sure you've also built firm_linux_loader, arm9linuxfw and buildroot.
Alternatively you can also fetch binaries off the repo releases.
$ git clone https://github.com/linux-3ds/linux.git --depth=1
This is optional if you know how to create your own rootfs.cpio.gz, otherwise you may use this simple one for now until we create a more full featured release. This is the userspace that we bundle into the kernel image as a "ram disk" for simplicity so we can focus on driver development during kernel bringup.
$ cd linux
$ wget https://github.com/linux-3ds/buildroot/releases/download/latest/rootfs.cpio.gz
The defconfig always attempts to integrate the rootfs from a file called rootfs.cpio.gz
in the linux kernel tree directory, so if you want to build your own you can follow the instructions in the buildroot repo.
$ ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- make -j$(nproc) nintendo3ds_defconfig all
Place arch/arm/boot/zImage
, arch/arm/boot/dts/nintendo3ds_ctr.dtb
, and arch/arm/boot/dts/nintendo3ds_ktr.dtb
on the sdcard under linux/
example:
$ cp arch/arm/boot/zImage /media/nick/6332-3234/linux/zImage
$ cp arch/arm/boot/dts/nintendo3ds_ctr.dtb /media/nick/6332-3234/linux/.
$ cp arch/arm/boot/dts/nintendo3ds_ktr.dtb /media/nick/6332-3234/linux/.
You need to boot the firm_linux_loader.firm
file which will in turn load all the generated binaries (zImage
, nintendo3ds_ctr.dtb
or nintendo3ds_ktr.dtb
depending on your model and arm9linuxfw.bin
) into memory and boot the kernel.
The default rootfs will ask you a username and password, currently there are no users so you can log in as root
with the password toor
.