# thinkpad w540 intel and nvidia not work

## zjiel

I am not able to make my display work on w540. i use XFCE4, the screen is black when i exec startx

My kernel version:

3.18.3-gentoo #24 SMP Wed Feb 4 13:13:07 CST 2015 x86_64 Intel(R) Core(TM) i7-4800MQ CPU @ 2.70GHz GenuineIntel GNU/Linux

VGA cards:

00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)

01:00.0 VGA compatible controller: NVIDIA Corporation GK107GLM [Quadro K1100M] (rev a1)

Relative kernel config:

[*] Laptop Hybrid Graphics - GPU switching support

│ <*> Intel 8xx/9xx/G3x/G4x/HD Graphics │ │

│ │ [*] Enable modesetting on intel by default │ │

│ │ [*] Enable legacy fbdev support for the modesetting intel driver

/etc/portage/make.conf

VIDEO_CARDS="intel i965 nvidia"

I have communicated with the Lenovo, they said i can not disable intel or nvidia thru BIOS. My BIOS version is 2.14.

# dmesg | grep -i intel

[ 0.000000] Reserving Intel graphics stolen memory at 0x7da00000-0x7f9fffff

[ 0.033305] smpboot: CPU0: Intel(R) Core(TM) i7-4800MQ CPU @ 2.70GHz (fam: 06, model: 3c, stepping: 03)

[ 0.033624] Performance Events: PEBS fmt2+, 16-deep LBR, Haswell events, full-width counters, Intel PMU driver.

[ 0.518995] fbcon: inteldrmfb (fb0) is primary device

[ 1.604096] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device

[ 6.010727] e1000e: Intel(R) PRO/1000 Network Driver - 2.3.2-k

[ 6.010729] e1000e: Copyright(c) 1999 - 2014 Intel Corporation.

[ 6.176124] e1000e 0000:00:19.0 eth0: Intel(R) PRO/1000 Network Connection

[ 483.826392] nvidia(PO) bbswitch(O) x86_pkg_temp_thermal kvm_intel kvm e1000e ptp pps_core

[ 483.959092] nvidia(PO) bbswitch(O) x86_pkg_temp_thermal kvm_intel kvm e1000e ptp pps_core

# dmesg | grep -i nvidia

[ 412.901219] nvidia: module license 'NVIDIA' taints kernel.

[ 412.916610] [drm] Initialized nvidia-drm 0.0.0 20130102 for 0000:01:00.0 on minor 1

[ 412.916615] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 346.35 Sat Jan 10 21:27:15 PST 2015

[ 483.826390] No drm_driver.set_busid() implementation provided by nvidia_frontend_exit_module [nvidia]. Use drm_dev_set_unique() to set the unique name explicitly.

[ 483.826392] nvidia(PO) bbswitch(O) x86_pkg_temp_thermal kvm_intel kvm e1000e ptp pps_core

[ 483.959088] No drm_driver.set_busid() implementation provided by nvidia_frontend_exit_module [nvidia]. Use drm_dev_set_unique() to set the unique name explicitly.

[ 483.959092] nvidia(PO) bbswitch(O) x86_pkg_temp_thermal kvm_intel kvm e1000e ptp pps_core

I take the following url as a reference:

https://gist.github.com/fbrozovic/9102118

# cat /proc/acpi/bbswitch

0000:01:00.0 OFF

# echo ON > /proc/acpi/bbswitch && cat /proc/acpi/bbswitch

0000:01:00.0 ON

# echo OFF > /proc/acpi/bbswitch

But seems not work for gentoo.

I have tried bbswitch and bumblebee, still not work.

any ideas or comments are appreciated.

----------

## Roman_Gruber

http://wiki.gentoo.org/wiki/NVIDIA_Driver_with_Optimus_Laptops

please utilize the search feature also

first, and i am sure there are many others too

https://forums.gentoo.org/viewtopic-t-959568-postdays-0-postorder-asc-start-0.html

and https://forums.gentoo.org/viewtopic-t-1009658-highlight-.html

----------

## zjiel

thx for your reply. i have checked them. same result. 

i am doubt nvidia-driver issue. 

my release is 346.35.

# dmesg | grep -i nvidia

[ 412.901219] nvidia: module license 'NVIDIA' taints kernel.

[ 412.916610] [drm] Initialized nvidia-drm 0.0.0 20130102 for 0000:01:00.0 on minor 1

[ 412.916615] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 346.35 Sat Jan 10 21:27:15 PST 2015

[ 483.826390] No drm_driver.set_busid() implementation provided by nvidia_frontend_exit_module [nvidia]. Use drm_dev_set_unique() to set the unique name explicitly.

[ 483.826392] nvidia(PO) bbswitch(O) x86_pkg_temp_thermal kvm_intel kvm e1000e ptp pps_core

[ 483.959088] No drm_driver.set_busid() implementation provided by nvidia_frontend_exit_module [nvidia]. Use drm_dev_set_unique() to set the unique name explicitly.

[ 483.959092] nvidia(PO) bbswitch(O) x86_pkg_temp_thermal kvm_intel kvm e1000e ptp pps_core

I noted:  

No drm_driver.set_busid() implementation provided by nvidia_frontend_exit_module [nvidia]. Use drm_dev_set_unique() to set the unique name explicitly.

----------

## zjiel

thx for your reply. i have checked them. same result. 

i am doubt nvidia-driver issue. 

my release is 346.35.

# dmesg | grep -i nvidia

[ 412.901219] nvidia: module license 'NVIDIA' taints kernel.

[ 412.916610] [drm] Initialized nvidia-drm 0.0.0 20130102 for 0000:01:00.0 on minor 1

[ 412.916615] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 346.35 Sat Jan 10 21:27:15 PST 2015

[ 483.826390] No drm_driver.set_busid() implementation provided by nvidia_frontend_exit_module [nvidia]. Use drm_dev_set_unique() to set the unique name explicitly.

[ 483.826392] nvidia(PO) bbswitch(O) x86_pkg_temp_thermal kvm_intel kvm e1000e ptp pps_core

[ 483.959088] No drm_driver.set_busid() implementation provided by nvidia_frontend_exit_module [nvidia]. Use drm_dev_set_unique() to set the unique name explicitly.

[ 483.959092] nvidia(PO) bbswitch(O) x86_pkg_temp_thermal kvm_intel kvm e1000e ptp pps_core

I noted:  

No drm_driver.set_busid() implementation provided by nvidia_frontend_exit_module [nvidia]. Use drm_dev_set_unique() to set the unique name explicitly.

----------

## Roman_Gruber

please provide, and plesae use a pastebin

lspci

/etc/make.conf

/var/log/Xorg.0.log

dmesg

xorg.conf 

ty

----------

## recoco.zhang

hi,  drm_driver.set_busid() is a nvidia driver bug on kernel 3.18.x. There are some fixes.

https://devtalk.nvidia.com/default/topic/796559/kernel-3-18-warning-no-drm_driver-set_busid-implementation-provided-by-nvidia_frontend_exit_modu/

https://bugs.archlinux.org/task/43147

----------

