2 คะแนน โดย GN⁺ 2023-10-11 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • DSLinux เป็นโครงการพอร์ตเพื่อรันสภาพแวดล้อม Linux บน Nintendo DS และ DS Lite ทำให้นำเครื่องเกมพกพารุ่นเก่ามาใช้เป็นอุปกรณ์รัน Linux ได้
  • มีการสรุปไว้ว่ารุ่นหลังอย่าง DSi และ 3DS ก็สามารถทำงานได้ใน โหมดความเข้ากันได้กับ DS
  • นอกจากอุปกรณ์จริงแล้ว ยังสามารถรันได้บน อีมูเลเตอร์ NDS บางตัว เช่น desmume ทำให้ขยายสภาพแวดล้อมสำหรับการทดสอบได้
  • โครงการอยู่ในสถานะที่ใช้งานได้จริง พร้อมมีเอกสารและชุด โปรแกรม Linux สำหรับ DS ให้ด้วย
  • แม้ปัจจุบันจะไม่มีนักพัฒนาที่กำลังทำงานอยู่ แต่ผู้มีส่วนร่วมรายใหม่ก็สามารถสานต่อได้โดยอาศัยทรัพยากรเดิม เช่น wiki และ repository

อุปกรณ์ที่รองรับและสภาพแวดล้อมที่เข้ากันได้

  • DSLinux เป็นโครงการพอร์ต Linux ไปยัง Nintendo DS และ Nintendo DS Lite
  • รุ่นใหม่กว่าที่ตามมา เช่น DSi และ 3DS สามารถทำงานได้ใน โหมดความเข้ากันได้กับ DS
  • นอกจากฮาร์ดแวร์จริงแล้ว ยังรันได้บน desmume ซึ่งเป็น อีมูเลเตอร์ NDS บางตัว

เอกสาร โปรแกรม และทรัพยากรสำหรับการมีส่วนร่วม

