You are not logged in.
Pages: 1
hi there !
you know those little enclosures to have ssd or nvme storage attached via usb ?
some are great ... some fail ...
long story, short ending ...
most times it's the RTL9210 built in firmware doing AUTOSUSPEND ... wtf ...
so .. keep that thingee alive ... ;-)
my solution:
# SysVinit
# --------
cat << 'EOF' > /etc/init.d/rtl9210-fix
#!/bin/sh
### BEGIN INIT INFO
# Provides: rtl9210-fix
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Prevent autosuspend for Realtek RTL9210 adapters
# Description: Read SMART every 10 seconds to prevent autosuspend
### END INIT INFO
DAEMON=/usr/local/sbin/rtl9210-fix.sh
INTERVAL=10
case "$1" in
start)
echo "Starting RTL9210 Autosuspend Fix ..."
# Background Loop
nohup /bin/bash -c \
"while true; do $DAEMON; sleep $INTERVAL; done" >/dev/null 2>&1 &
# remember PID
echo $! > /var/run/rtl9210-fix.pid
PID=$(cat /var/run/rtl9210-fix.pid 2>/dev/null)
echo "Service rtl9210-fix active, PID: $PID"
;;
stop)
echo "Stopping RTL9210 Autosuspend Fix ..."
PID=$(cat /var/run/rtl9210-fix.pid 2>/dev/null)
if [ -n "$PID" ]; then
echo "Service rtl9210-fix PID: $PID stopping"
kill $PID
rm -f /var/run/rtl9210-fix.pid
fi
;;
status)
echo "Status RTL9210 Autosuspend Fix ..."
PID=$(cat /var/run/rtl9210-fix.pid 2>/dev/null)
if [ -z "$PID" ]; then
echo "Service rtl9210-fix not active, no PID found"
else
echo "Service rtl9210-fix active, PID: $PID "
smartctl --scan 2>/dev/null | grep -i realtek
fi
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit 0
# eof
EOF
chmod +x /etc/init.d/rtl9210-fix
# DAEMON
# ------
cat << 'EOF' > /usr/local/sbin/rtl9210-fix.sh
#!/bin/bash
# get all Storage Devices with Realtek Controller
disks=$(sudo smartctl --scan 2>/dev/null | grep -i realtek | sed 's/ .*$//')
if [ -z "$disks" ]; then
exit 0
fi
for disk in $disks; do
# read SMART Data to keep Realtek Device(s) "alive"
smartctl -a $disk >/dev/null 2>&1
done
# eof
EOF
chmod +x /usr/local/sbin/rtl9210-fix.sh
# activate Service for all Runlevels
# ----------------------------------
update-rc.d rtl9210-fix defaults
any reactions are welcome ... ;-)
greets
Offline
Interesting approach / hack around. I did some research out of interest but couldn't find anything that useful. There was some indication that a newer kernel might improve things.
Offline
OP, please update OP to utilize code block. tia.
Be Excellent to each other and Party On!
https://www.youtube.com/watch?v=rph_1DODXDU
https://en.wikipedia.org/wiki/Bill_%26_Ted%27s_Excellent_Adventure
Do unto others as you would have them do instantaneously back to you!
Offline
Pages: 1