diff --git a/.SRCINFO b/.SRCINFO index 05f6bdc..42f94d1 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,13 +1,13 @@ pkgbase = udev-usb-sync - pkgdesc = Finetune writecache when USB storage device is plugged - pkgver = 0.1 - pkgrel = 2 + pkgdesc = Finetune write cache when USB storage device is plugged + pkgver = 0.2 + pkgrel = 1 url = https://codeberg.org/wonky/udev-usb-sync arch = any license = MIT depends = hdparm provides = udev-usb-sync source = 99-usb-sync.rules - sha256sums = 012b9991a9eee3149eb27e8d3c7b4d40b56bbfe2030ce84823a90c968410f8d0 + sha256sums = d6cb851a9be886a5f36414e872e3176983fbc5aa428af41a07f5b54bfb53d764 pkgname = udev-usb-sync diff --git a/99-usb-sync.rules b/99-usb-sync.rules index e8d98f6..b377f0b 100644 --- a/99-usb-sync.rules +++ b/99-usb-sync.rules @@ -1,11 +1,11 @@ -# -# rule to disable write cache for usb storage that supports write-cache command +# rule to disable write cache for usb storage # requires hdparm to be installed -ACTION=="add|change", KERNEL=="sd[a-z]", ENV{ID_USB_TYPE}=="disk", RUN+="/usr/bin/hdparm -W 0 /dev/%k" +#ACTION=="add|change", KERNEL=="sd[a-z]", ENV{ID_USB_TYPE}=="disk", RUN+="[[ $(uname -r | awk -F'.' '{print $1 $2}') < 62 ]] && [[ $(which hdparm) =~ (hdparm) ]] && /usr/bin/hdparm -W 0 /dev/%K" +ACTION=="add|change", KERNEL=="sd[a-z]", ENV{ID_USB_TYPE}=="disk", RUN+="/usr/bin/hdparm -W 0 /dev/%K" # -# the following rules is introduced with kernel 6.2 +# rules to impose buffer limits on USB devices +# requires kernel > 6.1 # https://docs.kernel.org/admin-guide/abi-testing.html#abi-sys-class-bdi-bdi-strict-limit # https://docs.kernel.org/admin-guide/abi-testing.html#abi-sys-class-bdi-bdi-max-ratio # https://docs.kernel.org/admin-guide/abi-testing.html#abi-sys-class-bdi-bdi-max-bytes -ACTION=="add|change", KERNEL=="sd[a-z]", ENV{ID_USB_TYPE}=="disk", RUN+="/usr/bin/echo 1 > /sys/block/%k/bdi/strict_limit", RUN+="/usr/bin/echo 50 > /sys/block/%k/bdi/max_ratio", RUN+="/usr/bin/echo 16777216 > /sys/block/%k/bdi/max_bytes" - +ACTION=="add|change", KERNEL=="sd[a-z]", ENV{ID_USB_TYPE}=="disk", RUN+="/usr/bin/echo 1 > /sys/block/%K/bdi/strict_limit", RUN+="/usr/bin/echo 50 > /sys/block/%K/bdi/max_ratio", RUN+="/usr/bin/echo 16777216 > /sys/block/%K/bdi/max_bytes" diff --git a/PKGBUILD b/PKGBUILD index 10102c9..b2b260b 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,15 +1,15 @@ # Maintainer: root.nix.dk pkgname='udev-usb-sync' -pkgver=0.1 -pkgrel=2 -pkgdesc='Finetune writecache when USB storage device is plugged' +pkgver=0.2 +pkgrel=1 +pkgdesc='Finetune write cache when USB storage device is plugged' arch=('any') url='https://codeberg.org/wonky/udev-usb-sync' license=('MIT') depends=('hdparm') provides=("${pkgname}") source=('99-usb-sync.rules') -sha256sums=('012b9991a9eee3149eb27e8d3c7b4d40b56bbfe2030ce84823a90c968410f8d0') +sha256sums=('d6cb851a9be886a5f36414e872e3176983fbc5aa428af41a07f5b54bfb53d764') package() { install -d -m755 $pkgdir/etc/udev/rules.d