-- Deleted -- Акелла опоздал с рекомендациями...
Привет всем!
Собственно вопрос в следующем:
Имеется wl-500w с подключнным к нему хардом Seagate FreeAgent Pro 1Tb. Прошивка Олеговская, 10. Жесткий разбит на 2 раздела, оба в ext3.
Так вот, теоретически сиагейт в простое через n мин диск паркует, и под когда он подключен к компу все так и есть. А вот при подключении к роутеру жужжит сутки напролет и греется
Видимо роутер зачем-то его дергает...
Кто что посоветует?
P.S. swap'а на него я не ставил, прог тоже... Только самба.
Вот здесь все прекрасно описано: http://wl500g.info/showpost.php?p=47135&postcount=10
Как я вас понимаю . В итоге купил себе WD Passport на 250 гигов и распял пермычку под питание, чтобы диск головками не щелкал, все теперь работает без проблем много месяцев.
Vollsky
Спасибо большое, буду пытаться)))
PupsDRVR
Мне, к сожалению, 250 не хватит Так что диск - по-любому 3,5"
Есть ещё такой же паспорт на 400 гигов. А с тем диском вы тишины не получите, это по определению. Что касается режима энергосбережения, то Seagate FreeAgent поддерживает это на апаратном уровне, под него есть родная утилита, была изначально на диске записана, если хлопнули её, то с сайта скачайте, которая позволяет выставить время остановки при бездействии. Так что по предыдущей ссылке не стоит даже заморачиваться, все гораздо проще.
PupsDRVR
На счет утилиты я знаю, и в ней то все настроено, и даже при работе с компом режим энергосбережения активируется
По ссылке я сделал, жесткий выключается, но обратно уже не включается
Соответственно буду мозговать дальше)))
П.С. что куплено - то куплено, дороги назад уж нет...
Такая вот есть идея: поставить помимо scsi-stop scsi-start, и прописать запуск шпинделя в скрипте при первом же обращении...
Наподобие этого:
Так как я в этом деле мягко говоря не очень, может кто-нибудь сказать - поправка верная?Code:#!/bin/sh if /usr/bin/[ $# -ne 1 ]; then /bin/echo 1>&2 "Usage: $0 <device>" exit 1 fi PERIOD=30 BOUNDARY=1200 SCSISTOP=/usr/local/sbin/scsi-stop SCSISTART=/usr/local/sbin/scsi-start LOGFILE=/tmp/scsi-stop.log searchstr="disk_io:" devaddr="(`/bin/ls -l $1 | /usr/bin/awk '{print($5 int($6/16))}'`)" str=`/bin/grep "$searchstr" /proc/stat | devaddr="$devaddr" /usr/bin/awk -v 'RS= |\n' -F : '{ if($1==ENVIRON["devaddr"]) print($2) }'` cooltime=0 stopped=0 while /bin/true; do /bin/sleep $PERIOD newstr=`/bin/grep "$searchstr" /proc/stat | devaddr="$devaddr" /usr/bin/awk -v 'RS= |\n' -F : '{ if($1==ENVIRON["devaddr"]) print($2) }'` if /usr/bin/[ "$newstr" = "$str" ]; then cooltime=$(($cooltime + $PERIOD)) if /usr/bin/[ $cooltime -ge $BOUNDARY -a $stopped -eq 0 ]; then $SCSISTOP $1 time=`/bin/date '+%b %e %H:%M:%S'` /bin/echo "$time: Cooled down..." >> $LOGFILE stopped=1 fi else if /usr/bin/[ $cooltime -ne 0 ]; then if(stopped==1); then $SCSISTART $1 fi time=`/bin/date '+%b %e %H:%M:%S'` /bin/echo "$time: Disk first used after $cooltime seconds" >> $LOGFILE fi cooltime=0 str=$newstr stopped=0 fi done
Last edited by Alaric; 26-09-2008 at 15:10.
Вы по моим стопам идете, я все это уже проходил (начиная с этого поста почитайте ) . Если найдете решение, дайте знать.
Vollsky
Хм... Спасибо за советы, буду пробовать)
PupsDRVR
Выход должен быть... его не может не быть...
Asus WL-500W 1.9.2.7-10 + Seagate FreeAgent PRO 1Tb
Свою проблему я решил процентов так на 70...
1) Помимо жесткого диска воткнул в роутер флешку на 128 Мб
2) Подключил ее в /opt
3) Установил ipkg
4) Установил scsi-idle (он уже есть скомпилированный, в списке пакетов)
5) Основываясь на этом материале, запустил такой вот скриптик:
Соответсвенно, висит в бакграунде.Code:#!/bin/sh if /usr/bin/[ $# -ne 1 ]; then /bin/echo 1>&2 "Usage: $0 <device>" exit 1 fi PERIOD=5 BOUNDARY=1200 BOUNDARY2=1215 SCSISTOP=/opt/sbin/scsi-stop SCSISTART=/opt/sbin/scsi-start LOGFILE=/tmp/scsi-stop.log searchstr="disk_io:" devaddr="(`/bin/ls -l $1 | /usr/bin/awk '{print($5 int($6/16))}'`)" str=`/bin/grep "$searchstr" /proc/stat | devaddr="$devaddr" /usr/bin/awk -v 'RS= |\n' -F : '{ if($1==ENVIRON["devaddr"]) print($2) }'` cooltime=0 stopped=0 while /bin/true; do /bin/sleep $PERIOD newstr=`/bin/grep "$searchstr" /proc/stat | devaddr="$devaddr" /usr/bin/awk -v 'RS= |\n' -F : '{ if($1==ENVIRON["devaddr"]) print($2) }'` if /usr/bin/[ "$newstr" = "$str" ]; then cooltime=$(($cooltime + $PERIOD)) if /usr/bin/[ $cooltime -ge $BOUNDARY -a $stopped -eq 0 ]; then umount -l /tmp/mnt/disc0_1 umount -l /tmp/mnt/disc0_2 mount /dev/discs/disc0/part1 /tmp/mnt/disc0_1 mount /dev/discs/disc0/part2 /tmp/mnt/disc0_2 time=`/bin/date '+%b %e %H:%M:%S'` /bin/echo "$time: Remount... Ready to stop..." > $LOGFILE stopped=1 str=`/bin/grep "$searchstr" /proc/stat | devaddr="$devaddr" /usr/bin/awk -v 'RS= |\n' -F : '{ if($1==ENVIRON["devaddr"]) print($2) }'` fi if /usr/bin/[ $cooltime -ge $BOUNDARY2 -a $stopped -eq 1 ]; then $SCSISTOP $1 time=`/bin/date '+%b %e %H:%M:%S'` /bin/echo "$time: Cooled down..." >> $LOGFILE stopped=2 fi else if /usr/bin/[ $cooltime -ne 0 -a $stopped -eq 2 ]; then $SCSISTART $1 time=`/bin/date '+%b %e %H:%M:%S'` /bin/echo "$time: Start disk... Ready to use" >> $LOGFILE fi cooltime=0 str=$newstr stopped=0 fi done
Результат:
Жесткий отключается через n мин простоя.
Чтобы диск запустился, требуется зайти на диск, подождать время PERIOD + время раскрутки шпинделя, и желаемое будет получено)))
Не густо, но и то хлеб... (без команды scsi-start у меня вообще никак не запускается)
Буду думать дальше)))
P.S. Чуть подправил скрипт...
Last edited by Alaric; 05-10-2008 at 21:21.
Asus WL-500W 1.9.2.7-10 + Seagate FreeAgent PRO 1Tb