หลังจากที่อัพเกรดมาเป็น Ubuntu 9.04 Jaunty Jackalope ผมก็พบว่าประสิทธิภาพกราฟิกของการ์ดจอ Intel บนเครื่องผมลดไปจริงๆ อย่างที่ได้ยิน “เสียงฦๅเสียงเล่าอ้าง” มา หลังจากที่ทนใช้มาได้สักระยะ เมื่อวานผมก็จึงลองแก้ไขตามวิธีของคุณ psyke83 ที่ได้ไปโพสต์ไว้ใน Ubuntuforums
ก่อนอื่นต้องเข้าใจก่อนว่าเกิดอะไรขึ้นกับไดรเวอร์อินเทลใน Ubuntu ตัวนี้ ซึ่งในโพสต์ของคุณ psyke83 ก็อธิบายไว้แล้วอย่างดี แต่ผมขอสรุปเหตุผลหลักแบบบ้านๆ ก็คือ ช่วงนี้เป็นช่วงการย้าย code ของการ์ดจออินเทลไปใช้เทคโนโลยีตัวใหม่ เช่น เปลี่ยนจาก EXA ไปเป็น UXA (2D Graphics acceleration), และ DRI1 ไปเป็น DRI2 (3D Graphics acceleration) ธรรมชาติของของใหม่ก็มักจะมี bug เยอะ Ubuntu จึงเลือกใช้ตัวเดิมไปก่อน ซึ่งก็ต้องเผชิญหน้ากับปัญหาเรื่องประสิทธิภาพอย่างเลี่ยงไม่ได้ บวกกับมี Bug ของ MTRR ด้วย ผลกระทบจึงค่อนข้างแย่ การ์ดบางรุ่นอาจบูตเข้า Graphic mode ไม่ได้เลยก็มี
วิธีที่คุณ psyke83 เสนอนั้นมี 3 แบบแบ่งตามดีกรีความสด
- แบบแรก Safe – อัพเดต Xorg driver, เปิดใช้ UXA, แก้ MTRR bug
- แบบที่สอง Optimal – อัพเดต Xorg driver, เปิดใช้ UXA, แก้ MTRR bug, อัพเดตเคอร์เนลเป็น 2.6.29.x
- แบบที่สาม Bleeding Edge – Xorg driver ตัวใหม่ล่าสุด, เปิดใช้ UXA, แก้ MTRR bug, อัพเดตเคอร์เนลเป็น 2.6.31-rc
สำหรับผมใช้แบบ Optimal แต่ว่าส่วนของเคอร์เนลอัพเดตเป็น 2.6.31-rc4 เพราะว่าบนเคอร์เนล 2.6.29.x แค่ move window ยังกระตุกเลย เล่นเอาเสียอารมณ์มากๆ
ขั้นตอนสิ่งที่ผมทำเมื่อวานขอสรุปไว้ดังนี้ (การ์ดจอผมเป็น 915GM — เครื่องอื่นรุ่นอื่นอาจจะมีวิธีแตกต่างกันออกไป)
1. Backup xorg.conf
$ sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
2. แก้ไข xorg.conf
$ sudo gedit /etc/X11/xorg.conf
แก้ในส่วนของ Device ให้เป็นตามนี้
Section "Device"
Identifier "Configured Video Device"
Option "AccelMethod" "uxa"
Option "EXAOptimizeMigration" "true"
Option "MigrationHeuristic" "greedy"
Option "Tiling" "true" # i8xx users: set to false
EndSection
3. แก้ไข MTRR bug โดยใช้สคริปต์ของคุณ Bartek
$ sudo wget http://launchpadlibrarian.net/26193373/fixmtrr.sh -O /usr/local/bin/fixmtrr.sh
$ sudo chmod +x /usr/local/bin/fixmtrr.sh
$ sudo ln -s /usr/local/bin/fixmtrr.sh /etc/gdm/PostLogin/Default
4. เพิ่ม Repository ไดรเวอร์ตัวใหม่
$ sudo gedit /etc/apt/sources.list
เพิ่มสองบรรทัดต่อท้ายไฟล์ sources.list ดังนี้
deb http://ppa.launchpad.net/ubuntu-x-swat/x-updates/ubuntu jaunty main #X-Updates PPA
deb-src http://ppa.launchpad.net/ubuntu-x-swat/x-updates/ubuntu jaunty main #X-Updates PPA
5. อัพเดตไดรเวอร์
$ sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com AF1CDFA9
$ sudo apt-get update
$ sudo apt-get dist-upgrade
6. ดาวน์โหลดและติดตั้งเคอร์เนลตัวใหม่
$ wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.31-rc4/linux-headers-2.6.31-020631rc4-generic_2.6.31-020631rc4_i386.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.31-rc4/linux-headers-2.6.31-020631rc4_2.6.31-020631rc4_all.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.31-rc4/linux-image-2.6.31-020631rc4-generic_2.6.31-020631rc4_i386.deb
หมายเหตุ ถ้าไม่อยากใช้ wget ก็เข้า Firefox ไปที่หน้าเว็บ http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.31-rc4/ แล้วใช้ Downthemall ดาวน์โหลดแพ็คเกจสามตัวข้างบนมาไว้ที่ Home Folder โดยตรงเลยก็ได้ (ผมใช้วิธีนี้เพราะว่าเร็วกว่า wget เยอะเลย)
รัน dpkg เพื่อติดตั้ง .deb ที่โหลดมา
$ sudo dpkg -i linux-headers-2.6.31-020631rc4-generic_2.6.31-020631rc4_i386.deb linux-headers-2.6.31-020631rc4_2.6.31-020631rc4_all.deb linux-image-2.6.31-020631rc4-generic_2.6.31-020631rc4_i386.deb
7. Restart เครื่องและลองทดสอบดู
เนื่องจากผมไม่มีชุด Test Suite ติดตั้งบนเครื่อง จึงขอรายงานผลแบบบ้านๆแล้วกัน
- สามารถเล่น HD 720p ได้โดยไม่กระตุก แต่ต้องใช้ Totem เล่น สำหรับ VLC ยังกระตุกเหมือนเดิม
- สามารถดู Flash ใน YouTube แบบเต็มจอได้บ้าง ไม่ลื่นมาก แต่ก็ไม่กระตุกจนปวดหัว
- Compiz effects รู้สึกว่าลื่นขึ้น เช่น Desktop Zoom, Expo, Scale
- Compiz Benchmark เพิ่มขึ้นเล็กน้อยจาก ~90 fps เป็น ~100 fps
- glxgears แสดงผลดีขึ้น ไม่มีภาพเงาค้างเวลาเลื่อนหน้าต่างแล้ว แต่ Framerate กลับลดลง จาก ~520 fps เหลือ ~460 fps
- Framerate ใน Stellarium ลดฮวบฮาบจาก 40-50 เหลือ ~20 fps (อันนี้งง)
นอกจาก Graphics Performance จะเพิ่มขึ้นแล้ว ผมยังพบว่า Kernel 2.6.30-rc7 ยังเร็วกว่าอันเดิมด้วย นับจากเวลาบูตที่ลดลงมาประมาณ 4 วินาที จาก 53 เหลือประมาณ 49 วินาที การบริโภค RAM ในตอนต้นก็ลดลงจาก ~160 MB มาอยู่ที่ ~120 MB
ตอนนี้ยังคงไม่วางใจกับ Kernel 2.6.30-rc มากนัก หวังว่าคงจะเสถียรพอตัวนะ สาธุ…
Update Thursday, July 23 2009: ตอนนี้ผมได้อัพเกรดมาเป็น 2.6.31-rc4 แล้ว คิดว่าน่าจะดีกว่าอันเดิม
$ sudo ln -s /usr/local/bin/fixmtrr.sh /etc/gdm/PostLogin/Default
ใครมาพูดอะไรไว้บ้าง?