mirror of
https://codeberg.org/wonky/udev-usb-sync.git
synced 2024-09-18 23:20:35 +02:00
update with config and script
This commit is contained in:
parent
eab2abcb4a
commit
45d7307d1d
5 changed files with 61 additions and 9 deletions
|
@ -1,10 +1,12 @@
|
|||
# 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+="/usr/bin/hdparm -W 0 /dev/%k"
|
||||
#
|
||||
# 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"
|
||||
# implemented using /usr/bin/udev-usb-tweak.sh
|
||||
# optional configuration in /etc/udev-usb-tweak/udev-usb-tweak.sh
|
||||
ACTION=="add|change", KERNEL=="sd[a-z]", ENV{ID_USB_TYPE}=="disk", RUN+=/usr/bin/udev-usb-sync.sh %k"
|
||||
|
|
22
PKGBUILD
22
PKGBUILD
|
@ -1,17 +1,25 @@
|
|||
# Maintainer:
|
||||
# Maintainer: root.nix.dk
|
||||
pkgname='udev-usb-sync'
|
||||
pkgver=0.1
|
||||
pkgrel=1
|
||||
pkgdesc='Disable writecache when USB storage device is plugged'
|
||||
pkgver=0.3
|
||||
pkgrel=6
|
||||
pkgdesc='Fine tune 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=('ed0253bbbd5b64529efd752978ba17176e3ff23d3f7f220bbacd3fa3a3691df9')
|
||||
backup=("etc/${pkgname}/${pkgname}.conf")
|
||||
install=${pkgname}.install
|
||||
source=('99-usb-sync.rules' 'udev-usb-sync.sh' 'udev-usb-sync.conf')
|
||||
sha256sums=('39e714df856c8d47fe14365b854b9a1b36ed3afa300383d8329452394a01a1c4'
|
||||
'2669e043722b33009798c8c30f48414e1eaad0f001631587f502b19a2f11feb7'
|
||||
'bc902da2c453355e1dbc3a970a564daf71d41c6278dc771a930aa3badb90e453')
|
||||
|
||||
package() {
|
||||
install -d -m755 $pkgdir/etc/udev/rules.d
|
||||
cp ${startdir}/99-usb-sync.rules "${pkgdir}/etc/udev/rules.d"
|
||||
install -d -m755 $pkgdir/etc/$pkgname
|
||||
install -d -m755 $pkgdir/usr/bin
|
||||
cp ${srcdir}/99-usb-sync.rules "${pkgdir}/etc/udev/rules.d"
|
||||
cp ${srcdir}/${pkgname}.sh "${pkgdir}/usr/bin"
|
||||
cp ${srcdir}/${pkgname}.conf "${pkgdir}/etc/${pkgname}"
|
||||
}
|
||||
|
|
5
udev-usb-sync.conf
Normal file
5
udev-usb-sync.conf
Normal file
|
@ -0,0 +1,5 @@
|
|||
# default values
|
||||
#use_tweaks=1
|
||||
#max_bytes=16777216
|
||||
#max_ratio=50
|
||||
#strict_limit=1
|
11
udev-usb-sync.install
Normal file
11
udev-usb-sync.install
Normal file
|
@ -0,0 +1,11 @@
|
|||
post_install() {
|
||||
udevadm control --reload
|
||||
}
|
||||
|
||||
post_upgrade() {
|
||||
post_install
|
||||
}
|
||||
|
||||
post_remove() {
|
||||
post_install
|
||||
}
|
26
udev-usb-sync.sh
Executable file
26
udev-usb-sync.sh
Executable file
|
@ -0,0 +1,26 @@
|
|||
#!/usr/bin/bash
|
||||
#
|
||||
# script to tweak USB storage device filesystem sync
|
||||
#
|
||||
# sources /etc/usb-dev-sync/usb-dev-sync.conf
|
||||
#
|
||||
|
||||
use_tweaks=1
|
||||
max_bytes=16777216
|
||||
max_ration=50
|
||||
strict_limit=1
|
||||
|
||||
# read user config
|
||||
source /etc/udev-usb-sync/udev-usb-sync.conf
|
||||
|
||||
if [[ "$use_tweaks" = 0 ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [[ -z "$1" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "$max_bytes" > "/dev/block/$1/bdi/max_bytes"
|
||||
echo "$max_ration" > "/dev/block/$1/bdi/max_ratio"
|
||||
echo "$strict_limit" > "/dev/block/$1/bdi/strict_limit"
|
Loading…
Reference in a new issue