Stránka 5 z 6

Napsal: 01 srp 2025, 15:39
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.

Napsal: 01 srp 2025, 16:34
od asdf
To idle3 nastavuješ pomocí "hdparm -J"? Ještě jde něco nastavit pomocí "hdparm -B".

Napsal: 01 srp 2025, 16:49
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

Napsal: 01 srp 2025, 16:52
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.

Napsal: 01 srp 2025, 17:09
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}

Napsal: 01 srp 2025, 18:01
od rnbw
Cislo pri "hdparm -S" si niektore disky interpretuju dost svojsky.

Napsal: 01 srp 2025, 18:16
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. :-)

Napsal: 01 srp 2025, 18:56
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

Napsal: 01 srp 2025, 19:05
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 &

Napsal: 01 srp 2025, 19:14
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.

Napsal: 01 srp 2025, 19:41
od asdf
Tady je k tomu popis: https://www.kernel.org/doc/Documentation/block/stat.txt
Je to dlouhý?

Napsal: 01 srp 2025, 20:02
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?

Napsal: 01 srp 2025, 20:11
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.

Napsal: 01 srp 2025, 20:17
od asdf
Asi by se měly ještě sledovat ty "discard" operace. :oops:

Napsal: 01 srp 2025, 20:21
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.