1 คะแนน โดย GN⁺ 2024-01-01 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

วิธีฟอร์ก SteamOS แบบคัสตอม

  • SteamOS 3 ("Holo") เป็นดิสโทร Linux ที่อิง Arch ซึ่งสร้างขึ้นสำหรับ Steam Deck อุปกรณ์เล่นเกมพีซีแบบพกพาของ Valve Software
  • SteamOS ทำการอัปเดตแบบ atomic โดยดาวน์โหลด root file system แบบอ่านอย่างเดียวตัวใหม่ไปยังพาร์ทิชันที่ไม่ได้ใช้งาน
  • ผู้ใช้สามารถรัน steamos-devmode เพื่อปลดล็อก root file system และล้างฐานข้อมูล pacman เพื่อให้ได้ดิสโทร Linux ที่ใช้งานได้พร้อมตัวจัดการแพ็กเกจทั่วไป

โครงสร้างระบบของ SteamOS

  • ระบบ SteamOS ประกอบด้วย 8 พาร์ทิชัน โดย EFI system partition จะเก็บบูตโหลดเดอร์สเตจ 1 และไฟล์เมทาดาทา
  • พาร์ทิชัน A/B สองชุดประกอบด้วยบูตโหลดเดอร์สเตจ 2 (GRUB), root file system และพาร์ทิชัน /var
  • มีโฮมพาร์ทิชันเดี่ยวที่ใช้พื้นที่ดิสก์ที่เหลือทั้งหมด

วิธีแพตช์เคอร์เนล

  • Valve ใช้ Linux kernel ที่มีการปรับแก้อย่างมากใน SteamOS
  • ซอร์สโค้ดของเคอร์เนลหาได้จาก pacman mirror ของ Valve และซอร์สเคอร์เนลของอิมเมจเสถียรปัจจุบันสามารถดาวน์โหลดได้ทางออนไลน์
  • ซอร์ส tarball มีขนาด 2.9 GiB เนื่องจากรวม Linux Git tree ทั้งหมดไว้

การรีแพ็กเกจ root file system

  • สามารถแก้ไข root file system แล้ว "รีแพ็กเกจ" ใหม่ให้ตรงกับความต้องการของผู้ใช้ได้
  • อิมเมจ root file system สามารถหาได้โดยซื้อ Steam Deck หรือดาวน์โหลดอิมเมจกู้คืนของ SteamOS
  • สามารถดาวน์โหลดอิมเมจได้โดยใช้ casync เพื่อดึงชิ้นส่วนอิมเมจที่จำเป็นจากที่เก็บ .castr และเขียนลงในพาร์ทิชัน root file system ที่ไม่ได้ใช้งาน

การสร้าง RAUC bundle

  • หลังจากสร้างที่เก็บ casync และ blob index แล้ว ก็สามารถสร้าง RAUC bundle ได้
  • RAUC ใช้ใบรับรอง X.509 เพื่อสร้างความเชื่อถือ และต้องติดตั้งใบรับรองใหม่ลงใน root file system
  • RAUC bundle ต้องมีไฟล์ rootfs.img.raucb และ rootfs.img.caibx และต้องอัปโหลดไฟล์เหล่านี้ไปยังเว็บเซิร์ฟเวอร์

การตั้งค่าเซิร์ฟเวอร์อัปเดต

  • เซิร์ฟเวอร์อัปเดตต้องให้บริการไฟล์ JSON ซึ่งต้องตรงกับ manifest.json ของอิมเมจ
  • สามารถใช้การตั้งค่า Caddy เพื่อรีไดเร็กต์คำขอที่ steamos-atomupd สร้างด้วย QueryUrl และ MetaUrl ไปยัง live.json ได้

