Saturday, August 17, 2013

HP Envy 17t-j000 laptop (3) (hybrid graphics)

This computer uses hybrid graphics.

When X comes up, graphics are being rendered by the Intel Integrated Graphics Processor (IGP).  Glxgears gets about 60 FPS.

Linux detects the  Dedicated Graphics Processor (DGP):

 # lspci | grep -i nvidia
01:00.0 3D controller: NVIDIA Corporation GK208M [GeForce GT 740M] (rev ff)

The first thing I looked into was vga_switcheroo.  The kernel was built with this feature enabled:
# uname -r
3.8.0-27-generic
# grep -i switcheroo /boot/config-3.8.0-27-generic
CONFIG_VGA_SWITCHEROO=y
However, the key directory that vga_switcheroo uses for everything does not exist:
# ls /sys/kernel/debug/vgaswitcheroo
ls: cannot access /sys/kernel/debug/vgaswitcheroo: No such file or directory
The /sys/kernel/debug directory does exist:
# ls /sys/kernel/debug
acpi       cleancache  gpio       kprobes  pwm             suspend_stats   x86
bdi        dri         hid        kvm      regmap          tracing
binder     extfrag     ieee80211  mce      regulator       usb
bluetooth  frontswap   iwlwifi    mmc0     sched_features  wakeup_sources 
I saw some messages like this in /var/log/syslog:
VGA switcheroo: detected Optimus DSM method \_SB_.PCI0.GFX0 handle
I couldn't find anything in the information available from HP about this computer using Optimus, but I decided to consider the possibility. So I installed Bumblebee.  Bumblebee fails with an error like ' Cannot access secondary GPU - error: Could not load GPU driver'.

I soon found that regardless of Bumblebee, the driver just wouldn't load.
# modprobe nvidia-304
ERROR: could not insert 'nvidia_304': No such device
Error (edited for legibility) from /var/log/syslog when this happens:
nvidia: module license 'NVIDIA' taints kernel.
nvidia 0000:01:00.0: power state changed by ACPI to D0
nvidia 0000:01:00.0: enabling device (0000 -> 0003)
NVRM: The NVIDIA GPU 0000:01:00.0 (PCI ID: 10de:1292)
NVRM: installed in this system is not supported by the 304.88
NVRM: NVIDIA Linux driver release.  Please see 'Appendix
NVRM: A - Supported NVIDIA GPU Products' in this release's
NVRM: README, available on the Linux driver download page
NVRM: at www.nvidia.com.
nvidia: probe of 0000:01:00.0 failed with error -1
NVRM: The NVIDIA probe routine failed for 1 device(s).
NVRM: None of the NVIDIA graphics adapters were initialized!
This page suggests loading a more up to date nvidia driver from ppa:xorg-edgers/ppa.  I tried nvidia-325 from xorg-edgers; still wouldn't load.
Note that if you configure the xorg-edgers repository, it might be difficult to remove it afterwards.  There are some instructions how to do this, but it didn't work for me and I wound up recovering my root file system from backups.

I tried nouveau.

I tried downloading the latest driver from the Nvidia web site.  The web site specifically says this supports the GeForce GT 740M, but I was still unable to load the driver.  Error is:
  WARNING: 
You do not appear to have an NVIDIA GPU supported by the 319.32     
NVIDIA Linux graphics driver installed in this system.  For further 
details, please see the appendix SUPPORTED NVIDIA GRAPHICS CHIPS in 
the README available on the Linux driver download page at           
www.nvidia.com.
It feels like there's something fundamental I don't understand about this... maybe something about this hybrid graphics environment is preventing the driver from being loaded, even when it's the right driver.

No comments:

Post a Comment