плееры что спят, имеют линию управления питанием USB/SATA/
cat /sys/realtek_boards/system_parameters
param_addr=10000 tv_system=PAL usb_otg=off otg_gpio=0 POWERKEY_IRRP=A8579F00 POWERKEY_GPIO=42 12V5V_GPIO=44,hion
= гпио 44 1 питание включено
отсюда
- Code: Select all
gpio 44 0
должны обесточиться usb sata иногда еще и вентиляторы с дисплеями
внимание! перед снятием напряжения с дисков, обязательно скинуть кеш и отмонтировать разделы (особено если swap используем), да и остановить их заранее полезно.
примерно так: (у меня 3 раздела на одном диске без swap)
- Code: Select all
sync
umount /tmp/usbmounts/sda1
umount /tmp/usbmounts/sda2
umount /tmp/usbmounts/sda3
/usr/local/etc/mos/etc/init/S14spindown down
gpio 44 0
ЗЫ совсем не включать питание возможности нет ибо его включает буткод., да и ядро включит при загрузке если вдруг оно выключено., так что проще корректно выключать самому.
PSPS с другой стороны нам ничто не мешает снять питание до загрузки модулей SATA и USB
создать файл
/usr/local/etc/rc.init/S01pwroff.sh
не забыть выставить ему атрибуты +x
с содержимым:
- | +
- Code: Select all
#!/bin/sh
#
case "$1" in
start)
sync
echo 3 >/proc/sys/vm/drop_caches
# на всякий случай проверим не остались ли моунты после кривого сна напр.
for i in $( cat /proc/mounts | sed -n '1!G;h;$p' | grep -E -e '^/dev/scsi/host' -e '^/dev/ide/host' -e '^/dev/sd' | cut -d" " -f 2) ; do
mount -o remount,ro $i
umount $i
done;
#успокоим диск(и)
/usr/local/etc/mos/etc/init/S14spindown down
sleep 1
# питание долой
/usr/local/sbin/gpio 44 0
;;
stop)
;;
*)
echo "Usage: $0 {start|stop}"
esac
exit $?
в нормальных условиях система про USB даж не узает
да и про сата диски не вспомнит диск будет остановлен нежно и обесточен через несколько сек после включения.... одно но как побочный эффект могут отрубится некоторые внешние интерфейсы напр spdif (все зависит от кривизны разводки платы)
все включить после достаточно легко одной командой:
gpio 44 1
но после того как все загрузится и гуй присосется к дискам - отключение уже будет проблематичным. проще reboot.sh сделать