DSLinux, um port de Linux para Nintendo DS
(dslinux.org)- 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
- O DSLinux está funcionalmente operante e oferece para o DS a documentação de uso e uma coleção útil de programas Linux
- Para começar, é possível consultar o FAQ
- Atualmente não há desenvolvedores ativos, e novos colaboradores são bem-vindos
- Ainda há bastante documentação para novos desenvolvedores na wiki
- Principais recursos disponíveis
- DSLinux wiki
- Canal IRC
#dslinuxna Blitzed; é preciso ter paciência enquanto se espera por respostas - O fórum do DSLinux desapareceu e não foi reativado
- dslinux-devel mailing list
- dslinux-commit mailing list
- DSLinux SVN repository
- DSLinux builds, local alternativo para builds
- DSLinux on Wikipedia
1 comentários
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.
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.
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.
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.
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.
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.
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...
É um projeto equivalente que rodava no iPod, também baseado em μCLinux.
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
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
Depois, no Frotz para Unix, rodei coisas como advent e battlestar no Linux, além de trek, e aí fui fisgado de vez
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
Ainda tenho meu DSi e ele ainda funciona, mas lembro que o DSLinux não funcionava nele