summaryrefslogtreecommitdiff
path: root/KernelModeSetting.mdwn
diff options
context:
space:
mode:
authorJoe Rayhawk <jrayhawk@freedesktop.org>2013-05-20 16:37:48 -0700
committerJoe Rayhawk <jrayhawk@freedesktop.org>2013-05-20 16:37:48 -0700
commit278a2c192329c86bc35ea1c454f45eb660d6003b (patch)
treeccd51ec0ca92ede19c5881062189f1fba478ef9e /KernelModeSetting.mdwn
parent1fb24fe724d615fcb07675b85d0da889d6ec1123 (diff)
KernelModeSetting: fix preformatted text
Diffstat (limited to 'KernelModeSetting.mdwn')
-rw-r--r--KernelModeSetting.mdwn138
1 files changed, 68 insertions, 70 deletions
diff --git a/KernelModeSetting.mdwn b/KernelModeSetting.mdwn
index f4400e8..0057c6b 100644
--- a/KernelModeSetting.mdwn
+++ b/KernelModeSetting.mdwn
@@ -1,5 +1,3 @@
-
-
# Kernel Mode-setting
Kernel mode-setting (KMS) means that the kernel is responsible for setting up and changing the display mode: resolution, frequencies and color depth. [[Kernel modesetting and memory management|https://fedoraproject.org/wiki/Features/KernelModesetting]] describes some aspects of KMS along with Fedora specific information. KMS as a Linux feature was [[introduced in 2.6.29|http://kernelnewbies.org/Linux_2_6_29]].
@@ -40,68 +38,68 @@ With recent nouveau, KMS is on by default, unless you disable it with modeset=0
If you cannot tell from the screen right away (you are not sure what a framebuffer mode looks like, or you had another fb driver active), look into `/proc/fb`. If it mentions `nouveaufb`, you are running KMS.
The best hint is the kernel log. When you use KMS, you get something like this (NV28 card):
-[[!format txt """
-[drm] Initialized drm 1.1.0 20060810
-[drm] nouveau 0000:01:00.0: Detected an NV20 generation card (0x028200a2)
-[drm] nouveau 0000:01:00.0: Attempting to load BIOS image from PROM
-[drm] nouveau 0000:01:00.0: ... appears to be valid
-[drm] nouveau 0000:01:00.0: BMP BIOS found
-[drm] nouveau 0000:01:00.0: BMP version 5.36
-[drm] nouveau 0000:01:00.0: Bios version 04.28.20.23
-[drm] nouveau 0000:01:00.0: Found Display Configuration Block version 2.2
-[drm] nouveau 0000:01:00.0: Raw DCB entry 0: 02000310 000088b8
-[drm] nouveau 0000:01:00.0: Raw DCB entry 1: 02110302 00000010
-[drm] nouveau 0000:01:00.0: Raw DCB entry 2: 01010300 000088b8
-[drm] nouveau 0000:01:00.0: Raw DCB entry 3: 01120321 00000002
-[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 0 at offset 0xC7EE
-[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 1 at offset 0xCB38
-[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 2 at offset 0xC8D6
-[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 3 at offset 0xD0C2
-[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 4 at offset 0xD0DE
-[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 5 at offset 0xCA19
-[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 6 at offset 0xCAD3
-[TTM] Zone kernel: Available graphics memory: 511802 kiB.
-[drm] nouveau 0000:01:00.0: 128 MiB VRAM
-agpgart-amd64 0000:00:00.0: AGP 3.0 bridge
-agpgart: modprobe tried to set rate=x12. Setting to AGP3 x8 mode.
-agpgart-amd64 0000:00:00.0: putting AGP V3 device into 8x mode
-nouveau 0000:01:00.0: putting AGP V3 device into 8x mode
-[drm] nouveau 0000:01:00.0: 64 MiB GART (aperture)
-[drm] nouveau 0000:01:00.0: Allocating FIFO number 0
-[drm] nouveau 0000:01:00.0: nouveau_channel_alloc: initialised FIFO 0
-[drm] nouveau 0000:01:00.0: Initial CRTC_OWNER is 0
-[drm] nouveau 0000:01:00.0: Saving VGA fonts
-[drm] nouveau 0000:01:00.0: Probing TV encoders on I2C bus: 2
-[drm] nouveau 0000:01:00.0: No TV encoders found.
-[drm] nouveau 0000:01:00.0: Detected a VGA connector
-[drm] nouveau 0000:01:00.0: Detected a DVI-I connector
-[drm] nouveau 0000:01:00.0: Setting dpms mode 3 on vga encoder (output 0)
-[drm] nouveau 0000:01:00.0: Setting dpms mode 3 on tmds encoder (output 1)
-[drm] nouveau 0000:01:00.0: Setting dpms mode 3 on vga encoder (output 2)
-[drm] nouveau 0000:01:00.0: allocated 1280x1024 fb: 0x49000, bo ffff88003e572c00
-[drm] TMDS-8: set mode 1280x1024 1e
-[drm] nouveau 0000:01:00.0: Output DVI-I-1 is running on CRTC 0 using output B
-[drm] nouveau 0000:01:00.0: Setting dpms mode 0 on tmds encoder (output 1)
-[drm] nouveau 0000:01:00.0: Output DVI-I-1 is running on CRTC 0 using output B
-Console: switching to colour frame buffer device 160x64
-fb0: nouveaufb frame buffer device
-registered panic notifier
-[drm] Initialized nouveau 0.0.15 v2.6.32-926-ge68d239e6a63e0231 for 0000:01:00.0 on minor 0
-"""]]
+
+ [drm] Initialized drm 1.1.0 20060810
+ [drm] nouveau 0000:01:00.0: Detected an NV20 generation card (0x028200a2)
+ [drm] nouveau 0000:01:00.0: Attempting to load BIOS image from PROM
+ [drm] nouveau 0000:01:00.0: ... appears to be valid
+ [drm] nouveau 0000:01:00.0: BMP BIOS found
+ [drm] nouveau 0000:01:00.0: BMP version 5.36
+ [drm] nouveau 0000:01:00.0: Bios version 04.28.20.23
+ [drm] nouveau 0000:01:00.0: Found Display Configuration Block version 2.2
+ [drm] nouveau 0000:01:00.0: Raw DCB entry 0: 02000310 000088b8
+ [drm] nouveau 0000:01:00.0: Raw DCB entry 1: 02110302 00000010
+ [drm] nouveau 0000:01:00.0: Raw DCB entry 2: 01010300 000088b8
+ [drm] nouveau 0000:01:00.0: Raw DCB entry 3: 01120321 00000002
+ [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 0 at offset 0xC7EE
+ [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 1 at offset 0xCB38
+ [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 2 at offset 0xC8D6
+ [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 3 at offset 0xD0C2
+ [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 4 at offset 0xD0DE
+ [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 5 at offset 0xCA19
+ [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 6 at offset 0xCAD3
+ [TTM] Zone kernel: Available graphics memory: 511802 kiB.
+ [drm] nouveau 0000:01:00.0: 128 MiB VRAM
+ agpgart-amd64 0000:00:00.0: AGP 3.0 bridge
+ agpgart: modprobe tried to set rate=x12. Setting to AGP3 x8 mode.
+ agpgart-amd64 0000:00:00.0: putting AGP V3 device into 8x mode
+ nouveau 0000:01:00.0: putting AGP V3 device into 8x mode
+ [drm] nouveau 0000:01:00.0: 64 MiB GART (aperture)
+ [drm] nouveau 0000:01:00.0: Allocating FIFO number 0
+ [drm] nouveau 0000:01:00.0: nouveau_channel_alloc: initialised FIFO 0
+ [drm] nouveau 0000:01:00.0: Initial CRTC_OWNER is 0
+ [drm] nouveau 0000:01:00.0: Saving VGA fonts
+ [drm] nouveau 0000:01:00.0: Probing TV encoders on I2C bus: 2
+ [drm] nouveau 0000:01:00.0: No TV encoders found.
+ [drm] nouveau 0000:01:00.0: Detected a VGA connector
+ [drm] nouveau 0000:01:00.0: Detected a DVI-I connector
+ [drm] nouveau 0000:01:00.0: Setting dpms mode 3 on vga encoder (output 0)
+ [drm] nouveau 0000:01:00.0: Setting dpms mode 3 on tmds encoder (output 1)
+ [drm] nouveau 0000:01:00.0: Setting dpms mode 3 on vga encoder (output 2)
+ [drm] nouveau 0000:01:00.0: allocated 1280x1024 fb: 0x49000, bo ffff88003e572c00
+ [drm] TMDS-8: set mode 1280x1024 1e
+ [drm] nouveau 0000:01:00.0: Output DVI-I-1 is running on CRTC 0 using output B
+ [drm] nouveau 0000:01:00.0: Setting dpms mode 0 on tmds encoder (output 1)
+ [drm] nouveau 0000:01:00.0: Output DVI-I-1 is running on CRTC 0 using output B
+ Console: switching to colour frame buffer device 160x64
+ fb0: nouveaufb frame buffer device
+ registered panic notifier
+ [drm] Initialized nouveau 0.0.15 v2.6.32-926-ge68d239e6a63e0231 for 0000:01:00.0 on minor 0
+
Especially notice the line `fb0: nouveaufb frame buffer device`.
If you do not use KMS, you will only get very little, e.g. this log from an NV98 system:
-[[!format txt """
-[drm] Initialized drm 1.1.0 20060810
-pci 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
-pci 0000:01:00.0: setting latency timer to 64
-[drm] nouveau 0000:01:00.0: Detected an NV50 generation card (0x298580a2)
-[drm] Initialized nouveau 0.0.15 20090420 for 0000:01:00.0 on minor 0
-"""]]
+
+ [drm] Initialized drm 1.1.0 20060810
+ pci 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
+ pci 0000:01:00.0: setting latency timer to 64
+ [drm] nouveau 0000:01:00.0: Detected an NV50 generation card (0x298580a2)
+ [drm] Initialized nouveau 0.0.15 20090420 for 0000:01:00.0 on minor 0
+
The Nouveau DDX also mentions in the X server log if KMS is in use. For instance, in `/var/log/Xorg.0.log` you may find a line:
-[[!format txt """
-(--) NOUVEAU(0): [drm] kernel modesetting in use
-"""]]
+
+ (--) NOUVEAU(0): [drm] kernel modesetting in use
+
If you are not using KMS, you should update all the Nouveau components, because you are using an outdated version. User mode setting, i.e. non-KMS, was completely removed.
<a name="unload"></a>
@@ -112,16 +110,16 @@ The framebuffer console reserves nouveaufb and therefore you cannot directly unl
**NOTE:** For NV50 class hardware and above, the VGA text mode cannot be restored, you will be without a working virtual console until you load a new framebuffer driver! For older hardware the VGA text mode console should be restored fine. If you want to try to restore the VGA text mode yourself, the command `vbetool post` might be able to do that. Please, read the vbetool manual, before attempting it.
Here is an example script to unload Nouveau KMS:
-[[!format txt """
-#!/bin/bash
-
-echo 0 > /sys/class/vtconsole/vtcon1/bind
-rmmod nouveau
-/etc/init.d/consolefont restart
-rmmod ttm
-rmmod drm_kms_helper
-rmmod drm
-"""]]
+
+ #!/bin/bash
+
+ echo 0 > /sys/class/vtconsole/vtcon1/bind
+ rmmod nouveau
+ /etc/init.d/consolefont restart
+ rmmod ttm
+ rmmod drm_kms_helper
+ rmmod drm
+
The `echo` line unbinds nouveaufb from the framebuffer console driver (fbcon). Usually it is `vtcon1` as in this example, but it may also be another `vtcon*`. See `/sys/class/vtconsole/vtcon*/name` which one of them is a "frame buffer device".
The console font trick may be needed with the VGA text mode to restore proper console state (to keep the active line visible), and depends on your distribution.