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.
- SSH: You can use it as a handheld wireless ssh/telnet terminal or ssh in remotely from your PC
- FTP/WWW: You can use it to download from FTP/WWW sites using the aforementioned web browsers or the ncftp client. You can also use your DS as a FTP/WWW server using ftpd and boa.
Games: You can play various text based games, including frotz. GPF has also ported xrick.
- IRC: You can use irssi to chat on irc networks.
- File management and editing: Along with the usual basic file operations you can also unzip, untar, gunzip, bunzip and dldi patch files. You can also edit files using Vi, nano and hexedit.
- Mail: You can use nail to read and send POP3/IMAP emails. Most web based emails such as Hotmail and GMail can be accessed using the text mode browsers.
- Spreadsheet: You can create spreadsheets using sc
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?
If you're a citizen of USA, note that the DSLinux project respects the DMCA.
Can I use DSLinux to play ripped games?
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.
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.
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?
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:
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?
Is there any place I can go to find more information on the DS?
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.
Are there any limitations in DSLinux compared to standard Linux?
Yes, there are.
The NDS does not have an MMU. This means that DSLinux has no virtual memory, which is a way to make a program think that it owns all the memory in a computer, and also to isolate programs from one another. DSLinux can still run multiple programs at the same time, but all programs live in the same memory address space and are relocated at run time so they don't overlap. This means that any program can access memory anywhere, so it can read arbitrary files, spy your passwords, crash the kernel and do many more nasty evil things. There is no way around this, apart from making sure that the programs included in DSLinux are all well-behaved. The lack of an MMU also prevents paging of memory, which means that DSLinux cannot use memory as efficiently as Linux does on a PC, for example.
You may find the little amount of RAM and relatively small size of storage media available somewhat limiting. DSLinux has only 4MB of RAM available on most devices. On some Slot-2 devices that have built-in RAM (see here for a list), DSLinux can use up to 32MB of RAM.
- Typing on the touchpad with a stylus does not exactly feel as good as a real keyboard.
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.