Установка entware в память маршрутизатора asus

Обновлено: 05.07.2024

Обновляем прошивку на версию 2.11 из канала legacy

Соединяемся с роутером
telnet your_router_ip
вводим логин/пароль админ юзера

Переключаем канал на legacy:
components sync legacy - для прошивок до 2.06
components list legacy - для прошивок 2.06 и выше

В веб-интерфейсе идем System -> Update
Проверяем, что в поле "Use" появилось значение "Debug version". Жмем кнопку "Update" и ждём.

После установки роутер ребутнётся. Проверяем в дешбоарде версию.
NDMS version: 2.11.D.9.0-1 - Значит, всё получилось.

Установка Entware

Берём любую чистую флешку. Я форматировал в FAT32. У флешки обязательно должна быть метка тома (любая, кроме пустой). Вставляем её в роутер.

Проверяем что в System->Update установлены компоненты FTP и OPKG. Если нет - устанавливаем

Если у вас еще не настроен FTP, то заходим в Applications->FTP, включаем FTP сервер, разрешаем анонимный доступ (или не разрешаем, тогда нужно указать, каким пользователям роутера разрешено пользоваться FTP)

Заходим по FTP на роутер (анонимно или нет - см п 2.4), далее в каталог с именем метки нашей флешки (cм п 2.2)

Создаём каталог install и заходим в него

Копируем установщик из п 2.1 в каталог install

Заходим в Applications->OPKG, Ставим галку "Enable", в "Use external storage" выбираем метку нашей флешки, жмём кнопку "Apply"

Если FTP сервер не нужен - не забываем его выключить.
Ну, по крайней мере, закрыть анонимный доступ :)

Заходим в Entware по SSH

Устанавливаем DNSCrypt2
opkg update
opkg install dnscrypt-proxy2

Устанавливаем немного дополнительных пакетов
opkg install ca-certificates cron iptables

Редактируем /opt/etc/dnscrypt-proxy.toml
нас интересует строка
listen_addresses = ['127.0.0.1:53']
разрешаем слушать любые адреса:
listen_addresses = ['0.0.0.0:53']

Стартуем DNSCrypt2
/opt/etc/init.d/S09dnscrypt-proxy2 start

Подменяем DNS резолвер прошивки
ВНИМАНИЕ! Здесь мы подключаемся к роутеру через telnet (не в Entware по SSH) - см п 1.1 и там выполняем
opkg dns-override
system configuration save

Идём в вебморду Home Network -> Segments
Ищем сегмент со своим Wifi подключением, редактируем в секцию DHCP server: прописываем в
DNS 1 IP роутера
DNS 2 оставляем пустым

Идем в вебморду Internet -> Connections Выбираем своё исходящее подключение: прописываем в
DNS 1 IP роутера
DNS 2 и 3 оставляем пустыми

Идем в вебморду Internet -> Extra Проверяем, чтобы в секции DNS servers не было никаких других серверов кроме IP нашего роутера. Если есть - удаляем.

Переподключаемся к роутеру (по WiFi или проводу) Заодно перепроверяем настройки подключения к роутеру своих устройств, чтобы в них не было принудительно установленных DNS-серверов

Здесь всё (почти работает). Но утечки всё еще возможны. Поэтому мы сейчас запретим весь трафик, который уходит наружу через 53 порт.
Для чего логинимся в Entware по ssh и создаем скрипт
/opt/etc/ndm/netfilter.d/10-ClientDNS-Redirect.sh

ВНИМАНИЕ!
Замените 10.1.1.1 на IP вашего роутера

ВНИМАНИЕ! Замените 10.1.1.1 на IP вашего роутера

Делаем 10-ClientDNS-Redirect.sh исполняемым:
chmod +x /opt/etc/ndm/netfilter.d/10-ClientDNS-Redirect.sh

Проверяемся на утечки.

Отныне используемые DNS сервера будут находится рандомно по всему миру, а трафик к ним будет шифроваться.

