Для работы проектов iXBT.com нужны файлы cookie и сервисы аналитики.
Продолжая посещать сайты проектов вы соглашаетесь с нашей
Политикой в отношении файлов cookie
Добавляем поддержку репозитория Entware на Android-боксе
Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com
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 на некоторых Android-устройствах — это «кривая» штатная программа wget (из busybox), которая не позволит вам развернуть Entware, или её отсутствие. opkg использует эту программу. Вам придётся самостоятельно найти подходящий «бинарник» wget и добавить его в систему, если вы столкнётесь с проблемой. Или просто поставить «правильный» BusyBox. Избежать этого можно, если вы воспользуетесь «Простой инструкцией по установке» — там разворачивается уже предустановленная система Entware (с предустановленным пакетом wget).
Разворачивать Entware будем во внутренней пользовательской памяти бокса. Чаще всего она доступна по пути "/data/media/0". При необходимости используйте другой путь или внешний носитель (он должен быть с файловой системой EXT3/4).
Создайте папку entware внутри пользовательской памяти:
cd /data/media/0
mkdir entware
Для Entware нужны будут системные папки /bin и /opt, которых у вас нет. В bin будет находится ссылка на файл /system/bin/sh, а opt будет ссылаться на папку entware. Для их создания нужно будет временно разрешить запись в корневой папке.
mount -o rw,remount /
mkdir /opt
mkdir /bin
ln -s /system/bin/sh /bin/sh
mount -o ro,remount /
mount -o bind /data/media/0/entware /opt
Теперь вам нужно самостоятельно решить, для какой архитектуры устанавливать Entware — ARMv7 (32-разрядная) или AArch64 (64-разрядная). Зависит от того, какая у вас операционная система на боксе. Например, современные системы для Amlogic (как и процессоры) 64-разрядные. Можете спокойно выбрать универсальный вариант ARMv7, он будет работать в обоих случаях.
После установки нужно сделать небольшую корректировку. Некоторым программам из Entware может понадобиться файл /etc/resolv.conf, которого у вас в системе нет. Мы создадим ссылку на этот файл.
Установите SSH-сервер (dropbear) и запустите основной скрипт Entware:
/opt/bin/opkg install dropbear
/opt/etc/init.d/rc.unslung start
Почти всё готово. Entware уже полноценно работает. Осталось только сделать скрипт 01entware для init.d, чтобы службы Entware запускались автоматически при старте системы. Terminal Emulator можно закрывать, он нам больше не нужен, как и прямой доступ к боксу.
Подключитесь по SSH к боксу. Для Windows можете использовать популярный клиент PuTTY. Пользователь: root, пароль: 12345. Пароль можете изменить с помощью команды passwd.
Установите Midnight Commander (в нём удобный редактор файлов).
opkg install mc
Нам нужно создать файл 01entware в папке init.d. Место нахождения этой папки зависит от вашей системы. Самый простой вариант, если у вас в системе используется SuperSU, это папка /system/su.d. Выставите разрешение на запуск для этого скрипта. Если у вас прошивка Ugoos AM3 2.x, то просто в настройках системы включите «Пользовательские скрипты» (Настройки > Системные > Пользовательские скрипты), а сам скрипт положите в папку init.d в корне пользовательской памяти. Дополнительные разрешения выставлять не нужно. Предположим, что у вас в системе есть SuperSU, мы воспользуемся su.d.
Сохраните изменения (F2) и выйдите из редактора (F10).
chmod +x /system/su.d/01entware
/system/bin/mount -o ro,remount /system
Всё готово!
Простая инструкция по установке
Загрузите архив 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 и запустить его:
opkg install mc
mc
Может установить Python:
opkg install python3
Удаление Entware
Удалите скрипт 01entware из папки init.d.
Перезагрузите бокс.
Удалите папку entware из пользовательской памяти.
Пример использования
Простой пример — Transmission. Подключитесь по SSH к боксу. Установите Transmission (демон и web-интерфейс):
Установите сертификаты для трекеров, которые используют HTTPS:
opkg install ca-bundle ca-certificates
Установите mc для удобного редактирования файлов:
opkg install mc
На подключённом к боксу диске создайте папку, в которую будут загружаться торренты — Torrents. Идентификатор диска (или путь в целом) у вас будет свой (используйте буфер обмена, если путь сложный):
Параметров у Transmission много. На досуге вы все сможете изучить и изменить (в том числе и через графическую оболочку на других устройствах). Для начала измените самые необходимые параметры:
Вставлять из буфера в mcedit можно с помощью Shift + Insert. Сохраните изменения (F2) и выйдите из редактора (F10).
Осталось немного изменить скрипт запуска Transmission, чтобы демон запускался после того, как в системе будет смонтирован диск (топорно, но для примера сойдёт — вы потом напишите правильный способ), избегая лишних хлопот, например, когда есть незаконченные загрузки:
mcedit /opt/etc/init.d/S88transmission
После первой строчки добавьте следующие команды, заменив путь к вашей папке с торрентами на диске:
Спойлер
while [! -d "/mnt/media_rw/f6f7d733-7c2e-d401-80f3-d7337c2ed401/Torrents" ]
do
sleep 15
done
Сохраните изменения и выйдите из редактора.
Запустите Transmission (после перезагрузки бокса он будет запускаться автоматически):
/opt/etc/init.d/S88transmission start
Готово. Можете с любого устройства (в том числе и смартфона) подключаться к Transmission через web-интерфейс (http://IP_БОКСА:9091/transmission/web/ ). Можете в Windows, например, на ноутбуке использовать Transmission Remote GUI. Практически для всех платформ есть клиент для удалённого управления Transmission, т.к. программа очень популярная.
Или для примера можете поставить netdata.
opkg install netdata
/opt/etc/init.d/S60netdata start
С помощью браузера подключитесь к вашему боксу (порт 19999) и увидите детальную статистику по ресурсам бокса с диаграммами и графиками.
Или можете примонтировать Яндекс.Диск прямо в файловой системе бокса (можно добавить в автозагрузку).
А научился или нет Transmission работать через внешний сервер, на подобии того как это умеет uTorrent?Т.к. не имея белого IP к Transmission не зацепиться, а это не удобно, т.к. я торренты добавляю в обед и сидя на работе.
Нехорошо это, внешние серверы, непонятно под чьим контролем, да для таких чувствительных действий как управление торрентами. Teredo ipv6, ddns и vpn используйте для ваших задач.
Если говорить в общем, то в статье речь не о торрент-клиентах. Он лишь для примера.Если отвечать конкретно на вопрос, то клиентов достаточно. Но в каждом есть нюансы, и вопрос скорости и работы с диском стоит не на последнем месте. Transmission — это универсальное, вымученное годами решение, которое даёт широкие возможности для управления загрузками, при этом стабильно работает в фоне в виде системного процесса. Если есть возможность его использовать и у кого есть желания, то почему бы и нет?
Я ж только ЗА! Просто хотелось понять в чем принципиальная разница. Если этот клиент будет меньше грузить приставку и сможет больше выжимать из дисковой системы, то гуд. Очень понравилось приложение для мониторинга. Может как-то запилю и себе такое. Где еще можно поискать варианты использования?
В основном информация на разных сайтах о реализации каких-то конкретных задач. Много разных решений можно подсмотреть в Каталоге готовых решений Opkg (Keenetic). Не все из них можно применить на боксе, но для ознакомления вполне.
Юрий, а можно этим способом примонтировать smb шару в каталог чтобы он так же виделся в файловой системе? Полезно было бы а то приходится на уровне каждой программы решать вопрос.
Если можно, то не поскажите какие точно команды вводить?
Для чайников в linux))
Это можно делать и без Entware. Но нужна поддержка CIFS в ядре. Такая поддержка есть в прошивке Ugoos AM3, Nvidia Shield TV, Xiaomi Mi Box 3 Enhanced. И у них же есть системные клиенты для монтирования.Поддержку можно добавить (если в системе её нет), но нужен модуль ядра cifs.ko для конкретной системы. Его нужно собирать.
Должно работать и OwnСloud, и NextCloud. Там никакой специфической поддержки в ядре не нужно, только lighttpd и модули php. Конечно, нужно проверять, но китайцы пишут, что работает на Entware под Android.
Нужно это вам, стоит ли это делать, хочется это делать — это вы сами у себя спросите.
Венера — планета, которая многими считается сестрой Земли. Она почти такого же размера, массы и состава, как наша планета, и находится в Солнечной зоне обитаемости. Однако,...
Мышка с первого
взгляда привлекает внимание своей необычной формой с наклоном в 45 градусов. А
когда узнаешь, что она работает по Bluetooth и радиоканалу, имеет встроенный
аккумулятор и...
Высадка на Луну — одно из самых впечатляющих достижений человечества за всю его историю. С 1969 по 1972 годы американские астронавты из миссий Аполлон совершили шесть успешных посадок...
В последнее время часто вижу на али USB шнуры со встроенным
триггером. С разными штекерами и под разное напряжение. С их помощью можно запитать
от повербанка что угодно: ноутбук, роутер, паяльник,...
Искусство всегда поражало нас своими необычными
творениями. Одним из таких необычных произведений искусства является самая
большая подводная скульптура в мире. Источник: www.gismeteo.ru...
Видеорегистратор в форм-факторе накладки на зеркало заднего вида довольно удобное решение для автомобилистов. А если к нему добавить современных возможностей, решение еще станет и практичным....
12 комментариев
Добавить комментарий
Если можно, то не поскажите какие точно команды вводить?
Для чайников в linux))
Спасибо заранее!
Или игра не стоит свеч?
Нужно это вам, стоит ли это делать, хочется это делать — это вы сами у себя спросите.
Добавить комментарий