В этой статье я расскажу, как установить систему пакетов Entware на маршрутизатор с архитектурой arm и прошивкой Tomato-ARM от Shibby. К моменту написания этой статьи последней является версия V125, выпущенная для следующих роутеров — D-Link DIR686, Netgear R7000, Asus AC56U, AC68U, AC68R, N18U, Huawei WS880. Entware — это система пакетов (дополнительного софта), устанавливаемого на USB носитель.
Для установки Entware зайдем на роутер в раздел USB and NAS, включим поддержку USB носителей, как показано на рисунке:
Затем добавим в поле Run after mounting следующий скрипт
#!/bin/sh
/opt/etc/init.d/rc.unslung start
Этот скрипт будет запускать сервисы (демоны) Entware.
а в поле Run before unmounting такой скрипт
#!/bin/sh
/opt/etc/init.d/rc.unslung stop
sleep 15
for i in `cat /proc/mounts | awk ‘/ext3/{print($1)}’` ; do
mount -o remount,ro $i
done
Этот скрипт останавливает сервисы (демонов) Entware при извлечении usb носителя или выключении роутера.
Теперь переходим в раздел Administration->Scripts:
и на закладке Init добавляем такой скрипт
echo «LABEL=ENTWARE /opt ext3 rw,noatime 1 1″ >> /etc/fstab
Этот скрипт говорит роутеру, что если имеется на внешнем носителе раздел с меткой ENTWARE, то его следует смонтировать в папку /opt.
Теперь нам следует подготовить USB носитель. Возьмем флешку и подключим ее к роутеру. Зайдем на роутер по протоколу ssh (через putty) и посмотрим в какую точку смотирована флешка. Наберем команду mount
root@ws880:/tmp/home/root# mount
rootfs on / type rootfs (rw)
/dev/root on / type squashfs (ro,relatime)
devtmpfs on /dev type devtmpfs (rw,relatime,size=62744k,nr_inodes=15686,mode=755)
proc on /proc type proc (rw,relatime)
tmpfs on /tmp type tmpfs (rw,relatime)
devfs on /dev type tmpfs (rw,noatime)
sysfs on /sys type sysfs (rw,relatime)
devpts on /dev/pts type devpts (rw,relatime,mode=600)
usbfs on /proc/bus/usb type usbfs (rw,relatime)
/dev/sda1 on /tmp/mnt/....
Нас будут интересовать последние строки. Из них мы увидим точку монтирования нашей флешки. В приведенном выше примере это /dev/sda1. Теперь размонтируем флешку и создадим на ней файловую систему ext3 (нам нужна файловая система, поддерживающую символические ссылки).
ВНИМАНИЕ! Эта операция уничтожит файлы на флешке!
root@ws880:umount /dev/sda1
root@ws880:mkfs.ext3 -L ENTWARE /dev/sda1
У нас уже почти все готово для установки Entware. Можно просто перезагрузить роутер, а можно, вместо этого, дать две команды
echo "LABEL=ENTWARE /opt ext3 rw,noatime 1 1" >> /etc/fstab
mount /opt
После этого скачиваем скрипт установки Entware и его запускаем:
wget http://qnapware.zyxmon.org/binaries-armv7/installer/entware_install_arm.sh
chmod +x ./entware_install_arm.sh
./entware_install_arm.sh
После успешной установки выходим из ssh сессии, заходим снова и устанавливаем любимые пакеты….
PS Если Вам больше нравиться AsusWRT.Merlin — скоро выйдет прошивка, в которую скрипт установки уже интегрирован.
Спасибо за статью!
Если у Вас есть NAS, то можно прекрасно обойтись без флешки: монтируем, исталируем, в /jffs помещаемь примерно такой скрипт (примонтировать /opt и стартовать):
#!/bin/sh
HD_OPT="192.168.1.4:/mnt/data/routik_opt"
check_mount()
{
if [ -z "$1" ]
then
echo "Syntax $ mpoint dir"
return 1
fi
rzd="$1"
dir="$2"
[ -d "$dir" ] || mkdir "$dir"
while :
do
mount | grep -q "$rzd\ "
[ $? -eq 0 ] && break
mount.nfs "$rzd" "$dir" -o nolock,rw
sleep 4
done
return 0
}
check_mount "$HD_OPT" "/opt"
/opt/etc/init.d/rc.unslung start
Самое главное не забыть в вызове скрипта ‘&’ ( admin-jffs- Execute When Mounted «/jffs/opt_init.sh &»), иначе все повиснет, когда свет моргнет
Можете подробно описать как и что куда монтировать? Router Xiaomi MiRouter X-R1D. Tomato 1.28
Вот лог:
…
(Бред удалил — Zyxmon)
1. Вы устанавливали Qnapware или Entware.arm, Это больше не поддерживается.
2. Ставьте Entware-ng — https://github.com/Entware-ng/Entware-ng/wiki/Install-on-the-TomatoUSB
На каком пункте инструкции не вышло — пишите. Не нужно приводить «безумные» логи. Если хотите привести длинный лог — используйте http://pastebin.com/ (регистрация не нужна). Все дальнейшее обсуждение проводите у меня на форуме http://forums.zyxmon.org/index.php
Спасибо за поддержку! Попробую!
А как обстоят дела с не «броадкомовскими» процессорами, например с Qualcomm dual-core IPQ8064 Internet Processor @ 1.4 GHz в NETGEAR R7500? Заведётся ли на нём entware.arm?
Практика критерий истины. Проще всего проверить. Если процессор armv7l/cortex-a9 совместимый — то заведется. Кроме бродкомовских роутеров проверка была на НАСах с cortex-a9 и cortex-a15 процами не от broadcom (Annapurna Labs SoC).
Можно вас попросить собрать новую версию mcabber (http://mcabber.com/files/mcabber-1.0.0.tar.bz2)
Версия которая сейчас лежит в репозитории mcabber_0.10.2-1_armv7soft.ipk не содержит модуля fifo, что делает её бесполезной для автоматизации.
Проверяйте — http://qnapware.zyxmon.org/binaries-armv7/test/mcabber_1.0.0-1_armv7soft.ipk
При сборке могу (попробовать) включить aspell
Все заявки на сборку пакетов оставляйте тут — http://forums.zyxmon.org/viewtopic.php?f=5&t=5186