2 pontos por GN⁺ 2023-10-11 | 1 comentários | Compartilhar no WhatsApp
  • DSLinux é um projeto de port do Linux para executar um ambiente Linux no Nintendo DS e no DS Lite, permitindo reaproveitar consoles portáteis antigos como dispositivos capazes de rodar Linux
  • Modelos posteriores, como DSi e 3DS, também podem funcionar em modo de compatibilidade com DS
  • Além do hardware real, ele também pode rodar em alguns emuladores de NDS, como o desmume, ampliando as opções de teste
  • O projeto está em estado funcional e oferece documentação junto com uma coleção de programas Linux para DS
  • No momento não há desenvolvedores ativos, mas novos colaboradores podem continuar o trabalho com base nos recursos existentes, como a wiki e o repositório

Plataformas de execução e ambiente compatível

  • DSLinux é um projeto que porta o Linux para o Nintendo DS e o Nintendo DS Lite
  • Modelos mais recentes, como DSi e 3DS, podem funcionar em modo de compatibilidade com DS
  • Além do dispositivo físico, ele também roda em alguns emuladores de NDS, como o desmume

Documentação, programas e recursos para contribuição

1 comentários

 
GN⁺ 2023-10-11
Opiniões no Hacker News
  • Fiz algumas pequenas contribuições para este projeto muito tempo atrás, e fico feliz em ver que o site ainda está no ar.
    A parte mais interessante desse projeto era o tratamento de memória. O DS tinha apenas 4 MB de RAM e não tinha MMU, então swap era impossível, mas a porta de cartucho do Game Boy tinha um espaço de endereçamento de 32 MB mapeado no barramento. Havia cartuchos homebrew/clones que preenchiam esse espaço com 32 MB de RAM, mas o problema era que o DS só conseguia escrever na porta de cartucho em endereços alinhados a 16 bits. Como a maioria dos softwares pressupõe que escritas alinhadas a 8 bits funcionam, os desenvolvedores criaram um GCC modificado que transformava escritas em posições desalinhadas em um conjunto apropriado de leitura, escrita de 16 bits e operações de shift.

    • Também havia um produto oficial. O Opera Web Browser vinha com um segundo cartucho, encaixado no slot “GBA”, que adicionava 8 MB de RAM e uma MMU: https://en.wikipedia.org/wiki/Nintendo_DS_Browser#Memory_Exp...
      Perdi o cartucho do Opera DS há muito tempo, mas o pacote de expansão de memória ainda está encaixado no meu DS Lite como uma tampa de slot.
    • Outra peculiaridade era que era bastante comum carregar software homebrew a partir de cartuchos encaixados na porta do Game Boy.
      Esses cartuchos tinham uma combinação de RAM e armazenamento baseado em flash ou cartão CF, por trás de uma espécie de esquema de banking, e era possível instruí-los a expor armazenamento ou RAM. Assim, o sistema de armazenamento ficava mapeado diretamente no barramento e, para economizar RAM, os programas eram executados in-place diretamente do armazenamento, em vez de serem copiados primeiro para a RAM.
    • Tenho lembranças muito boas desse projeto da minha infância, e foi o que me levou a me interessar por desenvolvimento de kernel.
      Ao tentar portar um software de controle industrial para o DSLinux, encontrei um bug no modo como o alocador SLOB se comportava sob pressão de memória, e um patch meu entrou no upstream. Hoje o SLOB foi removido, mas foi uma experiência que me mostrou, quando eu era jovem e começava em embarcados, a alegria de hackear homebrew. Curiosidade: um DS modificado ainda controla grande parte dos equipamentos do nosso observatório local.
  • Recentemente mergulhei fundo no homebrew do DS, e havia muita coisa legal. Calculadoras de Yu-Gi-Oh!, players de MP3, ports de Doom e coisas assim.
    Gosto especialmente do hardware do DS Lite e do DSi. Mesmo em 2023, é gostoso de usar, e as telas simétricas são excelentes ao segurá-lo na vertical para ler e-books ou jogar Hotel Dusk. Para aprender chinês, há também o My Chinese Coach, um dos melhores softwares de todos os tempos, além de pelo menos mais dois pacotes homebrew focados em chinês, como o DS Zhongwen. O DS foi subestimado, tem muitos bons jogos e é um aparelho dos sonhos para emulação. Também gosto do fato de ele não ser poderoso demais nem obcecado por gráficos “realistas” que devoram bateria.

    • Fui eu quem portou DOOM para o DS quando estava no ensino médio, e estávamos todos no mesmo canal de IRC de homebrew do DS.
      Vários dos meus amigos mais próximos hoje trabalhavam em outros projetos, incluindo o autor do DS Linux. Por coincidência, todos acabamos depois trabalhando em várias empresas de tecnologia do Silicon Valley e nos reencontramos pessoalmente décadas depois.
    • DS Zhongwen, fazia tempo que eu não ouvia esse nome. Fui eu quem o criou :-)
      Também fiz outras coisas, como Knytt Stories DS. Criar homebrew para o Nintendo DS foi uma experiência excelente, e as limitações e possibilidades do hardware davam espaço suficiente tanto para a criatividade quanto para desafios de engenharia.
    • O que mais me surpreendeu no homebrew do DS e do Switch foi a acessibilidade. Por algum motivo eu imaginava que criar algo para esses dispositivos seria uma espécie de magia, mas na prática não era nada disso.
    • Só para deixar registrado, há dezenas de softwares homebrew dignos de menção.
    • Há também um motor de visual novels chamado VNDS[0], e muitos ports foram feitos para ele. Pelo que sei, existem ports da maioria das visual novels “clássicas”.
      Se você tiver um 3DS, também vale conferir o projeto TwilightMenu. É um clone do DSiMenu que permite carregar títulos homebrew etc. a partir do cartão SD, e também oferece suporte a flashcards.
      [0]: https://github.com/BASLQC/vnds
  • O artigo da Wikipedia que estava no site foi removido por “falta de notoriedade”, mas o arquivo ainda existe: https://web.archive.org/web/20170708075915/https://en.wikipe...

    • Curiosamente, este artigo ainda está no ar: https://en.wikipedia.org/wiki/IPodLinux
      É um projeto equivalente que rodava no iPod, também baseado em μCLinux.
    • Não acredito no inferno, mas, se ele existir, acho que deve haver um lugar especial para os deletionists da Wikipedia. Provavelmente perto das pessoas que nunca devolvem o carrinho de compras ao lugar.
  • Fiquei muito feliz em ver isso na primeira página do HN. Participei do DSLinux por alguns anos.
    Mantive builds nightly quase diárias no meu site. Na época, minhas habilidades em C e programação de sistemas ainda estavam em nível iniciante, então acho que nunca contribuí com código, mas testei bastante e ajudei bastante as pessoas da comunidade. Vendi meu Nintendo DS, mas o Supercard que eu usava para armazenar e inicializar o Linux ainda deve estar em algum lugar. Ele era assim: [https://wiki.gbatemp.net/wiki/File:SuperCard_CF_V2.jpg](https://wiki.gbatemp.net/wiki/File:SuperCard_CF_V2.jpg)
    O crédito por tornar esse trabalho incrível possível vai em grande parte para algumas pessoas, especialmente Malcolm Parsons (pepsiman), Stefan Sperling, que depois se tornou desenvolvedor do OpenBSD, e Amadeus: http://dslinux.org/wiki/ContactingDevelopers.html

  • Não é exatamente um equivalente moderno, mas um Nintendo Switch modificado consegue fazer dual boot com algumas imagens Linux: https://wiki.switchroot.org/
    Como é baseado nos drivers Tegra oficiais, apesar de antigo, roda uma quantidade surpreendente de coisas. Rodei SkiFree no Box86 e fiquei satisfeito com isso

    • Além disso, o Switch tem um hardware muito próximo do Tegra Shield, que era o alvo inicial das imagens L4T
      Até os chips de DRAM são exatamente do mesmo modelo; isso provavelmente se deve ao fato de serem componentes mais genéricos e refletirem a relação de fornecimento do fabricante. Até hoje, talvez seja o caso mais próximo de uma distribuição Linux com suporte oficial em hardware da Nintendo
  • Curiosamente, ele se baseia em parte do mesmo trabalho com uCLinux de outro post que está agora na página inicial do HN
    789 KB Linux Without MMU on RISC-V
    https://news.ycombinator.com/item?id=37822082

  • No ensino médio, eu rodava DS Linux num cartucho M3 e saía de bicicleta pelo bairro fazendo wardriving
    Eu quase tinha esquecido que isso existia; foi divertido relembrar essa memória, obrigado por compartilhar. Ainda tenho o DS e o cartucho M3, mas o cartão SD com aquele build antigo desapareceu há muito tempo

  • Lembro de ter instalado esse homebrew no meu DS quando tinha uns onze anos
    Na época eu não fazia ideia do que era Linux, mas o DSLinux aprofundou meu interesse por ciência da computação. Obrigado a quem criou e a todos que contribuíram com código

  • Essa foi a minha porta de entrada para o Linux. Seja lá quem empacotou BSDgames[0] e Frotz[1], obrigado
    Graças a isso, passei a gostar de jogos de aventura em texto e ficção interativa para o resto da vida. Dá para imaginar a surpresa de uma criança fuçando o diretório bin, esperando um app simples de advent calendar, digitando “advent” no prompt e caindo em um mundo completamente diferente[2]
    [0] https://wiki.linuxquestions.org/wiki/BSD_games
    [1] https://davidgriffith.gitlab.io/frotz/
    [2] https://en.wikipedia.org/wiki/Colossal_Cave_Adventure

    • Comigo foi parecido, mas no começo eu jogava ficção interativa no Winfrotz/ZX Spectrum
      Depois, no Frotz para Unix, rodei coisas como advent e battlestar no Linux, além de trek, e aí fui fisgado de vez
    • Você jogava aventuras em texto digitando com a stylus no teclado da tela sensível ao toque do DS?!
  • Alguns meses atrás procurei isso porque queria acessar meu servidor via SSH a partir de um DSi. Era só pela graça
    Como eu não pretendia me aprofundar tanto, desisti quando o Wi-Fi não “simplesmente funcionou”, mas ainda quero muito rodar SSH nele algum dia

    • Fico curioso se a equipe do DSLinux acabou conseguindo fazê-lo rodar no DSi
      Ainda tenho meu DSi e ele ainda funciona, mas lembro que o DSLinux não funcionava nele
    • Hoje em dia, imagino que a maioria dos roteadores Wi-Fi venha com suporte a 802.11b desativado por padrão. Se não for isso, SSH deve ser possível