How to check my drivers and vulkan are installed and functioning properly, and general noob advice

Hi, I’m about as new to Linux as you can get. I have heard that you should never run a command you don’t know, but I really have no clue what I’m doing. I bought a Steam Deck and I was convinced that linux is in a good enough state thanks to Proton for me to be able to try and daily drive it on my desktop, as my main limitation is gaming. Issue is, I’m not a programmer. I don’t know linux except some very basic things, so I am sure there are answers to lots of my questions but I don’t even know how to search for them most of the time.

Basically, I try running everything, even non-steam games like World of Warcraft and Star Citizen thru steam and forcing compatibility with Proton, though Star Citizen has been giving me some trouble (Also I initially tried installing World of Warcraft via lutris, and the game would simply not start when hitting play in the launcher, so I ran the installer in Steam as stated before and it went smoothly.). For now, I’d just like to be able to know how to make sure I’m using the latest drivers and stuff like Vulkan is installed and working properly. Also how to check and install updated drivers as they come.

I’d appreciate any other advice, things to know about, lingo, or common issues to watch out for. So far I’m satisfied and learning is slow but I can play games and that’s alleviated most of my worry. Please let me know if there is any info you want from me as well. Thanks!

Hello and welcome,

It sounds like you already understand the basics like concepts of ‘terminal’ and ‘command’.

After that a great first step is getting familiar with -h, --help and man.
With these you should be able to navigate an understanding of how most things work.

In a moment I’m going to ask for the output of an inxi command.
First you can take a look at how inxi works using any of the following;

inxi -h
inxi --help
man inxi

(this final man command will overtake the terminal window and you can exit using Q)

While not all terminal utilities will have --help flag or a man page … they will usually have at least one of the above methods of providing information on how to use them.

Please run the following and copy its output here:

inxi -Farz

Note: Please use the </> button above the forum text box to keep code snippets formatted.
Extra information like that including other ways to format etc can be found here:

Here is the output:

System:
  Kernel: 6.12.12-2-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 14.2.1
    clocksource: tsc avail: hpet,acpi_pm
    parameters: BOOT_IMAGE=/boot/vmlinuz-6.12-x86_64
    root=UUID=fabb0a12-ad63-4587-9cd1-853cdd7707ba rw quiet splash
    udev.log_priority=3
  Desktop: KDE Plasma v: 6.2.5 tk: Qt v: N/A info: frameworks v: 6.10.0
    wm: kwin_x11 vt: 2 dm: SDDM Distro: Manjaro base: Arch Linux
Machine:
  Type: Desktop Mobo: Gigabyte model: B650 GAMING X AX V2 v: x.x
    serial: <superuser required> uuid: <superuser required> UEFI: American
    Megatrends LLC. v: F31 date: 08/14/2024
