Начну с предыстории. Попался мне в руки за недорого сей чудо девайс ASUS RT-N13U и сразу появилось желание использовать его по полной, но к сожалению родная прошивка оставляла желать лучшего и я побрел искать альтернативы на просторах интернета и набрел на dd-wrt. Все в ней было хорошо, вот только swap и файловые системы она не поддерживала для моего роутера.
Долго я ждал чуда, но увы не дождался и принял решение сделать свою прошивку на базе оригинальной. Почитал wiki на сайте dd-wrt и принялся за работу.
Разработчики dd-wrt, как оказалось, предоставили полностью готовую среду разработки, но только для 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 и саму прошивку можно найти здесь.
Если есть вопросы задавайте в комментариях — отвечу с удовольствием. Также все необходимые действия для сборки прошивки я собрал в скрипт, если кому-то надо пишите, обязательно поделюсь.
Долго я ждал чуда, но увы не дождался и принял решение сделать свою прошивку на базе оригинальной. Почитал wiki на сайте dd-wrt и принялся за работу.
Разработчики dd-wrt, как оказалось, предоставили полностью готовую среду разработки, но только для 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 и саму прошивку можно найти здесь.
Если есть вопросы задавайте в комментариях — отвечу с удовольствием. Также все необходимые действия для сборки прошивки я собрал в скрипт, если кому-то надо пишите, обязательно поделюсь.