Make Laptop uses only Nvidia Card

Hello. I use Linux to work and play some games and, I just moved to Endeavour OS.
I have a Lenovo ThinkPad Extreme with Intel/Nvidia 1650Ti graphics and I wanted to use exclusively the Nvidia card. My BIOS allow me to specify Hybrid or Dedicated Only.

If I pick Dedicated Only at BIOS (which makes more sense to me), I did the following:
Endeavour Installer does not display X if I choose NVIDIA drivers option
So, I installed the OS using the 1st option, which installs Nouveau drivers. Since Id like to have the proprietary drivers, I installed nvidia-inst package and installed the proprietary ones ($ nvidia-inst without any parameter)
The script detected and installed the 525 version. After rebooting, the same happened when I tried to boot the LiveUSB with NVIDIA drivers (stuck before loading X).

After this, I put my BIOS to Hybrid and I was able to boot the LiveUSB with NVIDIA drivers and installed the 525 (could check using nvidia-smi).
Then I installed envycontrol and checked that my config is using hybrid mode.
If I try to switch to nvidia and reboot, the same as above happens.

I also tried with optimus-manager, but Im stuck at the exact same problem and I dont know what else to do. So any help is appreciated.

All installations are OS + KDE Plasma (not sure if picking xfce would change anything).

Im not sure if this may impact, but due to use the computer for work, I have 4 monitors:

  • Laptop Screen
  • Ultra Wide 34" plugged in HDMI
  • USB C dock containing: 27" QHD + 24" FHD

Thanks

If you have a recent intel CPU, you need to add the kernel parameter ibt=off when using the version 525 of the nvidia drivers.

This should be fixed in a future version of the nvidia drivers but for now that is the workaround.

I tried this approach, but it did not work.

just to be sure that I set the flag:
$ cat /proc/cmdline
initrd=\54d2d196ad4c4a688fb7fb8e15b62601\6.2.6-arch1-1\initrd nvme_load=YES nowatchdog rw root=UUID=a2c25834-305f-4378-824a-4eab58c3f822 resume=UUID=5e093ce0-38c8-4a83-aee3-b07b142f8f0d nvidia-drm.modeset=1 systemd.machine_id=54d2d196ad4c4a688fb7fb8e15b62601 ibt=off

My cpu stats:

$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 165
model name : Intel(R) Core™ i7-10750H CPU @ 2.60GHz
stepping : 2
microcode : 0xf4
cpu MHz : 2600.000
cache size : 12288 KB
physical id : 0
siblings : 12
core id : 0
cpu cores : 6
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp pku ospke md_clear flush_l1d arch_capabilities
vmx flags : vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid unrestricted_guest vapic_reg vid ple pml ept_mode_based_exec
bugs : spectre_v1 spectre_v2 spec_store_bypass swapgs itlb_multihit srbds mmio_stale_data retbleed eibrs_pbrsb
bogomips : 5202.65
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:

My idea is maybe find a way to install an older driver, like 515

Did you try setting it on Hybrid and still use Ennvy control to switch?

I did. After switching to NVidia, It ask to reboot and It get stuck before loading x.

Is I use ctrl + alt + f2, I can login in the terminal and switch back to hybrid, which Works.
Is there any log I can check?

Did you it without envy control if there are settings in the Bios for changing to integrated, dedicated or hybrid?

I have the option in BIOS to use hybrid or dedicated only.
If I pick dedicated only in BIOS, I can boot only with Nouveau drivers.

If I set hybrid in BIOS, the system boots when my Optimus is set to hybrid. Now, if I try to use envy to switch to NVidia, I get the same as when I puts BIOS to dedicated.

envycontrol, optimus-manager and nvidia-inst may fail to handle your configuration.

If it was mine, I would try two alternative scenarios:

  1. Try without external monitors
  2. Try without envycontrol, optimus-manager and nvidia-inst (manually install nvidia drivers, by Archwiki, after removing/cleaning packages/configuration files)

Hello. I got some progress here.
After your suggestion, I disconnected my USB C dock (with 2 monitors) and I was able to boot after changing my Video mode to Dedicated only so, there is no more intel stuff running I guess thus I think I dont need these optimus switches.
The strange is that after boot, I can plug my dock and use all 4 monitors, but boot fails if I have everything plugged. Its not ideal, but I can live with it.

The 2nd (and most annoying thing) is the following behavior:
The laptop screen default resolution is 3840x216, which is insane for a 15 inch screen so, I wanted to define it to 1920x1080, but KDE Display settings does not allow me to change it (I dont get the dropdown for resolution on this monitor).
If I use nvidia-settings, I can configure it the way I want, even save it to xorg.conf, but after reboot, I lose all the changes.

The xrandr just give me one possible resolution for the laptop monitor, but in my previous old kubuntu setup it was working, so I might have missed something.

You can try HiDPI setting for SDDM, and the equivalent for KDE.

Can the HiDPI be applied to only one screen?

Why don’t you try and see exactly? Such features often behave differently, depending on HW/SW components, Xorg/Wayland, etc.