Entware — это менеджер ПО для встраиваемых систем, который открывает доступ к огромному количеству (более 1500) пакетов программ для Linux, расширяя возможности устройства, на котором он установлен. Чаще всего поддержкой Entware обладают продвинутые маршрутизаторы.

Зачем и кому вообще может понадобиться Entware на Android-боксе? Конечно, всё это для гиков и пытливых пользователей. Для тех, кто ищет, как ещё можно расширить функциональность своего бокса, как переложить определённые задачи на Android-бокс. Возьмите для простого примера топовые маршрутизаторы Keenetic Ultra или Keenetic Giga, которые сделаны на достаточно мощном SoC MediaTek MT7621AT (2 ядра MIPS1004Kc 880 МГц). А у вас в тумбочке под ТВ может простаивать большую часть времени копеечный китайский бокс с SoC Amlogic S912 (8 ядер ARM Cortex-A53 до 1,5 ГГц). Торрент-клиент Transmission на Keenetic Ultra выжмет 6-11 Мбайт/с максимум. А тот же Transmission, установленный из Entware, на боксе легко выжмет под 30 Мбайт/с, ограничиваясь лишь скоростью интерфейса USB 2.0. А может вам нужна удалённая система с доступом по SSH для простых экспериментов. Например, с интерпретатором Python, Ruby, PHP, Perl. Бокс легко с этим справится.

Никаких изменений в самой системе Android (TV) не произойдёт. Вам не нужно будет отдельно ставить Linux на бокс, специально перезагружать его в эту систему. Вы буду продолжать пользоваться Android (TV), как и раньше. А в фоне появится возможность использовать инструменты из Entware.



Содержание
Полная инструкция по установке
  • Не на все боксы можно установить Entware, но на большинство. Причины разные.
  • В системе на боксе должен быть root-доступ.
  • В системе на боксе должна быть поддержка скриптов init.d (метод добавления такой поддержки индивидуален для каждого бокса).

Разворачивать Entware будем во внутренней пользовательской памяти бокса. Чаще всего она доступна по пути "/data/media/0". При необходимости используйте другой путь или внешний носитель (он должен быть с файловой системой EXT3/4).

Установите программу Terminal Emulator. И запустите её.

Создайте папку entware внутри пользовательской памяти:

Для Entware нужны будут системные папки /bin и /opt, которых у вас нет. В bin будет находится ссылка на файл /system/bin/sh, а opt будет ссылаться на папку entware. Для их создания нужно будет временно разрешить запись в корневой папке.

Теперь вам нужно самостоятельно решить, для какой архитектуры устанавливать Entware — ARMv7 (32-разрядная) или AArch64 (64-разрядная). Зависит от того, какая у вас операционная система на боксе. Например, современные системы для Amlogic (как и процессоры) 64-разрядные. Можете спокойно выбрать универсальный вариант ARMv7, он будет работать в обоих случаях.
или

После установки нужно сделать небольшую корректировку. Некоторым программам из Entware может понадобиться файл /etc/resolv.conf, которого у вас в системе нет. Мы создадим ссылку на этот файл.

Почти всё готово. Entware уже полноценно работает. Осталось только сделать скрипт 01entware для init.d, чтобы службы Entware запускались автоматически при старте системы. Terminal Emulator можно закрывать, он нам больше не нужен, как и прямой доступ к боксу.

Подключитесь по SSH к боксу. Для Windows можете использовать популярный клиент PuTTY. Пользователь: root, пароль: 12345. Пароль можете изменить с помощью команды passwd.



Установите Midnight Commander (в нём удобный редактор файлов).

