Lenovo IdeaPad L340-15IRH issue

Hello. I got myself the laptop mentioned in the title. Installed Arch on it together with nvidia-utils, nvidia 440.36-5, bumblebee, nvidia-prime.

Laptop has Nvidia 1650 graphics card, kernel version is 5.3.13. Seems like my nvidia card isn’t recognized. I have a working display thanks to integrated Intel graphics but nvidia won’t work. Seems like it’s not even recognized properly as

lspci -vv

gives this output:

01:00.0 VGA compatible controller: NVIDIA Corporation Device 1f91 (rev a1) (prog-if 00 [VGA controller])

All over the internet i saw very different explanations, followed various guides for a week now (starting from Arch wiki, ofc) but i failed getting my card up an running. Can you please help me?

Attached is nvidia-bug-report output.

P.S. bonus question - seems like my laptop has HDMI port connected to Nvidia card. Is there a way of using external monitor while Nvidia card is powered off? My previous laptop (Asus N551JW) managed to do that so i took that feature for granted while choosing the laptop… :(
nvidia-bug-report.log.gz (81.6 KB)

bumblebee is no longer required, also i recommend using this https://github.com/Askannz/optimus-manager

Ok, thanks. Can that cause the issue(s) i’m having?

According to the logs, there’s no kernel driver installed. Please uninstall any .run driver installer using the --uninstall option, then install the driver from Arch repo.

Whatever i install nvidia-dkms or just nvidia from AUR (Arch repo) folder /usr/lib/modules/5.3.13/extramodules is never created. And i get no error whatsoever while installing the module. I tried also manually building the package - same result.

I read kernel starting from 5.21 will remove “extra modules” but not sure if that’s related…

The arch package “nvidia” provides precompiled kernel modules for the latest arch kernel(5.4.3-arch1-1) in /usr/lib/modules/5.4.3-arch1-1/extramodules
Do those exist? Can you just update your system so you get the matching kernel?

I can’t, as new kernel version prevents my WiFi from working (Intel 9560 based wifi card, that’s next issue on my list that i have to resolve hahah)

But when i compile Nvidia module myself, it should be compiled against current running Kernel version (according to PKGBUILD file on Aur), right?

Thanks very much for your willingness to help, this problem is new for me :(

P.S. now i removed nvidia-dkms and installed “Nvidia” and it did placed “extramodules” into “5.4.2” but that’s not the kernel i’m currently running :(

This is the out of nvidia-dkms removal and nvidia installation:

:: Running pre-transaction hooks...
(1/1) Remove DKMS modules
==> dkms remove nvidia/440.44 -k 5.3.13-arch1-1
:: Processing package changes...
(1/1) removing nvidia-dkms                                                                                                                     [########################################################################################] 100%
(1/2) downgrading nvidia-utils                                                                                                                 [########################################################################################] 100%
If you run into trouble with CUDA not being available, run nvidia-modprobe first.
(2/2) installing nvidia                                                                                                                        [########################################################################################] 100%
:: Running post-transaction hooks...
(1/4) Creating system user accounts...
(2/4) Reloading system manager configuration...
(3/4) Arming ConditionNeedsUpdate...
(4/4) Updating module dependencies...

Ok, then you’ll have to use the nvidia-dkms package. Please install it, then post the output of
dkms status

Installed nvidia-dkms. Output of the command:

bbswitch, 0.8, 5.3.13-arch1-1, x86_64: installed
nvidia, 440.44, 5.3.13-arch1-1, x86_64: installed
vboxhost, 6.1.0_OSE, 5.3.13-arch1-1, x86_64: installed

After installing nvidia-dkms this is my latest bug report (attached)
nvidia-bug-report.log.gz (83.9 KB)

The driver is installed now, does bumblebee work?

Well… not sure. I tried running nvidia-settings but couldn’t. Like this:
1)

sudo bumblebeed

Bumblebee started.
2) Then:

[boza@bozaArch ~]$ nvidia-settings 

ERROR: NVIDIA driver is not loaded


ERROR: Unable to load info from any available system

[boza@bozaArch ~]$ sudo modprobe nvidia
[sudo] password for boza: 
[boza@bozaArch ~]$ nvidia-settings 

ERROR: Unable to load info from any available system

[boza@bozaArch ~]$

I think my card is still not properly recognized:

lspci -vv

gives:

01:00.0 VGA compatible controller: NVIDIA Corporation Device 1f91 (rev a1) (prog-if 00 [VGA controller])
	Subsystem: Lenovo Device 3a2e
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 16
	Region 0: Memory at a3000000 (32-bit, non-prefetchable) 
	Region 1: Memory at 90000000 (64-bit, prefetchable) 
	Region 3: Memory at a0000000 (64-bit, prefetchable) 
	Region 5: I/O ports at 4000 
	[virtual] Expansion ROM at a4080000 [disabled] 
	Capabilities: <access denied>
	Kernel driver in use: nvidia
	Kernel modules: nouveau, nvidia_drm, nvidia

Just a comment about lspci: run update-pciids to update the PCI hardware database and you will get lspci to recognise your graphics card model.

Please read the manuals on how to use bumblebee. Enable the bumblebee daemon using
sudo systemctl enable bumblebeed
sudo systemctl start bumblebeed
then run something on the nvidia card using
optirun

Yes! This did the trick :) Thanks

Yeah, that part works now. Now i have some kind of issue related to Vulkan (trying to run World Of Tanks from Crossover) but trying to investigate first on my own before bothering you guys :)

For bumblebee+vulkan, see this: https://github.com/felixdoerre/primus_vk

Thanks, will check it out. First i wanna try resolving the problem myself, you guys are just a last resort if i get stuck somewhere :) Thanks again.

Ok, got stuck again…
Went through Nvidia and Vulkan ArchWiki pages. When trying to execute:

[boza@bozaArch ~]$ vulkaninfo 
/build/vulkan-tools/src/Vulkan-Tools-1.1.128/vulkaninfo/vulkaninfo.h:399: failed with ERROR_INITIALIZATION_FAILED

and when trying to execute this CrossOver game like this (Crossover support for Vulkan has been installed and enabled as per their docs):

optirun -c proxy xfce4-terminal -e  "actual path to the game"

I get this:

[1222/215550.725:ERROR:network_change_notifier_win.cc(141)] WSALookupServiceBegin failed with: 0
info:  Game: wgc_renderer.exe
info:  DXVK: v1.2.3
warn:  OpenVR: Failed to locate module
info:  Enabled instance extensions:
info:    VK_KHR_get_physical_device_properties2
info:    VK_KHR_surface
info:    VK_KHR_win32_surface
err:   DxvkInstance::createInstance: Failed to create Vulkan instance
info:  Game: wgc_renderer.exe
info:  DXVK: v1.2.3
warn:  OpenVR: Failed to locate module
info:  Enabled instance extensions:
info:    VK_KHR_get_physical_device_properties2
info:    VK_KHR_surface
info:    VK_KHR_win32_surface
err:   DxvkInstance::createInstance: Failed to create Vulkan instance
err:   D3D11CreateDevice: Failed to create a DXGI factory
[1222/215551.569:ERROR:gl_surface_egl.cc(612)] EGL Driver message (Critical) eglInitialize: No available renderers.
[1222/215551.570:ERROR:gl_surface_egl.cc(1057)] eglInitialize D3D11 failed with error EGL_NOT_INITIALIZED, trying next display type
[1222/215606.728:INFO:child_thread_impl.cc(909)] ChildThreadImpl::EnsureConnected()
[1222/215606.746:ERROR:network_change_notifier_win.cc(141)] WSALookupServiceBegin failed with: 0

Btw same happens if i try “pvkrun”

Content of:

/usr/share/vulkan/icd.d/nvidia_icd

Is:

{
    "file_format_version" : "1.0.0",
    "ICD": {
        "library_path": "libGLX_nvidia.so.0",
        "api_version" : "1.1.119"
    }
}

What’s the output of
optirun env DISPLAY=:8 vulkaninfo

Had to edit the post because output was too long :D Had to run bumblebeed in order to get proper output
vi.txt (74.2 KB)