2 điểm bởi GN⁺ 2023-10-11 | 1 bình luận | Chia sẻ qua WhatsApp
  • DSLinux là một dự án port để chạy môi trường Linux trên Nintendo DS và DS Lite, cho phép tận dụng máy chơi game cầm tay cũ như một thiết bị chạy Linux
  • Các mẫu đời sau như DSi và 3DS cũng được ghi nhận là có thể hoạt động trong chế độ tương thích DS
  • Không chỉ trên thiết bị thật, dự án còn có thể chạy trên một số trình giả lập NDS như desmume, giúp mở rộng môi trường thử nghiệm
  • Dự án đang ở trạng thái hoạt động được, đồng thời cung cấp tài liệu và bộ sưu tập chương trình Linux dành cho DS
  • Hiện không có nhà phát triển nào còn hoạt động, nhưng những người đóng góp mới vẫn có thể tiếp nối dựa trên các tài nguyên sẵn có như wiki và kho lưu trữ

Môi trường chạy và khả năng tương thích

  • DSLinux là dự án port Linux sang Nintendo DSNintendo DS Lite
  • Các mẫu mới hơn như DSi và 3DS có thể hoạt động trong chế độ tương thích DS
  • Ngoài thiết bị thật, nó cũng chạy được trên một số trình giả lập NDS như desmume

Tài liệu, chương trình và tài nguyên đóng góp

