Как я собирал свой мод dd-wrt для ASUS RT-N13U

в 16:39, , рубрики: dd-wrt, embedded linux, метки: ,

Начну с предыстории. Попался мне в руки за недорого сей чудо девайс ASUS RT-N13U и сразу появилось желание использовать его по полной, но к сожалению родная прошивка оставляла желать лучшего и я побрел искать альтернативы на просторах интернета и набрел на dd-wrt. Все в ней было хорошо, вот только swap и файловые системы она не поддерживала для моего роутера.

Долго я ждал чуда, но увы не дождался и принял решение сделать свою прошивку на базе оригинальной. Почитал wiki на сайте dd-wrt и принялся за работу.

Разработчики dd-wrt, как оказалось, предоставили полностью <a rel="nofollow" href="http://www.dd-wrt.com/wiki/index.php/Development">готовую среду разработки, но только для 64-bit систем, что не могло не расстроить, т.к. в мои планы не входила установка ещё одной операционной системы. Поэтому скачал buildroot 2011.2 и решил собрать прошивку используя конфигурационные файлы предоставленные разработчиками dd-wrt, с определёнными изменениями конечно же. После пары часов борьбы rootfs так собрать и не удалось, куча исходников нужных для компиляции почему-то на svn сервер dd-wrt не попали.

Сдаваться не хотелось и я решил разобрать оригинальную прошивку, добавить в неё нужные модули скомпилировав ядро, ну и в конце концов собрать свой мод прошивки. Для быстро разбора прошивки я использовал Firmware Modification Kit. Все прошло удачно, за исключением того, что размер флеш памяти роутера оказался не безразмерным и пришлось пожертвовать таким функционалом как IPv6, USB printing, USB serial и 3G драйвера. Можно было конечно убрать, никому дома не нужную, поддержку сервисов общественных точек доступа, но там нужно было потратить много времени на то чтобы все это вырезать «красиво».

В итоге я собрал ядро с поддержкой swap и модулями необходимыми для работы внешних накопителей и возрадовался жизни. Единственный минус который остался в моей прошивке — её можно прошить только по tftp или используя асусовскую утилиту для восстановления роутера, что по сути также является tftp клиентом, но для узкого использования.

В конце статьи хочу привести список использованных дополнительных к стандартным утилит и т.д. в хронологическом порядке:
1. Buildroot 2011.2 (в настройках перед сборкой выбрать Target Architecture и Target Architecture Variant под свое железо)
2. Оригинальная прошивка dd-wrt (версия по желанию)
3. Firmware Modification Kit
4. Исходные коды Linux Kernel (версия должна совпадать с версией внутри оригинальной прошивки)
5. Конфигурационный файл для ядра взятый с svn сервера dd-wrt для нужного роутера здесь
6. lzma 4.32
7. mksquashfs-lzma 3.0
8. mkimage

Предупреждение: внимательно выберайте архитектуру в buildroot и конфигурацию ядра! Ошибка может привести роутер к состоянию «кирпича» после прошивки, которое лечится только через внутренний uart или, что еще хуже, через программатор!

В заключение хочу сказать, что иногда не стоит чего-то ждать, можно и самому сделать. Обсуждение моего мода на форуме dd-wrt и саму прошивку можно найти здесь.

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

Автор: grymster

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js