# nVidia Optimus GT740M and Intel HD4600: no X11 on CURRENT



## Drohne (Sep 20, 2014)

I have a new Lenovo E540 notebook which comes with UEFI Firmware, Intel Haswell i5-4200M CPU with its integrated HD4600 iGOU and a dedicated discrete nVidia GT 740M GPU. The crappy Lenovo firmware allows me to select for display either "Integrated" or "nVidia Optimus". I checked latter, but also the first doesn't work - this for the record.

Phenomenon:

I can not start, in any case, an accelerated X11 and I have to use x11-drivers/xf86-video-scfb, which is worse than a pain in the ass and unusable, but it delivers at least a graphical shell.

I tried the x11/nvidia-driver version 340.24, 340.32 and even the BETA 343.13. It is always the same:

- The (nvidia) GPU gets detected, not the iGPU HD4600
- Starting the X11 server with the nVidia GPU fails with a blank screen - but I can switch to the vt() console as expected.
- Checking the Xorg.0.log reveals, that there are no display sockets attached to the nVidia GPU, or the driver can not find them. The laptop has at least a built-in display, a Display Port and a VGA-15 socket:


```
[    60.053] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[    60.053] (==) NVIDIA(0): Depth 24, (==) framebuffer bpp 32
[    60.054] (==) NVIDIA(0): RGB weight 888
[    60.054] (==) NVIDIA(0): Default visual is TrueColor
[    60.054] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
[    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.
```

Switching the configuration completely to the Intel HD4600 hardware (enabling in EFI, setting the xorg.conf setting accordingly, loading DRM2 and i915KMS for KMS) doesn't result in anything useful, it seems that even the Xorg's "intel" driver doesn't find and device to open although the driver states that the HD4600 is on the list of supported devices. It seems FreeBSD's kernel is again far behind everything else.

Looking for a solution always points me to nVidias "Optimus" technology, which isn't supported by either Linux or any of the *BSDs. But: The web is full of nicely written Linux articles - but looking for FreeBSD, there is not even something seriously mentioned on the central HUB's website! That's a pity.
Anyway, I has been suggested to deal with ACPI and switching the GPU on or off via an additional kernel module which allows ACPI calls from userland, found in
sysutils/acpi/Call.

Having successfully loaded the kernel module, FreeBSD get lost and have to tag their searches with "Linux" to get any answers. But the Linux ACPI implementations seem to differ from FreeBSD's, but I do not know since I'm a novice in that matter. Anyway, someone wrote me that it is possible to issue a ACPI call to explicitly enable the GPU - but he carefully avoided mentioning how. So I fiddled around a bit and dumped the ACPI code via `acpidump -dt` to find out what the name/tag or object name of the nVidia GPU might be, but it is a mess. NPEG0.NGPU seems to be in FreeBSD own boiled beer something like PEG_.XXX and none of the according to the bumblebee project for Linux mentioned methods for setting and enabling the nVidia GPU via ACPI work or can be applied.

So, it seems I'm somehow lost with FreeBSD, even CURRENT. Not to speak of 10/10.1 which are far more behind.

So, if someone has a solution to enable the nVidia GPU or has experiences with Lenovo's E540 hardware as of today, please feel free to share your knowledge.


----------



## retrogamer (Sep 20, 2014)

*Re: nVidia Optimus GT740M and Intel HD4600: no X11 on CURREN*

I believe Optimus support was just recently implemented, per - http://www.reddit.com/r/BSD/comments/2d ... _from_arch


> Laptop nVIDIA with Optimus was implemented just a few days ago by IRIXuser, a member of the #freebsd community on Freenode.


  I am tracking -CURRENT myself, but I only use desktop NVIDIA, so I'm not sure if it has hit -CURRENT or not.  I would wager this would be something to ask about on #freebsd.


----------



## Drohne (Oct 3, 2014)

*Re: nVidia Optimus GT740M and Intel HD4600: no X11 on CURREN*

Hello.

As far as I could follow the statement citet below, it is a statement - nothing more. I found no evidence of any commits regarding ACPI and Optimus in recent CURRENT (as of October the 3rd).

It is even worse than expected for CURRENT: Haswell's integrated GPU's aren't supported yet, although more than a year out now and specs are out for the commuity for almost two years. Optimus isn't applicable for those iGPU-discrete GPU-tandem solutions, if the iGPU is the primary "keeper of the display sockets" then.

This renders a whole class of new notebooks useless for FreeBSD and considering the fact that this late autumn Broadwell CPU's/GPU's will arrive market, it make me feeling sick. This forces people working with FreeBSD purchasing outdated hardware, if they want to stay with FreeBSD.


----------



## SirDice (Oct 3, 2014)

*Re: nVidia Optimus GT740M and Intel HD4600: no X11 on CURREN*

Obligatory warning regarding -CURRENT: Topics about unsupported FreeBSD versions


----------



## Harmnot (Mar 17, 2018)

It ha


SirDice said:


> *Re: nVidia Optimus GT740M and Intel HD4600: no X11 on CURREN*
> 
> Obligatory warning regarding -CURRENT: Topics about unsupported FreeBSD versions


It has been 3 days that i cant figure out my freebsd on optimus, can you help me please?
I followed intructions on handbook
But still cant firgure it out


----------



## Matty (Jun 14, 2018)

Harmnot said:


> It ha
> 
> It has been 3 days that i cant figure out my freebsd on optimus, can you help me please?
> I followed intructions on handbook
> But still cant firgure it out



I think it can't be done. Only option is to use the intel card and somehow disable the nvidia chip. 
Tried for days on my XPS15 and only the intel card worked. Using the nvidia driver resulted in some strange error by xorg.


----------



## nekoexmachina (Jun 14, 2018)

Harmnot said:


> It has been 3 days that i cant figure out my freebsd on optimus, can you help me please?
> I followed intructions on handbook
> But still cant firgure it out


https://wiki.freebsd.org/TuningPowerConsumption#NVIDIA_Optimus

have you seen this page? 

Is your goal to disable the nvidia card or to use it? if use it, there is x11/virtualgl port but I have no idea how it works (if it works). On FreeBSD's I run, I just disabled nvidia card and never looked back.


----------