Нам нужно создать файл 01entware в папке init.d. Место нахождения этой папки зависит от вашей системы. Самый простой вариант, если у вас в системе используется SuperSU, это папка /system/su.d. Выставите разрешение на запуск для этого скрипта. Если у вас прошивка Ugoos AM3 2.x, то просто в настройках системы включите «Пользовательские скрипты» (Настройки > Системные > Пользовательские скрипты), а сам скрипт положите в папку init.d в корне пользовательской памяти. Дополнительные разрешения выставлять не нужно. Предположим, что у вас в системе есть SuperSU, мы воспользуемся su.d.

Вставьте содержимое (Shift + Insert):

/system/bin/mount -o rw,remount /
/system/bin/mkdir /opt
/system/bin/mkdir /bin
ln -s /system/bin/sh /bin/sh
/system/bin/mount -o ro,remount /

/system/bin/mount -o bind /data/media/0/entware /opt

/system/bin/mount -o rw,remount /system
ln -s /opt/etc/resolv.conf /system/etc/resolv.conf
/system/bin/mount -o ro,remount /system



Сохраните изменения (F2) и выйдите из редактора (F10).

Простая инструкция по установке

Загрузите архив entware_armv7.tar.gz и поместите его в корень пользовательской памяти вашего бокса (распаковывать не надо). Это базовая, уже развёрнутая система Entware (armv7sf-k3.2) с установленными пакетами wget и dropbear (SSH). Загрузите скрипт 01entware. При необходимости измените путь к пользовательской памяти MEDIA_PATH внутри скрипта. Поместите скрипт в папку init.d. Место нахождения этой папки зависит от вашей системы. Самый простой вариант, если у вас в системе используется SuperSU, это папка /system/su.d (воспользуйтесь любым файловым менеджером с поддержкой root). Выставите разрешение на запуск для этого скрипта. Если у вас прошивка Ugoos AM3 2.x, то просто в настройках системы включите «Пользовательские скрипты» (Настройки > Системные > Пользовательские скрипты), а сам скрипт положите в папку init.d в корне пользовательской памяти. Дополнительные разрешения выставлять не нужно.

Перезагрузите бокс. Готово, Entware у вас на боксе. Архив entware_armv7.tar.gz будет удалён автоматически. Если архив не удалён, значит вы выбрали неверную папку init.d (скрипты из которой не запускаются системой) или указали неверный путь MEDIA_PATH.

Подключитесь по SSH к боксу. Для Windows можете использовать популярный клиент PuTTY. Пользователь: root, пароль: 12345. Пароль можете изменить с помощью команды passwd.



Можете установить Midnight Commander и запустить его:

Может установить Python:

Удаление Entware
  1. Удалите скрипт 01entware из папки init.d.
  2. Перезагрузите бокс.
  3. Удалите папку entware из пользовательской памяти.
Пример использования

Простой пример — Transmission. Подключитесь по SSH к боксу. Установите Transmission (демон и web-интерфейс):

Установите mc для удобного редактирования файлов:

На подключённом к боксу диске создайте папку, в которую будут загружаться торренты — Torrents. Идентификатор диска (или путь в целом) у вас будет свой (используйте буфер обмена, если путь сложный):

Откройте конфигурационный файл Transmission:

Параметров у Transmission много. На досуге вы все сможете изучить и изменить (в том числе и через графическую оболочку на других устройствах). Для начала измените самые необходимые параметры:

Вставлять из буфера в mcedit можно с помощью Shift + Insert. Сохраните изменения (F2) и выйдите из редактора (F10).

Осталось немного изменить скрипт запуска Transmission, чтобы демон запускался после того, как в системе будет смонтирован диск (топорно, но для примера сойдёт — вы потом напишите правильный способ), избегая лишних хлопот, например, когда есть незаконченные загрузки:

После первой строчки добавьте следующие команды, заменив путь к вашей папке с торрентами на диске:

while [! -d "/mnt/media_rw/f6f7d733-7c2e-d401-80f3-d7337c2ed401/Torrents" ]
do
sleep 15
done



Сохраните изменения и выйдите из редактора.

Запустите Transmission (после перезагрузки бокса он будет запускаться автоматически):



Или для примера можете поставить netdata.

