MrMEEE / bumblebee-Old-and-abbandoned

OUTDATED!!!!! - Replaced by "The Bumblebee Project" and "Ironhide"
http://www.martin-juhl.dk/2011/08/ironhide-reporting-for-duty/
469 stars 50 forks source link

Dell xps 15z NVIDIA GT 525M 2GB graphics with Optimus issues/testing #258

Closed mmcintosh closed 13 years ago

mmcintosh commented 13 years ago

My setup

Ubuntu 10.04 (could not get 11.04 to load no video) Dell System XPS 15Z Not Specified 00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:0126](rev 09) 01:00.0 VGA compatible controller [0300]: nVidia Corporation Device [10de:0df5](rev a1)

NVIDIA® GeForce® GT 525M 2GB graphics with Optimus 300-nit FHD (1080P) WLED

After installation of bumblebee checked and activated hardware driver nvidia (log file below) this upon reboot would not function.

X.Org X Server 1.7.6 Release Date: 2010-03-17 X Protocol Version 11, Revision 0 Build Operating System: Linux 2.6.24-28-server x86_64 Ubuntu Current Operating System: Linux ubuntu 2.6.32-32-generic #62-Ubuntu SMP Wed Apr 20 21:52:38 UTC 2011 x86_64 Kernel command line: BOOT_IMAGE=/boot/vmlinuz-2.6.32-32-generic root=/dev/sda3 loop=/ubuntu/disks/root.disk ro i8042.nomux quiet splash Build Date: 08 March 2011 08:22:34AM xorg-server 2:1.7.6-2ubuntu7.6 (For technical support please see http://www.ubuntu.com/support) Current version of pixman: 0.16.4 Before reporting problems, check http://wiki.x.org to make sure that you have the latest version. Markers: (--) probed, () from config file, (==) default setting, (++) from command line, (!!) notice, (II) informational, (WW) warning, (EE) error, (NI) not implemented, (??) unknown. (==) Log file: "/var/log/Xorg.0.log", Time: Sun Jun 5 12:20:27 2011 (==) Using config file: "/etc/X11/xorg.conf" (==) Using config directory: "/usr/lib/X11/xorg.conf.d" (==) ServerLayout "Layout0" () |-->Screen "Screen0" (0) () | |-->Monitor "Monitor0" () | |-->Device "Device0" () |-->Input Device "Keyboard0" () |-->Input Device "Mouse0" (==) Automatically adding devices (==) Automatically enabling devices (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist. Entry deleted from font path. (==) FontPath set to: /usr/share/fonts/X11/misc, /usr/share/fonts/X11/100dpi/:unscaled, /usr/share/fonts/X11/75dpi/:unscaled, /usr/share/fonts/X11/Type1, /usr/share/fonts/X11/100dpi, /usr/share/fonts/X11/75dpi, /var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType, built-ins (==) ModulePath set to "/usr/lib/xorg/extra-modules,/usr/lib/xorg/modules" (II) The server relies on udev to provide the list of input devices. If no devices become available, reconfigure udev or disable AutoAddDevices. (WW) AllowEmptyInput is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled. (WW) Disabling Keyboard0 (WW) Disabling Mouse0 (II) Loader magic: 0x7cb840 (II) Module ABI versions: X.Org ANSI C Emulation: 0.4 X.Org Video Driver: 6.0 X.Org XInput driver : 7.0 X.Org Server Extension : 2.0 (++) using VT number 7

