Udev rules for multi gpu provided by the wiki not working

Hyprland version
PASTE YOUR HYPRLAND VERSION HERE (hyprctl version), BETWEEN THE BACKTICKS. DO NOT REMOVE ANY FORMATTING.

Hyprland 0.53.0 built from branch v0.53.0 at commit ea444c35bb23b6e34505ab6753e069de7801cc25 clean (version: bump to 0.53.0).
Date: Mon Dec 29 15:21:36 2025
Tag: v0.53.0, commits: 6756

Libraries:
Hyprgraphics: built against 0.5.0, system has 0.5.0
Hyprutils: built against 0.11.0, system has 0.11.0
Hyprcursor: built against 0.1.13, system has 0.1.13
Hyprlang: built against 0.6.7, system has 0.6.7
Aquamarine: built against 0.10.0, system has 0.10.0

Version ABI string: ea444c35bb23b6e34505ab6753e069de7801cc25_aq_0.10_hu_0.11_hg_0.5_hc_0.1_hlg_0.6
no flags were set

Hello, I have a hybrid laptop (Radeon Vega Mobile IGPU, and GTX 1650 mobile DGPU), and I tried to do what the Multi GPU page said to make hyprland start with my igpu, but the rule script it gives at the end to create a dynamic symbolic link to that IGPU doesn’t work. When I try

sudo udevadm test /etc/udev/rules.d/amd-igpu-dev-path.rules

I get this output (the errors are at the end, but I pasted the whole output in case the reason could be in it):

This program is for debugging only, it does not run any program
specified by a RUN key. It may show incorrect results, because
some values may be different, or not available at a simulation run.

Loading builtins...
Found container virtualization none.
Trying to open "/etc/systemd/hwdb/hwdb.bin"...
Trying to open "/etc/udev/hwdb.bin"...
Trying to open "/usr/lib/systemd/hwdb/hwdb.bin"...
Trying to open "/usr/lib/udev/hwdb.bin"...
=== trie on-disk ===
tool version:          259
file size:        13563620 bytes
header size             80 bytes
strings            2809852 bytes
nodes             10753688 bytes
Loaded hardware database.
Loaded shared library 'libkmod.so.2' via dlopen().
Loaded kernel module index.
Using default interface naming scheme 'v259'.
Skipping file '/usr/lib/systemd/network/80-wifi-adhoc.network', suffix is not '.link'.
Skipping file '/usr/lib/systemd/network/80-container-host0-tun.network', suffix is not '.link'.
Skipping file '/usr/lib/systemd/network/80-namespace-ns-tun.network', suffix is not '.link'.
Skipping file '/usr/lib/systemd/network/89-ethernet.network.example', suffix is not '.link'.
Skipping file '/usr/lib/systemd/network/80-vm-vt.network', suffix is not '.link'.
Skipping file '/usr/lib/systemd/network/80-auto-link-local.network.example', suffix is not '.link'.
Skipping file '/usr/lib/systemd/network/80-6rd-tunnel.network', suffix is not '.link'.
Skipping file '/usr/lib/systemd/network/80-container-vb.network', suffix is not '.link'.
Skipping file '/usr/lib/systemd/network/80-container-host0.network', suffix is not '.link'.
Skipping file '/usr/lib/systemd/network/80-container-ve.network', suffix is not '.link'.
Skipping file '/usr/lib/systemd/network/80-namespace-ns.network', suffix is not '.link'.
Skipping file '/usr/lib/systemd/network/80-wifi-station.network.example', suffix is not '.link'.
Skipping file '/usr/lib/systemd/network/80-wifi-ap.network.example', suffix is not '.link'.
Skipping file '/usr/lib/systemd/network/80-container-vz.network', suffix is not '.link'.
Parsed configuration file "/usr/lib/systemd/network/99-default.link"
Parsed configuration file "/usr/lib/systemd/network/80-vm-vt.link"
Parsed configuration file "/usr/lib/systemd/network/80-namespace-ns.link"
Parsed configuration file "/usr/lib/systemd/network/80-namespace-ns-tun.link"
Parsed configuration file "/usr/lib/systemd/network/80-container-vz.link"
Parsed configuration file "/usr/lib/systemd/network/80-container-ve.link"
Parsed configuration file "/usr/lib/systemd/network/80-container-vb.link"
Parsed configuration file "/usr/lib/systemd/network/80-6rd-tunnel.link"
Loaded link configuration context.
Loading builtins done.

