# nouveau driver fails: KMS not enabled

## bpoint

Hello all,

I'm trying to get the nouveau driver to work on my Gentoo box instead of the binary nvidia-drivers blob, and seem to be running into an error I don't know how to fix.

I've built the nouveau driver as a module, and blacklisted both the nvidia and nouveau modules so udev doesn't try to auto-load them, then I choose which to load at boot time from the nvidia.start script described on this page in the wiki.

The nouveau module is loading, my console switches into framebuffer mode, and I can do an lsmod and see nouveau, fbcon, drm_kms_helper, and many other related modules.

However, when X tries to start up, I just get a black screen (actually there's a purple '<' in the upper-left of the screen, but I doubt that's useful  :Smile:  ).  Looking into Xorg.0.log, I see these lines in the log:

```
(EE) [drm] KMS not enabled

(EE) No devices detected.
```

A dmesg shows the nouveau driver loading, but there's this odd "GPU lockup" line which doesn't look quite right:

```
nouveau  [     DRM] allocated 1920x1080 fb: 0x70000, bo ffff8801215d4c00

fbcon: nouveaufb (fb0) is primary device

nouveau E[     DRM] GPU lockup - switching to software fbcon

Console: switching to colour frame buffer device 240x67

nouveau 0000:01:00.0: fb0: nouveaufb frame buffer device

nouveau 0000:01:00.0: registered panic notifier

[drm] Initialized nouveau 1.1.0 20120801 for 0000:01:00.0 on minor 0
```

FWIW, my GPU is a Nvidia GeForce GT 240.  Any suggestions on where to go from here?  Google isn't being very helpful with this one.

----------

## NeddySeagoon

bpoint,

```
(EE) [drm] KMS not enabled 
```

suggests that kernel mode switching support is missing from your kernel, or that some other kernel framebuffer driver is grabbing your video card before KMS can.

You must disable all other framebuffer drivers in your kernel.

This will leave you with a VGA console until nouveau loads.

----------

## bpoint

I basically followed the steps in this post.  The entire boot process stays in 80x50 text mode until X tries to start and the nouveau driver is loaded.  When I switch to a different VT, I then have a high resolution graphical text console.

The only difference is I use LILO and not GRUB as described in that post.  Could this be a problem?

----------

## NeddySeagoon

bpoint,

Both grub and lilo are boot loaders.  Their job is done once the kernel is loaded.

lilo has a gotcha that grub does not.  Did you run /sbin/lilo after the kernel was installed?

It sounds like you did as you get a framebuffer console.  There may be useful information in both dmesg and /var/log/Xorg.0.log

Please make friends with wgetpaste and post both.

----------

## bpoint

Thanks for the help so far, Neddy.

 *NeddySeagoon wrote:*   

> Both grub and lilo are boot loaders.  Their job is done once the kernel is loaded.
> 
> lilo has a gotcha that grub does not.  Did you run /sbin/lilo after the kernel was installed?

 

Yes, I do.  My rank might say n00b, but I've been using Linux for 20 years now.   :Wink: 

I was curious about the "nouveau.modeset=1" parameter which was being passed to the kernel through GRUB in that post.  I've never really passed arguments to the kernel except for "single", but when I entered the modeset parameter on the boot command line in LILO, it didn't seem to make any difference either way.

 *NeddySeagoon wrote:*   

> There may be useful information in both dmesg and /var/log/Xorg.0.log
> 
> Please make friends with wgetpaste and post both.

 

I should have done that earlier, thank you for reminding me.  dmesg is here and Xorg.0.log is here.

----------

## NeddySeagoon

bpoint,

Hmm ... dmesg says 

```
[   13.014097] nouveau  [  DEVICE][0000:01:00.0] Chipset: GT215 (NVA3)

[   13.014100] nouveau  [  DEVICE][0000:01:00.0] Family : NV50
```

and Xorg.0.log says

```
[    11.463] (II) NOUVEAU driver for NVIDIA chipset families :

[    11.463]    RIVA TNT        (NV04)

[    11.463]    RIVA TNT2       (NV05)

[    11.463]    GeForce 256     (NV10)

[    11.463]    GeForce 2       (NV11, NV15)

[    11.463]    GeForce 4MX     (NV17, NV18)

[    11.463]    GeForce 3       (NV20)

[    11.463]    GeForce 4Ti     (NV25, NV28)

[    11.463]    GeForce FX      (NV3x)

[    11.463]    GeForce 6       (NV4x)

[    11.463]    GeForce 7       (G7x)

[    11.463]    GeForce 8       (G8x)

[    11.463]    GeForce GTX 200 (NVA0)

[    11.463]    GeForce GTX 400 (NVC0)
```

 which suggests that your GT215 (NVA3)  Family : NV50 device is not yet supported by the Xorg part of nouveau that you have.

The features page shows that NV50 family devices are well supported. Maybe you need a newer xf86-video-nouveau ?

xf86-video-nouveau-1.0.7 is the newest in portage .. and dmesg says

```
 [    11.454] (II) Module nouveau: vendor="X.Org Foundation"

[    11.454]    compiled for 1.14.0, module version = 1.0.7
```

which is what you have.

----------

## wcg

I wonder if the problem could be CONFIG_FB_NVIDIA? Using the nvidia

drivers, people usually enable this (or the frame buffer options for

VESA or UVESA or FBDEV, etc). With nouveau, however, these all

need to be disabled in the kernel .config before building the kernel.

Nouveau has its own built-in framebuffer driver. You can use generic

framebuffer options like CONFIG_FB, CONFIG_FB_CFB_FILLRECTANGLE,

etc, that are not specific to any one framebuffer driver with the nouveau

framebuffer.

I use nouveau built-in to the kernel (not as a module) with a gt218 chip

(same NV50 chip family) without problems. CONFIG_DRM_KMS_HELPER

and CONFIG_DRM_TTM are both enabled (gentoo-sources-3.7.10). Xorg

driver version is xf86-video-nouveau-1.0.4 and xorg-server version is

xorg-server-1.13.1.

On the kernel command line, I pass "video=640x480-8@75". (This resolution

at this refresh rate is supported by this monitor; the "-8" means "8-bit color in the

text-mode framebuffer console".)

Xorg changes the resolution to whatever I have configured in the window

manager settings when it starts up.

Ignore the messages in the Xorg log about "module modesetting". That was

some kind of user-space modesetting for X that predates "Kernel Mode

Switching" (KMS).

----------

## syn0ptik

bpoint,

with kms you can access tty0-6 with ctrl+alt+F1-6 keys?

----------

## wcg

PS: This driver (nouveau) worked with this gpu (gt218) with kernels

3.3.8 and 3.5.7 without problems as well as with 3.7.10. 

I did use versions of linux-headers concurrent with those kernel

versions (linux-headers-3.4-r2, linux-headers-3.6, and linux-headers-3.7)

and re-emerged glibc, util-linux, iptables, etc to take account

of any kernel datatypes that had changed.

----------

## ccube

I am getting exactly the same problem with kernel-3.14.0, until 3.13.x everything went fine. after upgrading, there is no kms and no X  :Sad: 

Any hints on what could cause the problem?

http://pastebin.com/eHde82QS

----------

