Новые программы
Т.к. на роутере работает линукс, ему можно добавить некоторые функции — программы. Для начала нужно проверить версию ядра:
1 2 |
# cat /proc/version Linux version 2.6.13.1-ohio (2176) (gcc-Version 3.4.6) #1 Mon Feb 16 13:02:19 CET 2009 |
При этом важно версия ядра, 2.6 или 2.4 . В моём случае это 2.6-kernel, а если точнее 2.6.13.1-kernel. Все новые Fritz!Box’ы работаюс с 2.6-kernel, поэтому я пока предлагаю программы только для него. Обратите внимание: эти программы точно не будут работать с 2.4-kernel!
Кроме этого следует различать Fritz!Box’ы с USB флешкой и без.
Fritz!Box’ы без USB флешки
Здесь программу нужно сначала скачать из сети и после этого запустить. Причина этого — недостаточное количесво памяти роутера. Это распространяется также на самые новые модели, например 7270 с 16 Мб FLASH и 64 Мб SDRAM, т.к. некоторые программы (например SVN-Server) требуют несколько гигабайт памяти.
Обратите внимание: не все модификации возможны без USB флешки.
Также обратите внимание: этот метод также работает на Fritz!Box’ах с USB флешкой. Не смотря на это я рекомендую его использовать только если нет возможности или желания подключить флешку. Причина этого — скорость:
- нужно ждать подключения к сети, что может длиться пол часа
- соединение с сетью медленное (не всегда правильно, поэтому скорее не важно)
- при больших программах не хватает памяти
С помощью следующей строчки роутер ждёт соединения с сетью. Логично, что эту строчку при тестирование скрипта можно не задавать. При использовании нескольких программ её следует оставить только перед первой — для следующих она не обязательна, но, правда, не мешает.
1 |
while !(ping -c 1 www.google.de); do sleep 5; done # при этом посылаем пинг на Google |
ОСТОРОЖНО: если соединение с сетью технически не возможно, то скрипт повиснет на этом месте, что не является ошибкой. Это не страшно, если все модификации без закачки из сети записать перед этой строкой. Я настоятельно рекомендую следить за этим!
Не большая заметка: из моего downloadlink’а можно определить, на каком роутере я тестировал ту или иную программу.
Fritz!Box’ы с USB флешкой
Здесь программу нужно сначала скопировать с флешки в память и после этого запустить или запустить сразу с флешки.
Этот метод намного удобней предидущего:
- не нужно ждать подключения к сети — только mount флешки (длится пару минут)
- есть возможность запустить программу сразу с флешки
- нету проблем с большими программами (например Apache): папять ограничена размером флешки — в практике это больше чем надо
С помощью следующей строчки роутер ждёт соединения с сетью. Логично, что эту строчку при тестирование скрипта можно не задавать. При использовании нескольких программ её следует оставить только перед первой — для следующих она не обязательна, но, правда, не мешает.
1 |
while !([ -d $HDD_ABSOLUT ]); do sleep 5; done # HDD='/var/media/ftp/\Hitachi-HTS543216L9A300-01' |
start.sh находится в моём примере на флешке. Можно создать пустой файл с этим именем или заменить его на существующий.
Hitachi-HTS543216L9A300-01 — это имя моей флешки (если быть точнее 2,5″ винчестера — в принципе одно и тоже). Её название у вас точно другое — эго надо заменить. Так можно определить имя флешки:
1 2 |
# ls /var/media/ftp/ Hitachi-HTS543216L9A300-01 |
ОСТОРОЖНО: если соединение с сетью технически не возможно, то скрипт повиснет на этом месте, что не является ошибкой. Это не страшно, если все модификации без закачки из сети записать перед этой строкой. Я настоятельно рекомендую следить за этим!
Некоторые заметки: из моего downloadlink’а можно определить, на каком роутере я тестировал ту или иную программу. Маленькие программы я копирую в память роутера, большие стартую прямо с флешки. Это можно изменить.