ความเห็นของ GN⁺

  • ความสำคัญของระบบปฏิบัติการคัสตอม: บทความนี้แสดงให้เห็นวิธีที่ผู้ใช้สามารถปรับแต่งระบบปฏิบัติการให้เหมาะกับความต้องการของตนเอง ซึ่งสำคัญต่อการมอบโซลูชันแบบเฉพาะทางให้แก่นักพัฒนาซอฟต์แวร์
  • คุณค่าในฐานะสื่อการเรียนรู้: ผ่านกระบวนการนี้ วิศวกรซอฟต์แวร์ระดับเริ่มต้นสามารถเรียนรู้หลักการทำงานของดิสโทร Linux และวิธีการคัสตอมได้
  • การมีส่วนร่วมต่อชุมชน: การแบ่งปันความรู้ลักษณะนี้ช่วยสนับสนุนชุมชนโอเพนซอร์ส และช่วยให้ผู้ใช้อื่นเริ่มต้นโครงการลักษณะคล้ายกันได้ง่ายขึ้น

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

 
GN⁺ 2024-01-01
ความคิดเห็นจาก Hacker News
  • ชื่นชอบการเจาะลึกเพื่อปรับแต่งซอฟต์แวร์/OS ได้ตามที่ผู้ใช้ต้องการ

    • น่ายินดีที่ Steam Deck ไม่มีข้อกังวลเรื่อง Tivoization (การที่ผู้ผลิตฮาร์ดแวร์จำกัดให้รันได้เฉพาะซอฟต์แวร์บางตัว)
    • ส่วนที่น่าสนใจที่สุดในบทความคือการกล่าวว่า Steam Deck รองรับ nixpkgs (ไม่ได้ติดตั้งมาโดยค่าเริ่มต้น แต่สามารถติดตั้งลงอุปกรณ์ได้โดยไม่ต้องฟอร์กทั้ง OS)
  • การประเมินโพสต์อย่างละเอียดและน่าสนใจ

    • โดยส่วนตัวคงไม่ทำอะไรแบบนี้
    • งานที่เคยทำกับลินุกซ์มากที่สุดอยู่ในยุค RaspberryPi และแม้กระทั่งตอนนั้นก็แค่ 1%
    • ขอชื่นชมผู้เขียน
  • แสดงความคิดถึง favicon ฝนดาวตกของ Netscape

  • สั่ง GPU มาใส่เซิร์ฟเวอร์ unRaid NAS เพื่อทำ Steam Headless ผ่าน Docker image

    • วางแผนจะใช้ไคลเอนต์ Moonlight บนแล็ปท็อป Windows
    • คิดว่าดีกว่าการซื้อฮาร์ดแวร์เดสก์ท็อปใหม่ เพราะ NAS ว่างงานเกือบตลอดเวลา
    • จำเป็นต้องตั้งค่าพลังงานของการ์ด Nvidia ให้อยู่ในสถานะ idle (อาจทำได้ด้วยการเรียก nvidia-persistenced)
  • มีดิสทริบิวชันที่อิง SteamOS อยู่แล้ว

    • ChimeraOS เหมาะกับการใช้งานบน PC และการใช้งานด้วยคอนโทรลเลอร์ และทำงานได้สมบูรณ์พร้อมส่วนเสริมของ Steam Deck
  • ความเห็นเกี่ยวกับการอัปเกรดแบบ A/B

    • อาจง่ายกว่าถ้าใช้ live distribution หรือติดตั้งระบบกู้คืนเวอร์ชันเก่าไว้ในพาร์ทิชัน
    • ผู้เขียนแชร์ประสบการณ์ล่าสุดที่ย้ายไปใช้ Arch Linux และบอกว่าเชื่อถือ Arch มากกว่า Valve
    • คุณภาพแพ็กเกจของ Arch, การอัปเดต main repository ที่รวดเร็ว และแพ็กเกจ AUR ที่มีประโยชน์ คือเหตุผลที่ย้ายมาจาก NixOS
  • แชร์ประสบการณ์ใช้เครื่องเล่นเกมพกพา (Legion Go) เพื่อเพิ่มประสบการณ์กับลินุกซ์

    • ก่อนหน้านี้หลีกเลี่ยงลินุกซ์เพราะดูเหมือนรองรับได้จำกัดและต้องคอยปรับแต่งตลอด
    • สนใจเรื่องระบบไฟล์แบบ immutable และการที่ลินุกซ์แบบดั้งเดิมให้สิทธิ์ root กับซอฟต์แวร์ได้ง่าย
    • แชร์ประสบการณ์ใช้ NixOS: สามารถลององค์ประกอบต่าง ๆ ได้ง่าย และถ้าไม่ต้องการก็ลบออกได้หมดจด
    • ชุมชน Jovian นำ SteamOS tarball ของ Valve มาสร้างใหม่เป็นคอมมิตที่ติดแท็กบน GitHub ทำให้สามารถไล่ดูซอร์สได้เหมือนพนักงาน Valve
    • ผ่าน Jovian สามารถติดตั้งสำเนา SteamOS ของตัวเองบน NixOS ได้
  • แชร์ประสบการณ์ทดสอบ alpha ของการรองรับ 120hz VRR และ HDR บนฮาร์ดแวร์ AMD ของ bazzite.gg

  • ค้นพบอย่างน่าสนใจว่า SteamOS มีพื้นฐานมาจาก Arch Linux

  • หากสนใจรัน SteamOS บน Linux PC ขอแนะนำ HoloISO