ตั้งใจจะเขียน Blog ทุกวันแต่ไม่ได้เขียนสักทีค้างไว้หลายเรื่องดองเค็ม วันนี้เอาเรื่องทื่สร้างความปวดหัวให้ผมพอสมควรคือเรื่อง Nvidia driver ล่าสุดกับ Nvidia บน Toshiba Satellite 2410 notebook คู่กายผมก่อนหน้ากลับบ้านตอนสงกรานต์ก็ยังใช้งานได้ดีอยู่หรอกก็ลืมๆ ว่าก่อนกลับ update ไว้แล้วปิดเครื่องหรือเปล่าเพราะกลับมาจากบ้านเปิดเครื่องแล้วมันทะลึ่งไม่ขึ้นจอ LCD ของมันเองขึ้นแต่จอ CRT (ปกติตั้ง TwinView ไว้) นั่งหาสาเหตุอยุ่นานเพราะว่าตอนแรกจำไม่ได้ว่า update dapper ไว้ก่อนปิดเครื่อง จริงๆ แล้ว Nvidia แบบ Mobile นี่เวลาออก Driver ใหม่ๆ มามักจะมีปัญหาเสมอ ก่อนหน้าก็มีปัญหาเรื่อง เครื่องค้างเพราะมันไม่สามารถ get EDID ได้ก็ไปปิดที่ option ของ modprobe ซะถ้า Ubuntu ก็

/etc/modprobe.d/options 

โดยใส่ว่า

 options nvidia NVreg_SoftEDIDs=0 NVreg_Mobile=1  

โดยค่า NVreg_Mobile นี้เค้าแนะนำว่าให้ ใช้ค่าที่ตรงกับเครื่องของเราน้องโตผมเป็นเลข 1 ส่วนค่า NVreg_SoftEDIDs นี่สำคัญคือให้ปิดไปเลยครับนั้นคือเท่า 0 นั้นเอง (ส่วนค่าอื่นๆ ดูได้ใน /proc/driver/nvidia/registry) นี่คือปัญหาของ Nvidia รุ่นก่อนหน้ามาวันนี้ Nvidia รุ่น 1.0-8756 รุ่นล่าสุดทำเอาปวดหัวคือจอหลักของเครื่องมันดำสนิทไม่ขึ้นอะไรเลย ปกติจะขึ้นแค่ 800×600 คือไม่ได้ set อะไรไปนะครับแต่ตอนนี้ใช้ config เก่าอยู่มันเลย blank แรกๆ ก็มุ่งความสนใจไปที่ EDID รุ่นเก่ากว่านี้จะ set ประมาณ

    Option         "NoDDC" "1"
Option "IgnoreEDID" "1"

ไล่ดู log มันก็บอกว่าสอง options นี้ถูกยกเลิกไปแล้ว ใช้
Option "UseEDID"
แทนทำให้ปักใจเชื่อว่าปิด EDID ไม่ถูกมากขึ้นปิดแล้วปิดอีกสาระพัดเพราะมันมีสาขาย่อยมาอีกสองสาม options ที่เกี่ยวกับ EDID ใส่โน้นก็ไม่ได้ใส่นี้ก็ไม่ได้เลยลอง Search Google อีกสักครั้ง (ก่อนนั้นนับครั้งไม่ถ้วน) ก็ไปเจอที่บอร์ดของ Nvidia พูดถึง Option "ModeValidation" และ Option "ExactModeTimingsDVI" ลองที่ละ option เชื่อว่าอันแรกก่อนฮ๋าๆ ลองใส่ก็ยังไม่ได้แฮะ เชื่อว่าอันแรกเพราะว่าใน log มันพูดถึง ModeValidation ด้วย ในที่สุดก็ลอง option หลังได้ผลแฮะร้องเย้!! ดังๆ เลยเหอะๆที่ไม่คิดว่า option นี้เพราะว่ามันเป็น DVI ใครจะไปนึกละว่า LCD มันต่อด้วย port นี้ไม่เห็นนี่หว่าสรุปว่าใส่ option ดังนี้ครับ

         Option         "UseEDID" "0"
Option "UseEdidDpi" "0"
Option "UseEdidFreqs" "0"
Option "RenderAccel" "1"
Option "ModeValidation" "NoMaxSizeCheck;NoEdidDFPMaxSizeCheck"
Option "ExactModeTimingsDVI" "1"

เครื่องอื่นก็ลองศึกษาดูครับอ่านจาก README ของ Driver Nvidia ก็ได้ถ้าเข้าใจนะครับ
สรุป
Nvidia GeForcr4 420 Go บน Toshiba Satellite 2410 กับ Nvidia Driver 1.0-8756 set ค่าพื้นฐานดังต่อไปนี้เล่นได้แน่นอน
kernel module options

 options nvidia NVreg_SoftEDIDs=0 NVreg_Mobile=1  


/etc/X11/xorg.conf

Section "Device"
Identifier "NVIDIA Corporation NV17 [GeForce4 420 Go]"
Driver "nvidia"
BusID "PCI:1:0:0"
Option "UseEDID" "0"
Option "UseEdidDpi" "0"
Option "UseEdidFreqs" "0"
Option "RenderAccel" "1"
Option "NvAGP" "1"
Option "ModeValidation" "NoMaxSizeCheck;NoEdidDFPMaxSizeCheck"
Option "ExactModeTimingsDVI" "1"
EndSection

เรื่องต่อไปก็จะมาเล่าการ set ให้ใช้ TwinView บนน้องโตกันต่อ