Blank/black screen on NVidia Optimus laptop
Submitted by Tim Booth
Assigned to Ray Strode @halfline
Description
My laptop (Dell Latitude E6420) has an Optimus setup where there are two graphics chips. The display normally runs of the integrated controller but there is also an NVidia chip for games etc. This stays off when not in use to save power.
lspci shows:
... 00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09) 01:00.0 VGA compatible controller: NVIDIA Corporation GF119 [Quadro NVS 4200M] (rev a1) ...
Once X starts, the display uses the i915 kernel module and the intel_drv.so (according to Xorg.0.log) and the display is fine.
But the Plymouth boot/shutdown screen never appears. I am 99% certain that this is because Plymouth sees the NVidia chip and uses that as the display. My evidence being:
- If I induce Plymouth to produce a debugging log I see various mentions of "nouveau"
<quote>``<pre>
[ply-utils.c] ply_open_module:Could not load module "/lib/plymouth/renderers/x11.so": /li
b/plymouth/renderers/x11.so: cannot open shared object file: No such file or directory
[./plugin.c] create_backend:creating renderer backend for device /dev/dri/card0
[./plugin.c] load_driver:Attempting to load driver 'nouveau'
[./plugin.c] nouveau_force_drm:opening /proc/cmdline
[./plugin.c] nouveau_force_drm:reading kernel command line
[./plugin.c] nouveau_force_drm:Kernel command line is: 'BOOT_IMAGE=/boot/vmlinuz-3.2.0-34-generic root=UUID=1fb0bf49-299f-4467-99bd-fb35669a763f ro quiet splash vt.handoff=7
'
[./plugin.c] load_driver:falling back to framebuffer for nouveau to avoid DRM hang
</pre>``</quote>
- If I plug something into the HDMI output of the laptop I do see my missing splash screen (but no X display). My guess is that the HDMI always comes directly off the NVidia chip.
I had a look to see if there was an obvious way to hint what driver should be loaded but I quickly got lost looking at the code. I'm very happy to test things if someone can give me a pointer. I'm on Ubuntu 12.04 but I updated the Plymouth package to 0.8.8 and rebuilt the initrd and there is no change with the newer version.
Cheers,
TIM