Loading udev rules files...
Skipping file '/usr/lib/udev/rules.d/README', suffix is not '.rules'.
Reading rules file: /usr/lib/udev/rules.d/10-dm.rules
Reading rules file: /usr/lib/udev/rules.d/13-dm-disk.rules
Reading rules file: /usr/lib/udev/rules.d/45-i2c-tools.rules
varlink: Setting state idle-client
/run/systemd/userdb/io.systemd.Multiplexer: Sending message: {"method":"io.systemd.UserDatabase.GetGroupRecord","parameters":{"groupName":"i2c","gidMax":65533,"service":"io.systemd.Multiplexer"}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state idle-client → awaiting-reply
/run/systemd/userdb/io.systemd.Multiplexer: Received message: {"parameters":{"record":{"groupName":"i2c","gid":965,"status":{"c97c0e2b7d8c475b9531ef7344e941d8":{"service":"io.systemd.NameServiceSwitch"}}},"incomplete":false}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state awaiting-reply → processing-reply
/run/systemd/userdb/io.systemd.Multiplexer: Changing state processing-reply → idle-client
Reading rules file: /usr/lib/udev/rules.d/50-udev-default.rules
varlink: Setting state idle-client
/run/systemd/userdb/io.systemd.Multiplexer: Sending message: {"method":"io.systemd.UserDatabase.GetGroupRecord","parameters":{"groupName":"clock","gidMax":65533,"service":"io.systemd.Multiplexer"}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state idle-client → awaiting-reply
/run/systemd/userdb/io.systemd.Multiplexer: Received message: {"parameters":{"record":{"groupName":"clock","gid":994,"status":{"c97c0e2b7d8c475b9531ef7344e941d8":{"service":"io.systemd.NameServiceSwitch"}}},"incomplete":false}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state awaiting-reply → processing-reply
/run/systemd/userdb/io.systemd.Multiplexer: Changing state processing-reply → idle-client
varlink: Setting state idle-client
/run/systemd/userdb/io.systemd.Multiplexer: Sending message: {"method":"io.systemd.UserDatabase.GetGroupRecord","parameters":{"groupName":"tty","gidMax":65533,"service":"io.systemd.Multiplexer"}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state idle-client → awaiting-reply
/run/systemd/userdb/io.systemd.Multiplexer: Received message: {"parameters":{"record":{"groupName":"tty","gid":5,"status":{"c97c0e2b7d8c475b9531ef7344e941d8":{"service":"io.systemd.NameServiceSwitch"}}},"incomplete":false}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state awaiting-reply → processing-reply
/run/systemd/userdb/io.systemd.Multiplexer: Changing state processing-reply → idle-client
varlink: Setting state idle-client
/run/systemd/userdb/io.systemd.Multiplexer: Sending message: {"method":"io.systemd.UserDatabase.GetGroupRecord","parameters":{"groupName":"uucp","gidMax":65533,"service":"io.systemd.Multiplexer"}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state idle-client → awaiting-reply
/run/systemd/userdb/io.systemd.Multiplexer: Received message: {"parameters":{"record":{"groupName":"uucp","gid":984,"status":{"c97c0e2b7d8c475b9531ef7344e941d8":{"service":"io.systemd.NameServiceSwitch"}}},"incomplete":false}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state awaiting-reply → processing-reply
/run/systemd/userdb/io.systemd.Multiplexer: Changing state processing-reply → idle-client
varlink: Setting state idle-client
/run/systemd/userdb/io.systemd.Multiplexer: Sending message: {"method":"io.systemd.UserDatabase.GetGroupRecord","parameters":{"groupName":"kmem","gidMax":65533,"service":"io.systemd.Multiplexer"}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state idle-client → awaiting-reply
/run/systemd/userdb/io.systemd.Multiplexer: Received message: {"parameters":{"record":{"groupName":"kmem","gid":991,"status":{"c97c0e2b7d8c475b9531ef7344e941d8":{"service":"io.systemd.NameServiceSwitch"}}},"incomplete":false}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state awaiting-reply → processing-reply
/run/systemd/userdb/io.systemd.Multiplexer: Changing state processing-reply → idle-client
varlink: Setting state idle-client
/run/systemd/userdb/io.systemd.Multiplexer: Sending message: {"method":"io.systemd.UserDatabase.GetGroupRecord","parameters":{"groupName":"input","gidMax":65533,"service":"io.systemd.Multiplexer"}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state idle-client → awaiting-reply
/run/systemd/userdb/io.systemd.Multiplexer: Received message: {"parameters":{"record":{"groupName":"input","gid":992,"status":{"c97c0e2b7d8c475b9531ef7344e941d8":{"service":"io.systemd.NameServiceSwitch"}}},"incomplete":false}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state awaiting-reply → processing-reply
/run/systemd/userdb/io.systemd.Multiplexer: Changing state processing-reply → idle-client
varlink: Setting state idle-client
/run/systemd/userdb/io.systemd.Multiplexer: Sending message: {"method":"io.systemd.UserDatabase.GetGroupRecord","parameters":{"groupName":"video","gidMax":65533,"service":"io.systemd.Multiplexer"}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state idle-client → awaiting-reply
/run/systemd/userdb/io.systemd.Multiplexer: Received message: {"parameters":{"record":{"groupName":"video","gid":983,"status":{"c97c0e2b7d8c475b9531ef7344e941d8":{"service":"io.systemd.NameServiceSwitch"}}},"incomplete":false}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state awaiting-reply → processing-reply
/run/systemd/userdb/io.systemd.Multiplexer: Changing state processing-reply → idle-client
varlink: Setting state idle-client
/run/systemd/userdb/io.systemd.Multiplexer: Sending message: {"method":"io.systemd.UserDatabase.GetGroupRecord","parameters":{"groupName":"render","gidMax":65533,"service":"io.systemd.Multiplexer"}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state idle-client → awaiting-reply
/run/systemd/userdb/io.systemd.Multiplexer: Received message: {"parameters":{"record":{"groupName":"render","gid":987,"status":{"c97c0e2b7d8c475b9531ef7344e941d8":{"service":"io.systemd.NameServiceSwitch"}}},"incomplete":false}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state awaiting-reply → processing-reply
/run/systemd/userdb/io.systemd.Multiplexer: Changing state processing-reply → idle-client
varlink: Setting state idle-client
/run/systemd/userdb/io.systemd.Multiplexer: Sending message: {"method":"io.systemd.UserDatabase.GetGroupRecord","parameters":{"groupName":"sgx","gidMax":65533,"service":"io.systemd.Multiplexer"}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state idle-client → awaiting-reply
/run/systemd/userdb/io.systemd.Multiplexer: Received message: {"parameters":{"record":{"groupName":"sgx","gid":986,"status":{"c97c0e2b7d8c475b9531ef7344e941d8":{"service":"io.systemd.NameServiceSwitch"}}},"incomplete":false}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state awaiting-reply → processing-reply
/run/systemd/userdb/io.systemd.Multiplexer: Changing state processing-reply → idle-client
varlink: Setting state idle-client
/run/systemd/userdb/io.systemd.Multiplexer: Sending message: {"method":"io.systemd.UserDatabase.GetGroupRecord","parameters":{"groupName":"audio","gidMax":65533,"service":"io.systemd.Multiplexer"}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state idle-client → awaiting-reply
/run/systemd/userdb/io.systemd.Multiplexer: Received message: {"parameters":{"record":{"groupName":"audio","gid":995,"status":{"c97c0e2b7d8c475b9531ef7344e941d8":{"service":"io.systemd.NameServiceSwitch"}}},"incomplete":false}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state awaiting-reply → processing-reply
/run/systemd/userdb/io.systemd.Multiplexer: Changing state processing-reply → idle-client
varlink: Setting state idle-client
/run/systemd/userdb/io.systemd.Multiplexer: Sending message: {"method":"io.systemd.UserDatabase.GetGroupRecord","parameters":{"groupName":"lp","gidMax":65533,"service":"io.systemd.Multiplexer"}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state idle-client → awaiting-reply
/run/systemd/userdb/io.systemd.Multiplexer: Received message: {"parameters":{"record":{"groupName":"lp","gid":989,"status":{"c97c0e2b7d8c475b9531ef7344e941d8":{"service":"io.systemd.NameServiceSwitch"}}},"incomplete":false}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state awaiting-reply → processing-reply
/run/systemd/userdb/io.systemd.Multiplexer: Changing state processing-reply → idle-client
varlink: Setting state idle-client
/run/systemd/userdb/io.systemd.Multiplexer: Sending message: {"method":"io.systemd.UserDatabase.GetGroupRecord","parameters":{"groupName":"disk","gidMax":65533,"service":"io.systemd.Multiplexer"}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state idle-client → awaiting-reply
/run/systemd/userdb/io.systemd.Multiplexer: Received message: {"parameters":{"record":{"groupName":"disk","gid":993,"status":{"c97c0e2b7d8c475b9531ef7344e941d8":{"service":"io.systemd.NameServiceSwitch"}}},"incomplete":false}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state awaiting-reply → processing-reply
/run/systemd/userdb/io.systemd.Multiplexer: Changing state processing-reply → idle-client
varlink: Setting state idle-client
/run/systemd/userdb/io.systemd.Multiplexer: Sending message: {"method":"io.systemd.UserDatabase.GetGroupRecord","parameters":{"groupName":"optical","gidMax":65533,"service":"io.systemd.Multiplexer"}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state idle-client → awaiting-reply
/run/systemd/userdb/io.systemd.Multiplexer: Received message: {"parameters":{"record":{"groupName":"optical","gid":988,"status":{"c97c0e2b7d8c475b9531ef7344e941d8":{"service":"io.systemd.NameServiceSwitch"}}},"incomplete":false}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state awaiting-reply → processing-reply
/run/systemd/userdb/io.systemd.Multiplexer: Changing state processing-reply → idle-client
varlink: Setting state idle-client
/run/systemd/userdb/io.systemd.Multiplexer: Sending message: {"method":"io.systemd.UserDatabase.GetGroupRecord","parameters":{"groupName":"storage","gidMax":65533,"service":"io.systemd.Multiplexer"}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state idle-client → awaiting-reply
/run/systemd/userdb/io.systemd.Multiplexer: Received message: {"parameters":{"record":{"groupName":"storage","gid":985,"status":{"c97c0e2b7d8c475b9531ef7344e941d8":{"service":"io.systemd.NameServiceSwitch"}}},"incomplete":false}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state awaiting-reply → processing-reply
/run/systemd/userdb/io.systemd.Multiplexer: Changing state processing-reply → idle-client
varlink: Setting state idle-client
/run/systemd/userdb/io.systemd.Multiplexer: Sending message: {"method":"io.systemd.UserDatabase.GetGroupRecord","parameters":{"groupName":"kvm","gidMax":65533,"service":"io.systemd.Multiplexer"}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state idle-client → awaiting-reply
/run/systemd/userdb/io.systemd.Multiplexer: Received message: {"parameters":{"record":{"groupName":"kvm","gid":990,"status":{"c97c0e2b7d8c475b9531ef7344e941d8":{"service":"io.systemd.NameServiceSwitch"}}},"incomplete":false}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state awaiting-reply → processing-reply
/run/systemd/userdb/io.systemd.Multiplexer: Changing state processing-reply → idle-client
Reading rules file: /usr/lib/udev/rules.d/60-autosuspend.rules
Reading rules file: /usr/lib/udev/rules.d/60-block.rules
Reading rules file: /usr/lib/udev/rules.d/60-cdrom_id.rules
Reading rules file: /usr/lib/udev/rules.d/60-ddcutil-i2c.rules
Reading rules file: /usr/lib/udev/rules.d/60-dmi-id.rules
Reading rules file: /usr/lib/udev/rules.d/60-drm.rules
Reading rules file: /usr/lib/udev/rules.d/60-evdev.rules
Reading rules file: /usr/lib/udev/rules.d/60-fido-id.rules
Reading rules file: /usr/lib/udev/rules.d/60-gpiochip.rules
Reading rules file: /usr/lib/udev/rules.d/60-infiniband.rules
Reading rules file: /usr/lib/udev/rules.d/60-input-id.rules
Reading rules file: /usr/lib/udev/rules.d/60-nvidia.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-alsa.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-hidraw.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-input.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage-mtd.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage-tape.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-v4l.rules
Reading rules file: /usr/lib/udev/rules.d/60-rfkill.rules
varlink: Setting state idle-client
/run/systemd/userdb/io.systemd.Multiplexer: Sending message: {"method":"io.systemd.UserDatabase.GetGroupRecord","parameters":{"groupName":"rfkill","gidMax":65533,"service":"io.systemd.Multiplexer"}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state idle-client → awaiting-reply
/run/systemd/userdb/io.systemd.Multiplexer: Received message: {"parameters":{"record":{"groupName":"rfkill","gid":979,"status":{"c97c0e2b7d8c475b9531ef7344e941d8":{"service":"io.systemd.NameServiceSwitch"}}},"incomplete":false}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state awaiting-reply → processing-reply
/run/systemd/userdb/io.systemd.Multiplexer: Changing state processing-reply → idle-client
Reading rules file: /usr/lib/udev/rules.d/60-sensor.rules
Reading rules file: /usr/lib/udev/rules.d/60-serial.rules
Reading rules file: /usr/lib/udev/rules.d/60-tpm-udev.rules
varlink: Setting state idle-client
/run/systemd/userdb/io.systemd.Multiplexer: Sending message: {"method":"io.systemd.UserDatabase.GetUserRecord","parameters":{"userName":"tss","uidMax":65533,"service":"io.systemd.Multiplexer"}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state idle-client → awaiting-reply
/run/systemd/userdb/io.systemd.Multiplexer: Received message: {"parameters":{"record":{"userName":"tss","uid":972,"gid":972,"realName":"tss user for tpm2","homeDirectory":"/","shell":"/usr/bin/nologin","passwordChangeNow":false,"lastPasswordChangeUSec":1766880000000000,"status":{"c97c0e2b7d8c475b9531ef7344e941d8":{"service":"io.systemd.NameServiceSwitch"}}},"incomplete":false}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state awaiting-reply → processing-reply
/run/systemd/userdb/io.systemd.Multiplexer: Changing state processing-reply → idle-client
varlink: Setting state idle-client
/run/systemd/userdb/io.systemd.Multiplexer: Sending message: {"method":"io.systemd.UserDatabase.GetGroupRecord","parameters":{"groupName":"tss","gidMax":65533,"service":"io.systemd.Multiplexer"}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state idle-client → awaiting-reply
/run/systemd/userdb/io.systemd.Multiplexer: Received message: {"parameters":{"record":{"groupName":"tss","gid":972,"status":{"c97c0e2b7d8c475b9531ef7344e941d8":{"service":"io.systemd.NameServiceSwitch"}}},"incomplete":false}}
/run/systemd/userdb/io.systemd.Multiplexer: Changing state awaiting-reply → processing-reply
/run/systemd/userdb/io.systemd.Multiplexer: Changing state processing-reply → idle-client
Reading rules file: /usr/lib/udev/rules.d/60-upower-battery.rules
Reading rules file: /usr/lib/udev/rules.d/64-btrfs.rules
Reading rules file: /usr/lib/udev/rules.d/64-ext4.rules
Reading rules file: /usr/lib/udev/rules.d/65-libwacom.rules
Reading rules file: /usr/lib/udev/rules.d/70-camera.rules
Reading rules file: /usr/lib/udev/rules.d/70-infrared.rules
Reading rules file: /usr/lib/udev/rules.d/70-joystick.rules
Reading rules file: /usr/lib/udev/rules.d/70-memory.rules
Reading rules file: /usr/lib/udev/rules.d/70-mouse.rules
Reading rules file: /usr/lib/udev/rules.d/70-power-switch.rules
Reading rules file: /usr/lib/udev/rules.d/70-touchpad.rules
Reading rules file: /usr/lib/udev/rules.d/70-uaccess.rules
Reading rules file: /usr/lib/udev/rules.d/71-seat.rules
Reading rules file: /usr/lib/udev/rules.d/73-seat-late.rules
Reading rules file: /usr/lib/udev/rules.d/75-net-description.rules
Reading rules file: /usr/lib/udev/rules.d/75-probe_mtd.rules
Reading rules file: /usr/lib/udev/rules.d/78-sound-card.rules
Reading rules file: /usr/lib/udev/rules.d/80-drivers.rules
Reading rules file: /usr/lib/udev/rules.d/80-libinput-device-groups.rules
Reading rules file: /usr/lib/udev/rules.d/80-net-setup-link.rules
Reading rules file: /etc/udev/rules.d/80-nvidia-pm.rules
Reading rules file: /usr/lib/udev/rules.d/81-net-bridge.rules
Reading rules file: /usr/lib/udev/rules.d/81-net-dhcp.rules
Reading rules file: /usr/lib/udev/rules.d/82-net-auto-link-local.rules
Reading rules file: /usr/lib/udev/rules.d/84-nm-drivers.rules
Reading rules file: /usr/lib/udev/rules.d/85-nm-unmanaged.rules
Reading rules file: /usr/lib/udev/rules.d/90-alsa-restore.rules
Reading rules file: /usr/lib/udev/rules.d/90-image-dissect.rules
Reading rules file: /usr/lib/udev/rules.d/90-iocost.rules
Reading rules file: /usr/lib/udev/rules.d/90-libinput-fuzz-override.rules
Reading rules file: /usr/lib/udev/rules.d/90-nm-thunderbolt.rules
Reading rules file: /usr/lib/udev/rules.d/90-vconsole.rules
Reading rules file: /usr/lib/udev/rules.d/95-dm-notify.rules
Reading rules file: /usr/lib/udev/rules.d/95-upower-hid.rules
Reading rules file: /usr/lib/udev/rules.d/95-upower-wup.rules
Reading rules file: /usr/lib/udev/rules.d/96-e2scrub.rules
Reading rules file: /usr/lib/udev/rules.d/99-fuse.rules
Reading rules file: /usr/lib/udev/rules.d/99-fuse3.rules
Reading rules file: /usr/lib/udev/rules.d/99-systemd.rules
Reading rules file: /etc/udev/rules.d/amd-igpu-dev-path.rules
/etc/udev/rules.d/amd-igpu-dev-path.rules:1 Invalid key 'SYMLINK_NAME'.
/etc/udev/rules.d/amd-igpu-dev-path.rules:2 Invalid key 'RULE_PATH'.
/etc/udev/rules.d/amd-igpu-dev-path.rules:3 Invalid key/value pair, ignoring.
/etc/udev/rules.d/amd-igpu-dev-path.rules:4 Invalid key/value pair, ignoring.
/etc/udev/rules.d/amd-igpu-dev-path.rules:5 Invalid value "dri/$SYMLINK_NAME" for SYMLINK (char 5: invalid substitution type), ignoring.
/etc/udev/rules.d/amd-igpu-dev-path.rules:10 Invalid key/value pair, ignoring.
/etc/udev/rules.d/amd-igpu-dev-path.rules:11 Invalid key/value pair, ignoring.
/etc/udev/rules.d/amd-igpu-dev-path.rules:13 Invalid key/value pair, ignoring.
Loading udev rules files done.
sd-device: Canonicalized path '/etc/udev/rules.d/amd-igpu-dev-path.rules' does not starts with sysfs mount point '/sys'
Failed to open device '/etc/udev/rules.d/amd-igpu-dev-path.rules': No such device
Unloaded hardware database.
Unloaded kernel module index.
Unloaded link configuration context.

In the meantime, I tried to specify the gpu to use using card0 and card1, although it can change (I verified which link goes to which card before launching, so I am sure it’s the right gpu that’s specified first (see edit 2)), but i think it still used my nvidia card (I used screenfetch, idk if that’s the right way to check).

How can I fix this? Thank you

edit: Forgot to give the rules given by the wiki:

/etc/udev/rules.d/amd-igpu-dev-path.rules

SYMLINK_NAME="amd-igpu"
RULE_PATH="/etc/udev/rules.d/amd-igpu-dev-path.rules"
AMD_IGPU_ID=$(lspci -d ::03xx | grep 'AMD' | cut -f1 -d' ')
UDEV_RULE="$(cat <<EOF
KERNEL=="card*", \
KERNELS=="0000:$AMD_IGPU_ID", \
SUBSYSTEM=="drm", \
SUBSYSTEMS=="pci", \
SYMLINK+="dri/$SYMLINK_NAME"
EOF
)"

echo "$UDEV_RULE" | sudo tee "$RULE_PATH"

edit 2: also, I put the environment variables in .config/hypr/hyprland/env.config . I’m not sure it’s where it has to be, but I’m new and I didn’t manage to find where exactly it had to be