(--) PCI:*(0:0:2:0) 8086:0126:1028:0446 Intel Corporation rev 9, Mem @ 0xf1400000/4194304, 0xe0000000/268435456, I/O @ 0x00004000/64 (--) PCI: (0:1:0:0) 10de:0df5:1028:0446 nVidia Corporation rev 161, Mem @ 0xf0000000/16777216, 0xc0000000/268435456, 0xd0000000/33554432, I/O @ 0x00003000/128, BIOS @ 0x????????/524288 (II) Open ACPI successful (/var/run/acpid.socket) (II) "extmod" will be loaded. This was enabled by default and also specified in the config file. (II) "dbe" will be loaded. This was enabled by default and also specified in the config file. (II) "glx" will be loaded. This was enabled by default and also specified in the config file. (II) "record" will be loaded. This was enabled by default and also specified in the config file. (II) "dri" will be loaded by default. (II) "dri2" will be loaded by default. (II) LoadModule: "dbe" (II) Loading /usr/lib/xorg/modules/extensions/libdbe.so (II) Module dbe: vendor="X.Org Foundation" compiled for 1.7.6, module version = 1.0.0 Module class: X.Org Server Extension ABI class: X.Org Server Extension, version 2.0 (II) Loading extension DOUBLE-BUFFER (II) LoadModule: "extmod" (II) Loading /usr/lib/xorg/modules/extensions/libextmod.so (II) Module extmod: vendor="X.Org Foundation" compiled for 1.7.6, module version = 1.0.0 Module class: X.Org Server Extension ABI class: X.Org Server Extension, version 2.0 (II) Loading extension MIT-SCREEN-SAVER (II) Loading extension XFree86-VidModeExtension (II) Loading extension XFree86-DGA (II) Loading extension DPMS (II) Loading extension XVideo (II) Loading extension XVideo-MotionCompensation (II) Loading extension X-Resource (II) LoadModule: "glx" (II) Loading /usr/lib/xorg/extra-modules/libglx.so (II) Module glx: vendor="NVIDIA Corporation" compiled for 4.0.2, module version = 1.0.0 Module class: X.Org Server Extension (II) NVIDIA GLX Module 270.29 Wed Feb 23 16:35:41 PST 2011 (II) Loading extension GLX (II) LoadModule: "record" (II) Loading /usr/lib/xorg/modules/extensions/librecord.so (II) Module record: vendor="X.Org Foundation" compiled for 1.7.6, module version = 1.13.0 Module class: X.Org Server Extension ABI class: X.Org Server Extension, version 2.0 (II) Loading extension RECORD (II) LoadModule: "xtrap" (WW) Warning, couldn't open module xtrap (II) UnloadModule: "xtrap" (EE) Failed to load module "xtrap" (module does not exist, 0) (II) LoadModule: "dri" (II) Loading /usr/lib/xorg/modules/extensions/libdri.so (II) Module dri: vendor="X.Org Foundation" compiled for 1.7.6, module version = 1.0.0 ABI class: X.Org Server Extension, version 2.0 (II) Loading extension XFree86-DRI (II) LoadModule: "dri2" (II) Loading /usr/lib/xorg/modules/extensions/libdri2.so (II) Module dri2: vendor="X.Org Foundation" compiled for 1.7.6, module version = 1.1.0 ABI class: X.Org Server Extension, version 2.0 (II) Loading extension DRI2 (II) LoadModule: "nvidia" (II) Loading /usr/lib/xorg/extra-modules/nvidia_drv.so (II) Module nvidia: vendor="NVIDIA Corporation" compiled for 4.0.2, module version = 1.0.0 Module class: X.Org Video Driver (II) NVIDIA dlloader X Driver 270.29 Wed Feb 23 16:20:07 PST 2011 (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs (II) Primary Device is: PCI 00@00:02:0 (EE) No devices detected.

Fatal server error: no screens found

mmcintosh commented 13 years ago

FYI

./test_off.sh Trying _SB.PCI0.P0P1.VGA._OFF: failed Trying _SB.PCI0.P0P2.VGA._OFF: failed Trying SB.PCI0.OVGA.ATPX: failed Trying SB.PCI0.OVGA.XTPX: failed Trying _SB.PCI0.P0P3.PEGP._OFF: failed Trying _SB.PCI0.P0P2.PEGP._OFF: failed Trying _SB.PCI0.P0P1.PEGP._OFF: failed Trying _SB.PCI0.MXR0.MXM0._OFF: failed Trying _SB.PCI0.PEG1.GFX0._OFF: failed Trying _SB.PCI0.PEG0.GFX0.DOFF: failed Trying _SB.PCI0.PEG1.GFX0.DOFF: failed Trying _SB.PCI0.PEG0.PEGP._OFF: failed Trying _SB.PCI0.XVR0.Z01I.DGOF: failed Trying _SB.PCI0.PEGR.GFX0._OFF: failed Trying _SB.PCI0.PEG.VID._OFF: failed Trying _SB.PCI0.PEG0.VID._OFF: failed Trying _SB.PCI0.P0P2.DGPU._OFF: failed Trying _SB.PCI0.P0P4.DGPU.DOFF: failed Trying _SB.PCI0.IXVE.IGPU.DGOF: failed Trying _SB.PCI0.RP00.VGA._PS3: failed Trying _SB.PCI0.RP00.VGA.P3MO: failed Trying _SB.PCI0.GFX0.DSM._T_0: failed Trying _SB.PCI0.LPC.EC.PUBS._OFF: failed Trying _SB.PCI0.P0P2.NVID._OFF: failed

mmcintosh commented 13 years ago

Update have finally managed to get ubuntu 11.04 to install. have reinstalled bumblebee but still no love. I do not have my laptop in list yet and unsure of how to test the setup.

mmcintosh commented 13 years ago

Additional info added: now I have the nvidia card activated but apparently not in use.

