DSLinux
# DSLinux

DSLinux est un portage du système d'exploitation Linux sur la Nintendo DS. Le développement n'en est encore qu'à ses débuts.

## Comment exécuter du code sur la DS

Il existe des cartes flash pour la Game Boy Advance qu'il est possible d'utiliser dans le port GBA de la DS (Slot 2), permettant ainsi l'exécution de code.

Il est nécessaire de recourir à l'un des systèmes WifiMe, PassMe ou FlashMe pour contourner la protection RSA mise en place par Nintendo pour empêcher l'utilisation de code non signé.

* WifiMe exploite le mode multijoueur sans fil de la DS pour exécuter du code non signé.
* PassMe est un système matériel qui autorise l'exécution de code non signé en fournissant une signature valide provenant d'un jeu DS original, mais en lisant le code à un autre endroit, en l'occurrence une carte flash.
* FlashMe flashe le firmware de la DS avec un firmware non officiel qui autorise l'exécution de code non signé en provenance du lecteur GBA, et ce sans matériel additionnel.

Plus récemment, des solutions utilisant directement une cartouche pour le Slot 1 de la Nintendo DS ont vu le jour. Certaines intègrent une mémoire interne, tandis que d'autres utilisent une carte mémoire Micro SD.

## Détails techniques

DSLinux utilise une version modifiée du noyau uClinux, actuellement la version uCLinux 2.6.9 (Linux-2.6.9-uc0). Pour l'instant, DSLinux ne fonctionne qu'en mode texte, affiché via un driver de framebuffer personnalisé. Les entrées se font au moyen d'un clavier affiché sur l'écran tactile de la console. ncurses 5.4 a été porté sur DSLinux, et permet par conséquent de lancer quelques jeux en mode texte ainsi que vi. DSLinux peut également exécuter quelques basiques commandes shell grâce à BusyBox. Le graphisme, la sortie audio et le Wi-Fi sont supportés.

DSLinux est compilé avec un GCC dédié aux processeurs ARM. La bibliothèque C est uClibc. La Nintendo DS n'a pas d'unité de gestion mémoire, mais a une mémoire de 4 Mo.

Il y a plusieurs moyens pour réussir à faire fonctionner DSLinux, mais chacun nécessite du matériel particulier.

DSLinux peut écrire des cartes Flash SRAM, des CompactFlash (insérées dans l'un des adaptateurs suivants: GBAMP, M3 ou SuperCard), et des cartes microSD (à utiliser avec DSMem, produit par amadeus).

Les versions plus récentes de DSLinux incluent le noyau uCLinux 2.6.14, un shell plus puissant (historique, complétion des commandes, etc.), un driver wifi partiel, et un navigateur web en mode texte. Le système de fenêtres Nano-X a également été porté et un driver pour souris est en cours de développement. L'attention du projet se porte désormais sur la branche 2.6.14, et même s'il continue d'y avoir des releases de la version 2.6.9, elle comporte moins de fonctionnalités, et ne sont plus supportés.

