Jak rozchodit tlačítka na Zyxel NAS326

Raspberry, Arduino, Mini-PC a další

Moderátor: Moderátoři

Zpráva
Autor
lesana87
Příspěvky: 4492
Registrován: 20 zář 2014, 00:00

#61 Příspěvek od lesana87 »

Není, je to jen tlačítko na GPIO. V původním systému stisknutí na asi 2s způsobilo normální ukončení a dlouhé stisknutí 5+s nějaké rychlé vypnutí. Ale obojí bylo softwarové.

Stáhla jsem zdrojáky na ten hd-idle, ale ono je to v nějakém go jazyku, či co, tak to si na tom nasu nezkompiluju. idle3 (oba disky jsou WD) nastaví jen idle časovač, disky se ale nevypnou.
asdf
Příspěvky: 718
Registrován: 06 říj 2022, 00:00

#62 Příspěvek od asdf »

To idle3 nastavuješ pomocí "hdparm -J"? Ještě jde něco nastavit pomocí "hdparm -B".
matahari
Příspěvky: 1143
Registrován: 29 říj 2017, 00:00

#63 Příspěvek od matahari »

Na Githubu má balík pro armhf viz. https://github.com/adelolmo/hd-idle/rel ... _armhf.deb

Nastavuji ho podle UUID, takže se můžou disky přehodit
hd-idle -a /dev/disk/by-uuid/..... -i 600
lesana87
Příspěvky: 4492
Registrován: 20 zář 2014, 00:00

#64 Příspěvek od lesana87 »

idle3 nastavuju pomocí idle3ctl, kterej jsem stáhla z netu a zkompilovala. Hdparm -B (APM) na těch diskách nefunguje. Na jednom funguje acoustic management, tak jsem ho nastavila na 128 (doporučeno), na druhým ani acoustic management nefunguje. Zkusila jsem na obou nastavit -S 12 - standby za 1 minutu a nic, nevypnou se. S parametrem -y se okamžitě vypnou.
lesana87
Příspěvky: 4492
Registrován: 20 zář 2014, 00:00

#65 Příspěvek od lesana87 »

matahari píše:Na Githubu má balík pro armhf viz. https://github.com/adelolmo/hd-idle/rel ... _armhf.deb
Dík. Nainstalovala jsem to, ale chová se to nějak divně. To se má spouštět na pozadí nebo jak? Když to spustím normálně, tak se to neukončí a nevrátí do shellu.

Kód: Vybrat vše

root@nas326:/mnt/store# hd-idle -a sda -i 600 -a sdb -i 300  
symlinkPolicy=0, defaultIdle=600, defaultCommand=scsi, defaultPowerCondition=0, debug=false, logFile=, devices={name=sda, givenName=sda, idle=600, commandType=scsi, powerCondition=0}{name=sdb, givenName=sdb, idle=300, commandType=scsi, powerCondition=0}
Uživatelský avatar
rnbw
Příspěvky: 37619
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#66 Příspěvek od rnbw »

Cislo pri "hdparm -S" si niektore disky interpretuju dost svojsky.
asdf
Příspěvky: 718
Registrován: 06 říj 2022, 00:00

#67 Příspěvek od asdf »

Když všechno selže, tak by šlo sledovat /sys/block/sda/stat a případně ten disk uspat. Můžeš si na to napsat dávku. :-)
asdf
Příspěvky: 718
Registrován: 06 říj 2022, 00:00

#68 Příspěvek od asdf »

Ta dávka by mohla vypadat třeba nějak tahle:

Kód: Vybrat vše

#!/bin/bash
# Usage: spindown sda 10 - spins down after 10 seconds

# Remember arguments.
disk=$1
timeout=$2
if test -z "$disk"
then
	echo "Disk not defined." >&2
	exit 1
fi
if test -z "$timeout"
then
	echo "Timeout not defined." >&2
	exit 1
fi

# Initial values.
last_read=0
last_write=0
last_time=$(date '+%s')
sd_time=$last_time

# Loop.
while true
do
	# Get current values.
	time=$(date '+%s')
	read=$(cat /sys/block/$disk/stat | awk '{ print $1 }')
	write=$(cat /sys/block/$disk/stat | awk '{ print $5 }')

	# Test if there is a change.
	if test $read -ne $last_read -o $write -ne $last_write
	then
		# Change found, update last_time.
		last_time=$time
	fi

	# Update last values.
	last_read=$read
	last_write=$write
	
	# Test if in idle too long.
	time_idle=$(( $time - $last_time ))
	#echo "Idle for seconds: $time_idle" >&2
	if test $time_idle -ge $timeout -a $last_time -gt $sd_time
	then
		# Idle too long. Spin down.
		#echo "Spinning down." >&2
		echo hdparm -y /dev/$disk
		sd_time=$time
	fi
	
	# Wait a second.
	sleep 1
done
DedVseved
Příspěvky: 981
Registrován: 01 črc 2019, 00:00

#69 Příspěvek od DedVseved »

lesana87 píše: Dík. Nainstalovala jsem to, ale chová se to nějak divně. To se má spouštět na pozadí nebo jak? Když to spustím normálně, tak se to neukončí a nevrátí do shellu.
Nevím, jestli zvládá více disků na jedné řádce, protože každý disk nastavuji zvlášť a mám to v /etc/rc.local
Možná proto se nevrací do shellu, jinak by se dalo dát na konec &
lesana87
Příspěvky: 4492
Registrován: 20 zář 2014, 00:00

#70 Příspěvek od lesana87 »

asdf píše:Ta dávka by mohla vypadat třeba nějak tahle:
8O

DedVseved: Dyť je to v manuálu v příkladech pro dva disky a je to jedno, pro jeden to taky zůstane viset. I s & to zůstane viset, musím to brejknout.
asdf
Příspěvky: 718
Registrován: 06 říj 2022, 00:00

#71 Příspěvek od asdf »

Tady je k tomu popis: https://www.kernel.org/doc/Documentation/block/stat.txt
Je to dlouhý?
lesana87
Příspěvky: 4492
Registrován: 20 zář 2014, 00:00

#72 Příspěvek od lesana87 »

Nějak mi není jasná funkce toho sd_time. A neměl by ten blok # Update last values. být v tom ifu nad ním, proč je updatovat, když se nezměnily?
asdf
Příspěvky: 718
Registrován: 06 říj 2022, 00:00

#73 Příspěvek od asdf »

To update last values asi může být v tom ifu, to je jedno. Klidně si to přehoď tam.

sd_time je zkratka spin down time. Tam je čas, kdy se ten disk naposledy uspal. To jsem potřeboval, aby se to neuspávalo každou sekundu, když disk není používán.
asdf
Příspěvky: 718
Registrován: 06 říj 2022, 00:00

#74 Příspěvek od asdf »

Asi by se měly ještě sledovat ty "discard" operace. :oops:
DedVseved
Příspěvky: 981
Registrován: 01 črc 2019, 00:00

#75 Příspěvek od DedVseved »

lesana87 píše: DedVseved: Dyť je to v manuálu v příkladech pro dva disky a je to jedno, pro jeden to taky zůstane viset. I s & to zůstane viset, musím to brejknout.
Kdysi to nejspíš nešlo, mít na jednom řádku více disků, už ho používám asi 8 let.

Zpět na „Miniaturní počítače (Arduino, Raspberry a další)“