Jak rozchodit tlačítka na Zyxel NAS326

Raspberry, Arduino, Mini-PC a další

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
lesana87
Příspěvky: 4393
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.
Uživatelský avatar
asdf
Příspěvky: 707
Registrován: 06 říj 2022, 00:00
Kontaktovat uživatele:

#62 Příspěvek od asdf »

To idle3 nastavuješ pomocí "hdparm -J"? Ještě jde něco nastavit pomocí "hdparm -B".
Uživatelský avatar
matahari
Příspěvky: 1142
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
Uživatelský avatar
lesana87
Příspěvky: 4393
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.
Uživatelský avatar
lesana87
Příspěvky: 4393
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: 37414
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.
Uživatelský avatar
asdf
Příspěvky: 707
Registrován: 06 říj 2022, 00:00
Kontaktovat uživatele:

#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. :-)
Uživatelský avatar
asdf
Příspěvky: 707
Registrován: 06 říj 2022, 00:00
Kontaktovat uživatele:

#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
Uživatelský avatar
DedVseved
Příspěvky: 960
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 &
Uživatelský avatar
lesana87
Příspěvky: 4393
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.
Uživatelský avatar
asdf
Příspěvky: 707
Registrován: 06 říj 2022, 00:00
Kontaktovat uživatele:

#71 Příspěvek od asdf »

Tady je k tomu popis: https://www.kernel.org/doc/Documentation/block/stat.txt
Je to dlouhý?
Uživatelský avatar
lesana87
Příspěvky: 4393
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?
Uživatelský avatar
asdf
Příspěvky: 707
Registrován: 06 říj 2022, 00:00
Kontaktovat uživatele:

#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.
Uživatelský avatar
asdf
Příspěvky: 707
Registrován: 06 říj 2022, 00:00
Kontaktovat uživatele:

#74 Příspěvek od asdf »

Asi by se měly ještě sledovat ty "discard" operace. :oops:
Uživatelský avatar
DedVseved
Příspěvky: 960
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.
Odpovědět

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