Log in

Bekijk de volledige versie : Установка Debian на Asus RT-N66U/AC66U (MIPS) и RT-N18U/AC56U/AC68U/AC87U (ARM)



ryzhov_al
25-03-2013, 16:32
Коллеги, ниже приведён алгоритм для установки полноценного дистрибутива Debian Stable на наши роутеры без какой-либо модификации прошивки.
Из состава Debian можно будет запускать только нужные вам сервисы, поэтому издержки на подобную «виртуализацию» будут минимальны.

Алгоритм годится для любой прошивки: энтузиасткой, томатовской, мерлиновской или (практически) любой другой, включая Zyxel Keenetic.
В последнем, только отсутствует команда chroot в составе busybox'а, поэтому для кинетиков я её собрал статическим бинарником (http://files.ryzhov-al.ru/Routers/chroot-binary/chroot.tgz).

Подготовка файлов на Debian ПК

Debian Testing (Wheezy) на наших роутерах «не взлетит» из-за слишком старого ядра, а вот Debian Stable (Squeeze) — как огонь.
Кто желает, может воспользоваться моим готовым скриптом (http://files.ryzhov-al.ru/Routers/chroot-debian/prepare.sh), здесь я распишу всё по шагам.

На ПК с Debian необходимо приготовить файловую системы дистрибутива для MIPSEL-платформы:


sudo apt-get install debootstrap
sudo debootstrap --arch mipsel --foreign --variant=minbase --exclude=yaboot,udev,dbus --include=mc,aptitude stable ./debian ftp://ftp.debian.org/debian
И подправить скрипт, финиширующий установку на роутере, чтобы он не «ругался» на то,
что вы устанавливаете Debian не в корневую файловую систему, а в какую-то папку.
Поправьте одну строчку любым известным вам способом:


--- a/debian/debootstrap/functions
+++ b/debian/debootstrap/functions
@@ -1252,7 +1252,7 @@
case "$HOST_OS" in
*freebsd*|hurd*)
;;
- *)
+ nothing)
mknod "$1/test-dev-null" c 1 3 || return 1
if ! echo test > "$1/test-dev-null"; then
rm -f "$1/test-dev-null"
Далее запакуйте приготовленные для роутера файлы и отправьте архив на роутер:


sudo tar -cvzf ./debian-stable-mipsel.tgz ./debian/
sudo при упаковке не ради красного словца, к ряду файлов подготовленной файловой системе есть доступ только у root'а.
ПК больше не понадобится, остальные манипуляции будут прямо на роутере.

Распаковка файлов на роутере

Выберите папку на USB-носителе, изначально распакованный Debian будет занимать порядка 170 мегабайт:


cd <папка>
tar -xvzf ./debian-stable-mipsel.tgz
Запустите второй этап установки Debian, уже на роутере:


mount -o bind /dev/ <папка>/debian/dev/
mount -o bind /proc/ <папка>/debian/proc/
mount -o bind /sys/ <папка>/debian/sys/
chroot ./debian /debootstrap/debootstrap --second-stage
В принципе уже всё. Для того, чтобы в новой Debian можно было устанавливать пакеты выполните:


echo deb ftp://ftp.us.debian.org/debian/ stable main > ./debian/etc/apt/sources.list
echo nameserver 8.8.8.8 > ./debian/etc/resolv.conf
Для ленивых я подготовил архив (http://files.ryzhov-al.ru/Routers/chroot-debian/debian-stable-prepared.tgz) с уже настроенным дистрибутивом.
Распаковывайте, да используйте!

Вход в chroot-среду


mount -o bind /dev/ <папка>/debian/dev/
mount -o bind /proc/ <папка>/debian/proc/
mount -o bind /sys/ <папка>/debian/sys/
chroot <папка>/debian /bin/bash

Выход из chroot-среды


exit

Использование chroot-среды

Тут всё зависит только от вашей фантазии, например, можно поставить transmission:


apt-get update
apt-get install transmission-daemon
Всё:) Он уже работает. Обратите внимание, что в chroot-среде сейчас запущен только выбранный вами сервис transmission-daemon,
никаких других дебиановских программ, включая всю «бороду» rc-скриптов, в памяти нет.

