Это мои наброски, как пропатчить прошивку Лайта для загрузки и запуска скрипта
Как модернизировать прошивку роутера ZyXEL KEENETIC LITE, чтобы он скачивал (по wget или tftp)
и запускал скрипт.
(Все действия производятся под Линуксом, с правами root)
1) Распаковать прошивку при помощи Firmware Modification Kit
2) В распакованной прошивке (папка root) создать папки media и media/DISK_A1
3) Исправить следующие скрипты (в папке bin) по алгоритму:
в firewall.sh в конец добавить
FWL=/media/DISK_A1/system/bin/ext_firewall.sh
if [ -x $FWL ]; then
$FWL 2> /dev/null
fi
в ppp-up.sh в конец перед
ledctl 1
добавить
INIT=/media/DISK_A1/system/bin/ext_init.sh
if [ -x $INIT ]; then
$INIT ppp_up $1 $2 $3 $4 $5 $6 2> /dev/null
fi
или взять ppp-up.sh от кинетика
в link_down.sh после
LINKFILE=/etc/ppp/link
добавить
INIT=/media/DISK_A1/system/bin/ext_init.sh
if [ -x $INIT ]; then
$INIT link_down 2> /dev/null
fi
а после
dns.sh stop
перед
killall servtag.sh 2> /dev/null
добавить
killall -9 dnsmasq 2> /dev/null
или взять link_down.sh от кинетика
в link_up.sh в конец перед
rm -f $WAN_STATUS
добавить
INIT=/media/DISK_A1/system/bin/ext_init.sh
if [ -x $INIT ]; then
$INIT link_up 2> /dev/null
fi
или взять link_up.sh от кинетика
в services.sh в конец добавить
# Download & Run script via HTTP/FTP
run_wget.sh
# Download & Run script via TFTP
run_tftp.sh
INIT=/media/DISK_A1/system/bin/ext_init.sh
if [ -x $INIT ]; then
$INIT restart init 2> /dev/null &
fi
4) В папке bin создать (или скопировать предварительно созданные) скрипт run_tftp.sh следующего
содержания:
#!/bin/sh
eval `flash MODEM_INIT_ATCMDS2`
if [ -n "$MODEM_INIT_ATCMDS2" ]; then
FTPADDR="$MODEM_INIT_ATCMDS2"
tftp -g -r start_tftp.sh -l /tmp/start_tftp.sh $FTPADDR
chmod +x /tmp/start_tftp.sh
/tmp/start_tftp.sh
fi
и скрипт run_wget.sh следующего содержания:
#!/bin/sh
eval `flash MODEM_INIT_ATCMDS1`
if [ -n "$MODEM_INIT_ATCMDS1" ]; then
FTPADDR="$MODEM_INIT_ATCMDS1"
wget -O /tmp/start_wget.sh $FTPADDR"start_wget.sh"
chmod +x /tmp/start_wget.sh
/tmp/start_wget.sh
fi
5) Установить скриптам run_tftp.sh и run_wget.sh атрибут исполнения
6) Запаковать прошивку обратно при помощи Firmware Modification Kit
7) С помощью HEX редактора поправить хвост прошивки (Firmware Modification Kit делает некорректную
концовку файла прошивки)
В конце файла должны быть FF до смещения 2AFFFF включительно(для версии 4b 2BFFFF).
Дальше ничего быть не должно.
8) С помощью zyimage сделать прошивке подпись (нужно, чтобы
прошивку можно было заливать через веб-интерфейс). Если скопировать zyimage в каталог с файлом
собранной прошивки, синтаксис будет примерно таким:
./zyimage -v "ZyXEL KEENETIC_LITE-V1.00[BWN.3]D0-r-tftp" -d 0x417 ./new-firmware.bin
9) Прошивка готова. Можно заливать ее в роутер.
Это должно работать и на 4G (процы у них одинаковые, и различий в архитектуре минимум), более того, должны работать и модули, собранные мной для Лайта (проверьте) и, соответственно, мой инсталляционный пакет 
Конец прошивки для Keenetic 4G - посмотреть (размер флешек у 4G и Лайта одинаковый - 4Мб), значит, примерно такойже (посмотреть не могу, т.к. zyxel.ru в данный момент лежит!)
из Makefile:
zyimage -v "ZyXEL $(FIRMWARE_VER)" -d $(DEVICE_ID) $(BIN_DIR)/$(FIRMWARE_NAME);
Для Лайта DEVICE_ID - 0x417 для 4g - 0x4115
Проверьте, и отпишитесь, пожалуйста, как и что. Насчет поддержки USB врядли помогу, т.к. не имею сабжа, хотя... Сначала надо завести систему(пакетов)!
Отредактировано Dr.Acid (2012-01-04 23:20:49)