1 ความคิดเห็น

 
GN⁺ 2023-10-11
ความคิดเห็นบน Hacker News
  • เมื่อนานมาแล้วผมเคยมีส่วนร่วมเล็ก ๆ กับโปรเจกต์นี้อยู่สองสามครั้ง ดีใจที่เห็นว่าเว็บไซต์ยังอยู่
    ส่วนที่น่าสนใจที่สุดของโปรเจกต์นี้คือ การจัดการหน่วยความจำ DS มี RAM แค่ 4MB และไม่มี MMU จึงทำสว็อปไม่ได้ แต่พอร์ตคาร์ทริดจ์ Game Boy มีพื้นที่แอดเดรส 32MB ที่แมปอยู่บนบัส มีคาร์ทริดจ์โฮมบรู/โคลนที่เติมพื้นที่นั้นด้วย RAM 32MB แต่ปัญหาคือ DS เขียนไปยังพอร์ตคาร์ทริดจ์ได้เฉพาะด้วย แอดเดรสที่จัดแนวแบบ 16 บิต ซอฟต์แวร์ส่วนใหญ่สมมติว่าเขียนแบบจัดแนว 8 บิตได้ ดังนั้นนักพัฒนาจึงสร้าง GCC ที่แพตช์แล้ว ซึ่งเปลี่ยนการเขียนไปยังตำแหน่งที่ไม่จัดแนวให้เป็นชุดของการอ่านที่เหมาะสม การเขียน 16 บิต และการเลื่อนบิต

    • มีผลิตภัณฑ์ทางการด้วย Opera Web Browser มาพร้อมคาร์ทริดจ์ตัวที่สองที่เสียบในสล็อต “GBA” เพื่อเพิ่ม RAM 8MB และ MMU: https://en.wikipedia.org/wiki/Nintendo_DS_Browser#Memory_Exp...
      ผมทำคาร์ทริดจ์ Opera DS หายไปนานแล้ว แต่แพ็กขยายหน่วยความจำยังเสียบอยู่ใน DS Lite เหมือนเป็นฝาปิดสล็อต
    • อีกจุดที่แปลกคือ การ โหลดซอฟต์แวร์โฮมบรู จากคาร์ทริดจ์ที่เสียบเข้าพอร์ต Game Boy เป็นเรื่องที่ค่อนข้างพบได้บ่อย
      คาร์ทริดจ์เหล่านี้มีทั้ง RAM กับสตอเรจแบบแฟลชหรือการ์ด CF ผสมกัน และอยู่หลังกลไกแบบแบงก์กิงบางอย่าง จึงสามารถสั่งให้เปิดเผยสตอเรจหรือ RAM ได้ ดังนั้นระบบจัดเก็บข้อมูลจึงถูกแมปเข้าบัสโดยตรง และเพื่อประหยัด RAM จึงใช้การ รันจากที่เดิม โดยไม่ต้องคัดลอกโปรแกรมเข้า RAM ก่อน แต่รันจากสตอเรจโดยตรง
    • ตอนเด็ก ๆ ผมมีความทรงจำที่ดีกับโปรเจกต์นี้มาก และมันเป็นจุดเริ่มต้นที่ทำให้สนใจ การพัฒนาเคอร์เนล
      ตอนพยายามพอร์ตซอฟต์แวร์ควบคุมอุตสาหกรรมตัวหนึ่งไปยัง DSLinux ผมเจอบั๊กเกี่ยวกับวิธีทำงานของตัวจัดสรร SLOB ภายใต้ภาวะหน่วยความจำกดดัน และแพตช์หนึ่งของผมก็ถูกรับเข้า upstream ตอนนี้ SLOB ถูกเลิกใช้ไปแล้ว แต่ประสบการณ์นั้นทำให้ผมในวัยเด็กที่เพิ่งเริ่มสาย embedded ได้รู้จักความสนุกของการแฮ็กโฮมบรู ข้อเท็จจริงที่น่าสนุกคือ DS ที่ดัดแปลงแล้วเครื่องนั้นยังคงขับเคลื่อนอุปกรณ์ส่วนใหญ่ของหอดูดาวท้องถิ่นของเราอยู่
  • ช่วงหลังผมขุดโลกโฮมบรูของ DS ลึก ๆ แล้วมีของเจ๋ง ๆ เยอะมาก เช่น เครื่องคิดเลข Yu-Gi-Oh!, เครื่องเล่น MP3, Doom เวอร์ชันพอร์ต
    โดยเฉพาะ ฮาร์ดแวร์ DS Lite และ DSi นั้นผมชอบมาก จับเล่นในปี 2023 ก็ยังให้ความรู้สึกดี และหน้าจอสมมาตรก็ยอดเยี่ยมเวลาเอามาถือแนวตั้งอ่านอีบุ๊กหรือเล่น Hotel Dusk สำหรับการเรียนภาษาจีนก็มี My Chinese Coach ซึ่งเป็นซอฟต์แวร์ระดับตลอดกาล และยังมีแพ็กเกจโฮมบรูที่เน้นภาษาจีนอย่าง DS Zhongwen อีกอย่างน้อยสองตัว DS ถูกประเมินต่ำไป มีเกมดี ๆ มากมาย และเป็นเครื่องในฝันสำหรับการอีมูเลตด้วย ผมชอบตรงที่มันไม่ได้แรงเกินไป และไม่ยึดติดกับกราฟิกแบบ “สมจริง” ที่กินแบตเตอรี่

    • ตอนมัธยมปลาย คนที่ พอร์ต DOOM ลง DS ก็คือผมเอง และพวกเราทุกคนอยู่ในช่อง IRC โฮมบรู DS เดียวกัน
      เพื่อนสนิทที่สุดของผมตอนนี้หลายคนเคยทำโปรเจกต์อื่น ๆ อยู่ในนั้น รวมถึงผู้เขียน DS Linux ด้วย บังเอิญว่าต่อมาทุกคนไปทำงานในบริษัทเทคโนโลยีหลายแห่งใน Silicon Valley และได้กลับมาเจอกันในชีวิตจริงอีกครั้งหลายสิบปีให้หลัง
    • DS Zhongwen นี่เป็นชื่อที่ไม่ได้ยินมานานแล้ว คนสร้างมันคือผมเอง :-)
      ผมยังทำอย่างอื่นด้วย เช่น Knytt Stories DS การทำโฮมบรูสำหรับ Nintendo DS เป็นประสบการณ์ที่ยอดเยี่ยม และ ข้อจำกัดกับศักยภาพ ของฮาร์ดแวร์ก็เปิดพื้นที่ให้ทั้งความคิดสร้างสรรค์และความท้าทายทางวิศวกรรมได้อย่างเต็มที่
    • สิ่งที่ทำให้ผมประหลาดใจที่สุดในโฮมบรูของ DS และ Switch คือ ความเข้าถึงง่าย ไม่รู้ทำไมผมเคยนึกว่าการสร้างอะไรบนอุปกรณ์พวกนี้น่าจะเป็นเรื่องเหมือนเวทมนตร์ แต่จริง ๆ แล้วไม่ใช่เลย
    • ขอจดไว้เป็นบันทึกว่า มี ซอฟต์แวร์โฮมบรู ที่ควรพูดถึงอยู่เป็นสิบ ๆ ตัว
    • ยังมี เอนจินวิชวลโนเวล ชื่อ VNDS[0] ด้วย และมีพอร์ตออกมาค่อนข้างมาก เท่าที่ผมรู้ พอร์ตของวิชวลโนเวล “คลาสสิก” ส่วนใหญ่มีอยู่แล้ว
      ถ้ามี 3DS ก็น่าลองดูโปรเจกต์ TwilightMenu ด้วย เป็นโคลนของ DSiMenu ที่โหลดไตเติลโฮมบรูและอื่น ๆ จากการ์ด SD ได้ และรองรับแฟลชการ์ดด้วย
      [0]: https://github.com/BASLQC/vnds
  • บทความ Wikipedia ที่เคยอยู่บนเว็บไซต์ถูกลบด้วยเหตุผลว่า “ไม่มีความโดดเด่นพอ” แต่ยังมีอาร์ไคฟ์อยู่: https://web.archive.org/web/20170708075915/https://en.wikipe...

    • น่าสนใจที่บทความนี้ยังอยู่: https://en.wikipedia.org/wiki/IPodLinux
      เป็นโปรเจกต์เทียบเคียงที่รันบน iPod และตัวนี้ก็ใช้ μCLinux เป็นฐานเช่นกัน
    • ผมไม่ได้เชื่อนรกหรอก แต่ถ้ามีจริง คงมีที่พิเศษสำหรับ พวก deletionist ของ Wikipedia อยู่แน่ ๆ น่าจะอยู่แถว ๆ คนที่ไม่เคยเอารถเข็นช้อปปิ้งกลับไปเก็บที่เดิม
  • ดีใจมากที่ได้เห็นสิ่งนี้บนหน้าแรกของ HN ผมเคย มีส่วนร่วมกับ DSLinux อยู่หลายปี
    ผมดูแล nightly build บนเว็บไซต์ของตัวเองแทบทุกวัน ตอนนั้นทักษะ C และการเขียนโปรแกรมระบบของผมยังอยู่ระดับมือใหม่ เลยคิดว่าไม่เคยมีโค้ดที่ contribute เข้าไป แต่ได้ทดสอบและช่วยคนในคอมมูนิตี้ค่อนข้างเยอะ ผมขาย Nintendo DS ไปแล้ว แต่ Supercard ที่ใช้เก็บและบูต Linux น่าจะยังอยู่ที่ไหนสักแห่ง หน้าตาเป็นแบบนี้: [https://wiki.gbatemp.net/wiki/File:SuperCard_CF_V2.jpg](https://wiki.gbatemp.net/wiki/File:SuperCard_CF_V2.jpg)
    เครดิตก้อนใหญ่สำหรับงานอันน่าทึ่งนี้ควรยกให้บุคคลไม่กี่คน โดยเฉพาะ Malcolm Parsons(pepsiman), Stefan Sperling ซึ่งต่อมากลายเป็นนักพัฒนา OpenBSD และ Amadeus: http://dslinux.org/wiki/ContactingDevelopers.html

  • แม้จะไม่ใช่สิ่งเทียบเคียงสมัยใหม่แบบตรง ๆ แต่ Nintendo Switch ที่ดัดแปลงแล้วสามารถ dual boot กับอิมเมจ Linux บางตัวได้: https://wiki.switchroot.org/
    เพราะอิงกับไดรเวอร์ Tegra อย่างเป็นทางการ ถึงจะเก่าแล้วก็ยังรันอะไรได้มากอย่างน่าประหลาดใจ เคยลองรัน SkiFree บน Box86 แล้วก็พอใจกับแค่นั้น

    • แถม Switch ยังมีฮาร์ดแวร์ที่ใกล้เคียงมากกับ Tegra Shield ซึ่งเป็นเป้าหมายแรกของอิมเมจ L4T
      ชิป DRAM ก็เป็นรุ่นเดียวกันเป๊ะ ซึ่งน่าจะเป็นชิ้นส่วนค่อนข้างทั่วไป และเป็นผลสะท้อนจากความสัมพันธ์กับซัพพลายเออร์ของผู้ผลิต ถือได้ว่าเป็นกรณีที่ใกล้เคียงที่สุดจนถึงตอนนี้กับ Linux distribution ที่รองรับอย่างเป็นทางการ บนฮาร์ดแวร์ของ Nintendo
  • น่าสนใจที่มันอิงบางส่วนจาก งาน uCLinux เดียวกับอีกโพสต์หนึ่งที่ตอนนี้อยู่บนหน้าแรกของ HN
    789 KB Linux Without MMU on RISC-V
    https://news.ycombinator.com/item?id=37822082

  • ตอนอยู่มัธยมปลาย ผมเคยรัน DS Linux บนการ์ต M3 แล้วปั่นจักรยานไปรอบ ๆ ละแวกบ้านเพื่อทำ wardriving
    แทบลืมไปแล้วว่าเคยมีสิ่งนี้อยู่ ขอบคุณที่แชร์ ทำให้นึกถึงความทรงจำสนุก ๆ ขึ้นมาได้อีกครั้ง DS กับการ์ต M3 ยังอยู่กับผม แต่การ์ด SD ที่มีบิลด์เก่า ๆ หายไปนานแล้ว

  • จำได้ว่าตอนอายุราวสิบเอ็ดขวบเคยติดตั้ง homebrew ตัวนี้ลงใน DS ของตัวเอง
    ตอนนั้นไม่รู้เลยว่า Linux คืออะไร แต่ DSLinux ทำให้ผมสนใจ วิทยาการคอมพิวเตอร์ มากขึ้น ขอบคุณคนที่สร้างมันและทุกคนที่ contribute โค้ด

  • นี่คือ ทางเข้าสู่ Linux ของผม ขอบคุณใครก็ตามที่แพ็กเกจ BSDgames[0] กับ Frotz[1] รวมมาให้
    มันทำให้ผมชอบเกม text adventure และ interactive fiction ไปตลอดชีวิต ลองจินตนาการถึงความประหลาดใจของเด็กคนหนึ่งที่คุ้ยดูไดเรกทอรี bin แล้วพิมพ์ “advent” ลงในพรอมป์ต โดยคาดหวังว่าจะเป็นแอป advent calendar ง่าย ๆ แต่กลับหลุดไปสู่อีกโลกหนึ่ง[2] โดยสิ้นเชิง
    [0] https://wiki.linuxquestions.org/wiki/BSD_games
    [1] https://davidgriffith.gitlab.io/frotz/
    [2] https://en.wikipedia.org/wiki/Colossal_Cave_Adventure

    • ผมก็คล้ายกัน แต่ช่วงแรกเล่นเกม interactive fiction บน Winfrotz/ZX Spectrum
      ต่อมาก็รัน advent, battlestar อะไรพวกนั้นบน Linux ผ่าน Frotz สำหรับ Unix และยังเล่น trek ด้วย จนติดหนึบไปเลย
    • เล่น text adventure ด้วยการใช้สไตลัสจิ้มพิมพ์บนคีย์บอร์ดหน้าจอสัมผัสของ DS น่ะเหรอ?!
  • ไม่กี่เดือนก่อนผมลองค้นเรื่องนี้ เพราะอยาก SSH จาก DSi เข้าเซิร์ฟเวอร์ของตัวเอง แค่ทำเอาขำ ๆ
    ไม่ได้ตั้งใจจะลงลึกขนาดนั้น พอ Wi‑Fi ไม่ได้ “ใช้ได้เลย” ก็เลยยอมแพ้ แต่สักวันหนึ่งอยากลองรัน SSH บนนั้นให้ได้จริง ๆ

    • สงสัยว่าทีม DSLinux สุดท้ายทำให้มันรันบน DSi ได้หรือเปล่า
      DSi ของผมยังอยู่และยังใช้งานได้ แต่เท่าที่จำได้ DSLinux ใช้ไม่ได้
    • เดี๋ยวนี้เราเตอร์ Wi‑Fi ส่วนใหญ่น่าจะปิด การรองรับ 802.11b ไว้เป็นค่าเริ่มต้น ถ้าไม่ใช่เพราะเรื่องนั้น SSH ก็น่าจะทำได้