С помощью браузера подключитесь к вашему боксу (порт 19999) и увидите детальную статистику по ресурсам бокса с диаграммами и графиками.



Или можете примонтировать Яндекс.Диск прямо в файловой системе бокса (можно добавить в автозагрузку).

Entware - это программный репозиторий для встроенных устройств, таких как маршрутизаторы или сетевые хранилища NAS, в котором доступно более 1800 пакетов. Он был основан как альтернатива очень устаревшим пакетам Optware. В течение пяти лет разработки было разработано несколько ответвлений (форков) Entware для работы на NAS, ПК и новых маршрутизаторах ARM. Теперь форки для архитектур x86, x64, MIPS, MIPSEL, ARMv5 и ARMv7 объединены в Entware. Он поддерживается той же командой, что и Entware. См. больше здесь: Entware на Github.

Список пакетов Entware находится здесь, этот список предназначен для ARMv7, но он, скорее всего, похож для всех архитектур.

Не стесняйтесь просить о новых пакетах здесь. Если ваш запрос будет поддержан другими пользователями, нужный пакет будет добавлен в репозиторий. Будьте готовы предоставить отзыв о запрошенном вами пакете.

[edit] Подготовка

[edit] Установка

  1. Подключите USB-накопитель или жесткий диск к маршрутизатору. 'Возможно', потребуется перезагрузить маршрутизатор. Проверьте, появляется ли подключенный накопитель в разделе Services → USB веб-интерфейса. Запишите текущую точку монтирования, например: /tmp/mnt/sda_part1, должно быть /opt, если вы сделали вышеупомянутые инструкции правильно.
  2. Подключитесь к маршрутизатору, используя SSH-клиент PuTTY. Введите следующие команды, используя точку монтирования выше:


Для устройств на базе MIPS (Atheros, не двухъядерный) введите это:


Для устройств на базе MIPSEL (Broadcom, не двухъядерный) введите это:


Для двухъядерных маршрутизаторов на базе ARMv7 введите это:

  • Третья команда сверху sh generic.sh запускает сценарий установки, который скачивает несколько файлов из Интернета и настраивает Entware. Скорее всего, он покажет несколько пакетов, которые не имеют действительной архитектуры, просто проигнорируйте их. Они будут отображаться при запуске любой команды opkg.


После завершения установки запустите обновление:

Последний шаг - добавить следующие команды в сценарий запуска (вкладка Administration → Commands). Значение sleep можно изменить, но 10 достаточно для большинства жестких дисков / маршрутизаторов:


Примечание. Не добавляйте ничего в переменные PATH или LD_LIBRARY_PATH, они уже содержат необходимый каталог /opt.


Примечание. Имейте в виду, что у маршрутизаторов ограничена оперативная память, а у некоторых - слабый процессор, не ожидайте, что устройство стоимостью 10 или 20 долларов сможет, например, без проблем обмениваться файлами по протоколу P2P (программа-клиент Transmission).


Установка завершена

Теперь маршрутизатор готов к установке любых пакетов Entware. Посмотрите следующую ссылку на спискок пакетов для архитектуры MIPSEL Package List for MIPSEL, скорее всего, одинаковый для всех архитектур.


Примечание: вы также можете запустить команду opkg list из командной строки маршрутизатора, чтобы увидеть список пакетов.

[edit] Установка пакета

Перед установкой пакетов запустите обновление, а затем выполните установку:

Примечание. Обновление может завершиться ошибкой при изменении зависимостей. На странице Entware Wiki сказано, что нужно удалить и заново установить пакет: Note about pkg upgrades.

[edit] Entware Wiki

Также смотрите страницу Entware Wiki для получения дополнительной информации.

[edit] Обновление DD-WRT

