2 puntos por GN⁺ 2023-10-11 | 1 comentarios | Compartir por WhatsApp
  • DSLinux es un proyecto de port de Linux para ejecutar un entorno Linux en Nintendo DS y DS Lite, aprovechando estas consolas portátiles antiguas como dispositivos capaces de correr Linux
  • También se indica que modelos posteriores como DSi y 3DS pueden funcionar en modo de compatibilidad con DS
  • Además del hardware real, también puede ejecutarse en algunos emuladores de NDS como desmume, lo que amplía el entorno de pruebas
  • El proyecto está en estado funcional y ofrece documentación junto con una colección de programas de Linux para DS
  • Actualmente no hay desarrolladores activos, pero nuevos colaboradores pueden continuar el trabajo a partir de recursos existentes como la wiki y el repositorio

Plataformas de ejecución y entorno compatible

  • DSLinux es un proyecto que porta Linux a Nintendo DS y Nintendo DS Lite
  • Modelos más recientes como DSi y 3DS pueden funcionar en modo de compatibilidad con DS
  • Además del hardware real, también corre en algunos emuladores de NDS como desmume

Documentación, programas y recursos para contribuir

1 comentarios

 
GN⁺ 2023-10-11
Opiniones en Hacker News
  • Hace mucho hice algunas pequeñas contribuciones a este proyecto, y me alegra ver que el sitio web siga vivo.
    La parte más interesante de este proyecto era el manejo de memoria. La DS solo tenía 4 MB de RAM y no tenía MMU, así que tampoco se podía usar swap, pero el puerto para cartuchos de Game Boy tenía un espacio de direcciones de 32 MB mapeado al bus. Había cartuchos homebrew/clonados que llenaban ese espacio con 32 MB de RAM, pero el problema era que la DS solo podía escribir al puerto del cartucho en direcciones alineadas a 16 bits. Como la mayoría del software asumía que se podían hacer escrituras alineadas a 8 bits, los desarrolladores crearon un GCC parcheado que convertía las escrituras a posiciones no alineadas en una combinación adecuada de lectura, escritura de 16 bits y operaciones de desplazamiento.

    • También hubo un producto oficial. El Opera Web Browser incluía un segundo cartucho que se insertaba en la ranura “GBA” para agregar 8 MB de RAM y una MMU: https://en.wikipedia.org/wiki/Nintendo_DS_Browser#Memory_Exp...
      Perdí el cartucho de Opera DS hace mucho, pero el paquete de expansión de memoria todavía está insertado en mi DS Lite como si fuera una tapa de ranura.
    • Otra particularidad era que era bastante común cargar software homebrew desde un cartucho insertado en el puerto de Game Boy.
      Esos cartuchos tenían una combinación de RAM y almacenamiento basado en flash o una tarjeta CF, detrás de una especie de esquema de bancos, de modo que se les podía indicar que expusieran el almacenamiento o la RAM. Así, el sistema de almacenamiento quedaba mapeado directamente al bus, y para ahorrar RAM se usaba ejecución en el lugar: ejecutar directamente desde el almacenamiento sin copiar primero el programa a la RAM.
    • Guardo muy buenos recuerdos de este proyecto de cuando era niño, y fue lo que me despertó el interés por el desarrollo del kernel.
      Mientras intentaba portar cierto software de control industrial a DSLinux, me encontré con un bug en la forma en que funcionaba el asignador SLOB bajo presión de memoria, y uno de mis parches llegó al upstream. SLOB ya está retirado, pero fue una experiencia que, en mis años de inicio en embebidos, me mostró lo divertido del hacking homebrew. Como dato curioso, una DS modificada todavía impulsa una parte importante del equipamiento de nuestro observatorio local.
  • Hace poco me metí a fondo en el homebrew de DS y encontré muchas cosas geniales. Cosas como una calculadora de Yu-Gi-Oh!, reproductores de MP3 y ports de Doom.
    En particular, me encanta el hardware de la DS Lite y la DSi. Incluso en 2023 se sienten bien al usarlas, y las pantallas simétricas son excelentes para sostenerla en vertical y leer ebooks o jugar Hotel Dusk. También tiene My Chinese Coach, un software increíble para aprender chino, y al menos otros dos paquetes homebrew enfocados en chino, como DS Zhongwen. La DS está subestimada, tiene muchos buenos juegos y es una máquina ideal para emulación. También me gusta que no sea demasiado potente ni esté obsesionada con gráficos “realistas” que se comen la batería.

    • Yo fui quien portó DOOM a la DS cuando estaba en la secundaria, y todos estábamos en el mismo canal de IRC de homebrew para DS.
      Varios de mis amigos más cercanos hoy trabajaban en otros proyectos, incluido el autor de DS Linux. Por casualidad, todos terminamos más tarde trabajando en varias empresas tecnológicas de Silicon Valley, y décadas después volvimos a encontrarnos en la vida real.
    • DS Zhongwen, qué nombre que no escuchaba hace tiempo. Yo lo hice :-)
      También hice otras cosas, como Knytt Stories DS. Crear homebrew para Nintendo DS fue una experiencia excelente, y las limitaciones y posibilidades del hardware daban suficiente espacio para desplegar tanto creatividad como desafíos de ingeniería.
    • Lo que más me sorprendió del homebrew de DS y Switch fue la accesibilidad. Por alguna razón imaginaba que crear algo para estos dispositivos sería una especie de magia, pero en la práctica no era así en absoluto.
    • Para que quede constancia, hay decenas de piezas de software homebrew dignas de mención.
    • También existe un motor de novelas visuales llamado VNDS[0], y se hicieron bastantes ports. Hasta donde sé, existen ports de la mayoría de las novelas visuales “clásicas”.
      Si tienes una 3DS, también vale la pena revisar el proyecto TwilightMenu. Es un clon de DSiMenu que permite cargar títulos homebrew y otras cosas desde la tarjeta SD, y también soporta flashcards.
      [0]: https://github.com/BASLQC/vnds
  • El artículo de Wikipedia que estaba enlazado en el sitio web fue eliminado por “falta de notoriedad”, pero el archivo sigue existiendo: https://web.archive.org/web/20170708075915/https://en.wikipe...

    • Curiosamente, este artículo sigue vivo: https://en.wikipedia.org/wiki/IPodLinux
      Es un proyecto equivalente que corría en el iPod, y también está basado en μCLinux.
    • No creo en el infierno, pero si existe, creo que debe haber un lugar especial para los eliminacionistas de Wikipedia. Probablemente cerca de quienes nunca devuelven los carritos de compras a su lugar.
  • Me alegra muchísimo ver esto en la portada de HN. Durante varios años participé en DSLinux.
    Mantenía builds nightly casi todos los días en mi sitio web. En ese entonces mis habilidades de C y programación de sistemas todavía eran de principiante, así que creo que nunca contribuí código, pero sí hice bastantes pruebas y ayudé a la gente de la comunidad. Vendí mi Nintendo DS, pero la Supercard que usaba para almacenar y arrancar Linux todavía debe estar por ahí en algún lado. Se veía así: [https://wiki.gbatemp.net/wiki/File:SuperCard_CF_V2.jpg](https://wiki.gbatemp.net/wiki/File:SuperCard_CF_V2.jpg)
    El mérito de haber hecho posible este trabajo increíble corresponde en gran parte a algunas personas, en especial Malcolm Parsons (pepsiman), Stefan Sperling, quien más tarde se convirtió en desarrollador de OpenBSD, y Amadeus: http://dslinux.org/wiki/ContactingDevelopers.html

  • No es exactamente un equivalente moderno, pero una Nintendo Switch modificada puede hacer arranque dual con algunas imágenes de Linux: https://wiki.switchroot.org/
    Como está basada en los drivers oficiales de Tegra, aunque ya estén algo viejos, puede ejecutar una cantidad sorprendente de cosas. Probé SkiFree en Box86 y con eso me di por satisfecho

    • Además, la Switch tiene un hardware muy cercano, casi igual, al Tegra Shield al que apuntaban originalmente las imágenes L4T
      Incluso los chips de DRAM son exactamente el mismo modelo, aunque eso seguramente se debía más a que eran piezas bastante genéricas y a la relación del fabricante con sus proveedores. Hasta ahora, podría considerarse lo más cercano a una distribución de Linux con soporte oficial en hardware de Nintendo
  • Curiosamente, se basa en parte del mismo trabajo de uCLinux que otro artículo que ahora está en la portada de HN
    789 KB Linux Without MMU on RISC-V
    https://news.ycombinator.com/item?id=37822082

  • Cuando estaba en la secundaria, ejecutaba DS Linux desde un cartucho M3 y salía en bici por el barrio haciendo wardriving
    Casi había olvidado que esto existía; gracias por compartirlo, me trajo un recuerdo divertido. Todavía tengo la DS y el cartucho M3, pero la tarjeta SD con aquella compilación desapareció hace mucho

  • Recuerdo haber instalado este homebrew en mi DS cuando tenía como once años
    En ese momento no tenía ni idea de qué era Linux, pero gracias a DSLinux se profundizó mi interés por la ciencias de la computación. Gracias a quienes lo hicieron y a todos los que contribuyeron código

  • Esta fue mi puerta de entrada a Linux. Gracias a quien haya empaquetado BSDgames[0] y Frotz[1]
    Gracias a eso desarrollé un gusto de por vida por las aventuras de texto y la ficción interactiva. Imaginen la sorpresa de un niño que husmea en el directorio bin, escribe “advent” en el prompt esperando una simple app de calendario de Adviento, y termina cayendo en un mundo completamente distinto[2]
    [0] https://wiki.linuxquestions.org/wiki/BSD_games
    [1] https://davidgriffith.gitlab.io/frotz/
    [2] https://en.wikipedia.org/wiki/Colossal_Cave_Adventure

    • A mí me pasó algo parecido, aunque al principio jugaba juegos de ficción interactiva en Winfrotz/ZX Spectrum
      Más adelante ejecuté cosas como advent y battlestar en Linux con Frotz para Unix, junto con trek, y quedé completamente enganchado
    • ¿¡Jugabas aventuras de texto escribiendo con un stylus en el teclado de la pantalla táctil de la DS!?
  • Hace unos meses busqué esto porque quería conectarme por SSH desde una DSi a mi servidor. Era solo por hacerlo en broma
    No pensaba meterme tan a fondo, así que cuando el Wi-Fi no “simplemente funcionó”, me rendí, pero algún día quiero lograr correr SSH ahí

    • Me pregunto si el equipo de DSLinux al final logró hacerlo funcionar en la DSi
      Todavía tengo mi DSi y aún funciona, pero recuerdo que DSLinux no funcionaba
    • Creo que hoy la mayoría de los routers Wi-Fi tienen desactivado por defecto el soporte para 802.11b. Si no es por eso, SSH debería ser posible