จุดจบของการทดลองเดสก์ท็อป AArch64
(marcin.juszkiewicz.com.pl)- ใช้งานจริง เดสก์ท็อป AArch64 ที่ใช้ Ampere Altra ประมาณ 11 เดือน แต่เมื่อใช้แพลตฟอร์มสำหรับเซิร์ฟเวอร์เหมือนเดสก์ท็อป ภาระด้านเคอร์เนล, GPU และความเข้ากันได้ของแอปก็สะสมต่อเนื่อง
- ระบบประกอบด้วย Ampere Altra Q80-30 80 คอร์ 3.0GHz, RAM 128GB, AMD Radeon RX6700XT, ASRock Rack ALTRAD8UD-1L2T และ Fedora 42–44 ซึ่งตั้งแต่แรกก็ไม่ใช่ฮาร์ดแวร์สำหรับเดสก์ท็อป
- การใช้ AMD GPU ต้องมีแพตช์อ้อมปัญหา erratum 82288 / PCIE_65 ทำให้ต้องบิลด์เคอร์เนลเองใหม่แทบทุกสัปดาห์เมื่อมีอัปเดตเคอร์เนล Fedora
- ช่วงราว Linux 7.0 เริ่มเกิดข้อผิดพลาดกับ AMD GPU และเฟรมวิดีโอดรอป และแม้เปลี่ยนไปใช้ Nvidia RTX 2060 แล้ว FreeCAD กับ OrcaSlicer ก็ยังแครชเพราะในคลัง AArch64 Flatpak ไม่มี
org.freedesktop.Platform.GL.nvidia - สุดท้ายจึงกลับไปใช้ระบบ x86-64 Ryzen 5 3600 โดยคง Ampere Altra ไว้สำหรับ บิลด์แพ็กเกจ RISC-V แทนเดสก์ท็อป และสรุปว่าหากจะทำเดสก์ท็อป AArch64 ใหม่ต้องใช้แพลตฟอร์มฮาร์ดแวร์อื่น
การตั้งค่าที่นำ Altra สำหรับเซิร์ฟเวอร์มาใช้เป็นเดสก์ท็อป
- หลังใช้งานเดสก์ท็อป AArch64 จริงประมาณ 11 เดือน จึง ยุติการทดลอง
- สเปกฮาร์ดแวร์สุดท้ายมีดังนี้
- CPU: Ampere Altra Q80-30, 80 คอร์ 3.0GHz
- RAM: 128GB, 8×16GB HMA82GR7CJR8N-XN
- GPU: AMD Radeon RX6700XT
- NVMe: Lexar LM970 2TB, ADATA SX8200 Pro 1TB
- เมนบอร์ด: ASRock Rack ALTRAD8UD-1L2T
- PSU: MSI MPG A850G 850W
- เคส: Endorfy 700 Air
- USB3: คอนโทรลเลอร์ USB 3.2/10Gbps แบบ PCIe x4 ไม่ระบุแบรนด์
- บอร์ดนี้เป็น เมนบอร์ดเซิร์ฟเวอร์ และตัวระบบ Altra เองก็ไม่ได้ออกแบบมาเป็นผลิตภัณฑ์สำหรับเดสก์ท็อป
- QVL ของระบบ Ampere Altra ไม่มีการระบุการ์ด AMD Radeon GPU ไว้ แม้ทำให้ใช้งานได้ แต่บ่อยครั้งต้องลงแรงเพิ่มเติม
- คอนโทรลเลอร์ USB 3.2 แยกต่างหากให้จำนวนอุปกรณ์ USB ที่รองรับมากกว่าการรองรับพื้นฐานของเมนบอร์ด และมี พอร์ต 10Gbps สำหรับ NVMe ภายนอก
- ระบบโดยรวมทำงานบน Fedora 42–44 ได้ แต่ในการใช้งานจริงจำเป็นต้องใช้เคอร์เนลที่บิลด์เอง ไม่ใช่เคอร์เนล Fedora มาตรฐาน
ภาระดูแลเคอร์เนลที่ PCIE_65 สร้างขึ้น
- คอนโทรลเลอร์ PCI Express ของ Ampere Altra มีปัญหา erratum 82288 / PCIE_65
- PCIE_65 อาจสร้างแอดเดรสที่ผิดพลาดในการเขียน PCIe MMIO และส่งผลกระทบเป็นพิเศษต่ออุปกรณ์บางประเภท เช่น AMD GPU
- ปัญหาอาจเกิดขึ้นเมื่อไดรเวอร์เคอร์เนล Linux แมปพื้นที่ MMIO เป็นแอตทริบิวต์หน่วยความจำแบบ Normal, non-cacheable เช่น
ioremap_wc- จุดประสงค์อาจเพื่อให้ทำ write combining หรือเข้าถึงแบบไม่จัดแนวได้
- ในกรณีนี้ อาจเกิด ข้อมูลเสียหาย ใน outbound MMIO write ของอินเทอร์เฟซ PCIe
- วิธีอ้อมปัญหาคือแมปเป็นหน่วยความจำแบบ Device, non-gathering เช่น
ioremapแทนioremap_wcและบังคับให้ทุกการดำเนินการกับหน่วยความจำในพื้นที่ PCIe MMIO ต้องจัดแนวอย่างเข้มงวด
- หากต้องการใช้เป็นระบบ Linux ปกติ จำเป็นต้องบิลด์เคอร์เนลใหม่ทุกครั้งที่แพ็กเกจเคอร์เนล Fedora อัปเดต และโดยทั่วไปต้องทำงานนี้ ทุกสัปดาห์
- หลังอัปเดตคลังแพ็กเกจเคอร์เนล Fedora แบบโลคัลแล้ว จะบิลด์ด้วยรูปแบบเวอร์ชันของตัวเอง เช่น
7.0.2-200.fc44.pcie65.6pcie65หมายถึงแพตช์ที่นำมาใช้- ตัวเลขสุดท้ายคือเคาน์เตอร์การ rebase แพตช์
- นำแพตช์จากรีโพซิทอรี GitHub มา rebase และแก้ไขเมื่อจำเป็น ส่งผลให้บางครั้งใช้เคอร์เนลที่ใหม่กว่า Fedora ทางการ
80 คอร์ไม่ได้รับประกันประสบการณ์เดสก์ท็อปที่เร็ว
- แม้มี CPU 80 คอร์ ก็ไม่ได้ทำให้กลายเป็น เครื่องเดสก์ท็อป ที่ดี
- จำนวนคอร์ที่มากไม่ได้รับประกันความเร็วที่ผู้ใช้เดสก์ท็อปสัมผัสได้ทันใจ
ปัญหาความเข้ากันได้ของแอปที่ยังเหลือแม้เปลี่ยน GPU แล้ว
- AMD Radeon RX6700XT ทำงานได้บนเคอร์เนลที่ใช้แพตช์ PCIE_65 แบบ out-of-tree และสามารถรันเกมรวมถึงถอดรหัสวิดีโอด้วยฮาร์ดแวร์ได้
- ตั้งแต่บางช่วงก่อนหรือหลังการปล่อย Linux 7.0 AMD GPU เริ่มมีปัญหา
- เมื่อรันเกม มีล็อก
amdgpu 0000:03:00.0: Fence fallback timer expired on ring vcn_dec_0ซ้ำ ๆ - เมื่อดูวิดีโอ YouTube เฟรมดรอป 720 เฟรมจากทั้งหมด 750 เฟรม จนแทบใช้งานไม่ได้
- เมื่อรันเกม มีล็อก
- ในสถานการณ์ทั่วไปคง bisect เคอร์เนลเพื่อหาจุดที่เกิดปัญหา แต่เพราะแพตช์ PCIE_65 ทำให้เคอร์เนลอยู่ในสถานะ tainted จึงยากต่อการตัดสินสาเหตุจริง
- จึงติดตั้ง Nvidia RTX 2060 แทน AMD Radeon
- หากใช้ไดรเวอร์เคอร์เนล
nouveauก็ยังต้องใช้แพตช์ PCIE_65 อยู่ดี - การใช้เคอร์เนล Fedora มาตรฐานร่วมกับไดรเวอร์ไบนารีของ Nvidia ทำงานได้ปกติ
- การเร่งถอดรหัสวิดีโอและบางเกมที่ใช้ Wine ก็ทำงานได้
- หากใช้ไดรเวอร์เคอร์เนล
- FreeCAD และ OrcaSlicer แครชทันทีหลังเปิด
- สาเหตุคือในคลัง AArch64 Flatpak ไม่มี
org.freedesktop.Platform.GL.nvidia - เครื่องมือสองตัวนี้เป็นแอปที่ใช้บ่อย จึงเป็นปัญหาหลักที่ทำให้การย้ายมาใช้เดสก์ท็อปนี้ทำได้ยาก
- สาเหตุคือในคลัง AArch64 Flatpak ไม่มี
กลับสู่ x86-64 และบทบาทใหม่ของ Altra
- สุดท้ายจึงบูต ระบบ x86-64 ที่ปิดทิ้งไว้ขึ้นมาอีกครั้ง
- หลังย้ายสายจำนวนมากและจัดสายใหม่ ก็ใช้งานสองระบบร่วมกันใต้โต๊ะ
wooster: ระบบ Ampere Altrapuchatek: ระบบ Ryzen 5 3600
- ประสบการณ์จาก 80 คอร์ไปเป็น 6 คอร์ 12 เธรดให้ความรู้สึกแปลก แต่การทำงานจริงยังดำเนินได้ตามปกติ
- แม้ใช้ทุกเธรด เพลงก็ยังเล่นต่อได้
- เล่นเกมทุกเกมในไลบรารี Steam ได้
- ออกแบบเคสสำหรับโปรเจกต์ที่บ้านใน FreeCAD จนเสร็จได้
- ทำโปรโตไทป์สำหรับพิมพ์ 3D ใน OrcaSlicer ได้ทันที
- ระบบ Ampere Altra ยังเปิดไว้ต่อเพื่อจัดการ การบิลด์แพ็กเกจ RISC-V
- ระบบนี้มีประสิทธิภาพเธรดเดี่ยวอ่อน แต่ทำงานได้เร็วภายใต้โหลดแบบหลายคอร์
จะไม่ทำเดสก์ท็อป AArch64 แบบเดิมซ้ำ
- ไม่มีแผนจะทำการทดลองเดสก์ท็อปแบบเดียวกันด้วย Ampere Altra อีก
- หากจะลองเดสก์ท็อป AArch64 อีกครั้ง จำเป็นต้องใช้ แพลตฟอร์มฮาร์ดแวร์ใหม่ทั้งหมด
- ไม่มีแผนจะจ่ายเกิน 20,000 PLN เพื่อซื้อระบบ Nvidia DGX Spark
1 ความคิดเห็น
ความคิดเห็นจาก Lobste.rs
พอเข้าใจความรู้สึกในสถานการณ์นี้อยู่บ้าง บน Raptor Talos II ของฉัน IBM ยังทำให้ PowerNV พังต่อเนื่อง
ตอนแรกเป็น amdgpu และตอนนี้กลายเป็นการ์ด SATA ที่มีปัญหา เพราะ IBM คอยไปแตะ PCIe สำหรับระบบที่ไม่ใช่ bare metal อยู่เรื่อย ๆ เลยต้องติดอยู่กับเคอร์เนล 6.14
ฉันอยากได้สักเครื่องมาตั้งแต่ตอนเปิดตัว แต่ตอนนี้มันก็ผ่านมานานพอสมควรแล้ว และก็คิดว่าอาจมีรุ่น Power 11 ออกมาก็ได้
ฉันก็เจอคล้ายกัน พยายามรัน NixOS บน Thinkpad X13S และมันก็พอใช้ได้บ้าง แต่แม้แต่ตอนติดตั้งก็ต้องใช้ Ubuntu ISO
เพราะหาภาพอิมเมจ NixOS แบบ aarch64 UEFI ที่บูตได้จริงไม่เจอ หลังอัปเกรดเป็นเคอร์เนลใหม่ การบูตก็พังไป และตอนนี้ฉันหมดแรงจะมานั่งทำให้ระบบใช้งานได้แล้ว
Ubuntu เองก็พอมีการรองรับ X13S อยู่บ้าง แต่หลายอย่างที่บนเครื่อง x86_64 ทั่วไปควรใช้ได้ กลับใช้ไม่ได้เลย การพักเครื่องใช้ไม่ได้โดยสิ้นเชิง, TPM รองรับจำกัด, กราฟิกก็มีพฤติกรรมแปลก ๆ และน่าจะยังมีปัญหาอื่นที่ฉันยังไม่ได้ทดสอบอีก
และนี่ก็ยังไม่รวมอุปกรณ์ ARM ที่บริษัทอย่าง Anbernic ให้มาแต่ภาพอิมเมจเก่า ๆ เช่นเครื่องเล่นอีมูเลชันแบบพกพา หรืออุปกรณ์อย่าง Clockwork uConsole ที่ใช้หรือฝืนใช้ฮาร์ดแวร์อย่างชาญฉลาดจนต้องพึ่งแพตช์เคอร์เนลนอกมาตรฐาน สุดท้ายซอฟต์แวร์พวกนี้ก็ไม่ได้เข้า upstream และกลายเป็นฮาร์ดแวร์ที่ผูกติดกับระบบปฏิบัติการที่อัปเดตไม่ได้
ฉันใช้เวลาไปไม่น้อยกับคอมพิวเตอร์หลายเครื่องโดยหวังว่า ARM บน Linux จะทำงานได้ดี แต่ก็ตันหมด นอกจาก Raspberry Pi แล้วก็แทบไม่มีอะไรที่ "ใช้ได้เลย" และฉันก็รู้เรื่องฝั่งฮาร์ดแวร์/เคอร์เนลไม่มากพอจะทำการปรับปรุงที่มีความหมายได้
ฉันเสียเวลาไปหลายชั่วโมงกับการติดตั้ง NixOS แบบเดียวกัน สุดท้ายติดตั้งจาก Ubuntu แล้วพอทำให้มันใช้งานได้คร่าว ๆ แต่ระบบเปราะบางเกินไปจนแทบใช้จริงไม่ได้
ฉันอยากให้มันเวิร์กมากจริง ๆ แต่ฝั่ง Linux ให้ความรู้สึกเหมือนโดนทิ้ง สุดท้ายเลยยอมแพ้แล้วไปรัน NixOS เป็น VM บน Apple MacBook Air แทน
ไม่ได้ชอบ Ubuntu เป็นพิเศษอยู่แล้ว เลยไม่ได้พยายามลองดิสโทรอื่น ส่วน Windows ก็ยังทำงานได้ดีพอสมควร
SoC รุ่นใหม่กว่านี้มีความแปลกประหลาดน้อยกว่ามาก เช่น ไม่ต้องใส่ kernel command line ยาวเป็นย่อหน้า แต่ X13s ก็ไม่มีรุ่น X Elite 2 ออกมา
สงสัยว่า แล็ปท็อป Nvidia RTX Spark รุ่นใหม่จะได้การรองรับ Linux อย่างเป็นทางการหรือไม่
เพราะสุดท้ายแล้วมันก็แทบเป็นแพลตฟอร์มเดียวกับ DGX Spark ที่รันดิสโทรสาย Ubuntu และสัญญาณเท่าที่เห็นตอนนี้ก็ดูไม่ค่อยดีนัก
ถ้าจะเล่าประสบการณ์ฝั่งตรงข้าม ตอนนี้ฉันใช้ Radxa Rock5bPlus มาได้ราว 4 เดือนแล้ว เป็นรุ่นแรม 16GB พร้อม NVMe และใช้ mainline u-boot, Fedora Rawhide รุ่น EFI และ mainline kernel
งานที่ Collabora ทำเพื่อดันการรองรับ rk3588 ขึ้น mainline นั้นเรียกได้ว่าน่าทึ่งจริง ๆ
ยังมีบางอย่างที่ต้องรออยู่ เช่น HDMI 2.0 ขึ้นไป หรือ 4k@60 และ USB-C DP อะไรพวกนี้ ถึงอย่างนั้น ในแง่ฮาร์ดแวร์มันกลับดูมีความแปลกน้อยกว่า XPS 13 9370 ของฉันเสียอีก บนโน้ตบุ๊กเครื่องนั้นเสียงออกพังไปเฉย ๆ ตั้งแต่ราว ๆ 5.14
https://dell.com/community/en/…
https://gitlab.collabora.com/hardware-enablement/rockchip-3588/…
ยังไม่มีการรองรับ HDCP แต่ก็ดูเหมือนถึงเวลาจะกลับไปลองเล่นกับงานทดลอง HDMI OSD แบบ low-latency 1080p ที่เคยทำไว้
ตอนนั้นมันทำงานได้ด้วยดีเลย์ 3 เฟรม และตามทฤษฎีต่ำสุดคือ 2 เฟรม เราสามารถ overlay Chromium Embedded ทับสัญญาณ HDMI เพื่อเพิ่มความสามารถด้าน OSD ในชุดโฮมมีเดียได้มาก
ปัญหาใหญ่สุดคือความไม่เสถียร และทั้งระบบก็มักทำให้เคอร์เนลของ OrangePi แครชเป็นประจำ
เรื่องนี้ดูเหมือนจะสะท้อน สถานะการรองรับฮาร์ดแวร์ของ Linux ในปัจจุบันได้ดีกว่า คือมีแค่ฮาร์ดแวร์ที่นิยมและทำเงินเท่านั้นที่ได้การรองรับในเคอร์เนล ส่วนสถานะของไดรเวอร์แบบไบนารีก็นรกมาตั้งแต่อดีตจนถึงตอนนี้
น่าสนใจที่ผู้คนวิ่งตาม Linux เพื่อพยายามทำให้บางอย่างบนฮาร์ดแวร์ของตัวเองใช้งานได้ สุดท้ายก็ต้องติดอยู่กับเคอร์เนลเก่า หรือไม่ก็ต้องดูแลและ rebase แพตช์เอง แทนที่จะใช้ระบบปฏิบัติการที่รองรับฮาร์ดแวร์เก่าได้โดยไม่ต้องทำเรื่องพวกนี้
ข้อความคือ “ตาม errata ของผลิตภัณฑ์ตระกูล Altra, PCIE_65 อาจสร้างที่อยู่ผิดพลาดในการเขียน PCIe MMIO และส่งผลกับอุปกรณ์บางประเภท โดยเฉพาะ AMD GPU ดังนั้นผลิตภัณฑ์ตระกูล Altra โดยทั่วไปจึงไม่เข้ากันกับอุปกรณ์ประเภทนี้ มีการให้แพตช์ซอฟต์แวร์ proof-of-concept ภายใต้ GPL v2 เพื่อให้สามารถทำงานทดลองและพัฒนาต่อได้”
ฉันก็เข้าใจว่าทำไมระบบปฏิบัติการถึงไม่อยากรับแพตช์ proof-of-concept แบบนี้
มี Linux kernel fork จำนวนมากที่รองรับฮาร์ดแวร์เฉพาะบางชิ้น ซึ่งน่าเสียดาย เพราะ fork เหล่านี้มักมีคอมมิตที่ invasive หรือ experimental ซึ่งต้องทำงานเพิ่มอีกมากกว่าจะถูกรับเข้า mainline Linux kernel
เลยสงสัยว่าระบบปฏิบัติการอื่นเดินเกมต่างจากนี้ไหม ถ้าจะทำให้การมีส่วนร่วมกับ upstream ง่ายขึ้น พร้อมกับยังคุมภาระการดูแลสถาปัตยกรรม, SoC และบอร์ดต่าง ๆ ให้อยู่ในระดับที่จัดการได้ พวกเขาทำกันอย่างไร
ถ้าอย่างนั้นก็ถือว่าช่วยประหยัดแรงที่ฉันกะจะลองไปแล้ว ถึงอย่างนั้นก็หวังว่าการระบุ จุดที่เจ็บปวด พวกนี้จะช่วยในระยะยาวได้
ฉันนึกว่ามีแต่ฉันที่ลำบาก เคยใช้สเปกคล้ายกันเป็น dev server และปัญหาส่วนใหญ่มาจาก Python dependency ที่มี native code
จำได้ว่ามีแพ็กเกจสำหรับ optimization อยู่ไม่กี่ตัว แล้วก็ Matplotlib ด้วย ลองทั้ง pip ปกติและ uv แล้ว แต่สุดท้ายก็ต้องคอมไพล์จากซอร์ส สุดท้ายเลยย้ายกลับไป x86 เต็มตัว และพูดตามตรง ถึงจะมีคอร์เยอะขนาดนั้น ประสิทธิภาพก็ไม่ได้น่าทึ่งอะไรนัก
ถ้าต้องการ Linux เดสก์ท็อป ที่ใช้งานเล่นเกมได้จริง ก็ต้องมีการ์ด Nvidia และไดรเวอร์ไบนารี และควรหลีกเลี่ยงอะไรอย่าง Flatpak ที่เข้ากันได้ไม่ดีนัก
มันเป็นแบบนี้มาหลายสิบปีแล้วไม่ว่าจะสถาปัตยกรรมไหน และถือว่าใกล้เคียงสามัญสำนึก
สำหรับ Steam นั้น บน Flatpak จะใช้ Steam controller ไม่ได้ แต่ที่เหลือทำงานได้ไม่มีปัญหา
ถ้าจะอ้างอะไรแบบนั้นก็ควรมีข้อมูลมาสนับสนุน ไม่ใช่แค่พูดว่า “เชื่อฉันสิ”
ถ้าเป็น ชุดระบบที่ไวต่อแพตช์เคอร์เนล ขนาดนี้ ฉันคงไม่ใช้แพ็กเกจเคอร์เนลของดิสโทรเลย
คง build และบูตเคอร์เนลเองนอกระบบแพ็กเกจ แล้วค่อยอัปเดตตามจังหวะของตัวเอง
ฉันตามอ่านกระแสของโพสต์นี้อยู่บ้าง และกลับรู้สึกแปลกใจมากกว่าว่ามันใช้งานมาได้นานขนาดนั้น
มันดูเหมือนเป็นแนว "พยายามยัดให้พอใช้ได้" มาโดยตลอด และพอได้อ่านบทสรุปแบบนี้ก็ยังรู้สึกเสียดายอยู่ดี