Hybrid Graphics Laptop Questions

Hi - I have a hybrid graphics laptop and I am seeking to get the nvidia GPU working again as I am finding myself doing more video editing and using freecad.

I installed EOS 2-3 years ago and when I did that I also followed the instructions on the eos nvidia page for optimus-switch and eventually I had everything working. Now, I rarely had a need to use the nvidia gpu and did not keep up to date with it. I also installed optimus-indicator too.

I recently noted that optimus-switch was giving me systemd errors so I uninstalled it, although I still have the directories for both optimus-switch and optimus-indicator (which will not uninstall?) in my root directory.

As stated, I would like to start using my nvidia gpu again and I have the following questions that I would appreciate some guidance on:

  1. I already have nvidia drivers installed and the nvidia-install-dkms installed, can/should I also install nvidia-inst?
  2. can I simply remove the directories for optimus-switch and optimus-indicator and reinstall them to use following the instructions here and here?
  3. Is there a better way of doing this now that it has been a 2-3 years?
  4. any other helpful thoughts before I plow into this?

Below is my system specs per the output of ’ inxi -Fxxc0z | eos-sendlog’
Thank you - all replies are appreciated.

System:
  Kernel: 6.1.12-arch1-1 arch: x86_64 bits: 64 compiler: gcc v: 12.2.1
    Desktop: KDE Plasma v: 5.27.1 tk: Qt v: 5.15.8 wm: kwin_x11 dm: SDDM
    Distro: EndeavourOS base: Arch Linux
Machine:
  Type: Laptop System: ASUSTeK product: X510UNR v: 1.0
    serial: <superuser required>
  Mobo: ASUSTeK model: X510UNR v: 1.0 serial: <superuser required>
    UEFI: American Megatrends v: X510UNR.309 date: 05/14/2019
Battery:
  ID-1: BAT0 charge: 23.8 Wh (100.0%) condition: 23.8/42.1 Wh (56.6%)
    volts: 11.5 min: 11.5 model: ASUSTeK ASUS Battery serial: N/A
    status: not charging
