สำหรับผู้ที่ชื่นชอบเทคโนโลยีที่กำลังผลักดันขีดจำกัดของคอมพิวเตอร์บอร์ดเดี่ยว Raspberry Pi 5 ได้กลายเป็นแพลตฟอร์มที่ไม่คาดคิดสำหรับการทดลองใช้กราฟิกการ์ดภายนอก ความก้าวหน้าล่าสุดในการรองรับ Resizable BAR นับเป็นความสำเร็จที่สำคัญ โดยเฉพาะสำหรับกราฟิกการ์ด Intel Arc แม้ว่าการนำไปใช้งานจะเผยให้เห็นทั้งความเฉลียวฉลาดของชุมชนและข้อจำกัดทางฮาร์ดแวร์ที่พวกเขากำลังก้าวข้าม
![]() |
|---|
| การตั้งค่าพื้นที่ทำงานที่มีการ์ดจอประสิทธิภาพสูง เน้นการทดลองใช้ GPU ภายนอกบนคอมพิวเตอร์บอร์ดเดียวอย่าง Raspberry Pi |
ความท้าทายของ Resizable BAR บนระบบ ARM
ชุมชนค้นพบว่าในขณะที่ Raspberry Pi OS ควรจะรองรับ Resizable BAR ตามทฤษฎีอยู่แล้ว แต่ไดรเวอร์ Xe ของ Intel กลับพบข้อผิดพลาดที่น่าหงุดหงิดเมื่อพยายามปรับขนาดเกินขีดจำกัดเริ่มต้นที่ 256 MB ผู้ใช้หนึ่งท่านได้ให้ความเห็นเกี่ยวกับบริบทที่กว้างขึ้นของปัญหานี้ในระบบ ARM ต่างๆ ว่า:
ARM SoC และ SBC จำนวนมากมีขนาดแผนที่หน่วยความจำ PCIe ที่เล็กอย่างไม่สมเหตุสมผล อย่าง RK3399 นี่มันเท่าไหร่ 64 MB ใช่ไหม? แม้แต่สำหรับการ์ดเน็ตเวิร์กบางรุ่นยังไม่พอ
ข้อสังเกตนี้เน้นย้ำว่าข้อจำกัดของ Raspberry Pi เป็นส่วนหนึ่งของรูปแบบที่กว้างขึ้นในระบบนิเวศ ARM SBC ซึ่งการทำแผนที่หน่วยความจำ PCIe มักจะถูกละเลยเมื่อเทียบกับระบบ x86 ที่มีการใช้งาน BIOS/UEFI ที่成熟กว่ามาก
วิธีแก้ปัญหาเทคนิคและความเฉลียวฉลาดของชุมชน
ทางออกเกิดขึ้นผ่านการดีบั๊กร่วมกันระหว่างนักพัฒนา Raspberry Pi OS และชุมชนที่กว้างขึ้น ไม่เหมือนกับพีซีทั่วไปที่สามารถเปิดใช้งาน Resizable BAR ผ่านการตั้งค่า BIOS ได้ Raspberry Pi ต้องการวิธีการที่ต้องลงมือทำมากขึ้นซึ่งเกี่ยวข้องกับพารามิเตอร์เคอร์เนล การยกเลิกการเชื่อมโยงสะพาน PCIe ด้วยตนเอง และการกำหนดค่าขนาด BAR ที่แม่นยำ
กระบวนการนี้เกี่ยวข้องกับการตั้งค่าขนาด BAR ที่แน่นอนผ่านทั้งพารามิเตอร์เคอร์เนลและการแก้ไขไฟล์ระบบด้วยตนเอง จากนั้นจึงสร้างสคริปต์แบบกำหนดเองและบริการ systemd เพื่อปรับขนาดใหม่โดยอัตโนมัติทุกครั้งที่บูตระบบ ระดับความซับซ้อนทางเทคนิคนี้แสดงให้เห็นว่าการพัฒนาที่ขับเคลื่อนโดยชุมชนกำลังเติมเต็มช่องว่างที่การสนับสนุนอย่างเป็นทางการยังไม่ได้จัดการ
ขั้นตอนการกำหนดค่าที่จำเป็น
- เพิ่มไดรเวอร์ Xe เข้า Blacklist ใน
/etc/modprobe.d/raspi-blacklist.conf - เพิ่ม
xe.vram_bar_size=8192ลงใน/boot/firmware/cmdline.txt - สร้างสคริปต์ปรับขนาดด้วยตนเองหรือ systemd service
- รีบูตและโหลดไดรเวอร์ Xe ด้วยตนเอง
- ตรวจสอบ dmesg เพื่อดูว่าการเริ่มต้นระบบสำเร็จหรือไม่
ความเข้ากันได้ของฮาร์ดแวร์และข้อจำกัด
การสนทนาในความคิดเห็นเผยให้เห็นข้อจำกัดทางฮาร์ดแวร์ที่น่าสนใจ โดยเฉพาะอย่างยิ่งเกี่ยวกับความสัมพันธ์ระหว่างขนาด BAR และทรัพยากรระบบที่มีอยู่ เมื่อผู้ใช้หนึ่งคนพยายามกำหนดค่า BAR ขนาด 16 GB บนโมเดล Raspberry Pi 16 GB พวกเขาพบข้อผิดพลาด no space left on device ซึ่งชี้ให้เห็นว่าขนาด BAR อาจถูกจำกัดโดยความพร้อมของแรมทางกายภาพ แทนที่จะเป็นเพียงความจุ VRAM ของการ์ดกราฟิก
อีกข้อมูลเชิงเทคนิคหนึ่งที่ปรากฏขึ้นเกี่ยวกับว่าทำไมการ์ด VRAM 12 GB ถึงขอ BAR ขนาด 16 GB: ความยาวของ BAR ต้องเป็นเลขยกกำลังสอง นี่อธิบายคำขอที่มีขนาดดูใหญ่เกินไปและเน้นย้ำถึงข้อจำกัดทางสถาปัตยกรรมที่ขับเคลื่อนความต้องการขนาดเฉพาะเหล่านี้
การแมปขนาด Resizable BAR
| ค่า Bit | ขนาด BAR | ค่า Bit | ขนาด BAR | ค่า Bit | ขนาด BAR |
|---|---|---|---|---|---|
| 1 | 2MB | 6 | 64MB | 11 | 2GB |
| 2 | 4MB | 7 | 128MB | 12 | 4GB |
| 3 | 8MB | 8 | 256MB | 13 | 8GB |
| 4 | 16MB | 9 | 512MB | 14 | 16GB |
| 5 | 32MB | 10 | 1GB | 15 | 32GB |
ระบบนิเวศ eGPU ที่กว้างขึ้นบน Raspberry Pi
ในขณะที่ความสนใจส่วนใหญ่อยู่ที่ GPU ของ Intel ความคิดเห็นระบุว่า eGPU ของ AMD มีความเสถียรมากกว่าบนแพลตฟอร์ม Raspberry Pi โดยมีแพตช์ที่เรียบง่ายกว่าและมีแนวโน้มที่จะถูกรวมเข้าในเคอร์เนลหลักมากขึ้น ความแตกต่างนี้ชี้ให้เห็นว่าโครงสร้าง GPU ที่แตกต่างกันนำเสนอความท้าทายเฉพาะตัวเมื่อปรับให้เข้ากับข้อจำกัดทางฮาร์ดแวร์ของ Raspberry Pi
ความก้าวหน้าของชุมชนแสดงถึงขั้นตอนสำคัญสู่การทำให้ Raspberry Pi เป็นแพลตฟอร์มที่ใช้งานได้จริงสำหรับเวิร์กโหลดที่ใช้การเร่งความเร็วด้วย GPU ตั้งแต่การเรียนรู้ของเครื่องไปจนถึงการเรนเดอร์กราฟิกส์ แม้ว่าข้อกำหนดในปัจจุบันที่ต้องสร้างเคอร์เนลแบบกำหนดเองและการกำหนดค่าด้วยตนเองจะหมายความว่าความสามารถนี้ยังคงอยู่ในขอบเขตของผู้ที่ชื่นชอบเทคโนโลยีสำหรับตอนนี้
หมายเหตุความเข้ากันได้ของ GPU
- Intel Arc A750: ต้องการ BAR ขนาด 8GB ใช้ฟังก์ชัน PCIe 02:04.0
- Intel Arc B580: ต้องการ BAR ขนาด 16GB (แต่อาจประสบปัญหาข้อจำกัดของ RAM) ใช้ฟังก์ชัน PCIe 02:02.0
- AMD GPUs: มีรายงานว่ามีเสถียรภาพมากกว่าเมื่อใช้ kernel patches ที่เรียบง่ายกว่า
- Pi BAR เริ่มต้น: 256MB (ไม่เพียงพอสำหรับการทำงานของ GPU สมัยใหม่)
ผลกระทบในอนาคตและแรงผลักดันของชุมชน
งานพัฒนาที่กำลังดำเนินอยู่ รวมถึงการทดสอบ pull request ที่รวมแพตช์ Linux upstream ชี้ให้เห็นว่าการรองรับ Resizable BAR อาจจะมีความราบรื่นมากขึ้นในที่สุด อย่างไรก็ตาม สถานะปัจจุบันยังต้องการให้ผู้ใช้จัดการการกำหนดค่าของพวกเขาอย่างระมัดระวัง โดยเฉพาะเมื่อสลับระหว่างยี่ห้อ GPU ที่แตกต่างกันหรือไม่ได้ใช้ eGPU เป็นประจำ
ความมุ่งมั่นของชุมชนในการแก้ไขความท้าทายที่ซับซ้อนด้านการรวมฮาร์ดแวร์นี้ แสดงให้เห็นถึงวิวัฒนาการของ Raspberry Pi จากเครื่องมือทางการศึกษาสู่แพลตฟอร์มที่สามารถรองรับอุปกรณ์ต่อพ่วงคอมพิวเตอร์ประสิทธิภาพสูงได้ แม้ว่าจะต้องใช้ความพยายามที่ขับเคลื่อนโดยชุมชนอย่างมีนัยสำคัญเพื่อให้ทุกอย่างทำงานร่วมกันอย่างราบรื่น
Resizable BAR : คุณสมบัติของ PCI Express ที่อนุญาตให้ CPU เข้าถึงหน่วยความจำ GPU ทั้งหมดได้ในครั้งเดียว แทนที่จะเป็นส่วนย่อยๆ ละ 256 MB ซึ่งช่วยปรับปรุงประสิทธิภาพโดยการลดค่าใช้จ่ายในการถ่ายโอนข้อมูล

