Установка Debian на Asus RT-N66U/AC66U (MIPS) и RT-N18U/AC56U/AC68U/AC87U (ARM)
Коллеги, ниже приведён алгоритм для установки полноценного дистрибутива Debian Stable на наши роутеры без какой-либо модификации прошивки.
Из состава Debian можно будет запускать только нужные вам сервисы, поэтому издержки на подобную «виртуализацию» будут минимальны.
Алгоритм годится для любой прошивки: энтузиасткой, томатовской, мерлиновской или (практически) любой другой, включая Zyxel Keenetic.
В последнем, только отсутствует команда chroot в составе busybox'а, поэтому для кинетиков я её собрал статическим бинарником.
Подготовка файлов на Debian ПК
Debian Testing (Wheezy) на наших роутерах «не взлетит» из-за слишком старого ядра, а вот Debian Stable (Squeeze) — как огонь.
Кто желает, может воспользоваться моим готовым скриптом, здесь я распишу всё по шагам.
На ПК с Debian необходимо приготовить файловую системы дистрибутива для MIPSEL-платформы:
Code:
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 не в корневую файловую систему, а в какую-то папку.
Поправьте одну строчку любым известным вам способом:
Code:
--- 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"
Далее запакуйте приготовленные для роутера файлы и отправьте архив на роутер:
Code:
sudo tar -cvzf ./debian-stable-mipsel.tgz ./debian/
sudo при упаковке не ради красного словца, к ряду файлов подготовленной файловой системе есть доступ только у root'а.
ПК больше не понадобится, остальные манипуляции будут прямо на роутере.
Распаковка файлов на роутере
Выберите папку на USB-носителе, изначально распакованный Debian будет занимать порядка 170 мегабайт:
Code:
cd <папка>
tar -xvzf ./debian-stable-mipsel.tgz
Запустите второй этап установки Debian, уже на роутере:
Code:
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 можно было устанавливать пакеты выполните:
Code:
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
Для ленивых я подготовил архив с уже настроенным дистрибутивом.
Распаковывайте, да используйте!
Вход в chroot-среду
Code:
mount -o bind /dev/ <папка>/debian/dev/
mount -o bind /proc/ <папка>/debian/proc/
mount -o bind /sys/ <папка>/debian/sys/
chroot <папка>/debian /bin/bash
Выход из chroot-среды
Использование chroot-среды
Тут всё зависит только от вашей фантазии, например, можно поставить transmission:
Code:
apt-get update
apt-get install transmission-daemon
Всё:) Он уже работает. Обратите внимание, что в chroot-среде сейчас запущен только выбранный вами сервис transmission-daemon,
никаких других дебиановских программ, включая всю «бороду» rc-скриптов, в памяти нет.
SNB: http://forums.smallnetbuilder.com/sh...ad.php?t=10558
UPD Cоставил скрипт S99debian, который будет запускать и останавливать выбранные пользователем сервисы в среде chroot.
Поместите скрипт в папку /opt/etc/init.d и отредактируйте в нём путь до распакованной Debian-среды.
ARM Для тех, кто пожелает Debian на ARM-based роутере ASUS с прошивкой asuswrt/asuswrt-merlin запилил бинарник chroot.
Базовую среду Debian придётся приготовить самому, используя эти скрипты. Только замените в них "mipsel" на "armel".
SNB: http://forums.smallnetbuilder.com/sh...ad.php?t=15528