CPU:
  Info: model: AMD Ryzen 7 9700X bits: 64 type: MT MCP arch: N/A level: v4
    note: check family: 0x1A (26) model-id: 0x44 (68) stepping: 0
    microcode: 0xB40401A
  Topology: cpus: 1x dies: 1 clusters: 1 cores: 8 threads: 16 tpc: 2
    smt: enabled cache: L1: 640 KiB desc: d-8x48 KiB; i-8x32 KiB L2: 8 MiB
    desc: 8x1024 KiB L3: 32 MiB desc: 1x32 MiB
  Speed (MHz): avg: 3614 min/max: 600/5581 boost: enabled scaling:
    driver: amd-pstate-epp governor: powersave cores: 1: 3614 2: 3614 3: 3614
    4: 3614 5: 3614 6: 3614 7: 3614 8: 3614 9: 3614 10: 3614 11: 3614 12: 3614
    13: 3614 14: 3614 15: 3614 16: 3614 bogomips: 121430
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
  Vulnerabilities:
  Type: gather_data_sampling status: Not affected
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data status: Not affected
  Type: reg_file_data_sampling status: Not affected
  Type: retbleed status: Not affected
  Type: spec_rstack_overflow status: Not affected
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Enhanced / Automatic IBRS; IBPB:
    conditional; STIBP: always-on; RSB filling; PBRSB-eIBRS: Not affected;
    BHI: Not affected
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: NVIDIA AD103 [GeForce RTX 4080 SUPER] vendor: ZOTAC driver: nvidia
    v: 550.144.03 alternate: nouveau,nvidia_drm non-free: 550/565.xx+
    status: current (as of 2025-01) arch: Lovelace code: AD1xx
    process: TSMC n4 (5nm) built: 2022+ pcie: gen: 4 speed: 16 GT/s lanes: 16
    ports: active: none off: DP-4 empty: DP-5,DP-6,HDMI-A-2 bus-ID: 01:00.0
    chip-ID: 10de:2702 class-ID: 0300
  Device-2: Advanced Micro Devices [AMD/ATI] Granite Ridge [Radeon Graphics]
    vendor: Gigabyte driver: amdgpu v: kernel pcie: gen: 4 speed: 16 GT/s
    lanes: 16 ports: active: none empty: DP-1, DP-2, DP-3, HDMI-A-1,
    Writeback-1 bus-ID: 10:00.0 chip-ID: 1002:13c0 class-ID: 0300 temp: 28.0 C
  Display: x11 server: X.Org v: 21.1.15 with: Xwayland v: 24.1.5
    compositor: kwin_x11 driver: X: loaded: amdgpu,nouveau unloaded: modesetting
    failed: nvidia alternate: fbdev,nv,vesa dri: radeonsi
    gpu: nvidia,nvidia-nvswitch display-ID: :0 screens: 1
  Screen-1: 0 s-res: 2560x1440 s-dpi: 92 s-size: 707x393mm (27.83x15.47")
    s-diag: 809mm (31.85")
  Monitor-1: DP-0 res: N/A size: 697x392mm (27.44x15.43") modes: N/A
  API: EGL v: 1.5 hw: drv: nvidia platforms: device: 0 drv: nvidia gbm:
    drv: nvidia surfaceless: drv: nvidia x11: drv: nvidia inactive: wayland
  API: OpenGL v: 4.6.0 vendor: nvidia v: 550.144.03 glx-v: 1.4
    direct-render: yes renderer: NVIDIA GeForce RTX 4080 SUPER/PCIe/SSE2
    memory: 15.62 GiB
  API: Vulkan v: 1.4.303 layers: 5 device: 0 type: discrete-gpu name: NVIDIA
    GeForce RTX 4080 SUPER driver: N/A device-ID: 10de:2702 surfaces: xcb,xlib
    device: 1 type: integrated-gpu name: AMD Radeon Graphics (RADV
    RAPHAEL_MENDOCINO) driver: N/A device-ID: 1002:13c0 surfaces: xcb,xlib
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
    de: kscreen-console,kscreen-doctor gpu: nvidia-settings,nvidia-smi
    wl: wayland-info x11: xdpyinfo, xprop, xrandr
Audio:
  Device-1: NVIDIA vendor: ZOTAC driver: snd_hda_intel v: kernel pcie: gen: 4
    speed: 16 GT/s lanes: 16 bus-ID: 01:00.1 chip-ID: 10de:22bb class-ID: 0403
  Device-2: Advanced Micro Devices [AMD/ATI] Rembrandt Radeon High
    Definition Audio driver: snd_hda_intel v: kernel pcie: gen: 4
    speed: 16 GT/s lanes: 16 bus-ID: 10:00.1 chip-ID: 1002:1640 class-ID: 0403
  Device-3: Advanced Micro Devices [AMD] Family 17h/19h/1ah HD Audio
    vendor: Gigabyte driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s
    lanes: 16 bus-ID: 10:00.6 chip-ID: 1022:15e3 class-ID: 0403
  API: ALSA v: k6.12.12-2-MANJARO status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: JACK v: 1.9.22 status: off tools: N/A
  Server-2: PipeWire v: 1.2.7 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
    tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Realtek RTL8852CE PCIe 802.11ax Wireless Network
    driver: rtw89_8852ce v: kernel pcie: gen: 2 speed: 5 GT/s lanes: 1
    port: d000 bus-ID: 07:00.0 chip-ID: 10ec:c852 class-ID: 0280
  IF: wlp7s0 state: down mac: <filter>
  Device-2: Realtek RTL8125 2.5GbE vendor: Gigabyte driver: r8169 v: kernel
    pcie: gen: 2 speed: 5 GT/s lanes: 1 port: c000 bus-ID: 08:00.0
    chip-ID: 10ec:8125 class-ID: 0200
  IF: enp8s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
  Info: services: NetworkManager, systemd-timesyncd, wpa_supplicant
Bluetooth:
  Device-1: Realtek Bluetooth Radio driver: btusb v: 0.8 type: USB rev: 1.0
    speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-9:7 chip-ID: 0bda:0852
    class-ID: e001 serial: <filter>
  Report: rfkill ID: hci0 rfk-id: 0 state: up address: see --recommends
Drives:
  Local Storage: total: 8.64 TiB used: 270.95 GiB (3.1%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung
    model: SSD 990 EVO Plus 2TB size: 1.82 TiB block-size: physical: 512 B
    logical: 512 B speed: 126 Gb/s lanes: 4 tech: SSD serial: <filter>
    fw-rev: 1B2QKXG7 temp: 25.9 C scheme: GPT
  ID-2: /dev/sda maj-min: 8:0 vendor: Western Digital
    model: WD1003FZEX-00K3CA0 size: 931.51 GiB block-size: physical: 4096 B
    logical: 512 B speed: 6.0 Gb/s tech: HDD rpm: 7200 serial: <filter>
    fw-rev: 1A01 scheme: GPT
  ID-3: /dev/sdb maj-min: 8:16 vendor: Samsung model: SSD 850 EVO 500GB
    size: 465.76 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
    tech: SSD serial: <filter> fw-rev: 2B6Q scheme: GPT
  ID-4: /dev/sdc maj-min: 8:32 vendor: Western Digital
    model: WD60EDAZ-11U78B0 size: 5.46 TiB block-size: physical: 4096 B
    logical: 512 B type: USB rev: 3.1 spd: 5 Gb/s lanes: 1 mode: 3.2 gen-1x1
    tech: HDD rpm: 5400 serial: <filter> fw-rev: 4009 scheme: GPT
Partition:
  ID-1: / raw-size: 1.82 TiB size: 1.79 TiB (98.37%) used: 270.95 GiB (14.8%)
    fs: ext4 dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 288 KiB (0.1%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
Swap:
  Alert: No swap data was found.
Sensors:
  System Temperatures: cpu: 31.8 C mobo: 20.0 C
  Fan Speeds (rpm): N/A
  GPU: device: nvidia screen: :0.0 temp: 29 C fan: 0% device: amdgpu
    temp: 28.0 C
Repos:
  Packages: pm: pacman pkgs: 1357 libs: 446 tools: pamac pm: flatpak pkgs: 0
  Active pacman repo servers in: /etc/pacman.d/mirrorlist
    1: https://mirrors.cicku.me/manjaro/stable/$repo/$arch
    2: https://edgeuno-bog2.mm.fcix.net/manjaro/stable/$repo/$arch
    3: https://mirror.kku.ac.th/manjaro/stable/$repo/$arch
Info:
  Memory: total: 32 GiB note: est. available: 30.47 GiB used: 2.52 GiB (8.3%)
  Processes: 385 Power: uptime: 3m states: freeze,mem,disk suspend: deep
    avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
    suspend, test_resume image: 12.15 GiB services: org_kde_powerdevil,
    power-profiles-daemon, upowerd Init: systemd v: 257 default: graphical
    tool: systemctl
  Compilers: gcc: 14.2.1 Shell: Zsh v: 5.9 default: Bash v: 5.2.37
    running-in: konsole inxi: 3.3.37

OK, now lets go through some of this information…

While you do have a decent amount of RAM, its probably still a good idea to set up some SWAP.
If you do not want to create a partition, and indeed I find zram in particular more performant, you may opt for a swap-file or zram. Some guides are here:
https://wiki.archlinux.org/title/Swap
https://wiki.archlinux.org/title/Swap#Swap_file
[HowTo] Install and configure zram using zram-generator

Looks fine.

Also looks fine.

But ok … we have 2 GPUs … one amd and one nvidia.

It looks like the amdgpu is being used by default.

Now I will ask for some other info;

mhwd -li -d

and some tests;

glxinfo | grep 'renderer string'
DRI_PRIME=1 glxinfo | grep 'renderer string'
prime-run glxinfo | grep 'renderer string'

Note: If you do not have the glxinfo command it is provided by the package mesa-utils.


PS

This isnt really OS-dependent or necessarily of high importance, but I do notice you have BIOS updates available. Indeed in your case some of those updates are marked for security and performance.
If my search was right: B650 GAMING X AX V2 (rev. 1.x) Support | Motherboard - GIGABYTE U.S.A.

Alright, I’ve setup zram per the how-to and reboot to check the status.

I’m not sure if that’s what I want or not. I assume the AMD gpu is integrated, and display gets switched over to the nvidia for anything graphically intensive. But my monitor is plugged into the nvidia 4060S. Not really sure if it’s good or bad as-is but I presume it’s not ideal the way it is?

Following are outputs from the commands you requested.

 ~> mhwd -li -d                                                                                    ✔ 
   NAME:        video-linux
   ATTACHED:    PCI
   VERSION:     2024.05.06
   INFO:        Standard open source drivers.
   PRIORITY:    2
   FREEDRIVER:  true
   DEPENDS:     -
   CONFLICTS:   -
   CLASSIDS:    0300 0380 0302 
   VENDORIDS:   1002 8086 10de 

   NAME:        video-nvidia
   ATTACHED:    PCI
   VERSION:     2024.05.03
   INFO:        Closed source NVIDIA drivers for linux.
   PRIORITY:    5
   FREEDRIVER:  false
   DEPENDS:     -
   CONFLICTS:   video*nvidia* 
   CLASSIDS:    0300 0302 
   VENDORIDS:   10de 


Warning: no installed configs for USB devices found!
 ~> glxinfo | grep 'renderer string'                                                               ✔ 
OpenGL renderer string: NVIDIA GeForce RTX 4080 SUPER/PCIe/SSE2
 ~> DRI_PRIME=1 glxinfo | grep 'renderer string'                                                   ✔ 
OpenGL renderer string: NVIDIA GeForce RTX 4080 SUPER/PCIe/SSE2

And lastly,

~> prime-run glxinfo | grep 'renderer string'                                                     ✔ 
zsh: command not found: prime-run

It seems I don’t have whatever prime-run is installed, I did some googling and found it’s a way to manage hybrid graphics using nvidia-prime, and it must be that I do not have nvidia-prime installed?

If it helps to know, when I was first installing Manjaro it asked me something about proprietary or open source. I didn’t really get it so I chose open source, and I only realized later it was asking about whether to use nvidia’s proprietary drivers or nouveau, and I figured that was a mistake in my case. So I ran some commands I found elsewhere in the hope it would switch over from nouveau to proprietary, but it’s likely I either did something wrong or didn’t do enough. It’s possible I even used commands intended for another distro that used different package handling or something, there’s just a lot of different things to come to grips with.

Ah this is not good, as we see above that the nvidia driver is not loaded, yet the nvidia card is being used as the default.
There is some mixup going on here.

I also notice the mhwd profile you probably want is not installed.

Please execute the following;

sudo mhwd -r pci video-nvidia
sudo mhwd -f -i pci video-hybrid-amd-nvidia-prime

Then please reboot and show us the inxi and glxinfo outputs again;

inxi -Gaz
glxinfo | grep 'renderer string'
prime-run glxinfo | grep 'renderer string'

Alright, did those and reboot, but it seems the last two outputs are the same as the one you said was not good?

~> inxi -Gaz
Graphics:
  Device-1: NVIDIA AD103 [GeForce RTX 4080 SUPER] vendor: ZOTAC driver: nvidia
    v: 550.144.03 alternate: nouveau,nvidia_drm non-free: 550/565.xx+
    status: current (as of 2025-01) arch: Lovelace code: AD1xx
    process: TSMC n4 (5nm) built: 2022+ pcie: gen: 1 speed: 2.5 GT/s lanes: 16
    link-max: gen: 4 speed: 16 GT/s bus-ID: 01:00.0 chip-ID: 10de:2702
    class-ID: 0300
  Device-2: Advanced Micro Devices [AMD/ATI] Granite Ridge [Radeon Graphics]
    vendor: Gigabyte driver: amdgpu v: kernel pcie: gen: 4 speed: 16 GT/s
    lanes: 16 ports: active: none empty: DP-1, DP-2, DP-3, HDMI-A-1,
    Writeback-1 bus-ID: 10:00.0 chip-ID: 1002:13c0 class-ID: 0300 temp: 32.0 C
  Display: x11 server: X.Org v: 21.1.15 with: Xwayland v: 24.1.5
    compositor: kwin_x11 driver: X: loaded: amdgpu,nouveau unloaded: modesetting
    failed: nvidia alternate: fbdev,nv,vesa dri: radeonsi gpu: nvidia,amdgpu
    display-ID: :0 screens: 1
  Screen-1: 0 s-res: 2560x1440 s-dpi: 92 s-size: 707x393mm (27.83x15.47")
    s-diag: 809mm (31.85")
  Monitor-1: Unknown-1 mapped: DP-0 res: N/A size: 697x392mm (27.44x15.43")
    modes: 2560x1440
  API: EGL v: 1.5 hw: drv: nvidia platforms: device: 0 drv: nvidia gbm:
    drv: kms_swrast surfaceless: drv: nvidia x11: drv: nvidia inactive: wayland
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia v: 550.144.03 glx-v: 1.4
    direct-render: yes renderer: NVIDIA GeForce RTX 4080 SUPER/PCIe/SSE2
    memory: 15.62 GiB
  API: Vulkan v: 1.4.303 layers: 5 device: 0 type: discrete-gpu name: NVIDIA
    GeForce RTX 4080 SUPER driver: N/A device-ID: 10de:2702 surfaces: xcb,xlib
    device: 1 type: integrated-gpu name: AMD Radeon Graphics (RADV
    RAPHAEL_MENDOCINO) driver: N/A device-ID: 1002:13c0 surfaces: xcb,xlib
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
    de: kscreen-console,kscreen-doctor gpu: nvidia-settings,nvidia-smi
    wl: wayland-info x11: xdpyinfo, xprop, xrandr


~> glxinfo | grep 'renderer string'

OpenGL renderer string: NVIDIA GeForce RTX 4080 SUPER/PCIe/SSE2


~> prime-run glxinfo | grep 'renderer string'  

OpenGL renderer string: NVIDIA GeForce RTX 4080 SUPER/PCIe/SSE2

Hey, sorry to bump but I am still not sure my system is setup right. Am I good, or is there more that needs doing?