x11/nvidia-driver (340.24/340.32/343.13): nvidia BLOB doesn't recognize any display socket on Lenovo E540/UEFI and FBSD CURRENT

From: O. Hartmann <ohartman_at_zedat.fu-berlin.de>
Date: Fri, 19 Sep 2014 20:12:10 +0200
nVidia's BLOB from port x11/nvidia-driver seems to have problems in FreeBSD 11.0-CURRENT
#2 r271869: Fri Sep 19 13:28:03 CEST 2014 amd64, on Lenovo ThinkPad Edge E540 laptop with
CPU i5-4200M (Haswell) with integrated HD4600 Intel iGPU and dedicated nVidia GT 740M
(Optimus) working correctly.

The systems boots FreeBSD off via UEFI.

First of all: I tried versions 340.24, 340.32 and Beta 343.13 all with the very same
results.

Symptoms:

a) Loading kernel module "nvidia" via /boot/load.conf freezes the system after the
UEFI/EFI loader message shows up. Loading the kernel module vi kld_load=
in /etc/rc.conf[.local] works so far regarding loading and booting the kernel.

b) No display socket is recognized by the nvidia driver resulting in a blank vt() screen
after X has been started. I tried many different configurations, but at the end I suspect
that nVidia's "Optimus" technology may be the culprit.

The documentation of nVidia's driver for FreeBSD states that after the Xserver has
started it logs in Xorg.0.log (or whatever display number is used) the available display
sockets like (taken from the documents):

(--) NVIDIA(0): Valid display device(s) on Quadro 6000 at PCI:10:0:0
(--) NVIDIA(0):     CRT-0
(--) NVIDIA(0):     CRT-1
(--) NVIDIA(0):     DELL U2410 (DFP-0) (connected)
(--) NVIDIA(0):     NEC LCD1980SXi (DFP-1) (connected)

Nothing that similar shows up in my environment, but this:

[...]
[    58.656] (--) PCI:*(0:0:2:0) 8086:0416:17aa:502a rev 6, Mem _at_ 0xf1000000/4194304,
0xe0000000/268435456, I/O _at_ 0x00006000/64, BIOS _at_ 0x????????/65536
[    58.659] (--) PCI: (0:1:0:0) 10de:1292:17aa:502a rev 161, Mem _at_ 0xf0000000/16777216,
0xc0000000/268435456, 0xd0000000/33554432, I/O _at_ 0x00005000/128
[    58.662] (II) "extmod" will be loaded. This was enabled by default and also specified
in the config file.
[    58.662] (II) "dbe" will be loaded. This was enabled by default and also specified in
the config file.
[...]
[    60.055] (**) NVIDIA(0): Enabling 2D acceleration
[    60.485] (II) NVIDIA(0): NVIDIA GPU GeForce GT 740M (GK208) at PCI:1:0:0 (GPU-0)
[    60.486] (--) NVIDIA(0): Memory: 2097152 kBytes
[    60.486] (--) NVIDIA(0): VideoBIOS: 80.28.25.00.27
[    60.486] (II) NVIDIA(0): Detected PCI Express Link width: 8X
[    60.486] (--) NVIDIA(0): Valid display device(s) on GeForce GT 740M at PCI:1:0:0
[    60.487] (--) NVIDIA(0):     none
[    60.487] (II) NVIDIA(0): Validated MetaModes:
[    60.487] (II) NVIDIA(0):     "NULL"
[    60.487] (II) NVIDIA(0): Virtual screen size determined to be 640 x 480
[    60.488] (WW) NVIDIA(0): Unable to get display device for DPI computation.
[    60.488] (==) NVIDIA(0): DPI set to (75, 75); computed from built-in default
[    60.488] (--) Depth 24 pixmap format is 32 bpp
[    60.489] (II) NVIDIA: Reserving 3072.00 MB of virtual memory for indirect memory
[    60.489] (II) NVIDIA:     access.
[    60.492] (II) NVIDIA(0): Setting mode "NULL"
[    60.493] (EE) NVIDIA(0): Failed to initiate mode change.
[    60.493] (EE) NVIDIA(0): Failed to complete mode change
[    60.553] (II) NVIDIA(0): Built-in logo is bigger than the screen.
[    60.573] (II) Loading extension NV-GLX
[...]

Confusing is that in the lines
[    58.656] (--) PCI:*(0:0:2:0) 8086:0416:17aa:502a rev 6, Mem _at_ 0xf1000000/4194304,
0xe0000000/268435456, I/O _at_ 0x00006000/64, BIOS _at_ 0x????????/65536
[    58.659] (--) PCI: (0:1:0:0) 10de:1292:17aa:502a rev 161, Mem _at_ 0xf0000000/16777216,
0xc0000000/268435456, 0xd0000000/33554432, I/O _at_ 0x00005000/128

both, the Intel iGPU HD4600 (PCI:*(0:0:2:0)) and the nVidia dedicated GPU GT 
740M (PCI: (0:1:0:0)) show up.

The more scaring part is then (--) NVIDIA(0): Valid display device(s):

No display device is shown although the notebook has a built-in display, a DisplayPort
port as well as a VGA port. On all nVidia dedicated graphics boards I use on diffrent
other machines with the very same driver EVERY possible connector/socket shows up.

The laptop has EFI/UEFI

EFI Version: 2.31
EFI Firmware: Lenovo (re. 05648)

The problem is present no matter whether the drm2 and i915kms kernel moules are loaded or
not.

What is wrong here? Any chance to get the nVidia GPU to work? I use at the moment
xf86-video-scfb which is a pain in the ass and absolutely not usable, even with a faster
CPU. Under average load the whole laptop screen is like a slide show.

Please CC me.

Thanks in advance,
O. Hartmann

Received on Fri Sep 19 2014 - 16:12:51 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:52 UTC