2 points par GN⁺ 2023-10-11 | 1 commentaires | Partager sur WhatsApp
  • DSLinux est un projet de portage visant à exécuter un environnement Linux sur Nintendo DS et DS Lite, afin de réutiliser ces anciennes consoles portables comme machines capables de faire tourner Linux
  • Les modèles plus récents comme la DSi et la 3DS peuvent également fonctionner en mode de compatibilité DS
  • En plus du matériel réel, il peut aussi être exécuté sur certains émulateurs NDS comme desmume, ce qui élargit les possibilités de test
  • Le projet est dans un état fonctionnel et fournit à la fois de la documentation et une collection de programmes Linux pour DS
  • Il n’y a actuellement aucun développeur actif, mais de nouveaux contributeurs peuvent reprendre le flambeau à partir des ressources existantes comme le wiki et le dépôt

Plateformes d’exécution et environnements compatibles

  • DSLinux est un projet qui porte Linux sur Nintendo DS et Nintendo DS Lite
  • Des modèles plus récents comme la DSi et la 3DS peuvent fonctionner en mode de compatibilité DS
  • En dehors du matériel réel, il fonctionne aussi sur certains émulateurs NDS comme desmume

Documentation, programmes et ressources de contribution

1 commentaires

 
GN⁺ 2023-10-11
Avis de Hacker News
  • J’ai apporté quelques petites contributions à ce projet il y a très longtemps, et je suis content de voir que le site web est encore en ligne.
    La partie la plus intéressante de ce projet était la gestion de la mémoire. La DS n’avait que 4 Mo de RAM et pas de MMU, donc pas de swap possible, mais le port cartouche Game Boy disposait d’un espace d’adressage de 32 Mo mappé sur le bus. Il existait des cartouches homebrew/clones qui remplissaient cet espace avec 32 Mo de RAM, mais le problème était que la DS ne pouvait écrire sur le port cartouche qu’à des adresses alignées sur 16 bits. Comme la plupart des logiciels supposent que les écritures alignées sur 8 bits sont possibles, les développeurs ont créé un GCC patché qui remplaçait les écritures à des emplacements non alignés par une combinaison appropriée de lectures, d’écritures 16 bits et d’opérations de décalage.

    • Il y avait aussi un produit officiel. L’Opera Web Browser incluait une seconde cartouche à insérer dans le slot « GBA » pour ajouter 8 Mo de RAM et une MMU : https://en.wikipedia.org/wiki/Nintendo_DS_Browser#Memory_Exp...
      J’ai perdu la cartouche Opera DS il y a longtemps, mais l’extension mémoire est toujours insérée dans ma DS Lite comme un cache de slot.
    • Autre particularité : il était assez courant de charger des logiciels homebrew depuis une cartouche insérée dans le port Game Boy.
      Ces cartouches combinaient RAM et stockage flash ou carte CF, avec une sorte de mécanisme de banking permettant de choisir d’exposer le stockage ou la RAM. Le système de stockage était donc directement mappé sur le bus, et pour économiser la RAM on exécutait les programmes sur place, directement depuis le stockage, sans les copier d’abord en mémoire.
    • Je garde un très bon souvenir de ce projet depuis mon enfance, et c’est ce qui m’a donné envie de m’intéresser au développement du noyau.
      En essayant de porter un logiciel de contrôle industriel vers DSLinux, je suis tombé sur un bug dans le fonctionnement de l’allocateur SLOB en situation de forte pression mémoire, et l’un de mes patchs a été intégré upstream. SLOB a depuis été supprimé, mais pour le jeune bidouilleur homebrew qui découvrait l’embarqué que j’étais, cette expérience m’a fait découvrir le plaisir de ce type de hacking. Anecdote amusante : une DS modifiée pilote encore aujourd’hui une grande partie de l’équipement de l’observatoire de ma région.
  • J’ai récemment exploré en profondeur le homebrew DS, et il y a beaucoup de choses géniales. Des calculatrices Yu-Gi-Oh!, des lecteurs MP3, des portages de Doom, ce genre de choses.
    J’aime particulièrement le matériel de la DS Lite et de la DSi. Même en 2023, elles sont agréables à manipuler, et les écrans symétriques sont excellents quand on les tient à la verticale pour lire un ebook ou jouer à Hotel Dusk. Pour l’apprentissage du chinois, il y a aussi My Chinese Coach, un logiciel vraiment exceptionnel, ainsi qu’au moins deux autres paquets homebrew centrés sur le chinois, comme DS Zhongwen. La DS est sous-estimée, elle a beaucoup de bons jeux et c’est une machine de rêve pour l’émulation. J’aime aussi le fait qu’elle ne soit pas trop puissante et qu’elle ne s’obsède pas pour des graphismes « réalistes » qui vident la batterie.

    • C’est moi qui ai porté DOOM sur DS quand j’étais lycéen, et nous étions tous sur le même canal IRC de homebrew DS.
      Plusieurs de mes amis les plus proches aujourd’hui travaillaient sur d’autres projets, dont l’auteur de DS Linux. Par hasard, nous avons tous fini plus tard par travailler dans différentes entreprises tech de la Silicon Valley, puis par nous retrouver dans la vraie vie des décennies après.
    • DS Zhongwen, voilà un nom que je n’avais pas entendu depuis longtemps. C’est moi qui l’ai créé :-)
      J’ai aussi fait d’autres choses, comme Knytt Stories DS. Créer du homebrew pour Nintendo DS a été une excellente expérience : les contraintes et possibilités du matériel laissaient assez d’espace pour déployer à la fois créativité et défis d’ingénierie.
    • Ce qui m’a le plus surpris dans le homebrew DS et Switch, c’est son accessibilité. J’imaginais pour une raison quelconque que créer quelque chose sur ce type de machine serait presque magique, mais en réalité pas du tout.
    • Pour mémoire, il existe des dizaines de logiciels homebrew qui mériteraient d’être mentionnés.
    • Il y a aussi un moteur de visual novel appelé VNDS[0], avec un bon nombre de portages réalisés. À ma connaissance, la plupart des portages de visual novels « classiques » existent.
      Si vous avez une 3DS, le projet TwilightMenu vaut aussi le détour. C’est un clone de DSiMenu qui permet de charger des titres homebrew et autres depuis une carte SD, et qui prend également en charge les flashcards.
      [0]: https://github.com/BASLQC/vnds
  • L’article Wikipedia qui figurait sur le site web a été supprimé pour « absence de notoriété », mais l’archive existe encore : https://web.archive.org/web/20170708075915/https://en.wikipe...

    • Chose intéressante, celui-ci est toujours en ligne : https://en.wikipedia.org/wiki/IPodLinux
      C’était un projet équivalent qui tournait sur iPod, lui aussi basé sur μCLinux.
    • Je ne crois pas à l’enfer, mais s’il existe, il doit sûrement y avoir une place spéciale pour les suppressionnistes de Wikipedia. Quelque part près des gens qui ne remettent jamais les chariots de supermarché à leur place.
  • Ça fait vraiment plaisir de voir ça en première page de HN. J’ai participé à DSLinux pendant plusieurs années.
    Je maintenais des builds nightly presque tous les jours sur mon site web. À l’époque, mes compétences en C et en programmation système étaient encore assez débutantes, donc je ne pense pas avoir contribué au code, mais j’ai beaucoup testé et aidé les gens de la communauté. J’ai vendu ma Nintendo DS, mais la Supercard que j’utilisais pour stocker et démarrer Linux doit encore être quelque part. Elle ressemblait à ça : [https://wiki.gbatemp.net/wiki/File:SuperCard_CF_V2.jpg](https://wiki.gbatemp.net/wiki/File:SuperCard_CF_V2.jpg)
    Le mérite de ce travail incroyable revient largement à quelques personnes, notamment Malcolm Parsons (pepsiman), Stefan Sperling, qui est ensuite devenu développeur OpenBSD, et Amadeus : http://dslinux.org/wiki/ContactingDevelopers.html

  • Ce n’est pas exactement un équivalent moderne, mais une Nintendo Switch modifiée peut booter en dual boot sur quelques images Linux : https://wiki.switchroot.org/
    Comme c’est basé sur les pilotes Tegra officiels, même s’ils datent, on peut étonnamment faire tourner pas mal de choses. J’ai lancé SkiFree sous Box86 et ça m’a suffi

    • En plus, la Switch est très proche du Tegra Shield, le matériel que les images L4T visaient à l’origine
      Les puces DRAM sont même exactement du même modèle, même si c’est plutôt un composant générique et probablement le reflet des relations fournisseur du fabricant. On peut considérer que c’est, jusqu’ici, ce qui se rapproche le plus d’une distribution Linux officiellement prise en charge sur du matériel Nintendo
  • Fait intéressant, cela s’appuie sur une partie du même travail uCLinux qu’un autre article actuellement en page d’accueil de HN
    789 KB Linux Without MMU on RISC-V
    https://news.ycombinator.com/item?id=37822082

  • Au lycée, je faisais tourner DS Linux depuis une cartouche M3 et je parcourais le quartier à vélo pour faire du wardriving
    J’avais presque oublié que ça avait existé ; merci du partage, ça m’a rappelé de bons souvenirs. J’ai encore la DS et la cartouche M3, mais la carte SD avec mon ancien build a disparu depuis longtemps

  • Je me souviens avoir installé ce homebrew sur ma DS vers mes onze ans
    À l’époque, je n’avais aucune idée de ce qu’était Linux, mais DSLinux a vraiment renforcé mon intérêt pour l’informatique. Merci à ses créateurs et à tous ceux qui ont contribué au code

  • Ça a été ma porte d’entrée vers Linux. Merci à la personne qui avait empaqueté BSDgames[0] et Frotz[1]
    Grâce à ça, j’ai développé un amour durable pour les jeux d’aventure textuels et la fiction interactive. Imaginez la surprise d’un gamin qui fouille dans le répertoire bin, tape « advent » à l’invite en s’attendant à une simple appli de calendrier de l’Avent, et se retrouve propulsé dans un tout autre monde[2]
    [0] https://wiki.linuxquestions.org/wiki/BSD_games
    [1] https://davidgriffith.gitlab.io/frotz/
    [2] https://en.wikipedia.org/wiki/Colossal_Cave_Adventure

    • Pareil pour moi, mais au début je jouais à des jeux de fiction interactive avec Winfrotz/ZX Spectrum
      Plus tard, avec Frotz pour Unix, j’ai fait tourner advent, battlestar et d’autres sur Linux, et avec trek en plus, je suis complètement tombé dedans
    • Tu jouais à des aventures textuelles en tapant au stylet sur le clavier tactile de la DS ?!
  • Il y a quelques mois, j’ai regardé ça parce que je voulais me connecter en SSH à mon serveur depuis une DSi. C’était juste pour le gag
    Je ne comptais pas creuser autant, donc j’ai abandonné quand le Wi-Fi n’a pas « juste marché », mais j’aimerais vraiment réussir un jour à y faire tourner SSH

    • Je me demande si l’équipe DSLinux a fini par le faire fonctionner sur DSi
      J’ai encore ma DSi et elle marche toujours, mais dans mon souvenir DSLinux ne fonctionnait pas dessus
    • De nos jours, la plupart des routeurs Wi-Fi ont probablement la prise en charge 802.11b désactivée par défaut. Sinon, SSH devrait être possible