sudo lshw -C display -display
description: VGA compatible controller product: nVidia Corporation vendor: nVidia Corporation physical id: 0 bus info: pci@0000:01:00.0 version: a1 width: 64 bits clock: 33MHz capabilities: pm msi pciexpress vga_controller bus_master cap_list rom configuration: driver=nvidia latency=0 resources: irq:11 memory:f0000000-f0ffffff memory:c0000000-cfffffff memory:d0000000-d1ffffff ioport:3000(size=128) memory:f1000000-f107ffff
-display description: VGA compatible controller product: 2nd Generation Core Processor Family Integrated Graphics Controller vendor: Intel Corporation physical id: 2 bus info: pci@0000:00:02.0 version: 09 width: 64 bits clock: 33MHz capabilities: msi pm vga_controller bus_master cap_list rom configuration: driver=i915 latency=0 resources: irq:20 memory:f1400000-f17fffff memory:e0000000-efffffff ioport:4000(size=64)

rockorequin commented 13 years ago

You need mesa-utils installed to run the glxgears program, try sudo apt-get install mesa-utils and then optirun glxgears again.

Re power management, it looks like the XPS 15z has a different set of ACPI calls for turning the card on and off compared to the L502x, ie because testoff.sh failed to find a suitable command. Maybe the linux hybrid graphics mailing list might be able to help?

alidrus commented 13 years ago

I've managed to get bumblebee working on Dell XPS 15z after some searching around and tinkering. I hope this can be integrated into the bumblebee install scripts.

The steps I took to get it working:

1) Download bumblebee via git and "sudo ./install.sh"

2) During the configuration stage, Select laptop as: "1) Dell XPS 15/17 L502x/L702x" and Image transport: "4) XV (default)"

3) Go to /usr/share/doc/bumblebee and make copies of the enable and disable scripts as follows:

cd /usr/share/doc/bumblebee sudo cp bumblebee-enablecard.xps15 bumblebee-enablecard.xps15z sudo cp bumblebee-disablecard.xps15 bumblebee-disablecard.xps15z

4) Edit bumblebee-enablecard.xps15z under sudo with your favourite editor and change the acpi call to:

echo _PS0 $(acpi_call "_SB.PCI0.PEG0.PEGP._PS0")

5) Edit bumblebee-disablecard.xps15z under sudo with your favourite editor and change the acpi call to:

echo _DSM $(acpi_call "_SB.PCI0.PEG0.PEGP._DSM" \ "{0xF8,0xD8,0x86,0xA4,0xDA,0x0B,0x1B,0x47," \ "0xA7,0x2B,0x60,0x42,0xA6,0xB5,0xBE,0xE0}" \ "0x100 0x1A {0x1,0x0,0x0,0x3}")

ok to turn off: Buffer {0x59 0x0 0x0 0x11}

# is already off: Buffer {0x41 0x0 0x0 0x11}

echo _PS3 $(acpi_call "_SB.PCI0.PEG0.PEGP._PS3")

6) Replace the scripts for enabling and disabling the nvidia card in /usr/local/bin with the two scripts you edited above:

sudo cp bumblebee-disablecard.xps15z /usr/local/bin/bumblebee-disablecard sudo cp bumblebee-enablecard.xps15z /usr/local/bin/bumblebee-enablecard sudo chmod a+x /usr/local/bin/bumblebee-disablecard /usr/local/bin/bumblebee-enablecard

paulvriens commented 13 years ago

