Собираем прошивку openwrt на маршрутизатор TL-MR3020
Для начала нам понадобиться компьютер с 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
Далее делаем все по пунктам:
1) Создаем в домашнем каталоге папку mr3020
для этого пишем в терминале:
mkdir mr3020
переходим в неё
cd mr3020
2) Скачиваем исходники open-wrt
svn co svn://svn.openwrt.org/openwrt/trunk/
3) Переходим в каталог trunk
cd trunk
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
Выбираем в меню пакеты, которые будут в нашей прошивке ( некоторые пакеты могут иметь зависимости других пакетов, т.е один тянет на установку другой, и следовательно уже будет помечен на установку):
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
Далее осталось только залить её через веб-интерфейс в наш маршрутизатор.
Комментариев нет:
Отправить комментарий