CPU:
  Info: quad core model: Intel Core i7-8550U bits: 64 type: MT MCP
    arch: Coffee Lake rev: A cache: L1: 256 KiB L2: 1024 KiB L3: 8 MiB
  Speed (MHz): avg: 1862 high: 2000 min/max: 400/4000 cores: 1: 2000 2: 2000
    3: 2000 4: 900 5: 2000 6: 2000 7: 2000 8: 2000 bogomips: 32012
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
  Device-1: Intel UHD Graphics 620 vendor: ASUSTeK driver: i915 v: kernel
    arch: Gen-9.5 ports: active: eDP-1 empty: HDMI-A-1 bus-ID: 00:02.0
    chip-ID: 8086:5917
  Device-2: NVIDIA GP108M [GeForce MX150] vendor: ASUSTeK driver: nvidia
    v: 525.89.02 arch: Maxwell pcie: speed: 2.5 GT/s lanes: 4 bus-ID: 01:00.0
    chip-ID: 10de:1d10
  Device-3: IMC Networks VGA UVC WebCam type: USB driver: uvcvideo
    bus-ID: 1-6:2 chip-ID: 13d3:5a07
  Display: x11 server: X.Org v: 21.1.7 compositor: kwin_x11 driver: X:
    loaded: intel,nvidia unloaded: fbdev,modesetting,vesa alternate: nouveau,nv
    dri: i965 gpu: i915 display-ID: :0 screens: 1
  Screen-1: 0 s-res: 1920x1080 s-dpi: 96
  Monitor-1: eDP-1 mapped: eDP1 model: AU Optronics 0x21ed res: 1920x1080
    dpi: 143 diag: 394mm (15.5")
  API: OpenGL v: 4.6 Mesa 22.3.6 renderer: Mesa Intel UHD Graphics 620 (KBL
    GT2) direct-render: Yes
Audio:
  Device-1: Intel Sunrise Point-LP HD Audio vendor: ASUSTeK
    driver: snd_hda_intel v: kernel bus-ID: 00:1f.3 chip-ID: 8086:9d71
  Sound API: ALSA v: k6.1.12-arch1-1 running: yes
  Sound Server-1: JACK v: 1.9.22 running: no
  Sound Server-2: PulseAudio v: 16.1 running: yes
  Sound Server-3: PipeWire v: 0.3.66 running: yes
Network:
  Device-1: Intel Wireless 8265 / 8275 driver: iwlwifi v: kernel pcie:
    speed: 2.5 GT/s lanes: 1 bus-ID: 02:00.0 chip-ID: 8086:24fd
  IF: wlan0 state: up mac: <filter>
Bluetooth:
  Device-1: Intel Bluetooth wireless interface type: USB driver: btusb v: 0.8
    bus-ID: 1-8:3 chip-ID: 8087:0a2b
  Report: rfkill ID: hci0 rfk-id: 1 state: up address: see --recommends
Drives:
  Local Storage: total: 1.14 TiB used: 147.03 GiB (12.6%)
  ID-1: /dev/sda vendor: Seagate model: ST1000LM035-1RK172 size: 931.51 GiB
    speed: 6.0 Gb/s serial: <filter>
  ID-2: /dev/sdb vendor: Micron model: 1100 MTFDDAV256TBN size: 238.47 GiB
    speed: 6.0 Gb/s serial: <filter>
Partition:
  ID-1: / size: 216.57 GiB used: 147.03 GiB (67.9%) fs: ext4 dev: /dev/dm-0
    mapped: luks-d79f1908-622d-42c0-9c4d-2826c932ae51
  ID-2: /boot/efi size: 299.4 MiB used: 452 KiB (0.1%) fs: vfat
    dev: /dev/sdb1
Swap:
  ID-1: swap-1 type: partition size: 17.07 GiB used: 0 KiB (0.0%) priority: -2
    dev: /dev/dm-1 mapped: luks-426759bb-6a5a-47d3-8a59-620196bc91e8
Sensors:
  System Temperatures: cpu: 45.0 C pch: 36.0 C mobo: N/A
  Fan Speeds (RPM): cpu: 2700
Info:
  Processes: 262 Uptime: 35m Memory: 15.51 GiB used: 5.28 GiB (34.0%)
  Init: systemd v: 253 default: graphical Compilers: gcc: 12.2.1 clang: 15.0.7
  Packages: pm: pacman pkgs: 1693 Shell: Bash v: 5.1.16 running-in: konsole
  inxi: 3.3.25

No, what would be the point of that? That’s just an EndeavourOS script to setup NoVidea drivers (dkms version). Somewhat pointless in my opinion, but some find it useful. But if you have the drivers already installed and working, you don’t need it.

cool I actually checked and I guess I have nvidia-inst installed and not nvidia-install-dkms anyway. So given that should I just go for it?

Some users find envycontrol easy to use. As I don’t have an optimus laptop, I have no experience about it though.

Here’s some more info in case you haven’t read it already:
https://wiki.archlinux.org/title/NVIDIA_Optimus

And you can still check what commands

nvidia-inst --help
nvidia-inst --test

show. In your case it doesn’t show all that you might need.

This caused me problems back in the day. Please check if you have remaining files in /etc/X11/xorg.conf.d. If there are any, remove the “.conf” suffix from them and reboot. This will prevent Xorg from parsing the files.

interesting, hadn’t heard of envycontrol, this looks very promising will check it out further.

I ran nvidia-inst --test as you mentioned, it gives me the below COMMANDS TO RUN:

pacman -Rs --noconfirm --noprogressbar --nodeps lib32-nvidia-utils nvidia
pacman -Syuq --noconfirm --noprogressbar --needed nvidia-dkms nvidia-hook
nvidia-installer-kernel-para nvidia-drm.modeset=1 add

are these commands I would need to run before attempting to use optimus-swticher or envycontrol?

Appreciate the help!!!

This caused me problems back in the day. Please check if you have remaining files in /etc/X11/xorg.conf.d. If there are any, remove the “.conf” suffix from them and reboot. This will prevent Xorg from parsing the files.

ah yes this is what I was wondering, Ill have a look in /etc/X11/xorg.conf.d as mentioned. I’m assuming the files in there that are .conf will have some sort of "optimus’ wording used? Also any other areas like this you can think of?

Thank you!

EDIT: just checked, there is only a file named 00-keyboard.conf so I think I might be good!

1 Like

Please note that nvidia-inst works with the options that you give, or don’t give. That’s why it is best to use the options you need for your use case.

To explain the output:

  • In your case it shows to remove lib32-nvidia-utils. But if you need 32-bit support e.g. for playing, you should use option --32, and nvidia-inst -t --32 will give you a different result.
  • It wants to replace nvidia with nvidia-dkms because nvidia-dkms works for different kernels as well, and is in general a bit less error prone with package updates.
  • nvidia-hook is good to add to automate e.g. initramfs generation when the nvidia driver is updated.
  • The kernel parameter is helpful in many cases, and shouldn’t hurt even if it is not needed.

All in all, it is good to see what nvidia-inst suggests, and use the options you need.
Note that what nvidia-inst says is not the only truth, but more like an initial suggestion.

Super helpful appreciate this, ok here is the newbie dumb question - How do I know if I need 32 bit support? I don’t believe I do…but how could I be sure?

Personaly, I’ve never installed 32-bit drivers until i played some old game on steam that required them. So, it’s up to you how you decide. You can install them now to be 100 % sure about compatibility or you can install them later when some program needs them.

ah alright in that case I don’t believe I have the need. Appreciate the help!

You should install 32 bit support just in case.

ok reporting back - I have optimus-switch working!

Although, I notice now I have an issue with a systemd service failing at boot? (I am in intel graphics mode)

when I type systemctl --failed

I get back:

  UNIT                         LOAD   ACTIVE SUB    DESCRIPTION        
â—Ź systemd-modules-load.service loaded failed failed Load Kernel Modules

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.
1 loaded units listed.

Any thoughts on how to troubleshoot this?