Можно пойти как делал я, доступиться к чудовищу для утех сладостных через доставку аленкого цветочка, либо напрямую (требует дополнительной проверки).
Итак, приступаем (флешка стоит, лучше - форматированная в ext)
1. Заходим в веб-морду, идем в раздел USB-приложения, и нажимаем - установить
Download Master.
2. После чего на флешке создается папка
asusware/, которая путем хитрых манипуляций с ссылками становится папкой
/opt (см. выше).
Учтите флешка на
sda1 -
это у меня, у вас может быть с другим именем, путем монтирования, тогда пляшем от вашего. Да и файловая система играет роль ...
Кроме того туда закачивается обвязка
ipkg и ставится пакет
downloadmaster, так же становятся доступными два репозитария :
Code:
src/gz optware.oleg http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable
src/gz optware.asus http://dlcdnet.asus.com/pub/ASUS/wireless/ASUSWRT
Возможно вам будет этого достаточно, тогда дальше можно не читать.
3. Кроме того, в корне папки
asusware создается скрипт
Code:
-rwxrwxrwx 1 admin root 3688 Apr 1 03:08 .asusrouter*
Который отвечает за автостарт пакетов из репозитария, которые имеют стартовые скрипты в папке
/opt/etc/init.d, после подмонтирования флешки.
А так же в nvram будут записаны следующие значения :
Code:
apps_dev=sda1
apps_install_folder=asusware
apps_mounted_path=/tmp/mnt/sda1
4. Идем в вебморду, и отключаем
Download Master.
5. На всякий случай проверяем через телнет с помощью
ps, не запущен ли он, и если что - останавливаем с помощью
Code:
/opt/etc/init.d/S50downloadmaster stop
.
6. Очищаем папку
asusware, либо, я бы рекомендовал, просто переименовываем в
asusware.orig, а вместо нее создаем новую папку
asusware.
1.-6. Альтернатива (не гарантировано, но должно работать):
Ставим флешку (монтируем).
Заходим в ее корень, создаем нужную папку (
asusware),
выполняем:
Code:
nvram set apps_dev=sda1
nvram set apps_install_folder=asusware
nvram set apps_mounted_path=/tmp/mnt/sda1
nvram commit
ln -snf /tmp/mnt/sda1/asusware /tmp/opt
ln -snf /tmp/opt /opt
7. В принципе - все готово к инсталляции
entware, выполняем, как и рекомендовано:
Code:
cd /tmp
wget http://wl500g-repo.googlecode.com/svn/ipkg/entware_install.sh
chmod +x ./entware_install.sh
./entware_install.sh
, однако, по опыту инсталляции скажу, что лучше предварительно зайти в
/tmp/mnt/sda1/asusware, и там выполнить команды создания нескольких папок:
Code:
cd /tmp/mnt/sda1/asusware
mkdir ./tmp
mkdir ./var/lock
8. В принципе можете уже установить mc, и все уже хорошо ;-).
Но если вам надо чтобы некие пакеты стартовали вместе со стартом роутера, то необходимо еще чуть чуть потрудиться.
9. При наличии ранее приведенных записей в nvram, посла монтирования флешки асусовский софт запускает скрипт .asusrouter, находящийся в корне папки, указанной в параметре
apps_install_folder (т.е., по умолчанию - в asusware), которая монтируется как
/opt.
И вот тут уж решать вам, как удобнее поступить - написать свой, либо воспользоваться оригинальным.
10. Я использовал оригинальный, но с небольшими правками, см вложенный файл.
изменения коснулись нескольких последних строк, ранее было
Code:
nvram set apps_state_autorun=3 # EXECUTING
link_internet=`nvram get link_internet`
if [ "$link_internet" == "1" ]; then
app_update.sh &
fi
# run all APPs by order.
app_init_run.sh allpkg start
nvram set apps_state_autorun=4 # FINISHED
Перенос
app_init_run.sh allpkg start и добавление задержки, вызвано причинами описанными далее.
11. Теперь у нас должны запускаться стартовые скрипты из /opt/etc/init.d/, однако не все так просто, т.к. их запуск происходит через
app_init_run.sh (находится в
/usr/sbin), и для того, чтобы им воспользоваться необходимо еще несколько телодвижений, т.к. при попытке старта через него пакета (всех пакетов), он :
а) вычленяет имя пакета из имени стартового файла, т.е. из SXXname, получает name.
б) ищет файл
name.control в папке
/opt/lib/ipkg/info.
с) ищет в этом файле строку вида
Enabled: yes.
Только при наличии всех условий - файл выполняется.
Итак, делаем :
Code:
cd /opt/lib; ln -snf opkg ipkg
.
Теперь осталось только либо приводить в соответствие имя пакета к имени стартового скрипта, с помощью символической ссылки для файла name.control, либо аналогично именовать стартовые скрипты.
Ранее я жаловался на отсутствие возможности залогиниться по ssh, демон ругался на то, что аккаунт истек.