DSLinuxFAQ

 

Basics

What is NDS?

It's an acronym for the Nintendo DS. The Nintendo DS is a portable handheld game console sold since 2004.

What is DSLinux?

DSLinux is a port of Linuxto the Nintendo DS.

Why port Linux to the DS?

There's plenty of uses for DSLinux, some consider it as an educational hacking project, educational for themselves and for others.

What can you do with it?

As DSLinux is and always be a 'Work in Progress' it is not recommended for users who have no Linux or command line experience . If you are looking for a 'plug and play' solution for mp3's/web browsing I suggest you have a look at the excellent DSOrganize. If this is the first time you have used a version of Linux you may find the learning curve quite steep but if you keep at it you may find it extremely rewarding.

Most applications bundled with DSLinux are text based and the few graphical applications that exist (PIXIL, graphical Links) are very buggy at present.

Please note DSLinux currently requires some kind of RAM expansion at present to be fully usable.

You can also use it for coding using MicroPerl. You could use PlayTZX to play Spectrum ZX tapefiles and use it to boot a ZX Spectrum.

Read through this wiki to find out more about what DSLinux can do.

Is there a GUI?

Yes, part of the PIXIL desktop has been ported, but be warned that it is at a very alpha stage and noone is currently working on it.

Is it legal?

Of course.

If you're a citizen of USA, note that the DSLinux project respects the DMCA.

Can I use DSLinux to play ripped games?

No.

And please don't ask anything related to ripping games on the forums, mailing lists or IRC. This project is about Linux on the Nintendo DS, nothing else. Thank you.


Features

Is DSLinux usable now? With all the DS's features?

DSLinux supports most hardware in the DS at this point, including the touchscreen, sound, wifi and various storage devices, but not the mic.

Is it possible to run all Linux software?

To portan application, the source code must be available and be compiled as a binary for DSLinux and the DS processor. If it's a text app that runs under the console you will probably be able to port it but for graphical apps it's improbable due to memory constraints.

If I use DSLinux, can I still play official games?

You can play official games before and after running DSLinux. You just have to reboot the console.

Does DSLinux harm my DS in any way?

No. DSLinux makes no changes to your DS.


Running

How do I get Linux on my DS?

First you'll need to be able to run unofficial code on your DS. See herefor a quick guide.

Where is DSLinux stored?

DSLinux can be stored on any Slot-1 Device or Slot-2 device that supports DLDI. If your device does not support DLDI you can still run DSLinux but you will not be able to access files on the media whilst DSLinux is running. A DSLinux install takes about 5-55MB of space on the media it is stored on.

If you have a compatible wireless card and Flashme installed you can also use WirelessMultibootto send DSLinux via wifi and "Download Play".

How do I boot DSLinux?

See here.

Is there any other hardware that I need?

You will probably want some kind of RAM expansion in Slot-2 otherwise you'll run out of memory very quickly, so you will only be able to run simple text only programs.

There is also a list of recommended hardware.

Do I need extra RAM? What devices can provide extra RAM

If you want to do anything apart from very simple file operations (eg web browsing) you will need some kind of extra RAM in Slot-2. Most DSLinux apps only require ~8MB. See herefor a list of Slot-2 devices that can provide extra memory. Slot-1 devices cannot provide any extra memory.

How do I start the GUI?

The PIXILsuite has been ported but is currently in an alpha stage of development, hence it is very buggy and slow. It also requires you to have a supported RAM expansion in Slot-2.

To start PIXIL, type:

/usr/pixil/nxstart.sh

Why doesn't DSLinux support reading from or writing to a CF or SD card on my favorite storage device?

These days most homebrew devices are supported via the DLDIframework. If there is no DLDI driver for your device, why have you bought it in the first place?


Misc.

Is there any place I can go to find more information on the DS?

The DS's hardware is described in detail on sites like dstek and gbatek.

Why are all of the methods to run DSLinux called 'SomethingMe'?

The first method was called 'PassMe' by Natrium42. After that, the others developers have kept the 'XxxMe' style when they found new methods to boot the DS. Don't use the 'XxxMe' for other uses because it is not logically correct and it can confuse new users.

What programming languages are used to develop DSLinux?

The Linux kernel is written in C and a bit of assembly for hardware-specific code that cannot be expressed in C. Because the DS has an ARM processor, hardware specific code for dslinux is written in ARM assembly. Applications for DSlinux can be written in any language, as long as the language can be compiled for ARM, or, if the language is interpreted, an interpreter has been ported to DSlinux.

How can I help?

If you are a programmer, check the TODO list for open tasks. Please communicate and contact other developers.

If you don't know how to program, you can still help a lot by contributing to this wiki, by playing around with DSLinux, and by sharing your experiences and tips and tricks with the community and answering questions on the forums.


Limitations

Are there any limitations in DSLinux compared to standard Linux?

Yes, there are.

Wait! Can't DSLinux use a swap partition to overcome the RAM limitation?

No. Because the NDS has no MMU, DSLinux has no virtual memory, so it cannot swap at all.

In theory you could still create a system that could use disk space to work around ram limitations. The concept of overlayscomes to mind. But that system wouldn't be Linux anymore.

Isn't MMU-less virtual-memory possible? Can't the MMU be software emulated?

This is not practical. A software-emulated MMU is so slow you would be bored out of your mind when dslinux had just finished booting up.

Help! It doesn't work! What does error number X mean?

Have a look at the troubleshooting section.