พอร์ต Linux สำหรับ Nintendo DS, DSLinux
(dslinux.org)- 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 บางตัว
เอกสาร โปรแกรม และทรัพยากรสำหรับการมีส่วนร่วม
- DSLinux ทำงานได้จริงในเชิงฟังก์ชัน และมีทั้งเอกสารการใช้งาน และชุดโปรแกรม Linux ที่มีประโยชน์ สำหรับ DS
- ตอนเริ่มต้นสามารถอ้างอิง FAQ ได้
- ปัจจุบันไม่มี นักพัฒนา ที่ยังทำงานอยู่ แต่ยินดีต้อนรับ ผู้มีส่วนร่วม หน้าใหม่
- เอกสารสำหรับนักพัฒนาใหม่ยังคงเหลืออยู่มากใน wiki
- ทรัพยากรหลักที่มีให้
- DSLinux wiki
- ช่อง IRC
#dslinuxของ Blitzed โดยอาจต้องอดทนรอคำตอบ - ฟอรัม DSLinux หายไปแล้วและไม่ได้กลับมาเปิดใช้งานอีก
- dslinux-devel mailing list
- dslinux-commit mailing list
- DSLinux SVN repository
- DSLinux builds, ตำแหน่งบิลด์ทางเลือก
- DSLinux on Wikipedia
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
เมื่อนานมาแล้วผมเคยมีส่วนร่วมเล็ก ๆ กับโปรเจกต์นี้อยู่สองสามครั้ง ดีใจที่เห็นว่าเว็บไซต์ยังอยู่
ส่วนที่น่าสนใจที่สุดของโปรเจกต์นี้คือ การจัดการหน่วยความจำ DS มี RAM แค่ 4MB และไม่มี MMU จึงทำสว็อปไม่ได้ แต่พอร์ตคาร์ทริดจ์ Game Boy มีพื้นที่แอดเดรส 32MB ที่แมปอยู่บนบัส มีคาร์ทริดจ์โฮมบรู/โคลนที่เติมพื้นที่นั้นด้วย RAM 32MB แต่ปัญหาคือ DS เขียนไปยังพอร์ตคาร์ทริดจ์ได้เฉพาะด้วย แอดเดรสที่จัดแนวแบบ 16 บิต ซอฟต์แวร์ส่วนใหญ่สมมติว่าเขียนแบบจัดแนว 8 บิตได้ ดังนั้นนักพัฒนาจึงสร้าง GCC ที่แพตช์แล้ว ซึ่งเปลี่ยนการเขียนไปยังตำแหน่งที่ไม่จัดแนวให้เป็นชุดของการอ่านที่เหมาะสม การเขียน 16 บิต และการเลื่อนบิต
ผมทำคาร์ทริดจ์ Opera DS หายไปนานแล้ว แต่แพ็กขยายหน่วยความจำยังเสียบอยู่ใน DS Lite เหมือนเป็นฝาปิดสล็อต
คาร์ทริดจ์เหล่านี้มีทั้ง 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 ถูกประเมินต่ำไป มีเกมดี ๆ มากมาย และเป็นเครื่องในฝันสำหรับการอีมูเลตด้วย ผมชอบตรงที่มันไม่ได้แรงเกินไป และไม่ยึดติดกับกราฟิกแบบ “สมจริง” ที่กินแบตเตอรี่
เพื่อนสนิทที่สุดของผมตอนนี้หลายคนเคยทำโปรเจกต์อื่น ๆ อยู่ในนั้น รวมถึงผู้เขียน DS Linux ด้วย บังเอิญว่าต่อมาทุกคนไปทำงานในบริษัทเทคโนโลยีหลายแห่งใน Silicon Valley และได้กลับมาเจอกันในชีวิตจริงอีกครั้งหลายสิบปีให้หลัง
ผมยังทำอย่างอื่นด้วย เช่น Knytt Stories DS การทำโฮมบรูสำหรับ Nintendo DS เป็นประสบการณ์ที่ยอดเยี่ยม และ ข้อจำกัดกับศักยภาพ ของฮาร์ดแวร์ก็เปิดพื้นที่ให้ทั้งความคิดสร้างสรรค์และความท้าทายทางวิศวกรรมได้อย่างเต็มที่
ถ้ามี 3DS ก็น่าลองดูโปรเจกต์ TwilightMenu ด้วย เป็นโคลนของ DSiMenu ที่โหลดไตเติลโฮมบรูและอื่น ๆ จากการ์ด SD ได้ และรองรับแฟลชการ์ดด้วย
[0]: https://github.com/BASLQC/vnds
บทความ Wikipedia ที่เคยอยู่บนเว็บไซต์ถูกลบด้วยเหตุผลว่า “ไม่มีความโดดเด่นพอ” แต่ยังมีอาร์ไคฟ์อยู่: https://web.archive.org/web/20170708075915/https://en.wikipe...
เป็นโปรเจกต์เทียบเคียงที่รันบน iPod และตัวนี้ก็ใช้ μCLinux เป็นฐานเช่นกัน
ดีใจมากที่ได้เห็นสิ่งนี้บนหน้าแรกของ 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 แล้วก็พอใจกับแค่นั้น
ชิป 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
ต่อมาก็รัน advent, battlestar อะไรพวกนั้นบน Linux ผ่าน Frotz สำหรับ Unix และยังเล่น trek ด้วย จนติดหนึบไปเลย
ไม่กี่เดือนก่อนผมลองค้นเรื่องนี้ เพราะอยาก SSH จาก DSi เข้าเซิร์ฟเวอร์ของตัวเอง แค่ทำเอาขำ ๆ
ไม่ได้ตั้งใจจะลงลึกขนาดนั้น พอ Wi‑Fi ไม่ได้ “ใช้ได้เลย” ก็เลยยอมแพ้ แต่สักวันหนึ่งอยากลองรัน SSH บนนั้นให้ได้จริง ๆ
DSi ของผมยังอยู่และยังใช้งานได้ แต่เท่าที่จำได้ DSLinux ใช้ไม่ได้