UserScripts
http://oleg.wl500g.info/bin/2) DIR-320-1.9.2.7-d-r3591M + ЖД + hdparm.
Ребята, помогите пожалуйста.
1) DIR-320-3.0.5-r4923M + ЖД + hdparm.
ядро 2.6.22 и команда
hdparm -B ххх /dev/sda
вручную выполняется и работает, но как известно до первого обесточивания.
как сделать чтобы она выполнялась автоматически при каждом монтировании диска?
2) DIR-320-1.9.2.7-d-r3591M + ЖД + hdparm.
ядро 2.4.37 и хотя hdparm успешно установлен фактически не работает потому что не видит диск.
пробовал всячески sdA-Z (1-9) и т.п.
как это победить?
в общем задача: на ядре 2.4.37 автоматом выполнять hdparm -B ххх /dev/sda
я чайник, просидев несколько дней-закипел, и к вам на поклон). надеюсь на помощь. спасибо.
UserScripts
http://oleg.wl500g.info/bin/2) DIR-320-1.9.2.7-d-r3591M + ЖД + hdparm.
спасибо за ответ, но очень прошу для чайника подробнее разжевать.
1)пробовал текстовым редактором добавить
#!/bin/sh
hdparm -B ххх /dev/sda
в post-mount, но не работает, как именно такая команда должна выглядеть?
2) что именно с этим нужно сделать, чтобы hdparm видел диски и работал с ними?
http://oleg.wl500g.info/bin/
Last edited by dlukanidin; 13-04-2013 at 09:19.
ASUS RT-AC66U <Merlin 384.15>
ASUS RT-N66U <Merlin>
ASUS RT-N16 <Merlin>
☀ Макет нового WEB интерфейса ☀ Для iPhone/iPad ☀
Вопрос не мальчика, но мужа.
cd /tmp/local/
wget http://oleg.wl500g.info/bin/hdparm.mipsel
flashfs save && flashfs commit && flashfs enable
Hohmach, я очень благодарен вам за помощь!
и хотя я все сделал как вы писали, hdparm не найден
вытягивать из вас по строчке уже стыдно, поэтому решил плюнуть на старое ядро.
пожалуйста помогите с первым вопросом:
1) DIR-320-3.0.5-r4923M + ЖД + hdparm.
ядро 2.6.22
команда
hdparm -B ххх /dev/sda
вручную выполняется и работает как требуется, но нужно ее поставить на автоматическое выполнение.
делал это: (спс dlukanidin)
1. Создаёте папку /tmp/local/sbin
2. Создаёте файл post-mount
3. Меняете у созданного файла атрибут на исполняемый
4. Сохраняете флэш рам
5. Перезагружаетесь
нет эффекта
это
http://wl500g.info/showthread.php?18...992#post128992
и это
http://vectormm.net/routers/routery-...a-routera.html
не работает.
пожалуйста, для совсем идиота, напишите полностью как должен выглядеть скрипт и куда его положить чтобы выполнялась одна единственная команда:
hdparm -B ххх /dev/sda
Code:mkdir /usr/local/sbin echo "#!/bin/sh" > /usr/local/sbin/post-boot echo "hdparm -B ххх /dev/sda" >> /usr/local/sbin/post-boot chmod +x /usr/local/sbin/post-boot flashfs save && flashfs commit && flashfs enable && reboot
Last edited by Omega; 16-04-2013 at 00:53. Reason: неудивительно, нужно указывать полные пути до файлов ;) а выполняли всё это в vi или в блокноте с его переводами строк? :)
Скорее всего на момент выполнения post-mount ещё не смонтировался внешний диск
Сделайте чуть по другому - из post-mount или post-boot запустите скрипт который сначала проверяет наличие диска, а потом уже запускает hdparam. Что то типа такого:
Не уверен, что (ls -d /tmp/mnt/*/*) это правильно, писал это для совершенно другой ситуации где было важно наличие на диске определённого каталога, а попробовать сейчас не на чем, в общем это должна быть команда которая выдаёт не пустую строку если диск подключен и пустую в обратном случае.Code:post-mount: #!/bin/sh hdparamstart & hdparamstart: #!/bin/sh max_time=20 # wait for disk mount to $max_time sec for i in $(seq $max_time); do dir=$(ls -d /tmp/mnt/*/*) [ "$dir" != "" ] && break sleep 1 done hdparm -B ххх /dev/sda
Возможно (mount | grep sda) ???
Last edited by dlukanidin; 15-04-2013 at 23:30.
ASUS RT-AC66U <Merlin 384.15>
ASUS RT-N66U <Merlin>
ASUS RT-N16 <Merlin>
☀ Макет нового WEB интерфейса ☀ Для iPhone/iPad ☀
По идее не может, но мне не приходят на ум другие причины, по которым не выполняется после ребута, а выполняется из putty. Отличие ИМХО скорее всего в таймауте, а это в свою очередь означает, что не закончились некоторые переходные процессы с диском.
Возможно это и не монтирование, а диск просто не готов остановиться сразу после монтирования. Может достаточно и просто sleep 3 вставить например перед запуском hdparam, но это уже - такие костыли из брёвен (если причину не определить, то такой таймаут может зависеть от слишком большого числа факторов и работать только для Вашей конфигурации аппаратуры). Ищите и пробуйте.
P.S. Вот ещё мысль пришла, Диск смонтировался, Вы его останавливаете, а после этого ещё какая то операция с диском производится системой (например какое то отложенное чтение корневого каталога файловой системой, это только предположение), как результат он снова запускается сразу, а Вы этого даже не успеваете увидеть, но команда остановки отменяется.
Может всё таки использовать скрипты с первых страниц этой темы, которые останавливают диск, если в течении некоторого времени не было обращений к нему?
Last edited by dlukanidin; 16-04-2013 at 17:40.
ASUS RT-AC66U <Merlin 384.15>
ASUS RT-N66U <Merlin>
ASUS RT-N16 <Merlin>
☀ Макет нового WEB интерфейса ☀ Для iPhone/iPad ☀
снится мне сон...
post-boot - слишком рано
post-mount - допустим не корректно отрабатывает, странно но допустим,
но pre-shutdown то железно должен отработать!
проснулся, сделал, не работает.
получается диск и монтирование не при чем, это в принципе не рабатает, либо не пашут стартовые скрипты либо команда "кривая".
нет никаких сомнений что вся проблема от "неровности" моих рук и недостатке опыта в деле "линоксо-укрощения", но с другой стороны все делаю под зорким руководством старших опытных товарищей, и вы бы заметили явную лажу.
что еще пробовал:
не помогло,
пихал слипы куда надо и куда не надо разной продолжительности
не отпустило,
делал исключительно в vi и в putty т.к. по другому просто не умею.
какие пути не полные? что исправить?
пробовал поновей прошивку r5010M,
перекидывал все "хозяйство" на флешку, а ЖД чистый в холостом ходу - прежняя ситуация.
пробовал на лету:
подключаю ЖД и начинаю вручную запускать команду, примерно на 5 секунде она уже проходит и применяется.
вывод: не умею заставить работать стартовые скрипты.
может что-то еще кроме этого
нужно чтобы они работали?mkdir /usr/local/sbin
echo "#!/bin/sh" > /usr/local/sbin/post-boot
echo "hdparm -B ххх /dev/sda" >> /usr/local/sbin/post-boot
chmod +x /usr/local/sbin/post-boot
flashfs save && flashfs commit && flashfs enable && reboot
уже не знаю какую еще исполнить пляску с ударными инструментами!
П.С. часто пишут про каретку windows, ее вообще можно увидеть глазами? в vi она видна?
Last edited by Omega; 18-04-2013 at 10:52. Reason: а почитать эту тему никак? ;) ну типа /opt/bin/sdparm :)
Чело
Чтобы убедится в отработке post-mount, добавь туда
После ребута посмотришь появился /tmp/local/test или нет.Code:echo "post-mount started" > /tmp/local/test
Я думаю post-mount при загрузки не отрабатывает.
пропиши свой код в post-boot, все должно отработать./usr/local/sbin/pre-boot - исполняется до основной инициализации, в момент, когда ещё не подгружены никакие модули ядра, но уже развёрнут flashfs и скопирован начальный образ для /etc из /usr/etc.
/usr/local/sbin/post-boot - исполняется после того, как устройство закончило загрузку и запустило все сервисы, за исключением связанных с веб-камерой и usb дисками (они запустятся примерно через 10 секунд после этого при "обработке" hot plug событий, когда АСУСовский обработчик до них доберётся)
/usr/local/sbin/post-mount - отрабатывает, когда устройство завершает монтирование usb дисков, с тем чтобы Вы могли запустить свои сервисы, которые эти диски используют
/usr/local/sbin/pre-shutdown - работает перед перезагрузкой системы
/usr/local/sbin/post-firewall - исполняется всякий раз, после того как устройство меняет внутренние правила с помощью команд iptables, с тем, чтобы Вы могли внести свои изменения в firewall
И еще тут
укажи полный путь до hdparm, например /tmp/local/hdparm (я не знаю где он у тебя находится).hdparm -B ххх /dev/sda
Last edited by ildar; 18-04-2013 at 12:00.