diff --git a/rpcs3/CMakeLists.txt b/rpcs3/CMakeLists.txt index a70756d3be..4c8dbc8fcf 100644 --- a/rpcs3/CMakeLists.txt +++ b/rpcs3/CMakeLists.txt @@ -179,3 +179,12 @@ if(UNIX AND NOT APPLE) install(DIRECTORY ../bin/test DESTINATION ${CMAKE_INSTALL_DATADIR}/rpcs3) endif() + +# Udev rules, per platform +if(CMAKE_SYSTEM_NAME MATCHES "Linux") + install(FILES udev.rules + DESTINATION ${CMAKE_INSTALL_LIBDIR}/udev/rules.d/ RENAME 99-rpcs3.rules) +elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") + install(FILES devd.conf + DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/devd/ RENAME rpcs3.conf) +endif() diff --git a/rpcs3/devd.conf b/rpcs3/devd.conf new file mode 100644 index 0000000000..5617a392b7 --- /dev/null +++ b/rpcs3/devd.conf @@ -0,0 +1,49 @@ +# DualShock 3 +notify 100 { + match "system" "USB"; + match "subsystem" "INTERFACE"; + match "type" "ATTACH"; + match "vendor" "0x054c"; + match "product" "0x0268"; + action "chmod 0666 /dev/$cdev"; +}; + +# DualShock 4 +notify 100 { + match "system" "USB"; + match "subsystem" "INTERFACE"; + match "type" "ATTACH"; + match "vendor" "0x054c"; + match "product" "0x05c4"; + action "chmod 0666 /dev/$cdev"; +}; + +# DualShock 4 Wireless Adapter +notify 100 { + match "system" "USB"; + match "subsystem" "INTERFACE"; + match "type" "ATTACH"; + match "vendor" "0x054c"; + match "product" "0x0ba0"; + action "chmod 0666 /dev/$cdev"; +}; + +# DualShock 4 Slim +notify 100 { + match "system" "USB"; + match "subsystem" "INTERFACE"; + match "type" "ATTACH"; + match "vendor" "0x054c"; + match "product" "0x09cc"; + action "chmod 0666 /dev/$cdev"; +}; + +# DualSense +notify 100 { + match "system" "USB"; + match "subsystem" "INTERFACE"; + match "type" "ATTACH"; + match "vendor" "0x054c"; + match "product" "0x0ce6"; + action "chmod 0666 /dev/$cdev"; +}; diff --git a/rpcs3/udev.rules b/rpcs3/udev.rules new file mode 100644 index 0000000000..b86163721e --- /dev/null +++ b/rpcs3/udev.rules @@ -0,0 +1,26 @@ +# DualShock 3 over USB +KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0268", MODE="0666" + +# DualShock 3 over Bluetooth +KERNEL=="hidraw*", KERNELS=="*054C:0268*", MODE="0666" + +# DualShock 4 over USB +KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="05c4", MODE="0666" + +# DualShock 4 Wireless Adapter over USB +KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ba0", MODE="0666" + +# DualShock 4 Slim over USB +KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="09cc", MODE="0666" + +# DualShock 4 over Bluetooth +KERNEL=="hidraw*", KERNELS=="*054C:05C4*", MODE="0666" + +# DualShock 4 Slim over Bluetooth +KERNEL=="hidraw*", KERNELS=="*054C:09CC*", MODE="0666" + +# PS5 DualSense controller over USB hidraw +KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ce6", MODE="0666", TAG+="uaccess" + +# PS5 DualSense controller over bluetooth hidraw +KERNEL=="hidraw*", KERNELS=="*054C:0CE6*", MODE="0666", TAG+="uaccess"