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
|
# rule to disable write cache for usb storage
|
||||||
# requires hdparm to be installed
|
# 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
|
# rules to impose buffer limits on USB devices
|
||||||
# requires kernel > 6.1
|
# 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-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-ratio
|
||||||
# https://docs.kernel.org/admin-guide/abi-testing.html#abi-sys-class-bdi-bdi-max-bytes
|
# 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'
|
pkgname='udev-usb-sync'
|
||||||
pkgver=0.1
|
pkgver=0.3
|
||||||
pkgrel=1
|
pkgrel=6
|
||||||
pkgdesc='Disable writecache when USB storage device is plugged'
|
pkgdesc='Fine tune write cache when USB storage device is plugged'
|
||||||
arch=('any')
|
arch=('any')
|
||||||
url='https://codeberg.org/wonky/udev-usb-sync'
|
url='https://codeberg.org/wonky/udev-usb-sync'
|
||||||
license=('MIT')
|
license=('MIT')
|
||||||
depends=('hdparm')
|
depends=('hdparm')
|
||||||
provides=("${pkgname}")
|
provides=("${pkgname}")
|
||||||
source=('99-usb-sync.rules')
|
backup=("etc/${pkgname}/${pkgname}.conf")
|
||||||
sha256sums=('ed0253bbbd5b64529efd752978ba17176e3ff23d3f7f220bbacd3fa3a3691df9')
|
install=${pkgname}.install
|
||||||
|
source=('99-usb-sync.rules' 'udev-usb-sync.sh' 'udev-usb-sync.conf')
|
||||||
|
sha256sums=('39e714df856c8d47fe14365b854b9a1b36ed3afa300383d8329452394a01a1c4'
|
||||||
|
'2669e043722b33009798c8c30f48414e1eaad0f001631587f502b19a2f11feb7'
|
||||||
|
'bc902da2c453355e1dbc3a970a564daf71d41c6278dc771a930aa3badb90e453')
|
||||||
|
|
||||||
package() {
|
package() {
|
||||||
install -d -m755 $pkgdir/etc/udev/rules.d
|
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