Could you submit your system so others can benefit? (See also issue #339). Script bumblebee-submitsystem can be found in /usr/local/bin and has to be run with sudo.

paulvriens commented 13 years ago

Ok, won't probably help for 339, but others could use this.

alidrus commented 13 years ago

I was contemplating running bumblebee-submitsystem but I didn't know if it would upload my enable/disablecard scripts or not. I would be happy to do so if it does.

paulvriens commented 13 years ago

Disable and enable scripts are also uploaded.

alidrus commented 13 years ago

Alright. Submitted. Although I got the ACPI calls from another site (dont remember where), I hope this helps anyone else who is trying to get this working.

liviosoares commented 13 years ago

@alidrus,

Thanks a lot for the script above. I have the 1GB version of the same nVidia card, and your script did not quite work for me. (I'm also using Debian/unstable with kernel 3.0-rc5, with the nouveau open-source drivers). I had to make small changes to it, specifically, the "_SB" part of the ACPI call was changed to "_SB". After that, everything seemed to work. So, to disable:

echo _DSM $(acpi_call "_SB.PCI0.PEG0.PEGP._DSM" \ "{0xF8,0xD8,0x86,0xA4,0xDA,0x0B,0x1B,0x47," \ "0xA7,0x2B,0x60,0x42,0xA6,0xB5,0xBE,0xE0}" \ "0x100 0x1A {0x1,0x0,0x0,0x3}")

ok to turn off: Buffer {0x59 0x0 0x0 0x11}

is already off: Buffer {0x41 0x0 0x0 0x11}

echo _PS3 $(acpi_call "_SB.PCI0.PEG0.PEGP._PS3")

and to enable:

echo _PS0 $(acpi_call "_SB.PCI0.PEG0.PEGP._PS0")

After this, the power consumption of my 15z went from 2100mA to around 1200mA, which is a major saving. Plus the temperature dropped about 10C (from 65C to around 55C), making it more comfortable to handle on my lap.

alidrus commented 13 years ago

Ah well sorry about the missing backslash. For some reason it disappeared when I pasted it here.

vazir commented 13 years ago

Script above did not work for me, but I found 2 methods in SSDT: "_SB.PCI0.PEG0.PEGP.OPOF

and OPON

After calling OPOF power consumption of my system decreased from 1800mW down to 750mw - while system is idle. catch is - OPON does not restore NV card function properly, but if you just need power saving mode - that's good enough. Also, before issuing OPOF make sure there is no nvidia or nouveau kernel modules loaded

echo $(acpi_call "_SB.PCI0.PEG0.PEGP.OPOF")

my /etc/acpi/battery/BAT0/state present: yes capacity state: ok charging state: discharging present rate: 744 mW remaining capacity: 4648 mWh present voltage: 16602 mV

System - Dell XPS 15Z/i7/8GbRam/2GB VRAM

I do use kernel 3.0.0rc7

ArchangeGabriel commented 13 years ago

I will work on the good command to power on/off the card.

brettworth commented 13 years ago

Thanks for the enablecard/disablecard info. It now seems to work for me. I still think I'm not getting the NVidia side of things to work when I do the optirun. The glxgears only gets ~150-160fps in it's startup geometry. A ps does show the nvidoa X server start and stop with the optirun command but I'm just not seeing any difference in performance so I assume I'm not running on the dGPU. The /var/log/Xorg.1.log file says that the geometry is 640x480 which seems wrong.

Can someone recommend a way to show the status better? Or to verify that a process is seeing the nvidia graphics?

I'm brand new to the Optimus world.

BTW: Using kubuntu 11.04 and the dpkg installed bumblebee.

rockorequin commented 13 years ago

glxgears is very likley using the nvidia driver if you get 150-160fps, since the intel driver normally returns the screen refresh rate (eg 60 fps).

A better way of testking the nvidia driver performance is to install alien arena (it's in the Ubuntu repositories so you should be able to get it in Kubuntu as well) and try running it first with the intel card and then with the nvidia card. You can turn on the frame rate in the options somewhere. I think the command to run it from the command line is crx, ie use 'optirun crx' to run it with the nvidia card.

brettworth commented 13 years ago

Ok. So it's working. :-) The difference is astounding on alien arena. Can't work out how to show fps though. Prolly a console command.

rockorequin commented 13 years ago

You can enable alien arena's fps display[at least you can in the latest version] from Game Options (display frames per second, right near the bottom). It's kind of hard to read the menu because of the spaces between the letters.

brettworth commented 13 years ago

Got it. When using optirun the fps goes from ~15 to ~48. Pretty good. One interesting thing is that even when I run chrome with optirun I cannot view a flash video in full screen. Perhaps the npviewer.bin process is not seeing the nvidia server. Though I also cannot view full screen vlc video with or without optirun. In both cases it runs for a couple of seconds then freezes for a second or two. It's not the download. Funny thing is that if I maximise the video. i.e. almost the same size as fullscreen, it's always smooth. !?

brettworth commented 13 years ago

[Video Freezing Solved] I have solved the video freezing problem with the video freezing. All I had to do was set the compiz scaling to smooth from accurate. I was so focused on the bumblebee thing I forgot to look at the compositing. I do have another question though. When the disablecard does it's thing, does that mean the card is powered off? Or is powering off a different thing?

rockorequin commented 13 years ago

Assuming you have the correct codes in the ACPI call for your machine, bumblebee-disable powers off the nvidia card. You can see if it has worked by running something like powertop with the battery disconnected to see the difference in the power usage.

brettworth commented 13 years ago

Thought I'd make a comment here about the latest ubuntu bumblebee update from this afternoon. After I install the update I ended up with bumblebee_2.1.0-1~nattyubuntu5_amd64.deb and nvidia-current_280.04-0~nattyubuntu3_amd64.deb. Unfortunately the nvidia-current version renders my KDE unusable. I've had to revert it to nvidia-current_275.19-0~nattyubuntu1_amd64.deb but that stops compositing from working. I think I'll just leave it where it is for now until the next update. When failing I get inverted windows and it's unreadable. Gnome does seem to work.