1 bình luận

 
GN⁺ 2023-10-11
Ý kiến trên Hacker News
  • Từ rất lâu trước tôi từng đóng góp nhỏ vài lần cho dự án này, nên thật vui khi thấy website vẫn còn hoạt động
    Phần thú vị nhất của dự án này là xử lý bộ nhớ. DS chỉ có 4MB RAM và không có MMU nên cũng không thể swap, nhưng cổng cartridge Game Boy có không gian địa chỉ 32MB được ánh xạ vào bus. Có những cartridge homebrew/nhái lấp đầy không gian đó bằng 32MB RAM, nhưng vấn đề là DS chỉ có thể ghi vào cổng cartridge bằng địa chỉ căn chỉnh 16-bit. Vì phần lớn phần mềm giả định có thể ghi căn chỉnh 8-bit, các nhà phát triển đã tạo một GCC được vá để biến các thao tác ghi vào vị trí không được căn chỉnh thành một cụm thao tác đọc phù hợp, ghi 16-bit và shift

    • Cũng có sản phẩm chính thức. Opera Web Browser đi kèm một cartridge thứ hai cắm vào khe “GBA” để bổ sung 8MB RAM và MMU: https://en.wikipedia.org/wiki/Nintendo_DS_Browser#Memory_Exp...
      Tôi đã làm mất cartridge Opera DS từ lâu, nhưng bộ mở rộng bộ nhớ thì vẫn còn cắm trong DS Lite như một nắp che khe
    • Một điểm đặc biệt khác là việc tải phần mềm homebrew từ cartridge cắm vào cổng Game Boy khá phổ biến
      Những cartridge này có sự kết hợp giữa RAM và bộ nhớ flash hoặc thẻ CF, nằm sau một dạng cơ chế banking, nên có thể ra lệnh cho nó phơi bày vùng lưu trữ hoặc RAM. Vì vậy hệ thống lưu trữ được ánh xạ trực tiếp vào bus, và để tiết kiệm RAM, chương trình được thực thi tại chỗ trực tiếp từ bộ nhớ lưu trữ thay vì chép vào RAM trước
    • Tôi có những ký ức rất đẹp về dự án này hồi nhỏ, và đó là cơ duyên khiến tôi quan tâm đến phát triển kernel
      Khi cố port một phần mềm điều khiển công nghiệp nào đó sang DSLinux, tôi gặp một lỗi trong cách bộ cấp phát SLOB hoạt động dưới tình trạng áp lực bộ nhớ, và một bản vá của tôi đã được đưa lên upstream. Giờ SLOB đã bị loại bỏ, nhưng đó là trải nghiệm giúp tôi, khi còn nhỏ và mới bước vào embedded, biết được niềm vui của hack homebrew. Một sự thật thú vị là chiếc DS đã mod vẫn đang vận hành một phần lớn thiết bị của đài thiên văn địa phương chúng tôi
  • Gần đây tôi đào sâu vào homebrew DS và thấy có rất nhiều thứ hay ho. Như máy tính Yu-Gi-Oh!, trình phát MP3, bản port Doom
    Tôi đặc biệt thích phần cứng DS Lite và DSi. Cầm vào năm 2023 vẫn thấy tốt, và khi cầm dọc để đọc ebook hoặc chơi Hotel Dusk thì hai màn hình đối xứng thật tuyệt. Để học tiếng Trung cũng có My Chinese Coach, một phần mềm thuộc hàng xuất sắc nhất, và còn ít nhất hai gói homebrew khác tập trung vào tiếng Trung như DS Zhongwen. DS bị đánh giá thấp, có nhiều game hay, và cũng là một thiết bị trong mơ cho giả lập. Tôi cũng thích việc nó không quá mạnh và không ám ảnh với đồ họa “thực tế” ngốn pin

    • Tôi chính là người đã port DOOM lên DS hồi học trung học, và tất cả chúng tôi đều ở cùng kênh IRC homebrew DS
      Nhiều người bạn thân nhất của tôi hiện nay khi đó làm các dự án khác, trong đó có cả tác giả DS Linux. Tình cờ là sau này tất cả đều làm ở nhiều công ty công nghệ tại Silicon Valley, rồi gặp lại nhau ngoài đời sau vài thập kỷ
    • DS Zhongwen, lâu lắm rồi mới nghe cái tên đó. Tôi là người làm ra nó :-)
      Tôi cũng làm vài thứ khác như Knytt Stories DS. Tạo homebrew cho Nintendo DS là một trải nghiệm tuyệt vời, và những giới hạn cùng khả năng của phần cứng đã tạo đủ không gian cho cả sáng tạo lẫn thách thức kỹ thuật
    • Điều làm tôi ngạc nhiên nhất ở homebrew DS và Switch là khả năng tiếp cận. Không hiểu sao tôi từng tưởng tượng việc làm thứ gì đó trên các thiết bị như vậy sẽ là chuyện như ma thuật, nhưng thực tế hoàn toàn không phải vậy
    • Để ghi lại, có đến hàng chục phần mềm homebrew đáng nhắc tới
    • Cũng có một engine visual novel tên là VNDS[0], và khá nhiều bản port đã được tạo ra. Theo tôi biết thì có hầu hết các bản port visual novel “kinh điển”
      Nếu bạn có 3DS thì cũng nên xem dự án TwilightMenu. Đó là một bản sao DSiMenu có thể tải các tựa homebrew và những thứ khác từ thẻ SD, đồng thời cũng hỗ trợ flashcard
      [0]: https://github.com/BASLQC/vnds
  • Bài Wikipedia từng có trên website đã bị xóa vì “không đủ độ nổi bật”, nhưng bản lưu trữ vẫn còn: https://web.archive.org/web/20170708075915/https://en.wikipe...

    • Thú vị là bài này vẫn còn tồn tại: https://en.wikipedia.org/wiki/IPodLinux
      Đây là một dự án tương đương chạy trên iPod, và cũng dựa trên μCLinux
    • Tôi không tin có địa ngục, nhưng nếu có thì chắc sẽ có một chỗ đặc biệt dành cho những người theo chủ nghĩa xóa bài trên Wikipedia. Chắc đâu đó gần những người không bao giờ trả xe đẩy mua sắm về đúng chỗ
  • Thật vui khi thấy cái này trên trang nhất HN. Tôi đã tham gia DSLinux trong vài năm
    Tôi duy trì các bản nightly build gần như hằng ngày trên website của mình. Khi đó kỹ năng C và lập trình hệ thống của tôi vẫn ở mức mới bắt đầu nên chắc tôi chưa từng đóng góp code, nhưng tôi đã test và giúp đỡ mọi người trong cộng đồng khá nhiều. Tôi đã bán Nintendo DS, nhưng chiếc Supercard dùng để lưu và boot Linux vẫn còn ở đâu đó. Nó trông như thế này: [https://wiki.gbatemp.net/wiki/File:SuperCard_CF_V2.jpg](https://wiki.gbatemp.net/wiki/File:SuperCard_CF_V2.jpg)
    Công lao lớn giúp công việc đáng kinh ngạc này thành hiện thực thuộc về một vài cá nhân, đặc biệt là Malcolm Parsons(pepsiman), Stefan Sperling, người sau này trở thành nhà phát triển OpenBSD, và Amadeus: http://dslinux.org/wiki/ContactingDevelopers.html

  • Không hẳn là một bản tương đương hiện đại, nhưng Nintendo Switch đã mod có thể dual boot với một số image Linux: https://wiki.switchroot.org/
    Vì dựa trên driver Tegra chính thức nên dù đã cũ, nó vẫn chạy được nhiều thứ một cách đáng ngạc nhiên. Tôi đã thử chạy SkiFree trên Box86 và thấy thế là đủ hài lòng rồi

    • Hơn nữa, Switch có phần cứng rất gần với Tegra Shield, vốn là mục tiêu ban đầu của các image L4T
      Chip DRAM cũng đúng cùng một model; đây có lẽ gần như là linh kiện phổ thông và là kết quả phản ánh quan hệ nhà cung cấp của nhà sản xuất. Có thể xem đây là trường hợp gần nhất cho đến nay với một bản phân phối Linux được hỗ trợ chính thức trên phần cứng Nintendo
  • Thú vị là nó dựa trên một phần cùng công việc uCLinux với một bài khác đang trên trang chủ HN lúc này
    Linux 789 KB không có MMU trên RISC-V
    https://news.ycombinator.com/item?id=37822082

  • Hồi học trung học, tôi từng chạy DS Linux trên cartridge M3 rồi đạp xe quanh khu phố để wardriving
    Tôi gần như đã quên mất chuyện nó từng tồn tại; nhờ bạn chia sẻ mà một ký ức thú vị đã quay lại. Tôi vẫn còn chiếc DS và cartridge M3, nhưng thẻ SD chứa bản build cũ thì đã biến mất từ lâu

  • Tôi nhớ khoảng mười một tuổi đã cài homebrew này lên DS của mình
    Khi đó tôi hoàn toàn không biết Linux là gì, nhưng DSLinux đã khiến tôi quan tâm sâu hơn đến khoa học máy tính. Cảm ơn những người đã tạo ra nó và tất cả những ai đã đóng góp mã nguồn

  • Đây là con đường nhập môn Linux của tôi. Xin cảm ơn bất kỳ ai đã đóng gói BSDgames[0] và Frotz[1]
    Nhờ đó tôi đã yêu thích game phiêu lưu chữ và interactive fiction suốt đời. Hãy tưởng tượng sự kinh ngạc của một đứa trẻ khi lục lọi thư mục bin, gõ “advent” vào prompt vì mong đợi một ứng dụng advent calendar đơn giản, rồi bị rơi vào một thế giới hoàn toàn khác[2]
    [0] https://wiki.linuxquestions.org/wiki/BSD_games
    [1] https://davidgriffith.gitlab.io/frotz/
    [2] https://en.wikipedia.org/wiki/Colossal_Cave_Adventure

    • Tôi cũng tương tự, nhưng ban đầu tôi chơi các game interactive fiction trên Winfrotz/ZX Spectrum
      Sau này tôi chạy những thứ như advent, battlestar trên Linux bằng Frotz cho Unix, chơi cả trek nữa, và thế là hoàn toàn mê mẩn
    • Bạn chơi text adventure bằng cách dùng stylus nhập trên bàn phím cảm ứng của DS á?!
  • Vài tháng trước tôi đã tìm lại cái này vì muốn SSH từ DSi vào server của mình. Chỉ làm cho vui thôi
    Tôi không định đào sâu đến thế nên khi Wi-Fi không “cứ thế chạy” là bỏ cuộc, nhưng một ngày nào đó tôi nhất định muốn chạy SSH trên đó

    • Tôi tò mò không biết cuối cùng nhóm DSLinux đã làm cho nó chạy được trên DSi chưa
      DSi của tôi vẫn còn và vẫn hoạt động, nhưng tôi nhớ là DSLinux không chạy được
    • Ngày nay có lẽ hầu hết router Wi-Fi đều tắt hỗ trợ 802.11b theo mặc định. Nếu không phải vậy thì SSH hẳn là khả thi