Довольно долго у меня был в использовании легендарный D-Link DIR-320 с «прошивкой Олега и энтузиастов». Но в доме появились устройства с WIFI n и я начал задумываться о том, что пора бы поменять роутер. После прочтения множества обзоров и мнений мой выбор пал на Zyxel Keenetic. Об этом роутере уже писали на хабре здесь и здесь . Из последней статьи можно узнать, как на роутер можно установить дополнительный софт из репозитария Zyxmon . Репозитарий молодой и поддерживается одним человеком, поэтому софта там не так много. Что делать, если нужного софта там не оказалось? Правильно, собрать его самостоятельно!

Для этого нам потребуется установленная ОС семейства GNU/Linux. Я буду все описывать на примере Ubuntu 11.04

Устанавливаем нужные пакеты в систему:
sudo apt-get install git gawk libncurses5-dev libz-dev subversion flex bison autoconf libtool

Cкачиваем исходники с сайта zyxel

wget http://zyxel.ru/sites/default/download/Keenetic/firmware/zyxel_keenetics_gpl_v.1.00_2_D0.tar.bz2

и распаковываем архив с исходниками в папку keenetic

tar -xf zyxel_keenetics_gpl_v.1.00_2_D0.tar.bz2
mv -fv zyxel_keenetics_gpl_v.1.00_2_D0_110311 ~/keenetic


Для сборки прошивки, например, для Кинетика заходим в папку keenetic и выполняем
cd ~/keenetic
./configure.sh keenetic


После этого запускаем сборку командой
make V=99

Собранную прошивку можно забрать в папке bin

Для сборки пакетов создаем папку keenetic-packages и сливаем туда исходники
mkdir ~/keenetic-packages
cd ~/keenetic-packages
svn checkout http://zyxel-keenetic-packages.googlecode.com/svn/trunk/ .


Далее копируем папку dl из исходников zyxel
cp -f ~/keenetic/dl ~/keenetic-packages/

Копируем файл конфига keenetic.config из папки configs в корень проекта и переименовываем его в .config
cp ~/keenetic-packages/configs/keenetic.config ~/keenetic-packages/.config

Идем в папку с проектом
cd ~/keenetic-packages

Выполняем
make menuconfig

для того, чтобы убедится что все в порядке, нажимаем esc и выбираем yes

Запускаем сборку проекта
make V=99

Эта сборка нужна, чтобы собрался тулчейн и библиотеки, входящие в прошивку. Когда закончится, удаляем все из bin/keenetic/packages
rm -rf ~/keenetic-packages/bin/keenetic/packages/*

Ставим пакеты из репозитария openwrt
./scripts/feeds update -a
./scripts/feeds install -a


Удаляем файл .config и вместо него записываем configs/packages.config
rm -f ~/keenetic-packages/.config
cp ~/keenetic-packages/configs/packages.config ~/keenetic-packages/.config


Запускаем
make menuconfig

и выбираем пакеты, которые нам нужны.

Для сборки еще раз запускаем
make V=99

После окончания сборки пакеты можно будет найти в ~/keenetic-packages/bin/keenetic/packages/