Hi! I did spend now a few days trying to understand what happens around the nvidia drivers, and there is progress. However my system is still not running correctly with the nvidia drivers. While there seem to be no more freezes for now :-) there are errormessages about the mtrr and when I switch consoles or shut down I often do not have a readable screen, but just a greenish thin horizontal line pattern :-( . I can however switch back to F7, and continue to work in kde. I came to the result, that X (or the nvidia driver X is using) is writing a wrong line in /proc/mtrr and I would like to know why, so I can fix it. Here's what's happening: When logging out of kde, I get the xconsole messages below:
...kernel: mtrr: no MTRR for d8000000,1000 found ... kernel: unset mem range for 0xd8000000 0x2000000 ... kdm[632]: Server for display :0 terminated unexpectedly ... kdm[1081]: session start failed ... kernel: mtrr: no MTRR for d8000000,1000 found ... kernel: unset mem range for 0xd8000000 0x2000000
however mtrr reads: # cat /proc/mtrr reg00: base=0x00000000 ( 0MB), size= 512MB: write-back, count=1 reg01: base=0xd0000000 (3328MB), size= 32MB: write-combining, count=1 reg05: base=0xd8000000 (3456MB), size= 32MB: write-combining, count=1 (sometimes reg05 is reg02) So why does it not find the MTRR? The XFree86.0.log says (I marked the 3 critical lines with <==) : [...] (**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32 (==) NVIDIA(0): RGB weight 888 (==) NVIDIA(0): Default visual is TrueColor (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0) (**) NVIDIA(0): Option "NvAGP" "1" (**) NVIDIA(0): Use of NVIDIA internal AGP requested (--) NVIDIA(0): Linear framebuffer at 0xD0000000 <== (--) NVIDIA(0): MMIO registers at 0xDA000000 (--) NVIDIA(0): VideoRAM: 32768 kBytes <== (--) NVIDIA(0): Display 0: maximum pixel clock at 8 bpp: 350 MHz (--) NVIDIA(0): Display 0: maximum pixel clock at 16 bpp: 350 MHz (--) NVIDIA(0): Display 0: maximum pixel clock at 32 bpp: 300 MHz [...] (==) NVIDIA(0): Write-combining range (0xd0000000,0x2000000) <== (II) NVIDIA(0): AGP 2X successfully initialized (II) NVIDIA(0): Setting mode "1280x960" (II) NVIDIA(0): Using XFree86 Acceleration Architecture (XAA) [...] If I understood it correctly, it means that the MTRR should start at 0xD0000000 ( because of line <NVIDIA(0): Linear framebuffer at 0xD0000000>, and has a size of 0x2000000 (= 32 MB see line <NVIDIA(0): VideoRAM: 32768 kBytes>. Well, I guess then that the line 3 (reg05) in /proc/mtrr is wrong and should not be there. If X is not started the second (correct) line is not there. So I manually delete the 3rd line from /proc/mtrr <the one with reg05: base=0xd8000000 etc.>, with (as root) # echo "disable=5" >| /proc/mtrr and - when I log out of kde, it does not complain about the mtrr anymore, but still says
... kdm[632]: Server for display :0 terminated unexpectedly ... kdm[1081]: session start failed
- when X starts, it puts the third line back in. I also noticed, that when I want to switch consoles ctrl-alt-F2 etc., I just have a lot of thin horizontal lines on the screen, however this seems to happen with and without that 3rd line in /proc/mtrr . So the question is now: Who puts that (wrong?) 3rd line in /proc/mtrr ? And how can this be fixed? Thanks, Matt I'm using the original X4.03 from the SuSE 7.2 CDs. My etc/X11/XF86Config : Section "Device" BoardName "GeForce2 MX DDR" BusID "1:0:0" Driver "nvidia" Identifier "Device[0]" Option "NvAGP" "1" Screen 0 VendorName "Nvidia" EndSection
participants (1)
-
Matt T.