mirror of
https://github.com/ublue-os/bazzite.git
synced 2025-02-25 03:40:33 +00:00
feat: Add Nobara USB Polling Rate Patch (#964)
Co-authored-by: badlydrawnface <bdface@proton.me>
This commit is contained in:
parent
f5f0334242
commit
f349a396da
29
system_files/deck/shared/usr/bin/custom-device-pollrates.sh
Executable file
29
system_files/deck/shared/usr/bin/custom-device-pollrates.sh
Executable file
@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
set -m
|
||||
|
||||
# Gather device poll rate settings from /etc/custom-device-pollrates/custom-device-pollrates.conf
|
||||
DEVICES=$(grep -v '^\s*$\|^\s*\#' /etc/custom-device-pollrates/custom-device-pollrates.conf | paste -sd, -)
|
||||
|
||||
# Set new polling rate for devices
|
||||
echo "$DEVICES" | sudo tee /sys/module/usbcore/parameters/interrupt_interval_override > /dev/null
|
||||
|
||||
|
||||
# Reload all USB devices
|
||||
|
||||
for xhci in /sys/bus/pci/drivers/?hci_hcd ; do
|
||||
|
||||
if ! cd $xhci ; then
|
||||
echo Failed to change directory to $xhci
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo Resetting devices from $xhci...
|
||||
|
||||
for i in ????:??:??.? ; do
|
||||
echo -n "$i" > unbind
|
||||
echo -n "$i" > bind
|
||||
done
|
||||
sleep 1
|
||||
done
|
||||
|
||||
|
@ -0,0 +1,25 @@
|
||||
# Format:
|
||||
# vendorid:deviceid:rate
|
||||
#
|
||||
# Polling Rates:
|
||||
# 1=1000Hz,2=500Hz,4=250Hz,8=125Hz
|
||||
#
|
||||
# Ex (PS5 DualSense, 1000Mhz polling rate):
|
||||
# 054c:0ce6:1
|
||||
#
|
||||
# One entry per line
|
||||
#
|
||||
#
|
||||
# To allow these devices to have custom
|
||||
# pollrates, uncomment the device or alternatively
|
||||
# add a new device configuration line, then restart
|
||||
# the service with:
|
||||
#
|
||||
# sudo systemctl restart custom-device-pollrates.service
|
||||
# -------------SONY-------------
|
||||
# DS4
|
||||
#054c:09cc:1
|
||||
# DS5
|
||||
#054c:0ce6:1
|
||||
# -------------SONY-------------
|
||||
|
@ -0,0 +1 @@
|
||||
enable custom-device-pollrates.service
|
@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=Set custom polling rates for specific devices
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/bash /usr/bin/custom-device-pollrates.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
29
system_files/desktop/shared/usr/bin/custom-device-pollrates.sh
Executable file
29
system_files/desktop/shared/usr/bin/custom-device-pollrates.sh
Executable file
@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
set -m
|
||||
|
||||
# Gather device poll rate settings from /etc/custom-device-pollrates/custom-device-pollrates.conf
|
||||
DEVICES=$(grep -v '^\s*$\|^\s*\#' /etc/custom-device-pollrates/custom-device-pollrates.conf | paste -sd, -)
|
||||
|
||||
# Set new polling rate for devices
|
||||
echo "$DEVICES" | sudo tee /sys/module/usbcore/parameters/interrupt_interval_override > /dev/null
|
||||
|
||||
|
||||
# Reload all USB devices
|
||||
|
||||
for xhci in /sys/bus/pci/drivers/?hci_hcd ; do
|
||||
|
||||
if ! cd $xhci ; then
|
||||
echo Failed to change directory to $xhci
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo Resetting devices from $xhci...
|
||||
|
||||
for i in ????:??:??.? ; do
|
||||
echo -n "$i" > unbind
|
||||
echo -n "$i" > bind
|
||||
done
|
||||
sleep 1
|
||||
done
|
||||
|
||||
|
@ -0,0 +1,25 @@
|
||||
# Format:
|
||||
# vendorid:deviceid:rate
|
||||
#
|
||||
# Polling Rates:
|
||||
# 1=1000Hz,2=500Hz,4=250Hz,8=125Hz
|
||||
#
|
||||
# Ex (PS5 DualSense, 1000Mhz polling rate):
|
||||
# 054c:0ce6:1
|
||||
#
|
||||
# One entry per line
|
||||
#
|
||||
#
|
||||
# To allow these devices to have custom
|
||||
# pollrates, uncomment the device or alternatively
|
||||
# add a new device configuration line, then restart
|
||||
# the service with:
|
||||
#
|
||||
# sudo systemctl restart custom-device-pollrates.service
|
||||
# -------------SONY-------------
|
||||
# DS4
|
||||
#054c:09cc:1
|
||||
# DS5
|
||||
#054c:0ce6:1
|
||||
# -------------SONY-------------
|
||||
|
@ -0,0 +1 @@
|
||||
enable custom-device-pollrates.service
|
@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=Set custom polling rates for specific devices
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/bash /usr/bin/custom-device-pollrates.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
Loading…
x
Reference in New Issue
Block a user