# Nouveau >=3.14 fails to activate KMS

## ccube

Hey! 

Since Kernel 3.14 I cannot boot with my nvidia card and nouveau driver. I am on a lenovo w530 with optimus disabled. Booting integrated card is always working fine. When using discrete graphics , everyhting is working with kernel <=3.13, but not with more recent versions.

Since 3.14 KMS is not working on this box. Here is my Xorg log:

http://pastebin.com/vcNKFFCp

Any hints for me?

Thanks in advance,

ccube

----------

## TomWij

See "Activating KMS" at http://nouveau.freedesktop.org/wiki/KernelModeSetting/ on how to activate it; make sure that you don't have any results of the steps to deactivate it on your system, you can use "Am I running KMS?" to verify if KMS is activated.

If you share the dmesg output and .config of 3.13 and 3.14, we can run a diff comparison between them; this should highlight where the difference lies, if it is an accidental configuration problem. If it is not, it could be a bad commit; bad commits can be found out by doing a kernel git bisect, which is detailed at https://wiki.gentoo.org/wiki/Kernel_git-bisect

----------

## ccube

Here are the configs and dmesg outputs. I didnt change anything on my system. I can easily reproduce the problem with switching the kernel. 

/lu/temp/linux-3.13.7-gentoo.config

URL: http://pastebin.com/ysuvn68a

/lu/temp/linux-3.13.7-gentoo.dmesg

URL: http://pastebin.com/V8L73kU5

/lu/temp/linux-3.15.0-rc2-gentoo.config

URL: http://pastebin.com/6wjMcDfB

/lu/temp/linux-3.15.0-rc2-gentoo.dmesg

URL: http://pastebin.com/pyHyDmEM

I think this is the faulty part:

```

   14.710122] nouveau: unknown parameter 'NvBios' ignored

[   14.711034] nouveau  [  DEVICE][0000:01:00.0] BOOT0  : 0x0e73b0a2

[   14.711037] nouveau  [  DEVICE][0000:01:00.0] Chipset: GK107 (NVE7)

[   14.711038] nouveau  [  DEVICE][0000:01:00.0] Family : NVE0

[   14.712089] nouveau  [   VBIOS][0000:01:00.0] checking PRAMIN for image...

[   14.712104] nouveau  [   VBIOS][0000:01:00.0] ... signature not found

[   14.712105] nouveau  [   VBIOS][0000:01:00.0] checking PROM for image...

[   14.712140] nouveau  [   VBIOS][0000:01:00.0] ... signature not found

[   14.712142] nouveau  [   VBIOS][0000:01:00.0] checking ACPI for image...

[   14.712143] nouveau  [   VBIOS][0000:01:00.0] ... signature not found

[   14.712145] nouveau  [   VBIOS][0000:01:00.0] checking PCIROM for image...

[   14.712151] nouveau 0000:01:00.0: Invalid ROM contents

[   14.712233] nouveau  [   VBIOS][0000:01:00.0] ... appears to be valid

[   14.712235] nouveau  [   VBIOS][0000:01:00.0] using image from PCIROM

[   14.712325] nouveau  [   VBIOS][0000:01:00.0] BIT signature found

[   14.712328] nouveau  [   VBIOS][0000:01:00.0] version 80.07.31.00.18

[   14.713666] nouveau E[   VBIOS][0000:01:00.0] 0x8542[ ]: unknown opcode 0xc0

[   14.713668] nouveau E[ DEVINIT][0000:01:00.0] init failed, -22

[   14.713670] nouveau E[     DRM] failed to create 0x80000080, -22

```

----------

## TomWij

Yeah, appears to be a regression (only in the newer kernel); thus, you'll want to do a kernel git bisect to find out what the bad commit is. 

 *Quote:*   

> [   14.713666] nouveau E[   VBIOS][0000:01:00.0] 0x8542[ ]: unknown opcode 0xc0

 

From this line I get the idea that an operation is being used that your device BIOS does not support; in other words, they've implemented or changed a feature in a way that they think the feature is supported on your card as well while it isn't. The other option is that they made a typo; less common, but might also be the case.

----------

## ccube

kk, bisecting now...

----------

## ccube

Finally I found the breaking commit.

 *Quote:*   

> 
> 
> Bisecting: 7286 revisions left to test after this (roughly 13 steps)
> 
> [82c477669a4665eb4e52030792051e0559ee2a36] Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
> ...

 

After that I activated CONFIG_VGA_SWITCHEROO in my kernel config and now everything is working fine.

I always thought that switcheroo is only for old school multiplexing systems, but not for optimus graphics, since optimus isn't working with linux at all.

Is this expected behaviour? Which advantages has switcheroo config for me? (Besides of activating my nvidia card again)

----------

## TomWij

Dunno, but it seems that Nouveau wants to use it somehow; so, even though it might not be completely in use, it might need to use a small part of it and thus have it enabled.

----------

## kernelOfTruth

as far as I know this already was mentioned on lkml

so either they should activate it by default or fix it

anyways: glad it works for you and you found the cause

probably by enabling the switcheroo part - certain parts of the kernel a activated that are needed for it to function 

what hardware is this ?

edit:

ok, either

NVIDIA® Quadro® K2000M 2GB VRAM/NVIDIA® Quadro® K1000M 2

I've my nvidia graphics disabled completely in the laptop - so didn't run into this issue, desktop also runs fine

with

# CONFIG_VGA_SWITCHEROO is not set

----------

