- Bazzite คืออิมเมจแบบคัสตอมที่พัฒนาบน Fedora Atomic โดยมีเป้าหมายเพื่อมอบสภาพแวดล้อมการเล่นเกมบน Linux ตั้งแต่อุปกรณ์พกพาอย่าง Steam Deck ไปจนถึงเดสก์ท็อปและ HTPC
- โครงการนี้เริ่มต้นขึ้นเพื่อแก้ปัญหา แพ็กเกจที่ล้าสมัย และการขาดตัวจัดการแพ็กเกจที่ใช้งานได้จริงใน SteamOS โดยแม้จะเป็นระบบแบบ image-based แต่ก็ยังสามารถ ติดตั้งแพ็กเกจ Fedora ได้ และยังคงอยู่หลังการอัปเดต
- มีหลายรุ่นให้เลือก เช่น
bazzite, bazzite-deck, รุ่นย่อยแบบ GNOME และอิมเมจไดรเวอร์เฉพาะสำหรับ NVIDIA พร้อมรองรับ Game mode, HDR, Mesa, การพอร์ตแพ็กเกจจาก SteamOS, การย้อนกลับเวอร์ชัน และ Secure Boot
- ชุดตั้งต้นมาพร้อม Distrobox, Waydroid, vkBasalt, MangoHud, OBS VkCapture, xone, DisplayLink, ROCM OpenCL/HIP และรองรับไดรเวอร์สำหรับอุปกรณ์อินพุต, RGB และแท็บเล็ตหลากหลายแบบ
- มีทั้ง ISO สำหรับติดตั้งและคำสั่ง rebase พร้อมรองรับการ ตรวจสอบลายเซ็น cosign และผู้ใช้สามารถใช้ GitHub Actions กับคีย์ Cosign เพื่อสร้าง Bazzite รุ่นดัดแปลงของตนเองได้
จุดประสงค์และพื้นฐานของ Bazzite
- Bazzite คืออิมเมจแบบคัสตอมที่พัฒนาบน Fedora Atomic และสร้างด้วยแนวทางคลาวด์เนทีฟของ Universal Blue
- เป้าหมายคือขยายสภาพแวดล้อมการเล่นเกมบน Linux ให้ครอบคลุมตั้งแต่เดสก์ท็อป, HTPC สำหรับห้องนั่งเล่น ไปจนถึง อุปกรณ์พกพา อย่าง Steam Deck
- Bazzite ถูกสร้างจาก ublue-os/main และใช้เทคโนโลยีของ Fedora เพื่อมอบการรองรับฮาร์ดแวร์ที่กว้างขึ้นและไดรเวอร์ที่ติดตั้งมาในตัว
- โครงการนี้เริ่มต้นขึ้นเพื่อแก้ปัญหา แพ็กเกจที่ล้าสมัย และการขาดตัวจัดการแพ็กเกจที่ใช้งานได้จริงใน SteamOS
- แม้จะเป็นระบบแบบ image-based แต่ก็สามารถติดตั้งแพ็กเกจ Fedora ผ่านบรรทัดคำสั่งได้ และแพ็กเกจที่ติดตั้งไว้จะยังคงอยู่หลังการอัปเดต
- มีการอัปเดตหลายครั้งต่อสัปดาห์ตามแพ็กเกจ upstream ของ Fedora และรองรับเคอร์เนล Linux รุ่นใหม่ล่าสุด, SELinux ที่เปิดใช้งานเป็นค่าเริ่มต้น, Secure Boot และการเข้ารหัสดิสก์
ฟีเจอร์ด้านเกมและฮาร์ดแวร์ที่ใช้ร่วมกัน
- Bazzite ใช้ bazzite kernel เพื่อรองรับ HDR และฮาร์ดแวร์เพิ่มเติม พร้อมรวมแพตช์หลายรายการ
- สามารถใช้ HDR ใน Game mode ได้
- ในบิลด์ที่ไม่ใช่ NVIDIA สามารถใช้ NVK ได้
- รองรับโค้ดแปลงสัญญาณแบบเร่งด้วยฮาร์ดแวร์สำหรับการถอดรหัส H264
- รองรับรันไทม์ ROCM OpenCL/HIP ของ AMD
- รองรับไดรเวอร์ xone สำหรับคอนโทรลเลอร์ Xbox และ DisplayLink
- มีธีม KDE ของ SteamOS จาก Valve รวมมาให้
- ติดตั้ง vkBasalt, MangoHud, OBS VkCapture มาให้เป็นค่าเริ่มต้น
- รองรับ Winesync/Fastsync/NTsync
- ติดตั้ง Distrobox มาให้ล่วงหน้า
- ทำให้การติดตั้ง Davinci Resolve จาก davincibox ง่ายขึ้นผ่าน
ujust install-resolve
- มีบริการ
duperemove อัตโนมัติเพื่อลดพื้นที่ดิสก์ที่คอนเทนต์ใน wine prefix ใช้งาน
- รองรับ HDMI CEC ผ่าน libCEC
- ใช้ Google BBR เป็นค่าเริ่มต้นสำหรับ TCP congestion control
- ติดตั้งและเปิดใช้งาน Input Remapper มาให้ล่วงหน้า ส่วนในรุ่น Deck สามารถใช้งานได้แต่ถูกปิดไว้เป็นค่าเริ่มต้น
- Bazzite Portal มีปุ่มสำหรับติดตั้งแอปและการปรับแต่ง รวมถึงอัปเดต, rebase และรีเซ็ตอิมเมจของระบบ
- ติดตั้ง Waydroid มาให้ล่วงหน้าเพื่อรองรับการรันแอป Android
- ใช้ Flatseal, Warehouse, Gear Lever สำหรับจัดการ Flatpak และ AppImage
- รวมไดรเวอร์ OpenRGB i2c-piix4 และ i2c-nct6775 สำหรับควบคุม RGB ของเมนบอร์ดบางรุ่น
- มีไดรเวอร์ OpenRazer ติดตั้งมาในตัว และสามารถใช้งานผ่าน Bazzite Portal หรือ
ujust install-openrazer
- มีกฎ udev ของ OpenTabletDriver ติดตั้งมาในตัว และสามารถติดตั้งชุดซอฟต์แวร์เต็มผ่าน Bazzite Portal หรือ
ujust install-opentabletdriver
- รองรับคีย์บอร์ด Wooting โดยค่าเริ่มต้น
- รองรับ AMD GPU ซีรีส์ Southern Islands HD 7000 และ Sea Islands HD 8000 ด้วยไดรเวอร์
amdgpu
- ผ่าน Webapp Manager สามารถเปลี่ยนเว็บไซต์จากเบราว์เซอร์ต่าง ๆ เช่น Firefox ให้เป็นแอปได้
รุ่นเดสก์ท็อปและ Steam Deck·HTPC
- รุ่นพื้นฐานสำหรับเดสก์ท็อปคือ
bazzite ซึ่งเหมาะกับคอมพิวเตอร์เดสก์ท็อป
- การอัปเดตอัตโนมัติ สำหรับ OS, Flatpak และอื่น ๆ จัดการโดย uupd และ topgrade
- สามารถดาวน์โหลด ISO ได้จาก เว็บไซต์ดาวน์โหลด และมี คู่มือการติดตั้ง
- สามารถ rebase จาก Fedora Atomic เดิมไปยังอิมเมจไดรเวอร์ GPU แบบโอเพนซอร์สได้
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite:stable
- อุปกรณ์ที่ต้องใช้ไดรเวอร์เฉพาะของ NVIDIA สามารถ rebase ไปยังอิมเมจ
bazzite-nvidia ได้
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-nvidia:stable
- ผู้ใช้ที่เปิด Secure Boot ต้องทำตามเอกสาร Secure Boot ก่อนทำการ rebase
- NVK ซึ่งเป็นตัวเลือกโอเพนซอร์สสำหรับ NVIDIA ใน Mesa ยังมีโอกาสเกิดข้อผิดพลาดได้ง่าย ณ เวลาที่เขียน และปัญหาที่เกี่ยวข้องกับ NVK ควรรายงานไปยัง Mesa ไม่ใช่ Ublue/Bazzite
-
bazzite-deck สำหรับ Steam Deck และ HTPC
bazzite-deck ออกแบบมาเพื่อเป็นทางเลือกแทน SteamOS บน Steam Deck และเพื่อประสบการณ์แบบคอนโซลบน HTPC
- บูตเข้าสู่ Game mode ได้ทันทีเหมือน SteamOS
duperemove อัตโนมัติช่วยลดขนาด compatdata ได้มาก
- Mesa รุ่นใหม่สร้าง shader cache ที่เล็กลง และไม่จำเป็นต้องใช้ shader cache เพื่อหลีกเลี่ยงอาการกระตุก
- สามารถบูตได้แม้ไดรฟ์จะเต็ม
- รองรับทุกภาษาที่ upstream Fedora รองรับ
- ใช้ Wayland บนเดสก์ท็อปและรองรับ Steam input
- รวมเวอร์ชันพอร์ตของแพ็กเกจ SteamOS ส่วนใหญ่ เช่น ไดรเวอร์, ตัวอัปเดตเฟิร์มแวร์ และตัวควบคุมพัดลม จาก evlaV repository
- ใช้ Mesa ที่ผ่านการแพตช์เพื่อควบคุมเฟรมเรตใน Gamescope ได้อย่างถูกต้อง
- รวมแพตช์ SteamOS BTRFS เพื่อรองรับ BTRFS บน SD card โดยค่าเริ่มต้น
- มาพร้อมเวอร์ชันพอร์ตของ SDGyroDSU ที่เปิดใช้งานไว้เป็นค่าเริ่มต้น
- ระหว่างติดตั้งสามารถเลือกติดตั้ง Decky Loader, EmuDeck, RetroDECK, ProtonUp-Qt และอื่น ๆ ได้
- มีระบบอัปเดตแบบคัสตอมใน UI ของ Game mode สำหรับอัปเดต OS, Flatpak และอื่น ๆ
- คงการติดตั้ง GRUB ของ Fedora ไว้เพื่อรองรับการบูตคู่กับ Windows
- สามารถย้อนกลับไปยัง Bazzite เวอร์ชันก่อนหน้าด้วยความสามารถ rollback ของ
rpm-ostree และเลือกอิมเมจก่อนหน้าได้ตอนบูต
- ติดตั้ง Steam และ Lutris มาในอิมเมจล่วงหน้าในรูปแบบ layered package
- ใช้ ZRAM ขนาด 4GB พร้อมอัลกอริทึมบีบอัด LZ4 เป็นค่าเริ่มต้น
- รวมตัวจัดตาราง CPU LAVD และ BORE เพื่อการเล่นเกมที่ลื่นไหลและตอบสนองดี
- ใช้ตัวจัดตาราง I/O แบบ Kyber เพื่อป้องกัน I/O starvation ระหว่างการติดตั้งเกมหรือการทำงานของ
duperemove เบื้องหลัง
- ใช้พารามิเตอร์เคอร์เนลของ SteamOS
- รวมโปรไฟล์สีสำหรับปรับเทียบจอของ Steam Deck ทั้งแบบด้านและแบบเงา
- ฟีเจอร์สำหรับผู้ใช้ขั้นสูง เช่น undervolt แบบความเสี่ยงต่ำของ Steam Deck, การโอเวอร์คล็อกหน้าจอ และการเพิ่ม VRAM สูงสุดเป็นสองเท่าเมื่อดัดแปลง RAM เป็น 32GB จะมีมาให้แต่ปิดไว้เป็นค่าเริ่มต้น
- บริการอัปเดต BIOS และเฟิร์มแวร์เฉพาะฮาร์ดแวร์ Steam Deck สามารถปิดได้ในเทอร์มินัลด้วย
ujust disable-bios-updates, ujust disable-firmware-updates
- บริการเหล่านี้จะถูกปิดโดยอัตโนมัติบนฮาร์ดแวร์ที่ไม่ใช่ Deck รวมถึง Deck ที่ใช้จอ DeckHD หรือดัดแปลง RAM เป็น 32GB
- การตั้งค่า Steam Gaming Mode สำหรับอุปกรณ์พกพาทางเลือกควรอ้างอิง Handheld Wiki
รุ่น GNOME และฟีเจอร์จาก upstream
- มีบิลด์สภาพแวดล้อมเดสก์ท็อป GNOME ให้ทั้งในรุ่นเดสก์ท็อปและรุ่น Deck
- บิลด์ GNOME เปิดใช้งาน อัตรารีเฟรชแบบแปรผัน และ fractional scaling บน Wayland
- มีเมนูคัสตอมบนแถบด้านบนสำหรับกลับสู่ Game mode, เปิด Steam และเรียกใช้ยูทิลิตีต่าง ๆ
- ติดตั้ง GSConnect มาให้ล่วงหน้าและใช้งานได้ทันที
- รวม Hanabi extension เพื่อมอบฟังก์ชันคล้าย Wallpaper Engine ของ KDE
- มี GNOME extensions แบบเลือกใช้หลายรายการติดตั้งมาให้ล่วงหน้า พร้อมการปรับแต่งประสบการณ์ใช้งานเพิ่มเติม
- Firefox GNOME theme และ Thunderbird GNOME theme จะอัปเดตอัตโนมัติหากมีการติดตั้งไว้
- คำสั่ง rebase สำหรับรุ่นเดสก์ท็อป GNOME มีดังนี้
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-gnome:stable
- อิมเมจ GNOME ที่ใช้ไดรเวอร์เฉพาะของ NVIDIA สามารถ rebase ได้ด้วยคำสั่งต่อไปนี้
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-gnome-nvidia:stable
- รุ่น GNOME สำหรับ Steam Deck/HTPC ใช้คำสั่งต่อไปนี้
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-deck-gnome:stable
-
ฟีเจอร์ที่นำมาจาก Universal Blue และ Fedora
- ฟีเจอร์จากฐาน Universal Blue
- อิมเมจ NVIDIA จะติดตั้งไดรเวอร์เฉพาะของ NVIDIA มาให้ล่วงหน้า
- เปิดใช้งาน Flathub เป็นค่าเริ่มต้น
- มีคำสั่ง
ujust เพื่อความสะดวก
- มีมัลติมีเดียโค้ดेकมาให้เป็นค่าเริ่มต้น
- สามารถ rollback Bazzite ไปยังบิลด์ใดก็ได้ภายใน 90 วันที่ผ่านมา
- ฟีเจอร์จากฐาน Fedora Linux Kinoite·Silverblue
- มอบฐานระบบที่เสถียร
- แพ็กเกจของระบบค่อนข้างใหม่อยู่เสมอ
- สามารถเพิ่มแพ็กเกจ Fedora แบบ layer ลงในอิมเมจได้ และยังคงอยู่หลังการอัปเดต
- มี SELinux ติดตั้งและตั้งค่าไว้ล่วงหน้า
- สามารถ rebase ไปยังอิมเมจ Fedora Atomic อื่น ๆ ได้โดยไม่สูญเสียข้อมูลผู้ใช้
- ติดตั้ง CUPS มาให้ล่วงหน้าเพื่อรองรับการพิมพ์
การตรวจสอบ, Secure Boot และการสร้างเอง
- อิมเมจของ Bazzite ถูกลงนามด้วย cosign ของ sigstore
- สามารถดาวน์โหลดคีย์
cosign.pub จากที่เก็บและตรวจสอบลายเซ็นด้วยคำสั่งต่อไปนี้
cosign verify --key cosign.pub ghcr.io/ublue-os/bazzite
- Secure Boot รองรับผ่านคีย์แบบคัสตอม และมีคีย์สาธารณะอยู่ที่ secure_boot.der ในรูทของที่เก็บ
- หากต้องการลงทะเบียนคีย์ Secure Boot ก่อนติดตั้งหรือ rebase ให้ใช้คำสั่งต่อไปนี้
sudo mokutil --timeout -1
sudo mokutil --import secure_boot.der
- หากใช้อิมเมจ Universal Blue อยู่แล้ว สามารถรัน
ujust enroll-secure-boot-key แทนได้
- หากระบบถามรหัสผ่าน ให้ใช้
universalblue
- Steam Deck ไม่ได้มาพร้อมการเปิดใช้งาน Secure Boot และไม่มีคีย์ที่ลงทะเบียนไว้ล่วงหน้า ดังนั้นไม่ควรเปิดใช้งานหากยังไม่เข้าใจอย่างชัดเจน
- Bazzite ถูกสร้างทั้งหมดด้วย GitHub Actions
- สามารถสร้างเวอร์ชันคัสตอมของตนเองได้ด้วยการ fork ที่เก็บ เพิ่มคีย์สำหรับลงนามของตนเอง แล้วเปิดใช้งาน GitHub Actions ใน fork นั้น
- การรันเวิร์กโฟลว์
Build Bazzite จะสร้างอิมเมจคัสตอมสำหรับทุกรุ่นของ Bazzite
- หากต้องการสร้างเฉพาะบางรุ่น ให้คอมเมนต์รุ่นที่ไม่ต้องการออกในรายการ
strategy.matrix ของงาน push-ghcr ในไฟล์ .github/workflows/build.yml
- หากต้องการซิงก์ fork กับ upstream สามารถใช้การตั้งค่า pull app ได้
-
ขั้นตอนการลงนามอิมเมจของตนเอง
- ควรตรวจสอบวิธีจัดการ secret ของ GitHub ก่อน
- สร้างคู่คีย์ใหม่ด้วย Cosign
cosign generate-key-pair
- แทนที่
cosign.pub ในที่เก็บสาธารณะด้วยคีย์สาธารณะที่สร้างขึ้น
- เพิ่มข้อความคีย์ส่วนตัวจาก
cosign.key ลงใน Repository Secret ของที่เก็บ fork
- ชื่อ secret ต้องเป็น
SIGNING_SECRET
เอกสารและชุมชน
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ดีมาก มีเดียเซิร์ฟเวอร์ในห้องนั่งเล่นน่าจะเป็นม้าโทรจันที่ช่วยชุบชีวิตการ self-hosting และสุดท้ายอาจเปลี่ยนอินเทอร์เน็ตให้กลับไปเน้น P2P อีกครั้ง
เมื่อคนส่วนใหญ่มีอินเทอร์เน็ตแบบ symmetric และมีระบบ Linux ที่ทรงพลังแล้ว สิ่งที่เหลืออยู่ก็เป็นแค่ปัญหาซอฟต์แวร์ที่คอยขัดขวางไม่ให้ผู้คนใช้อินเทอร์เน็ตแบบที่ตั้งใจไว้แต่แรก คือเป็นทั้งผู้บริโภคและผู้เผยแพร่ในเวลาเดียวกัน
ทางที่ดีกว่าคือวางไคลเอนต์ขนาดเล็ก เงียบ และเคารพความเป็นส่วนตัว เช่น Apple TV แล้วเก็บสื่อไว้ใน NAS ที่อยู่ที่อื่น จะต้องมีแอปแยกสำหรับให้บริการสื่อแบบ Plex หรือไม่ ก็ขึ้นอยู่กับ UX ของไคลเอนต์ที่ชอบ หรืออาจไม่ต้องมีเลยแบบ Infuse
ไม่ว่าเซิร์ฟเวอร์จะอยู่ในห้องนั่งเล่น ในห้องทำงาน หรือใน home lab ก็แทบไม่ต่างกันต่อ การทำให้ self-hosting เข้าถึงคนทั่วไป และยิ่งไปกว่านั้นการจัดการคลังสื่อภายในเครื่องอาจได้รับความนิยมน้อยลงด้วยซ้ำ ผู้คนทำสิ่งนี้กันมาหลายสิบปีแล้ว ถ้ามีผลแบบม้าโทรจันจริงมันก็น่าจะเกิดขึ้นไปนานแล้ว
เพราะงั้นถ้ามีสินค้าประเภทเสียบแล้วใช้ได้เลยออกมาในตลาดนี้จะน่าสนใจมาก
ได้รู้จักเครื่องมือหลายตัวสำหรับดิสโทรตระกูล rpm-ostree
gnome-randr-rust: https://github.com/maxwellainatchi/gnome-randr-rust
ทำหน้าที่เหมือน
xrandrสำหรับ Gnome/Wayland บนดิสโทรที่ไม่รองรับwlr-randrKernel-fsync: https://copr.fedorainfracloud.org/coprs/sentry/kernel-fsync/
gnome-vrr: https://copr.fedorainfracloud.org/coprs/kylegospo/gnome-vrr/
gsettings set org.gnome.mutter experimental-features "['variable-refresh-rate']"obs-vkcapture: https://copr.fedorainfracloud.org/coprs/kylegospo/obs-vkcapt...
system76-scheduler: https://copr.fedorainfracloud.org/coprs/kylegospo/system76-s...
ดีใจที่ในที่สุดอันนี้ก็ขึ้นมาแล้ว ตอนโพสต์เมื่อไม่กี่สัปดาห์ก่อน ฉันยังแปลกใจเลยว่าทำไมไม่รู้จักมันให้เร็วกว่านี้ และคิดว่าน่าจะขึ้นไปติดอันดับบนทันที แต่กลับจมหายไปเฉย ๆ (https://news.ycombinator.com/item?id=38642298)
ฉันประทับใจกับ Bazzite มาก จนถึงตอนนี้ยังไม่เห็นข้อเสียของการใช้ Bazzite แทน SteamOS เลย และกลับมีข้อดีอยู่มาก ฉันอยากเอา Deck เข้าไปอยู่ใน tailnet ของตัวเองมานานแล้วแต่ทำได้ไม่ง่ายนัก อีกทั้งก็อยากติดตั้งแพ็กเกจหลายตัวลงใน OS พื้นฐานโดยตรง ซึ่ง Flatpak ทำได้ไม่ค่อยดีนัก แต่ตอนนี้ทำได้แล้ว
ตัวอย่างเช่น ฉันรันเกมบนเดสก์ท็อปแรง ๆ ผ่าน Remote Play แล้วดูบนทีวี จากนั้น SSH เข้าไปที่โฮสต์ เปิด tmux โดยให้ pane หนึ่งรัน htop และอีก pane หนึ่งรัน nvtop สำหรับการ์ด AMD ซึ่งตอนนี้ก็ทำงานได้ดีแล้ว สำหรับฉันมันให้ความรู้สึกเหมือนความต่างระหว่างการขับรถพร้อมมีมาตรวัดความเร็วกับมาตรวัดรอบ กับการขับรถแบบไม่มีอะไรให้ดูเลย เรื่องง่าย ๆ แบบนี้บน SteamOS กลับทำได้ยาก แต่บน Bazzite ทำได้ง่าย
services.tailscale.enable = trueเหมือนกันชักอยากลองเทียบ NixOS กับ Bazzite ดูแล้วว่าเป็นอย่างไร
ดูน่าสนใจมาก ไม่ได้ต้องการความพกพาและไม่ชอบเสียงพัดลม แต่ก็อยากได้ความใช้งานง่ายแบบ Steam เลยกำลังหาประมาณว่า “พีซีสเปกใกล้เคียง Steam Deck” อยู่พอดี
เท่ากับว่าตอนนี้มีทางเลือกสำหรับรันเกมได้ง่าย ๆ บนพีซีเฉพาะทางทั่วไปที่เงียบ ๆ แล้ว เพียงแต่น่าจะไม่มีการปรับแต่งให้เหมาะกับชุด GPU/CPU/RAM แบบสุ่มเหมือนที่ Valve กับ AMD ทำให้ Steam Deck
น่าสนใจที่มีแพตช์ SteamOS BTRFS เข้ามา ทำให้ SD การ์ดรองรับ BTRFS แบบเต็มรูปแบบได้เป็นค่าเริ่มต้นด้วย ก่อนหน้านี้ก็สงสัยว่าข้อดีของ BTRFS ในบริบทของเกมหรือ Steam Deck คืออะไร พอไปดู https://gitlab.com/popsulfr/steamos-btrfs ก็เห็นว่ามันช่วยประหยัดพื้นที่เก็บข้อมูลด้วยการบีบอัดแบบโปร่งใสและการกำจัดข้อมูลซ้ำ อ่านข้อมูลน้อยลงจึงอาจช่วยให้เวลาโหลดดีขึ้น และยังย้อนกลับไปสถานะก่อนหน้าได้ง่ายด้วย snapshot ทันที น่าจะมีประโยชน์กับการ rollback ระบบหรือ rollback เกมเวอร์ชันต่าง ๆ ของเกมเดียวกัน
มันจะจัดสรรบล็อกใหม่เสมอ และทำเครื่องหมายปลดบล็อกเก่าเมื่อไม่มีการอ้างอิงจากระบบไฟล์ที่กำลังใช้งาน หรือจาก snapshot หากรองรับ
สื่อแฟลชไม่ชอบการเขียนทับตำแหน่งเดิมอย่างมาก เพราะต้องปลดบล็อกก่อนแล้วค่อยเขียนใหม่ แม้เฟิร์มแวร์แฟลชสมัยใหม่จะพยายามจัดสรรบล็อกใหม่อยู่แล้วจึงช่วยหักล้างไปบางส่วน แต่โดยรวมก็ยังเป็นรูปแบบการเขียนที่ดีกว่าสำหรับแฟลช
งานหนักส่วนใหญ่จริง ๆ แล้วเป็นฝีมือของ kernel และ Mesa stack ซึ่งเป็นที่ที่งานจริงเกิดขึ้น Fedora ก็ดึงอัปเดต kernel และ Mesa มาได้ค่อนข้างเร็ว ส่วน Steam client ก็จัดการอัปเดต Proton ให้
ซินเนอร์ยีระหว่างดิสโทรสายเกมอย่าง Bazzite, ChimeraOS และ Nobara ก็ดีมาก มีการแชร์โค้ดและร่วมมือกันเยอะ และทั้งหมดก็เปิดให้ใครก็เข้าไปแตะต้องได้
มันทำงานเหมือน Steam Deck เครื่องใหญ่ ๆ ดังนั้น performance overlay, Xbox controller, FSR ฯลฯ ใช้งานได้ดีทันที ต้องจับคู่คอนโทรลเลอร์แต่ละตัวก่อน แต่ทำครั้งเดียวก็พอ ส่วนตัวเล่นแคมเปญ AAA อย่าง God of War, Horizon Zero Dawn, Baldur’s Gate 3 จบที่ 4K มาแล้ว และเวลาเดินทาง เซฟความคืบหน้าก็ไปอยู่บน Deck ต่อได้เลย เป็นประสบการณ์หลายอุปกรณ์แบบเต็มตัว
แต่ก็ต้องตั้งความคาดหวังให้เหมาะสม เกม VR กับเกมมัลติเพลเยอร์ที่ไม่เลือกใช้ EAC หรือใช้แอนตีชีตระดับเคอร์เนล รวมถึงเกมที่ Epic ทำ แทบจะใช้งานไม่ได้ สำหรับผมมันคล้ายแพลตฟอร์มคอนโซล คือเล่นได้หลายเกมแต่ไม่ใช่ทุกเกม ณ จุดนี้ทั้ง Windows และ Linux ก็ยังมี UX ที่เละพอกัน และปัญหาแย่ที่สุดในทั้งสองฝั่งก็คือ third-party launcher สุดสยอง
เผื่ออ้างอิงไว้ ผมมีส่วนเกี่ยวข้องกับ universal blue แต่ไม่ได้มีส่วนร่วมกับ Bazzite โดยตรง
ถ้าเก็บ Proton/Wine runtime ไว้บนดิสก์เดียวกัน การกำจัดข้อมูลซ้ำ ก็อาจมีประโยชน์เช่นกัน เพราะแต่ละเกมอาจต้องใช้ runtime ต่างกัน และเวอร์ชันล่าสุดก็ไม่ใช่ว่าจะดีที่สุดเสมอไป อีกทั้งสภาพแวดล้อม Wine ที่ไม่มีเกมเลยก็ยังอาจกินพื้นที่หลายร้อย MB จาก DLL และ dependency ร่วมต่าง ๆ การกำจัดข้อมูลซ้ำช่วยลดพื้นที่เสียเปล่าได้ แต่พอมองจากราคาสื่อเก็บข้อมูลแฟลชทุกวันนี้ ก็อาจไม่ใช่เรื่องที่ต้องกังวลมากนัก
บางคนชอบ checksums แต่ผมมองว่าถ้าไม่มีหน่วยความจำ ECC ก็ไม่ได้มีประโยชน์มากนัก
ข้อดีหลักคือการบีบอัด และโดยเฉพาะการเพิ่มความเร็วในการอ่านบนไดรฟ์ที่มีการบีบอัดอย่าง MicroSD ส่วนการกำจัดข้อมูลซ้ำของ BTRFS ก็ช่วยแก้ปัญหา Wine prefix ที่มี dependency คล้ายกันกินพื้นที่เกินจำเป็นได้ด้วย
เกี่ยวข้องกันนิดหน่อย วันนี้เพิ่งเจอ SteamOS รีดิสทริบิวชันสำหรับเครื่องทั่วไป โดยมีเงื่อนไขว่าต้องไม่มีกราฟิก Nvidia: https://github.com/HoloISO/holoiso
ผมไม่ค่อยรู้รายละเอียดเรื่องความเข้ากันได้ของ GPU บน Linux แต่ทำไมมันถึงไม่ใช่แค่ติดตั้งแพ็กเกจปิดซอร์สของ Nvidia แล้วจบ?
สงสัยว่าแรงจูงใจในการทำโปรเจกต์นี้คืออะไร และมีใครหนุนหลังอยู่หรือเปล่า มันให้ความรู้สึกเหมือนความเคลื่อนไหวแบบ โอเพนซอร์สเชิงกลยุทธ์ มากกว่าโปรเจกต์งานอดิเรกช่วงสุดสัปดาห์
หรืออาจเกี่ยวกับ Nvidia?
ตอนแรกผมแค่อยากได้อะไรที่คล้าย SteamOS แต่ยังติดตั้งแพ็กเกจและดูแลอัปเดตต่อไปได้ หลังจากใช้ Silverblue อยู่ราว 1 ปี ก็พบว่า Fedora ให้สิ่งนั้นได้ จากนั้นมันก็ค่อย ๆ พัฒนาและขยายใหญ่ขึ้น
เพิ่งใส่ HDR เข้าไปในช่องทดสอบ และตอนนี้ก็กำลังทำ custom kernel signing เพื่อย้ายมันไปช่องเสถียรโดยไม่ทำให้การรองรับ Secure Boot พัง
ถ้าอยากช่วยสนับสนุนตอนนี้ วิธีที่ดีที่สุดคือทดลองติดตั้งแล้วรายงานบั๊กที่เจอ ยิ่งมีผู้ใช้มากก็ยิ่งดี
สงสัยว่ามันทำงานได้ดีแค่ไหนบนอุปกรณ์ที่เป็นระบบสัมผัสล้วน เช่น แท็บเล็ต
ผมมี ThinkPad X1 Tablet รุ่นที่ 3 และยังคงหาดิสโทร Linux ที่เหมาะกับการใช้เป็นแท็บเล็ตล้วน ๆ โดยไม่ต่อคีย์บอร์ดอยู่ Fedora ปกติมีบั๊กที่ค่อนข้างน่ารำคาญกับคีย์บอร์ดบนหน้าจอ และแม้การติดตั้งส่วนขยาย Phosh จะช่วยแก้ได้เกือบหมด แต่ก็มีความยุ่งยากอื่นตามมาจนใช้งานไม่สะดวก
อีกอย่างคือการเข้ารหัสดิสก์ เพราะ Grub ไม่มีคีย์บอร์ดบนหน้าจอ ทำให้ตอนบูตยังต้องต่อคีย์บอร์ดอยู่ดี เลยสงสัยว่าที่นี่แก้ปัญหานี้อย่างไร
ดูสิ Bazzite รันบน Mac Pro ถังขยะ: https://youtu.be/te1AEj_RA64
ตอนประกอบพีซีเกมมิงเมื่อไม่กี่เดือนก่อน มันดูเป็นตัวเลือกที่น่าสนใจเลยลองใช้
แต่เจอปัญหาหลายอย่าง และหลังจากล้มเหลวไปราว ๆ 6~7 ครั้งก็ยอมแพ้ ตอนนี้เลยมาตั้งหลักที่ Debian แทน (https://blog.c10l.cc/09122023-debian-gaming)
ถึงอย่างนั้นก็ยังยินดีจะลอง Bazzite อีกครั้งเพื่อดูว่าปัญหาหลายอย่างที่เจอตอนนั้นได้รับการแก้ไขหรือยัง เพียงแต่สำหรับผมมีข้อจำกัดร้ายแรงอยู่ข้อหนึ่งคือมันไม่รองรับ การบูตคู่/หลายระบบ ไม่ทราบว่าตอนนี้เปลี่ยนไปแล้วหรือยัง?