суббота, 21 марта 2015 г.

Собираем прошивку openwrt на маршрутизатор TL-MR3020


Собираем прошивку openwrt на маршрутизатор TL-MR3020

tp lonk 3020








Для начала нам понадобиться компьютер с Linux на борту, я буду использовать дистрибутив Elementary os. Можно использовать LiveCD с любым Линуксом, который можно записать за пару минуть на вашу флешку через программу unetbootin.

Сразу скажу на ночь глядя это делать не стоит, так как сборка прошивки занимает много времени.
И так у нас есть Linux, нам надо установить дополнительные пакеты для начала работы:
Открываем терминал, обычно это сочетание клавиш Ctr+ALT+T, затем пишем в нем следующие и нажимаем enter:
sudo apt-get install g++ ncurses-dev zlib1g-dev gawk flex git-core
Еще для получения исходников, устанавливаем subversion:
sudo apt-get install subversion
_openwrt (2)












Далее делаем все по пунктам:

1) Создаем в домашнем каталоге папку mr3020
для этого пишем в терминале:

mkdir mr3020
переходим в неё
cd mr3020
cd_mr3020_openwrt



2) Скачиваем исходники open-wrt
svn co svn://svn.openwrt.org/openwrt/trunk/
_openwrt




3) Переходим в каталог trunk
cd trunk
openwrt




4) Нужно обновить описание пакетов 
./scripts/feeds update -a
(ВОЗМОЖНО БУДЕТ ОШИБКА ERROR:Build dependency:
Please install the openssl library (with development headers)) РЕШЕНИЕ, НУЖНО УСТАНОВИТЬ OPENSSL
Cent OS yum install openssl-devel
Ubuntu sudo apt-get install libssl-dev
5) Создаем симлинки
./scripts/feeds install -a
6) Теперь выполним проверку, на присутствие программ для сборки
make prereq
7) При конфигурировании ядра, иногда выпадают ошибки по поводу отсутствия каких либо модулей из toolchain.
В таком случае, надо пересобрать tools и toolchain:
make prereq && make tools/install && make toolchain/install
Это процесс очень долгий, у меня он занял около 50 минут на SSD, и не чего не трогайте во время его работы, иначе он выдаст ошибку, в случае ошибки запустите этот процесс заново.
8) Для конфигурирования выполним команду
make menuconfig
_openwrt (5)
Выбираем в меню пакеты, которые будут в нашей прошивке ( некоторые пакеты могут иметь зависимости других пакетов, т.е один тянет на установку другой, и следовательно уже будет помечен на установку):
Target-Profile  выбираем пробелом наш роутер tp-link tl-mr 3020
KernelModules -> USB Support       -> <*> kmod-usb-core
KernelModules -> USB Support       -> <*> kmod-usb-ohci
KernelModules -> USB Support       -> <*> kmod-usb-storage
KernelModules -> USB Support       -> <*> kmod-usb2
KernelModules -> Filesystems         -> <*> kmod-fs-ext4
BaseSystem                                           -> <*> block-mount
Network-> Routing and Redirection -> <*> relayd
LuCI -> Protocol                                   -> <*> luci-proto-relay
LuCI -> Collections                               -> <*> luci
Base system                                            -> <*> zram-swap #для SWAP на флешке
Base system -> busybox -> Linux System Utilities -> <*> swaponoff #для SWAP на флешке
Base system -> busybox -> Linux System Utilities -> <*> Support priority option -p #для SWAP на флешке

Отключаем не используемые модули.
Global build settings                                 -> < > Compile the kernel with debug information
Global build settings                                 -> < > Enable IPv6 suppor in package
Base system -> busybox -> Networking utilities -> [ ] Enabled IPv6 support
Kernel modules -> Netfilter Extensions ->< > kmod-ip6tables
Libraries -> Firewall                                 -> < > libip6tc
Network                                                       -> < > 6relayd
Network                                                       -> < > odhcp6c
Network                                                       -> < > ppp
Kernel modules -> Network support      -> < > kmod-ipv6
Kernel modules -> Network support      -> < > kmod-ppp

9) После нажимаем Save и Esc два раза.
10) Перед сборкой каждой новой прошивки, рекомендуется очищать рабочую директорию, обновлять исходные коды (для trunk-релиза это особенно актуально), скачивать свежие фиды, и ставить новые версии пакетов.
make clean
svn update
./scripts/feeds update -a
make -j5 V=s
Когда сборка прошивки закончится, её можно забрать в Домашней папке / mr3020 / trunk / bin / ar71xx / openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin
Далее осталось только залить её через веб-интерфейс в наш маршрутизатор.

Комментариев нет:

Отправить комментарий