You are not logged in.

#1 2019-09-19 07:24:36

smoneck
Member
Registered: 2014-05-14
Posts: 105

Getting nvidia driver to work

Hi,


I spend the whole day yesterday trying to get the nvidia driver to work without any success. A huge thank you to you if you can provide any help or insight, or suggestions regarding better practices!

I have a iGPU Intel UHD 620 and a dGPU Nvidia GeForce MX150 (Thinkpad T480). In the current situation, I have a power hungry, non-usable graphics card that sucks empty my battery (~ 12 W in idle). :-(

I would like to:

   1. Primarily use the iGPU with the dGPU off.
   2. Use the dGPU on demand dedicated for certain tasks (e.g. in VM, CUDA, etc)

For this I decided to go for the proprietary nvidia driver with bumblebee or optimus-manager.

I installed: nvidia, nvidia-settings, nvidia-utils, bumblebee, optimus-manager, bbswitch.

My configuration looks as follows:

/etc/default/grub

GRUB_CMDLINE_LINUX="[...] modprobe.blacklist=nouveau"

/etc/modprobe.d/nouveau.conf

blacklist nouveau

/etc/modules-load.d/bbswitch

bbswitch load_state=0 unload_state=1

/etc/X11/xorg.conf.d/10-intel.conf

Section "Device"
	Identifier "intel"
	Driver "modesetting"
	BusID "PCI:0:2:0"
	Option "DRI" "3"
        Option "Backlight" "intel_backlight
EndSection

/etc/X11/xorg.conf.d/20-nvidia.conf

Section "Module"
    Load "modesetting"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BusID          "PCI:1:0:0"
EndSection

.xinitrc

xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
exec i3 --shmlog-size=26214400
exec xset s off

Currently bbswitch fails to switch the card:

$ sudo modprobe bbswitch load_state=0 unload_state=1; cat /proc/acpi/bbswitch
0000:01:00.0 ON

$ sudo tee /proc/acpi/bbswitch <<<OFF; cat /proc/acpi/bbswitch
OFF
0000:01:00.0 ON

optimus-manager always gives:

$ optimus-manager --print-mode
Current GPU mode : intel

Furthermore:

$ optirun glxgears -info
[ 5395.370053] [ERROR]Cannot access secondary GPU - error: [XORG] (EE) [drm] Failed to open DRM device for pci:0000:01:00.0: -19

Additionally, starting Xorg takes really long, fails the first time with following error but starts the second time:

Xorg.log

[...]
[    37.904] (II) modeset(0): Output eDP-1 connected
[    37.904] (II) modeset(0): Output DP-1 disconnected
[    37.904] (II) modeset(0): Output HDMI-1 disconnected
[    37.904] (II) modeset(0): Output DP-2 disconnected
[    37.904] (II) modeset(0): Output HDMI-2 disconnected
[    37.904] (II) modeset(0): Using exact sizes for initial modes
[    37.904] (II) modeset(0): Output eDP-1 using initial mode 2560x1440 +0+0
[    37.904] (==) modeset(0): Using gamma correction (1.0, 1.0, 1.0)
[    37.904] (==) modeset(0): DPI set to (96, 96)
[    37.904] (II) Loading sub module "fb"
[    37.904] (II) LoadModule: "fb"
[    37.904] (II) Loading /usr/lib/xorg/modules/libfb.so
[    37.905] (II) Module fb: vendor="X.Org Foundation"
[    37.905]    compiled for 1.20.5, module version = 1.0.0
[    37.905]    ABI class: X.Org ANSI C Emulation, version 0.4
[    37.905] (==) modeset(G0): Depth 24, (==) framebuffer bpp 32
[    37.905] (==) modeset(G0): RGB weight 888
[    37.905] (==) modeset(G0): Default visual is TrueColor
[    37.905] (II) Loading sub module "glamoregl"
[    37.905] (II) LoadModule: "glamoregl"
[    37.906] (II) Loading /usr/lib/xorg/modules/libglamoregl.so
[    37.906] (II) Module glamoregl: vendor="X.Org Foundation"
[    37.906]    compiled for 1.20.5, module version = 1.0.1
[    37.906]    ABI class: X.Org ANSI C Emulation, version 0.4
[    56.206] (II) modeset(G0): Refusing to try glamor on llvmpipe
[    56.207] (EE) modeset(G0): glamor initialization failed
[    56.207] (II) modeset(G0): ShadowFB: preferred YES, enabled YES
[    56.207] (II) modeset(G0): Double-buffered shadow updates: off
[    56.207] (==) modeset(G0): Using gamma correction (1.0, 1.0, 1.0)
[    56.207] (==) modeset(G0): DPI set to (96, 96)
[    56.207] (II) Loading sub module "fb"
[    56.207] (II) LoadModule: "fb"
[    56.207] (II) Loading /usr/lib/xorg/modules/libfb.so
[    56.207] (II) Module fb: vendor="X.Org Foundation"
[    56.207]    compiled for 1.20.5, module version = 1.0.0
[    56.207]    ABI class: X.Org ANSI C Emulation, version 0.4
[    56.207] (II) Loading sub module "shadow"
[    56.207] (II) LoadModule: "shadow"
[    56.207] (II) Loading /usr/lib/xorg/modules/libshadow.so
[    56.208] (II) Module shadow: vendor="X.Org Foundation"
[    56.208]    compiled for 1.20.5, module version = 1.1.0
[    56.208]    ABI class: X.Org ANSI C Emulation, version 0.4
[    56.208] (EE) modeset(G0): drmSetMaster failed: Permission denied
[    56.208] (EE) 
Fatal server error:
[    56.208] (EE) AddScreen/ScreenInit failed for gpu driver 0 -1
[    56.208] (EE) 
[    56.208] (EE) 
Please consult the The X.Org Foundation support 
         at http://wiki.x.org
 for help. 
[    56.208] (EE) Please also check the log file at "/home/stephan/.local/share/xorg/Xorg.0.log" for additional information.
[    56.208] (EE) 
[    56.235] (EE) Server terminated with error (1). Closing log file.

journalctr

kernel: NVRM: No NVIDIA devices probed.
kernel: NVRM: Try unloading the conflicting kernel module (and/or
        NVRM: reconfigure your kernel without the conflicting
        NVRM: driver(s)), then try loading the NVIDIA kernel module
        NVRM: again.
kernel: NVRM: This can occur when a driver such as: 
        NVRM: nouveau, rivafb, nvidiafb or rivatv 
        NVRM: was loaded and obtained ownership of the NVIDIA device(s).
kernel: NVRM: The NVIDIA probe routine was not called for 1 device(s).
$ lsmod
lsmod
Module                  Size  Used by
bbswitch               20480  0
msr                    16384  0
ipmi_devintf           20480  0
ipmi_msghandler        69632  1 ipmi_devintf
ccm                    20480  6
joydev                 28672  0
mousedev               24576  0
nouveau              2310144  0
mxm_wmi                16384  1 nouveau
ttm                   118784  1 nouveau
snd_hda_codec_hdmi     69632  1
snd_hda_codec_realtek   126976  1
snd_hda_codec_generic    94208  1 snd_hda_codec_realtek
snd_soc_skl           118784  0
intel_rapl             28672  0
snd_soc_hdac_hda       24576  1 snd_soc_skl
8021q                  40960  0
snd_hda_ext_core       36864  2 snd_soc_hdac_hda,snd_soc_skl
garp                   16384  1 8021q
snd_soc_skl_ipc        73728  1 snd_soc_skl
mrp                    20480  1 8021q
stp                    16384  1 garp
llc                    16384  2 stp,garp
snd_soc_sst_ipc        20480  1 snd_soc_skl_ipc
snd_soc_sst_dsp        40960  1 snd_soc_skl_ipc
snd_soc_acpi_intel_match    28672  1 snd_soc_skl
i915                 2265088  4
snd_soc_acpi           16384  2 snd_soc_acpi_intel_match,snd_soc_skl
arc4                   16384  2
x86_pkg_temp_thermal    20480  0
iTCO_wdt               16384  0
intel_powerclamp       20480  0
coretemp               20480  0
snd_soc_core          286720  2 snd_soc_hdac_hda,snd_soc_skl
iTCO_vendor_support    16384  1 iTCO_wdt
kvm_intel             311296  0
mei_hdcp               24576  0
snd_compress           28672  1 snd_soc_core
ac97_bus               16384  1 snd_soc_core
intel_wmi_thunderbolt    20480  0
snd_pcm_dmaengine      16384  1 snd_soc_core
wmi_bmof               16384  0
i2c_algo_bit           16384  2 i915,nouveau
iwlmvm                466944  0
kvm                   770048  1 kvm_intel
snd_hda_intel          53248  0
mac80211              999424  1 iwlmvm
nls_iso8859_1          16384  1
irqbypass              16384  1 kvm
nls_cp437              20480  1
intel_cstate           16384  0
intel_uncore          139264  0
vfat                   24576  1
snd_hda_codec         159744  5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek,snd_soc_hdac_hda
drm_kms_helper        225280  2 i915,nouveau
fat                    86016  1 vfat
snd_hda_core          102400  8 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_ext_core,snd_hda_codec,snd_hda_codec_realtek,snd_soc_hdac_hda,snd_soc_skl
intel_rapl_perf        16384  0
snd_hwdep              20480  1 snd_hda_codec
btusb                  57344  0
pcspkr                 16384  0
iwlwifi               389120  1 iwlmvm
psmouse               180224  0
input_leds             16384  0
uvcvideo              114688  0
e1000e                286720  0
drm                   503808  7 drm_kms_helper,i915,ttm,nouveau
snd_pcm               135168  8 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_ext_core,snd_hda_codec,snd_soc_core,snd_soc_skl,snd_hda_core,snd_pcm_dmaengine
btrtl                  20480  1 btusb
videobuf2_vmalloc      20480  1 uvcvideo
btbcm                  16384  1 btusb
videobuf2_memops       20480  1 videobuf2_vmalloc
videobuf2_v4l2         28672  1 uvcvideo
btintel                28672  1 btusb
cfg80211              856064  3 iwlmvm,iwlwifi,mac80211
thunderbolt           196608  0
snd_timer              40960  1 snd_pcm
i2c_i801               36864  0
videobuf2_common       57344  2 videobuf2_v4l2,uvcvideo
mei_me                 45056  1
intel_gtt              24576  1 i915
bluetooth             675840  4 btrtl,btintel,btbcm,btusb
thinkpad_acpi         110592  0
videodev              237568  3 videobuf2_v4l2,uvcvideo,videobuf2_common
mei                   126976  3 mei_hdcp,mei_me
idma64                 20480  0
agpgart                53248  4 intel_gtt,ttm,nouveau,drm
intel_pch_thermal      16384  0
nvram                  16384  1 thinkpad_acpi
intel_lpss_pci         20480  0
syscopyarea            16384  1 drm_kms_helper
ledtrig_audio          16384  3 snd_hda_codec_generic,snd_hda_codec_realtek,thinkpad_acpi
ecdh_generic           16384  1 bluetooth
sysfillrect            16384  1 drm_kms_helper
intel_lpss             16384  1 intel_lpss_pci
rfkill                 28672  6 bluetooth,thinkpad_acpi,cfg80211
sysimgblt              16384  1 drm_kms_helper
snd                   110592  11 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_compress,thinkpad_acpi,snd_soc_core,snd_pcm
media                  61440  4 videodev,videobuf2_v4l2,uvcvideo,videobuf2_common
ecc                    32768  1 ecdh_generic
fb_sys_fops            16384  1 drm_kms_helper
intel_xhci_usb_role_switch    16384  0
processor_thermal_device    20480  0
roles                  16384  1 intel_xhci_usb_role_switch
ucsi_acpi              16384  0
int3403_thermal        16384  0
intel_soc_dts_iosf     20480  1 processor_thermal_device
typec_ucsi             45056  1 ucsi_acpi
typec                  49152  1 typec_ucsi
tpm_crb                20480  0
wmi                    36864  4 intel_wmi_thunderbolt,wmi_bmof,mxm_wmi,nouveau
pcc_cpufreq            20480  0
soundcore              16384  1 snd
battery                24576  1 thinkpad_acpi
ac                     16384  0
int340x_thermal_zone    16384  2 int3403_thermal,processor_thermal_device
tpm_tis                16384  0
tpm_tis_core           24576  1 tpm_tis
int3400_thermal        20480  0
acpi_thermal_rel       16384  1 int3400_thermal
tpm                    73728  3 tpm_tis,tpm_crb,tpm_tis_core
evdev                  24576  15
mac_hid                16384  0
rng_core               16384  1 tpm
ip_tables              36864  0
x_tables               49152  1 ip_tables
sd_mod                 57344  0
uas                    28672  0
usb_storage            77824  1 uas
scsi_mod              249856  3 sd_mod,usb_storage,uas
dm_crypt               53248  1
dm_mod                155648  14 dm_crypt
crct10dif_pclmul       16384  1
crc32_pclmul           16384  0
ghash_clmulni_intel    16384  0
serio_raw              20480  0
atkbd                  36864  0
libps2                 20480  2 atkbd,psmouse
aesni_intel           372736  6
aes_x86_64             20480  1 aesni_intel
xhci_pci               20480  0
crypto_simd            16384  1 aesni_intel
cryptd                 24576  3 crypto_simd,ghash_clmulni_intel
glue_helper            16384  1 aesni_intel
xhci_hcd              278528  1 xhci_pci
i8042                  32768  0
serio                  28672  7 serio_raw,atkbd,psmouse,i8042
ext4                  770048  2
crc32c_generic         16384  0
crc32c_intel           24576  4
crc16                  16384  2 bluetooth,ext4
mbcache                16384  1 ext4
jbd2                  135168  1 ext4

P.s. Oh and

$ xbacklight -set 50
No outputs have backlight property

:-(

Last edited by smoneck (2019-09-20 18:09:27)

Offline

#2 2019-09-19 08:32:21

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,415

Re: Getting nvidia driver to work

Don't do everything you've ever read at the same time. Most of these things are mutually exclusive and you should decide for one approach. Revert all of this. (Regardless, your .xinitrc is incomplete, note the blue boxes)

You did define bumblebee or optimus-manager. This isn't an "and or" this is an "exclusive or". Which of the two? Decide for one remove things related to the other. Properly configure your choice. Read https://wiki.archlinux.org/index.php/Bumblebee if bumblebee or https://github.com/Askannz/optimus-mana … /README.md if optimus-manager (pay close and special attention to the configuration and the FAQ sections as there are certain things you have to be actively weary of to A) not use nouveau but bbswitch for power management and B) special precautions when using startx and not a display manager)

Regarding the P.s.:

Xbacklight uses a non-standard and broken way of setting your backlight that only ever worked with xf86-video-intel. Don't use it, use e.g. light instead which will control the proper kernel interfaces instead of random roudabout over the xorg server.

Last edited by V1del (2019-09-19 08:46:53)

Offline

#3 2019-09-19 09:05:14

smoneck
Member
Registered: 2014-05-14
Posts: 105

Re: Getting nvidia driver to work

Thanks a ton! Bumblebee is removed. I'll report back when I found the time to go through the optimus-manager documentation in detail.

Regarding xbacklight: light works nicely! There is no hint in the wiki about "uses a non-standard and broken way" and no mentioning of "light" apart from the comparison table. Is there any place with a concise best practice guide for different use cases?

Offline

#4 2019-09-19 09:28:33

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,415

Re: Getting nvidia driver to work

There is the blue note box which should probably be changed to a warning that tells you that it's incompatible with everything but xf86-video-intel, including the modesetting driver that is a requirement for most things optimus.

Offline

#5 2019-09-19 20:12:44

smoneck
Member
Registered: 2014-05-14
Posts: 105

Re: Getting nvidia driver to work

I now reverted all my changes and went through the docs. X still takes half a minute to start and when I log out and in again, the machine completely hangs. And optimus-manager --switch nvidia still results in intel mode.

In the syslog, I find:

Sep 19 21:44:30 hostname kernel: #PF: error_code(0x0000) - not-present page
Sep 19 21:44:30 hostname kernel: #PF: supervisor read access in kernel mode
Sep 19 21:44:30 hostname kernel: BUG: unable to handle page fault for address: fffffffffffffc00
Sep 19 21:54:31 hostname kernel: RSP: 0018:ffff9e3781d53790 EFLAGS: 00010286
Sep 19 21:54:31 hostname kernel: RAX: 0000000000000000 RBX: ffff9ab18ea71800 RCX: 0000000000000000
Sep 19 21:54:31 hostname kernel: RDX: 0000000000000007 RSI: 0000000000000096 RDI: 00000000ffffffff
Sep 19 21:54:31 hostname kernel: RBP: 0000000000000001 R08: 0000000000000735 R09: 0000000000000001
Sep 19 21:54:31 hostname kernel: R10: 0000000000000000 R11: 0000000000000001 R12: ffff9ab18c5b3220
Sep 19 21:54:31 hostname kernel: R13: ffff9ab18ffba850 R14: ffff9ab18d3d4700 R15: ffff9e3781d539c8
Sep 19 21:54:31 hostname kernel: FS:  0000000000000000(0000) GS:ffff9ab192480000(0000) knlGS:0000000000000000
Sep 19 21:54:31 hostname kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Sep 19 21:54:31 hostname kernel: CR2: 00007f03fa26e480 CR3: 000000011180a003 CR4: 00000000003606e0
Sep 19 21:54:31 hostname kernel: Call Trace:
Sep 19 21:54:31 hostname kernel:  nvkm_vmm_map+0x13b/0x360 [nouveau]
Sep 19 21:54:31 hostname kernel:  ? gp100_vmm_pgt_mem+0x180/0x180 [nouveau]
Sep 19 21:54:31 hostname kernel:  nvkm_vram_map+0x56/0x80 [nouveau]
Sep 19 21:54:31 hostname kernel:  nvkm_uvmm_mthd+0x676/0x790 [nouveau]
Sep 19 21:54:31 hostname kernel:  nvkm_ioctl+0xde/0x180 [nouveau]
Sep 19 21:54:31 hostname kernel:  nvif_object_mthd+0x112/0x140 [nouveau]
Sep 19 21:54:31 hostname kernel:  nvif_vmm_map+0x11e/0x130 [nouveau]
Sep 19 21:54:31 hostname kernel:  ? reservation_object_wait_timeout_rcu+0x148/0x300
Sep 19 21:54:31 hostname kernel:  nouveau_mem_map+0x97/0x100 [nouveau]
Sep 19 21:54:31 hostname kernel:  nouveau_vma_map+0x44/0x70 [nouveau]
Sep 19 21:54:31 hostname kernel:  nouveau_bo_move_ntfy+0xc1/0xe0 [nouveau]
Sep 19 21:54:31 hostname kernel:  ttm_bo_handle_move_mem+0x3a1/0x4f0 [ttm]
Sep 19 21:54:31 hostname kernel:  ttm_bo_evict+0x174/0x1f0 [ttm]
Sep 19 21:54:31 hostname kernel:  ttm_mem_evict_first+0x194/0x210 [ttm]
Sep 19 21:54:31 hostname kernel:  ttm_bo_force_list_clean+0x9f/0x170 [ttm]
Sep 19 21:54:31 hostname kernel:  nouveau_do_suspend+0x93/0x190 [nouveau]
Sep 19 21:54:31 hostname kernel:  nouveau_pmops_runtime_suspend+0x40/0xa0 [nouveau]
Sep 19 21:54:31 hostname kernel:  pci_pm_runtime_suspend+0x58/0x140
Sep 19 21:54:31 hostname kernel:  ? __switch_to_asm+0x40/0x70
Sep 19 21:54:31 hostname kernel:  ? pci_has_legacy_pm_support+0x70/0x70
Sep 19 21:54:31 hostname kernel:  __rpm_callback+0x7b/0x130
Sep 19 21:54:31 hostname kernel:  ? pci_has_legacy_pm_support+0x70/0x70
Sep 19 21:54:31 hostname kernel:  rpm_callback+0x1f/0x70
Sep 19 21:54:31 hostname kernel:  rpm_suspend+0x136/0x610
Sep 19 21:54:31 hostname kernel:  pm_runtime_work+0x94/0xa0
Sep 19 21:54:31 hostname kernel:  process_one_work+0x1d1/0x3e0
Sep 19 21:54:31 hostname kernel:  worker_thread+0x4a/0x3d0
Sep 19 21:54:31 hostname kernel:  kthread+0xfb/0x130
Sep 19 21:54:31 hostname kernel:  ? process_one_work+0x3e0/0x3e0
Sep 19 21:54:31 hostname kernel:  ? kthread_park+0x80/0x80
Sep 19 21:54:31 hostname kernel:  ret_from_fork+0x35/0x40
Sep 19 21:54:31 hostname kernel: ---[ end trace 2774d58e8ed99f7c ]---
Sep 19 21:54:31 hostname kernel: [TTM] Buffer eviction failed
Sep 19 21:54:46 hostname kernel: nouveau 0000:01:00.0: DRM: failed to idle channel 1 [DRM]
Sep 19 21:44:30 hostname kernel: nouveau 0000:01:00.0: tmr: stalled at ffffffffffffffff

P.s. Regarding this, I added the following:

.xinitrc (added second line)

exec i3 --shmlog-size=26214400
exec /usr/bin/prime-offload
exec xset s off

~/.config/i3/config

exec_always --no-startup-id ~/.local/bin/i3-logout
[...]

~/.local/bin/i3-logout

#!/usr/bin/env python3
import i3ipc, subprocess

def on_shutdown(conn):
    subprocess.run(["sudo", "/usr/bin/prime-switch"])

conn = i3ipc.Connection()
conn.on('ipc_shutdown', on_shutdown)
conn.main()

Last edited by smoneck (2019-09-19 20:19:10)

Offline

#6 2019-09-19 20:47:35

seth
Member
Registered: 2012-09-03
Posts: 49,953

Re: Getting nvidia driver to work

If you "went through the docs" and desire to use the nvidia blob, why is nouveau loaded?

exec i3 --shmlog-size=26214400
exec /usr/bin/prime-offload
exec xset s off

Nothing after the first "exec" line will be executed.

Online

#7 2019-09-20 10:59:53

smoneck
Member
Registered: 2014-05-14
Posts: 105

Re: Getting nvidia driver to work

seth wrote:

If you "went through the docs" and desire to use the nvidia blob, why is nouveau loaded?

Good question but I don't like that you give the impression that in fact I did _not_ read the documentation.

I assume it is at least this standard setting of optimus-manager:

/usr/share/optimus-manager.conf

# Module used for power switching. Possible values : nouveau, bbswitch, none
switching=nouveau

[...]

# Enable PCI power management in Intel mode.
# If you do not enable this option, you may see a higher power comsumption.
# This option is incompatible with bbswitch and will be ignored if bbswitch is enabled.
pci_power_control=yes

Regarding this, the documentation is ambiguous or unclear to me.

seth wrote:

Nothing after the first "exec" line will be executed.

Thanks for the hint! I switched it to:

exec /usr/bin/prime-offload
exec i3 --shmlog-size=26214400

Last edited by smoneck (2019-09-20 11:01:06)

Offline

#8 2019-09-20 11:09:48

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,415

Re: Getting nvidia driver to work

Yes, and you will likely want to change that to switching=bbswitch so that you don't trigger nouveau bugs/crashes. You should also change that in /etc/optimus-manager/optimus-manager.conf (you can copy the template there, or just override the option you want to override)

You should not use an exec call for anything but the last i3 invocation (now i3 won't start), and you will also want to read the link in my previous post, there's some additional includes you should have in your file before starting i3

Last edited by V1del (2019-09-20 11:11:43)

Offline

#9 2019-09-20 17:13:32

smoneck
Member
Registered: 2014-05-14
Posts: 105

Re: Getting nvidia driver to work

YAY! It works now! And I'm down to 5.5 W! Thanks a ton for the help!

V1del wrote:

[...] and you will also want to read the link in my previous post, there's some additional includes you should have in your file before starting i3

Could you give me a hint or a keyword? I went through the FAQ and the Readme again but I don't find anything missing.

Ah! All good. :-)

The content now is:

~/.xinitrc

<if blocks from /etc/X11/xinit/xinitrc>
/usr/bin/prime-offload
exec i3 --shmlog-size=26214400

P.S. TLDR summary for whoever stumbles upon this in the future:

   - Installed: nvidia, nvidia-utils, optimus-manager, bbswitch
   - ~/.xinitrc from above, ~/.config/i3/config and ~/.local/bin/i3-logout from my post above.
   - Copied /usr/share/optimus-manager.conf to /etc/optimus-manager/optimus-manager.conf changing to switching=bbswitch.

Last edited by smoneck (2019-09-20 17:34:16)

Offline

#10 2019-09-20 18:14:00

smoneck
Member
Registered: 2014-05-14
Posts: 105

Re: Getting nvidia driver to work

Well ... there is still some trouble. I can not switch back from nvidia:

/var/log/optimus-manager/gpu_setup.log

[...]
Cannot setup GPU : kernel setup error : Cannot unload Nvidia modules : Failed to execute 'modprobe -r nvidia_drm nvidia_modeset nvidia_uvm nvidia' : modprobe: FATAL: Module nvidia_drm is in use.

and sometimes

Cannot setup GPU : kernel setup error : bbswitch failed to set the GPU to ON

/var/log/optimus-manager/prime_setup.log

Error : cannot setup PRIME : Cannot setup PRIME : Failed to execute 'xrandr --setprovideroutputsource modesetting NVIDIA-0'

I assume the problem is that prime-switch is being run on logout instead off after. How should I do this properly? A systemd service WantedBy graphical.target?

Last edited by smoneck (2019-09-20 18:27:29)

Offline

#11 2019-09-20 18:54:14

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,415

Re: Getting nvidia driver to work

I'd say just run it consciously and when you actively want to switch after the X server dies. If you want this automated you might have a shot with a type=oneshot depending on graphical.target running an ExecStop=/usr/bin/prime-switch

Offline

#12 2019-10-12 18:45:44

smoneck
Member
Registered: 2014-05-14
Posts: 105

Re: Getting nvidia driver to work

V1del wrote:

I'd say just run it consciously and when you actively want to switch after the X server dies. If you want this automated you might have a shot with a type=oneshot depending on graphical.target running an ExecStop=/usr/bin/prime-switch

All right, I'll think about that and stick to manually running prime-switch for now.

(I didn't mark the thread as solved since there are still error messages and it's not really working but so far I didn't find the appropriate time to go after this to eventually condense this into a proper question.)

Offline

Board footer

Powered by FluxBB