SNB: http://forums.smallnetbuilder.com/showthread.php?t=10558

UPD Cоставил скрипт S99debian (http://files.ryzhov-al.ru/Routers/chroot-debian/S99debian), который будет запускать и останавливать выбранные пользователем сервисы в среде chroot.
Поместите скрипт в папку /opt/etc/init.d и отредактируйте в нём путь до распакованной Debian-среды.

ARM Для тех, кто пожелает Debian на ARM-based роутере ASUS с прошивкой asuswrt/asuswrt-merlin запилил (http://files.ryzhov-al.ru/Routers/chroot-binary/chroot-arm-asuswrt.tgz) бинарник chroot.
Базовую среду Debian придётся приготовить самому, используя эти скрипты (http://files.ryzhov-al.ru/Routers/chroot-debian/). Только замените в них "mipsel" на "armel".

SNB: http://forums.smallnetbuilder.com/showthread.php?t=15528

skuwakin
25-03-2013, 19:08
Спасибо за труды! Надо будет попробовать, уж если оно на rt-n16 работает, то на 66-ом летать будет... :D

Radjah
27-03-2013, 03:30
Чет даже попробовать захотелось. Вот только боюсь, что памяти свободной не хватит. Почти всю трансмиссия захватила. Так бы понатыкал всяких полезняшек. :)

skuwakin
28-03-2013, 16:56
доброго времени суток, Александр. Скачал ваш архивчик, все окейно встало, запускаю дебиан, и он пишет
bash: warning: setlocale: LC_ALL: cannot change locale (ru_RU.UTF-8)

и ест-но русь не отбражается

поиском поискал, не нашел решения... Подскажите плиз, как это поправить. И еще тупй вопрос, а почему в debian нет многих ходовых команд, например ps

заранее спасибо.

ryzhov_al
28-03-2013, 17:23
доброго времени суток, Александр. Скачал ваш архивчик, все окейно встало, запускаю дебиан, и он пишет
bash: warning: setlocale: LC_ALL: cannot change locale (ru_RU.UTF-8)

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

apt-get install locales
dpkg-reconfigure locales
Выберите из списка локаль ru.UTF-8 и назначьте её основной.

skuwakin
30-03-2013, 15:20
Я здесь напишу один ответ, но в дальнейшем обещайте с Дебианом общаться через его родную документацию, коей полным-полно на всех возможных языках.

Спасибо, все получилось. Теперь, если позволите, чисто теоритический вопрос... Как думаете, вот это http://forum.torrentstream.org/index.php?topic=1464.0 реално поднять на 66-ом для просмотра через nstreamplayer_lmod (или просто lmod) на телевизоре. То есть от всего этого хозяйства для линукса нужны, насколько я понимаю, только серверные (образно говоря) дела.

ryzhov_al
30-03-2013, 15:37
Как думаете, вот это http://forum.torrentstream.org/index.php?topic=1464.0 реално поднять на 66-ом для просмотра через nstreamplayer_lmod (или просто lmod) на телевизоре.Это какая-то проприетарная… программа. Как предлагаете её на MIPSEL-платформу втащить? Она только в x86-бинарниках.

Radjah
10-04-2013, 17:05
Для России ftp://ftp.debian.org/debian лучше заменить на http://mirror.yandex.ru/debian/
Всяко быстрее будет :)

skuwakin
14-05-2013, 21:56
доброго времени суток, Александр. Только сильно не материтесь... Поясните плиз некоторые моменты, у самого не хватает мозгов...

1. Не понятно, почему нет очень многих команд... ps,top и т.п.
2. не понятно как проверить сеть из под дебиана. ведь даже команды ping нет.

или поясните в чем отличие этого дебиана от ообычного. Просто закралась у меня очень дурная идея... Попробовать vlc из под дебиана...

Решил я пересоздать debian, но не могу удалить три папки dev,proc и sys из каталога, куда был развернут debian. Мне конечно стыдно, но что-то идей пока нема... Подскажите плиз куда копать...

MercuryV
14-05-2013, 22:03
не могу удалить три папки dev,proc и sys из каталога, куда был развернут debian
отмонтировать сначала?

ryzhov_al
16-05-2013, 19:17
тока сильно не пинайте... Ну не понимаю я как оно работает... Команды wget нет, а пакеты ставятся... но ведь как-то же пакеты скачиваются.. Подскажите плиз как с рук вызвать wget?Можно так (http://forums.smallnetbuilder.com/showpost.php?p=64963&postcount=7).

skuwakin
19-05-2013, 19:45
Можно так (http://forums.smallnetbuilder.com/showpost.php?p=64963&postcount=7).

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

Весь мозг сломал... В очередной раз убеждаюсь, что линукс хорош только тогда, когда он настроен. Иначе там без бутылки (и не одной) не разберешься.

Продолжаю я тут решать свою хотелку с vlc... Скомпилил все необх.кодеки (h264,lame,ffmpeg) а вот vlc, гад, собираться не хочет, поставил из репы. встал норамально, работает, но он не видит уст. кодеков. В инете полно вопросов про это, но решения что-то не видно, либо оно не срабатывает .

подскажите плиз направление куда хоть копать...

===================================

UPD Проблема с кодеками решена. Теперь можно двигаться дальше....

Radjah
08-12-2013, 17:58
Инструкция с chroot на RT-N66U с TomatoUSB у меня не сработала. wheezy убежал далеко с той поры, и ядро в прошивке для него слишком старое. :(

ryzhov_al
08-12-2013, 18:04
Инструкция с chroot на RT-N66U с TomatoUSB у меня не сработала. wheezy убежал далеко с той поры, и ядро в прошивке для него слишком старое. :(О чём я и говорил в инструкции. Посмотри повнимательнее.

ryzhov_al
07-01-2014, 08:28
Для тех, кто пожелает Debian на ARM-based роутере ASUS с прошивкой asuswrt/asuswrt-merlin запилил (http://files.ryzhov-al.ru/Routers/chroot-binary/chroot-arm-asuswrt.tgz) бинарник chroot. Базовую среду Debian придётся приготовить самому, используя эти скрипты (http://files.ryzhov-al.ru/Routers/chroot-debian/). Только замените в них "mipsel" на "armel".

ryzhov_al
19-05-2014, 16:58
На мой взгляд ничего не мешает использовать на ARM-девайсах существующие пакеты OpenWRT и Debian в среде chroot. Бинарники chroot желающим я собирал, всё летает как огонь.

http://wl500g.info/showthread.php?30939-%D3%F1%F2%E0%ED%EE%E2%EA%E0-Debian-%ED%E0-Asus-RT-N66U-AC66U-AC56U-AC68U-AC87U


Друзья, разработка поддержки ARM роутеров примерно на каком этапе?:(На каком этапе? Сесть да сделать. Вот и все этапы.

Но, к сожалению, мы не располагаем нужным количеством времени для того, чтобы поддерживать три платформы.

Vitaliy69
19-05-2014, 20:21
Спасибо! Debian хватит. OpenSSL только там, надеюсь, исправленный на репозитариях выложен? Так понял, этот (http://files.ryzhov-al.ru/Routers/chroot-debian/debian-stable-prepared.tgz) архив для MIPSEL, а для ARM подобный архив для ленивых есть? :)

ryzhov_al
20-05-2014, 05:27
Спасибо! Debian хватит. OpenSSL только там, надеюсь, исправленный на репозитариях выложен? Так понял, этот (http://files.ryzhov-al.ru/Routers/chroot-debian/debian-stable-prepared.tgz) архив для MIPSEL, а для ARM подобный архив для ленивых есть? :)Здесь (http://files.ryzhov-al.ru/Routers/chroot-binary/). Инструкция по установке Debiana — тут (http://forums.smallnetbuilder.com/showthread.php?t=15528).

Radjah
20-05-2014, 13:41
Пробовал для помидора сам собирать chroot-окружение. Этап установки на роутере фейлится с жалобой на старую libc. :(
Я так понимаю, что ядро там помнит свежесть экскрементов больших волосатых слонов.

ryzhov_al
20-05-2014, 13:48
Radjah, а Wheezy никто тебе не обещал. Пользуй экскременты^W Lenny:)

satch
16-07-2014, 14:12
ryzhov_al, а по entware для arm есть новости? у вас в подписи WD My Book Live который как раз на arm :) просто для меня, как для владельца d'link dns-327l, это вопрос очень актуален, так т.к. текущий репозиторий ipkg для arm http://ipkg.nslu2-linux.org/feeds/optware/cs05q3armel/cross/stable/ безбожно устарел :(

ryzhov_al
16-07-2014, 14:30
у вас в подписи WD My Book Live который как раз на arm :)Нет, это архитектура PowerPC. На 256МБ я успешно использую (https://code.google.com/p/mbl-common/) последнее LTS-ядро 2.6 и полнокровный Debian Wheezy.


просто для меня, как для владельца d'link dns-327l, это вопрос очень актуален, так т.к. текущий репозиторий ipkg для arm http://ipkg.nslu2-linux.org/feeds/optware/cs05q3armel/cross/stable/ безбожно устарел :(Я не понимаю зачем ждать ARM-фид, когда мощности (даже таких старых как Iomega iConnect!) ARM-девайсов позволяют использовать полноценный Debian в chroot-среде. Зачем тащить uClibc туда, где не чувствуется никаких издержек от использования полноценной glibc?

PS Из ARM-девайсов у меня дома только Raspberry Pi, но насколько понимаю, он несколько устарел по сравнению с ARM-чипсетами роутеров. У RPi armv6 hard float, поэтому обкатывать на нём ARM-фид Entware я не собираюсь.

Spartach
16-07-2014, 14:36
ryzhov_al, подскажите пожалуйста, где можно чуть подробнее почитать об использовании полноценного Debian?
Правильно ли я понимаю, в этом случае получаем "мини-сервачёк" и всё настраиваем руками?
В случае с репозиторием под ARM "вкусным" кажется тот факт, что основными настройками роутера рулим привычным web интерфейсом, а вот всё что свыше - вручную.
Например понравилась прошивка мод-мерлина, на RT-N16 прикручивается EntWare, а вот на AC68 уже ни как...
Особенно обидно, что из того что крайне нужно - только OSCAM ))))))

UPD: нашел, прикольно, надо попробовать...
http://forums.smallnetbuilder.com/showthread.php?t=15528

ryzhov_al
16-07-2014, 15:19
Например понравилась прошивка мод-мерлина, на RT-N16 прикручивается EntWare, а вот на AC68 уже ни как...Как это никак?! Единственный недостающий для этих целей бинарник chroot я выкладывал, люди пользуются вовсю. Вот (http://forums.smallnetbuilder.com/showthread.php?t=15528) Debian для ARM, вот (http://forums.smallnetbuilder.com/showthread.php?t=10558) для MIPS.

satch
16-07-2014, 19:01
Вот Debian для ARM

спасибо! на NAS'е отлично заработало :)

Spartach
22-07-2014, 08:31
ryzhov_al, спасибо! Круто!!!
При том интересно: берём мод мерлина для AC68U, настраиваем OpenVPN сервер идущий в самой прошивке, клиент десктоп, скорость - 1.5-2 МБ/с. Жесть...
Запускаем сервер в окружении debian, скорость - 4-5 МБ/с.
Существенная разница... :)
Берём N16 с тем-же модом мерлина, но OpenVPN уже клиентом, скорость 1.5-2 МБ/с... где-то я уже это видел... ))
Вопрос, нет ли для mips debian wheezy?

ryzhov_al
22-07-2014, 09:14
Вопрос, нет ли для mips debian wheezy?Есть (http://forums.smallnetbuilder.com/showthread.php?t=14573) Debian, но не Wheezy. На MIPS слишком старое ядро для того, чтобы взлетела Wheezy.

Spartach
22-07-2014, 09:16
ryzhov_al, понял, спасибо!
Очень жаль... :(
На том, что есть update/upgrade проходит не корректно.

vit9696
02-08-2014, 16:32
Как это никак?! Единственный недостающий для этих целей бинарник chroot я выкладывал, люди пользуются вовсю. Вот (http://forums.smallnetbuilder.com/showthread.php?t=15528) Debian для ARM, вот (http://forums.smallnetbuilder.com/showthread.php?t=10558) для MIPS.
Извините, а для tomato shibby подобное окружение Debian существует (под ARM)?

akbor
29-09-2014, 21:58
Привет,

а есть ли какие-нибудь новые подвижки в отношении Entware для рутеров на ARM (RT-AC58U и RT-AC68U). Или всё есть так как есть? :)

ryzhov_al
30-09-2014, 06:10
Хорошей идее надо некоторое время, чтобы созреть и у меня идея ARM-фида для роутеров вызрела в следующее заключение. Я выражу своё мнение, которое не совпадает в полном объёме с моими коллегами по развитию Entware: не тащите старьё на новые платформы.

Самый младший ARM-роутер в линейке Asus несёт на борту двухядерный ARM v7 процессор, работающий на частоте 800МГц и имеет 256МБ оперативной памяти. Напомню, что Raspberry Pi имеет ARM v6, но гоняет полноценный дистрибутив Debian так, что шуба заворачивается. Мой NAS на одноядерном процессоре PowerPC @800MHz, 256MB RAM с завода идёт с полнокровной Debian и способен отдавать по SAMBA 100МБ/c. Забудьте про подход к софту времён Optware и\или OpenWRT, оставьте в прошлом ограничения uClibc и минималистское содержание пакетов OpenWRT, у вас больше нет этих искусственных ограничений.

Не ждите появления фида ARM в Entware, я сам не буду его использовать, и, соответственно, не стану способствовать его популяризации. Предлагаю подискутировать на эту тему, после чего навсегда её закрыть.

Spartach
30-09-2014, 07:58
Поддержу дискуссию.
Пользую RT-AC68U.
После того, как вы (ryzhov_al) открыли мне глаза на полноценный debian (под ARM архитектуру), согласен с отсутствием необходимости поисков костылей для использования существующего репозитория (под MIPS).
Всё что требуется без труда собирается прямо на роутере в окружении debian.

AndreyPopov
30-09-2014, 08:07
Поддержу дискуссию.
Пользую RT-AC68U.
После того, как вы (ryzhov_al) открыли мне глаза на полноценный debian (под ARM архитектуру), согласен с отсутствием необходимости поисков костылей для использования существующего репозитория (под MIPS).
Всё что требуется без труда собирается прямо на роутере в окружении debian.
это могут сделать 5% продвинутых пользователей, остальным 95% лучше наличие уже откомпиленных пакетов в репозитраии.

ryzhov_al
30-09-2014, 08:34
это могут сделать 5% продвинутых пользователей, остальным 95% лучше наличие уже откомпиленных пакетов в репозитраии.
Количество пакетов в Debian:

wget -q -O - http://ftp.ru.debian.org/debian/dists/wheezy/main/binary-armhf/Packages.gz | zcat | grep ^Package | wc -l

35095
Количество пакетов в Entware:

wget -q -O - http://entware.wl500g.info/binaries/entware/Packages.gz | zcat | grep ^Package | wc -l

1807
Вопросы?:)

AndreyPopov
30-09-2014, 09:09
количество зарегистрированных пользователей
http://wl500g.info/memberlist.php
42311

сколько из них сами компилируют нужную прошивку?

есть вопросы?

ryzhov_al
30-09-2014, 09:20
Почему кому-то придётся что-либо компилировать при использовании Debian, когда в нём на порядок больше готовых пакетов, чем Entware? Зачем для этого "компилировать прошивку"?
Выбранные сервисы из состава Debian выполняются в chroot-среде.

Spartach
30-09-2014, 11:03
AndreyPopov, единственное что может потребоваться "не продвинутому" пользователю, это скрипт автоматического разворачивания debian окружения.
Что не так трудно будет сделать при необходимости.
В остальном - всё аналогично использованию репозитория MIPS на "старых" устройствах.