С недавного я времени стал обладателем Zyxel Keenetic. И моя симпатия к Linux не могла не дотянуться и до этого интернет-девайса. В этом топике я расскажу как можно получить полноценный root и расширить возможности Keenetic'а.
Toolchain, кросс-компиляция и много других страшных слов
Есть много способов получить root на этом устройстве, но все они связаны с перепрошивкой или компиляцией: начиная от использования unsquashfs и заканчивая компиляцией с использованием toolchain. Кстати, zyxel выложил официальный toolchain для этой версии. Его можно найти на сайте производителя.
Небольшое отступление. Скажу лишь, что если вы решили компилировать свои приложения, то лучше брать сторонний toolchain. Скачать его можно здесь. В нём отключена компиляция ядра и сборка файла прошивки и много других правок. Подробнее здесь. Компиляция приложений не входит в рамки данного топика. На хабре про это можно почитать здесь и здесь.
Надеюсь я вас достаточно напугал ссылками про toolchain и кросс-компиляцию и мы можем перейти к лёгкому варианту получения root :)
Респект и уважуха
Разыскивая инфу про героя данного топика я набрёл на топик на одном форуме. Не буду заставлять вас перечитывать всю ветку, просто опишу последовательность действий. Кстати стоит сказать огромное спасибо zyxmon'у. Чьими стараниями мы можем легко получить root и много разных вкусностей на Zyxel Keenetic. О вкусностях я расскажу дальше.
Приступим
Для получения root нам понадобится только usb флёшка или HDD. Отформатируем её в ext2 или ext3. Скачаем отсюда ext_init.sh.tar.gz или ext_init.sh.zip. Распакуем архив и разместим на нашем отформатированном носителе, в директории system/bin, файл ext_init.sh. Не забудем сделать chmod +x ext_init.sh. Далее мы просто вставляем наш usb носитель информации в девайс и ждём пока в логах не появится следующее:
root Downloading busybox
root Unpacking busybox
root Downloading system
root Unpacking system
root Generating rsa/dss keys for dropbear
root Starting dropbear
dropbear[4261] Running in background
Эти радостные строчки говорят что теперь мы можем зайти на наш девайт через ssh. Логин — root,
пароль — zyxel.
Сразу после захода выполняем finish_install.sh в консоле. Этот скрипт создаст нам swap файл, т.к. оперативки на keenetic'е не так много. Мы должны увидеть примерно следующее:
/media/DISK_A1/system/root # finish_install.sh
Creating swap file. Please wait...
128+0 records in
128+0 records out
Setting up swapspace version 1, size = 134213633 bytes
Если с первого раза посыпятся ошибки — запускайте ещё раз. У меня получилось только раза с 3-го. Файл подкачки создаётся единожды — больше запускать finish_install.sh не нужно.
Не забываем сменить стандартный пароль с помощью passwd.
Плюшки
Помимо root мы получаем и большой список пакетов приложений и библиотек для keenetic. Весь список можно посмотреть здесь.
Обновить список пакетов мы можем командой opkg update, а просмотреть с помощью opkg list.
Теперь наконец мы можем поставить midnight commander: opkg install mc.
К сожалени на данный момент плюшек не так много, однако уже сейчас мы можем поставить себе lighttpd + php :) Да и установить обновлённый transmission. Особо хочу отметить minidlna, с помощью которого мы можем смотреть скачанные фильмы на телевизоре прямо с keenetic'а.
После установки minidlna стоит отредактировать путь до ваших медиа-файлов в system/etc/minidlna.conf. Далее делаем первый запуск после утановки: /media/DISK_A1/system/etc/init.d/S50minidlna start. Если у вас прошивка без INOTIFY, то добавленные файлы автоматически индексироваться не будут. Нужно сделать touch file_name.
На последок скажу что все файлы, пакеты находятся на нашем usb носителе. И после его вытаскивания и перезагрузки мы получаем опять самый обычный keenetic.
Список пакетов периодически пополняется, а если есть желающие — то могут помочь zyxmon'у с этим :)
UPD. Zyxmon начал описывать более подробно здесь.