openatv / enigma2

openatv-gui
GNU General Public License v2.0
200 stars 317 forks source link

HDD spinoff/standby timer works only once after boot #734

Closed Daimie closed 2 years ago

Daimie commented 7 years ago

My external USB HDD only spins off once after rebooting the device (using Vu+ Solo SE V2) according to the standby timer (10sec, 30sec etc).

HDD stays off until any HDD action is performed (e.g. watching old recordings) but after that the HDD never turns off unless deep standby or reboot is performed. No unwanted HDD activity should be going on either.

What is the enigma2 hdd standby command executed after the boot?

I tried sdparm, hdparm and hd-util but none of them can spinoff my HDD USB enclosure (Verbatim 1TB USB 3.0 Store 'n' Save).

Thanks for any help!

arn354 commented 7 years ago

without logfiles of dmesg, messages and enigma2 - we can't say at all what is happening on your box.

Daimie commented 7 years ago

I checked /sys/block/sda/stat and no I/O reads or writes are happening there but the HDD keeps still spinning. Harddisk.py does the same check when determining whether the HDD is idle or not.

I think the command the box runs is (even though no log shows this): "sdparm --flexible --readonly --command=stop /dev/sda"

The relevant file is: https://github.com/openatv/enigma2/blob/e7db8a9b9d87249bbf172af502d690d86f3c5a86/lib/python/Components/Harddisk.py

def setSleep(self): if self.bus() == _("External"): Console().ePopen(("sdparm", "sdparm", "--flexible", "--readonly", "--command=stop", self.disk_path)) else: Console().ePopen(("hdparm", "hdparm", "-y", self.disk_path))

If I run these sdparm or hdparm commands through Openwebif my HDD tells me it doesn't support the commands.

How come the box is able to put my HDD to standby only after rebooting (correctly following the config.usage.hdd_standby value), but if the HDD is awakened after that with any user action, HDD standby timer no longer works? Why isn't sdparm/hdparm command (the same the box uses after reboot) working when used manually on Openwebif terminal?

Any way to save log files to PC through the Openwebif terminal?

atvcaptain commented 7 years ago

command not found or parameter not working

better test with telnet and find your solution for your hdd model,

some usb device spins off after reboot, box drop the 5v and hdd spins off so so only hardware standby works not software works

or your hdd needs special software

Daimie commented 7 years ago

@arn354 log files here, first I cleared them, then rebooted the box at 18:30:06: messages https://pastebin.com/QuGs835y dmesg https://pastebin.com/njZakv46 enigma2 debug log https://pastebin.com/6fzk4bwr

Debug log: 18:30:34.1858 I pressed menu key immediately after the HDD spins off 10secs after rebooting (as set in config.usage.hdd_standby) 18:30:53.2882 I made a recording for a few seconds and waited whether the HDD spins off (nope). 18:31:40.5781 I entered the hdd menu to confirm the standby delay is 10 seconds. The Harddisk Hardware Standby Timer in the same menu has no effect on my problem.

Openvix & Openpli images have the same problem. Why does the box seems to turn off usb power only after a reboot (while correctly following the user-specified config.usage.hdd_standby) but only using hdparm/sdparm after that (which my HDD doesn't support)?

I tried turning off usb power with the following commands but HDD doesn't go off (My HDD is 2-1:1.0:) Jul 31 16:12:51 vusolose user.info kernel: usb-storage 2-1:1.0: USB Mass Storage device detected echo 0 > "/sys/bus/usb/devices/2-1:1.0/power/autosuspend_delay_ms" echo "auto" > "/sys/bus/usb/devices/usbX/power/control"

Also can't turn off usb power with bind & unbind, getting permission denied; echo "2-1:1.0" > /sys/bus/usb/drivers/usb/unbind

The HDD in my external USB enclosure is TOSHIBA DT01ACA100.

Thank you for any help!

arn354 commented 7 years ago

See cleanup of trashcan in E2 log, this runs in background e.g. after a recording.

Daimie commented 7 years ago

@arn354 No trashcan activity is past 18:31:17. I stopped recording @ 18:31:17 so with the 10s idle timer the HDD should have spun off somewhere around 18:31:30.

I have confirmed no HDD I/O is going on, but the HDD spins off according to the timer only once after a reboot. New info for debugging: If I put e.g. 2min HDD standby timer, reboot the box, quickly record a program for a few seconds and watch it @ movie center before the 2min timer is reached, the HDD properly spins off at the 2min standby timer. But it will never spin off again unless a reboot or deep standby is performed.

This suggests there's a problem with the source code somewhere. I suppose the HDD standby timer works correctly for you guys who have a type of external HDD which supports sdparm/hdparm commands?

I've also tried Hddsleep 1.72 plugin, doesn't help.

arn354 commented 7 years ago

Does it work in Vti? No issue here with external Hdd - but different Box and hdd

Daimie commented 7 years ago

I doubt it as Vti's Harddisk.py has been last updated on June 2016. https://github.com/fairbird/OpenPLI-VTI/blob/65516c325851cc06e3ab32f102de7c3968af0a8c/lib/python/Components/Harddisk.py

Isn't there a way to debug what's the command that successfully spins off my HDD ? It's something else than sdparm/hdparm.

dcesari commented 7 years ago

I came across this issue by chance and just add some information: I have a very similar HDD (Verbatim USB 3 store'n'save 2TB, externally powered) which does not spin off on my Gigablue box (cannot really say whether it spins off once after reboot or not) and does not react to the sdparm stop command given on the command line. Anyway, strange but true, on my Linux desktop the same disk reacts to hdparm command, e.g. hdparm -S60 /dev/sda really sets the disk timeout to 5 minutes, after which the disk spins off, but this setting of course does not survive a disk power cycle. On the Gigablue the same hdparm answers with

root@gb800seplus:~# hdparm -S60 /dev/sda

/dev/sda:
 setting standby to 60
 (5 minutes 0 seconds)
hdparm: HDIO_DRIVE_CMD: Invalid argument

don't know whether it is a matter of the USB host driver which does not forward hdparm commands or the busybox hdparm on openmips behaving differently from the desktop version.

jbleyel commented 2 years ago

Issue closed .. please open a new one if the error still exists.