Перед обновлением DD-WRT лучше всего удалить накопитель с Entware или хотя бы отключить поддержку USB (USB support). Обновление DD-WRT не должно вызывать проблем при установке Entware, если разработчики не изменяют переменные PATH или LD_LIBRARY_PATH, упомянутые выше. После обновления просто подключите диск обратно или снова включите поддержку USB. Затем откройте терминал SSH и введите следующие команды:

Entware — это передовой репозиторий (хранилище), который позволяет легко устанавливать и удалять Linux-приложения в консоли роутера. В отличие от Optware, находящегося в заброшенном состоянии, Entware ежемесячно обновляется.

Для успешной работы Entware необходимо отформатировать раздел на microcd-накопителе в файловую систему Ext2/3/4/exfat/ntfs. Для этого вынимаем LTE модем из роутера и вставляем в компьютер, где через акроникс в windows форматируем его в ext4, удалив полностью разделы с карты и создав заново, рекомендуется первый раздел сделать объёмом 10 процентов от объёма оперативки роутера, то-есть если 128 мегабайт, то как минимум 12 мегабайт выделить на файл подкачки SWAP либо сделать его равному объёму оперативной памяти роутера 128 мегабайт. Второй раздел в ext4 любого размера, можно также добавить третий раздел в exfat.
После того как подготовленный носитель будет смонтирован (логикой прошивки после загрузки роутера или вручную), необходимо в его корне создать папку с именем opt любым известным вам способом. Удобно её создать через SMB окружение виндоус, для этого втыкаем LTE модем или 3G модем с флешкой в роутер и включаем его. После загрузки в сетевом окружении появятся диски ext4 и exfat. Заходим на диск ext4 и создаём папку opt. Далее заходим в админку роутера на прошивке Padavan в Дополнительно/Приложения USB/Разрешить запуск Optware? и выбираем Entware. Нажимаем применить и перезагрузить роутер. После загрузки будут созданы необходимые папки и роутер будет готов к установке Entware. Так как мы используем в качестве интернета USB модем, то необходимо выполнить команду вручную через sh или в админке в разделе администрирование /usr/bin/opt-opkg-upd.sh эта команда отрабатывает раньше чем появится интернет на модеме, поэтому автоматика не может полностью установить entware, так как модем определяется сначала как microcd и только потом CDC карта. Итак интернет появился вводим /usr/bin/opt-opkg-upd.sh произведётся до качка opkg пакетов и обновится репозиторий.
Готово!
Перед установкой любых приложений настоятельно рекомендуется обновлять информацию о репозитории командой opkg update
Теперь можно ставить любой пакет командой opkg install пакет
Удалить пакет можно командой opkg remove пакет
Используйте opkg list для вывода списка доступных в репозитории пакетов.
Для получения дополнительной информации наберите opkg --help
Можно искать пакеты по именам и описаниям с помощью opkg find "*game*"

Если для какого-либо установленного пакета в папке /opt/etc/init.d определён стартовый скрипт, то прошивка будет использовать его:

  • при старте системы для автоматического запуска сервиса,
  • при ребуте, для грациозного завершения работы сервиса.

Прошивка создаёт примеры таких скриптов — S01system и S10iptables. Любой из них может принимать параметры start и stop для запуска и остановки сервиса соответственно. При необходимости вы можете создавать свои стартовые скрипты по образцу.

Помимо перечисленных выше действий есть моменты, которые могут быть в дальнейшем вам полезны.

Если у вас остались вопросы, оставляйте свои замечания и пожелания в комментариях, либо дополняйте существующее.

В следующей теме мы рассмотрим установку web сервера, который можно использовать для обработки iptv плейлистов с разбиением на категории и логотипами для любых листов скаченных с разных форумов, например плейлисты для iptvplayer v49 и выше и любых других, которые будут уже работать на любом плеере, а не только в iptvplayer v49 и выше. Хотя можно не заморачиваться и подождать, когда софтописатели добавят схожий функционал в свои разработки, но а разбиение по категориям будут актуально ещё долго в вашем веб сервере, который будет доступен только для ваших устройств.

Читайте также: