ไดรเวอร์การ์ดจอ GMA500 เข้าสู่ staging tree แล้ว

GMA500 Graphics ของ Intel เป็นสิ่งที่สร้างความปวดหัวให้กับคนใช้ Linux มากๆ เพราะใครจะไปนึกว่าบริษัทที่มีประวัติ Open Source driver ค่อนข้างดีอย่าง Intel จะออกการ์ดจอที่ไม่เป็นมิตรกับ Linux สุดๆ มาได้ (จริงๆ ก็ไม่ใช่ความผิด Intel ทั้งหมด เนื่องจาก Intel ไปจ้างให้ Tungsten Graphics ทำ แล้วมาแปะเป็นชื่อ GMA500 ขายอีกที แถมบริษัทที่ว่าก็ไม่คิดจะทำ Open Source driver ออกมาด้วย) GMA500 เป็นการ์ดจอออนบอร์ดราคาถูกที่นิยมใช้ใน netbook หลายรุ่น

จนป่านนี้ผู้ใช้ Linux ที่มี GMA500 ก็ยังไม่มี driver ดีๆ ใช้ แต่เหมือนว่าเหตุการณ์จะส่อเค้าไปในทางดีขึ้น เมื่อ Alan Cox ได้เอา GMA500 driver ขึ้นไปบน staging tree (staging tree เป็น tree ที่ไว้ให้สำหรับการทดลองก่อนเข้าสู่ mainline kernel ส่วนใหญ่ driver ต่างๆ มักจะเข้ามาพักที่นี่ก่อนให้คนได้ทดสอบ) แม้ว่ามันจะยังไม่มี video, 3D accelaration อะไรทั้งนั้น แต่ Alan Cox ก็บอกว่า driver ตัวนี้ใช้ได้ดีทีเดียว ขนาดว่ารัน compositing ผ่าน frame buffer ของ X server ก็ยังพอลื่นไหล

อย่างไรก็ตาม นี่เป็นแค่จุดเริ่มต้นในเส้นทางที่เริ่มจะมีความหวังขึ้นมาบ้าง Alan Cox ยังขอให้คนที่มีความรู้เกี่ยวกับ DRM และ DRI ช่วยมาร่วมพัฒนาให้ GMA500 driver ตัวนี้สมบูรณ์

รายละเอียดเกี่ยวกับ GMA500 driver อ่านได้จาก http://lwn.net/Articles/429205/

ที่มา http://lwn.net/Articles/429206/

Advertisements

การ์ดจออินเทลกับ Dual Monitor ใน Ubuntu 9.04 Jaunty

เป็นอะไรที่แปลกๆงงๆอีกแล้วเรื่องของการ์ดจออินเทลกับ Ubuntu บนเครื่องของผม คือ เวลาต่อจอภายนอกแบบ Dual Monitor (ที่ไม่ใช่ Mirror screen) ผมจะต้องต่อแบบเรียงในแนวตั้งเท่านั้น ตามภาพ

ถ้าต่อแบบแนวนอน จะไม่มีภาพขึ้นเลยทั้งสองจอ

ที่แปลกไปกว่านั้นอีกก็คือ คราวนี้ต่อสองจอ (แบบแนวตั้ง) ระบบไม่ต้องไปแก้ค่า xorg.conf แล้ว กด Apply ก็เสร็จเลย และระบบยังจำค่าที่ตั้งไว้ได้ด้วย ปิดเครื่อง ถอดสาย แล้วเอามาต่อใหม่ก็จะเป็นค่าเดิม ไม่ต้องไปยุ่งกับ xorg.conf เลย

แต่เวลาต่อแบบแนวนอน ยังมีขึ้นเตือนว่าระบบจะแก้ค่า xorg.conf ต้องใส่รหัสผ่านของเราและ log in เข้ามาใหม่ด้วย แถมพอกด Apply ก็ไม่มีภาพขึ้นอีกต่างหาก อย่างที่บอกไปแล้ว

ไม่รู้ว่านี่เกี่ยวกับที่ผมลงไดรเวอร์การ์ดจออินเทลตัวใหม่หรือเปล่า?

ปัญหาการ์ดจออินเทล…ยังไม่จบสินะ

หลังจากที่อัพเกรดไดรเวอร์และเคอร์เนลไปแล้ว ผลจากการทดสอบอย่างเต็มที่กว่าสามวัน (พูดซะดูดี อันที่จริงคือดู Naruto Shippuuden ที่ MThai ซะเต็มที่ตลอดสามวัน) ของใหม่ก็เริ่มออกอาการให้ได้เห็น

อาการที่ว่าก็คือปัญหาการแสดงผลเพี้ยน ดังรูปข้างล่าง

VLC adjustment windows

VLC adjustment windows

Firefox ก็แสดงตัวอักษรบนหน้าเว็บเพี้ยนไป

Firefox ก็แสดงตัวอักษรบนหน้าเว็บเพี้ยนไป

แม้แต่หน้าต่าง Log out

ที่ยุ่งยากก็คือผมไม่รู้ด้วยซ้ำว่ามันเกิดจากอะไร อาจจะเป็นที่ X ไดรเวอร์ หรือที่เคอร์เนลก็ได้ แถมอาการก็ไม่ได้เกิดทุกครั้งด้วย แต่มักจะเป็นเวลาใช้เครื่องนานๆ และรันแอพพลิชันที่มีเอฟเฟกต์เคลื่อนไหวหน้าจอเยอะๆ เช่น ขยับหน้าต่างมั่วๆ เปิด Compiz effects เต็มที่ พร้อม Flash Video + ดูหนัง VLC ฯลฯ อะไรประมาณนี้

เอาน่า ยังไงก็ดีกว่าของเดิมเยอะอยู่ อาการที่ว่าก็ไม่ถาวรแค่ Log out ก็หายแล้ว ทำใจรอ Karmic Koala เดือนตุลาคมดีกว่า

แก้ปัญหาการ์ดจอ Intel ใน Ubuntu 9.04 Jaunty

หลังจากที่อัพเกรดมาเป็น 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 EdgeXorg 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 ติดตั้งบนเครื่อง จึงขอรายงานผลแบบบ้านๆแล้วกัน

  1. สามารถเล่น HD 720p ได้โดยไม่กระตุก แต่ต้องใช้ Totem เล่น สำหรับ VLC ยังกระตุกเหมือนเดิม
  2. สามารถดู Flash ใน YouTube แบบเต็มจอได้บ้าง ไม่ลื่นมาก แต่ก็ไม่กระตุกจนปวดหัว
  3. Compiz effects รู้สึกว่าลื่นขึ้น เช่น Desktop Zoom, Expo, Scale
  4. Compiz Benchmark เพิ่มขึ้นเล็กน้อยจาก ~90 fps เป็น ~100 fps
  5. glxgears แสดงผลดีขึ้น ไม่มีภาพเงาค้างเวลาเลื่อนหน้าต่างแล้ว แต่ Framerate กลับลดลง จาก ~520 fps เหลือ ~460 fps
  6. 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

การ์ดจอออนบอร์ดกำลังจะตาย?

Integrated Graphics Chip หรือที่เรียกกันติดปากว่าการ์ดจอออนบอร์ดกำลังจะเป็นสิ่งล้าสมัยและสูญพันธุ์ไปใน 3-4 ปีนี้

http://www.fudzilla.com/index.php?option=com_content&task=view&id=12410&Itemid=38

นี่คือเรื่องที่นักวิเคราะห์คาดการณ์เอาไว้ ดูจากทิศทางการพัฒนาของค่ายใหญ่ๆแต่ละเจ้าก็น่าจะเป็นอย่างนั้น เพราะไม่ว่าจะเป็น Intel หรือ AMD ก็มุ่งไปในทาง Embedded Graphics โดยรวมเข้าไปบน die เดียวกับ CPU เลย Intel ก็มี Arrandale ที่จะออกปลายปีนี้ AMD ก็มี Fusion ที่โม้มาตั้งนานแล้วและคาดว่าจะมาภายในปี 2011

และตามข่าวนี้ http://arstechnica.com/hardware/news/2009/03/sizing-up-a-possible-nvidia-made-x86-processor.ars แม้แต่ NVIDIA เองก็มีแผนที่จะพัฒนาชิป x86 อยู่เหมือนกัน เจ้าตลาดชิปกราฟิกอย่าง NVIDIA  คงไม่พลาดที่จะเอาเทคโนโลยีชิปกราฟิกที่ตัวเองเชี่ยวชาญผนวกเข้าไปในตัวชิปที่จะผลิตขึ้นแน่นอน

งานนี้คาดว่าผลประโยชน์คงจะมาที่ผู้บริโภคเต็มๆ เพราะว่าราคาคงจะถูกลงจากการแข่งขันและต้นทุนที่น้อยลง การบริโภคพลังงานก็คงน้อยลง ในขณะที่ประสิทธิภาพคงจะมากขึ้นกว่าแบบออนบอร์ดที่ใช้กันอยู่ปัจจุบันแน่นอน