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

Cоздаём свою прошивку open-wrt для tp-link tl-mr 3020

Cоздаём свою прошивку open-wrt для tp-link tl-mr 3020

 

Для чего нужна своя прошивка open-wrt для tp-link tl-mr3020

Иногда бывает что процесс допиливания прошивки приходится повторять, например если пришлось откатиться к дефолтной прошивке, или если куплен новый роутер. Если нет желания каждый раз заниматься установкой пакетов и редактирование конфигов, то можно один раз настроить сборку своей прошивки open-wrt, в которую будут включены только те программы которые вам нужны, и уже с необходимыми настройками.  А если надо будет поделиться результатом, то не  придется писать подробную инструкцию так как можно  просто выложить  прошивку.
Далее будет описан процесс создания своей прошивки open-wrt для tp-link tl-mr3020 в linux.


ВНИМАНИЕ!!! При использовании прошивки с этого сайта или собранной самостоятельно можно получить неработающий роутер. В этом случае, восстановление работоспособности возможно только путем разборки роутера и подключения к технологическому разъёму.

Получаем исходники прошивки open-wrt для tp-link tl-mr 3020

Скачиваем исходники open-wrt:
svn co svn://svn.openwrt.org/openwrt/trunk/ openwrt
Переходим в директорию с исходниками:
cd openwrt
Обновляем описание пакетов:
./scripts/feeds update -a
Создаём симлинки в директории  package/feeds:
./scripts/feeds install -a
Выполняем проверку, есть ли все необходимые  программы:
make prereq
На моём компьютере, например, не хватало libncurses, zlib и gawk, устанавливаю их:
apt-get install libncurses5-dev zlib1g-dev gawk

Конфигурируем прошивку open-wrt для tp-link tl-mr 3020

Для конфигурирования выполняем команду:
make menuconfig
выбираем в меню Target-Profile наш роутер tp-link tl-mr 3020

Далее выберем какие модули ядра linux будут включены в нашу прошивку. При выборе модуля возможно два варианта, первый  когда модуль  помечен буквой [M] , в этом случае он компилируется отдельно от ядра и упаковывается в отдельный пакет, который надо ставить при помощи opkg.  Во втором случае если выбранный модуль выделен [*],  то  он вкомпиливается в ядро linux. Нужный вариант выбирается клавишей пробел.

Добавляем в сборку open-wrt модули для работы с  преобразователями USB<->RS232

Для этого идем в Kernel Modules->USB support, и выбираем следующие модули: kmod-usb-acm, kmod-usb-serial, kmod-usb-serial-cp210x, kmod-usb-serial-ftdi, kmod-usb-serial-pl2303


Добавляем в прошивку tp-link tl mr 3020 модули для работы с web-камерами

Для этого идем в Video Support и выбираем модули: kmod-video-core kmod-video-uvc kmod-video-videobuf2

Добавляем в сборку open-wrt модули для работы со звуком

Идем в  Sound Support и добавляем модули: kmod-sound-core kmod-usb-audio

Добавляем в прошивку необходимые программы

Заходим в Multimedia и  выбираем mjpg-streamer

После того как конфигурация завершена выходим, выбрав пункт EXIT, и сохраняем изменения, нажав YES.

Настройка конфигов для tp-link tl-mr3020

Далее сделаем так, что бы после прошивки роутер сразу был настроен как надо.
Переходим в директорию с файлами, которые будут помещены в прошивку:
cd target/linux/ar71xx/base-files/
Все что мы добавим в эту директорию будет в прошивке роутера.
Но с конфигами есть один нюанс, дефолтные конфиги должны лежать в etc/defconfig

Создаем директорию для настроек по умолчанию:
mkdir etc/defconfig/tl-mr3020
Создаем файл с настройками сети:
vim etc/defconfig/tl-mr3020/network
Ну и приводим к тому виду который нам нужен, например вот к такому:
config interface loopback
        option ifname    lo
        option proto     static
        option ipaddr    127.0.0.1
        option netmask   255.0.0.0
 
config interface wifi_sta
        option ifname    wlan0
        option proto     static
        option ipaddr    192.168.1.123
        option netmask   255.255.255.0
        option gateway   192.168.1.1
        option dns       192.168.1.1
 
config interface lan
        option ifname    eth0
        option proto     static
        option ipaddr    192.168.2.2
        option netmask   255.255.255.0
С настройками wi-fi поступим точно так же:
vim etc/defconfig/tl-mr3020/wireless
Настраиваем на работу в режиме клиента:
config wifi-device  radio0
        option type        mac80211
        option channel     auto
        option hwmode      11ng
        option phy         phy0
 
config wifi-iface 
        option device      radio0
        option network     wifi_sta
        option mode        sta
        option ssid        SkyNet
        option encryption  psk2
        option key         terminator
Изменяем файл настроек для mjpg-streamer:
vim feeds/packages/multimedia/mjpg-streamer/files/mjpg-streamer.config
Задаём необходимые настройки:
config mjpg-streamer core
option enabled     1
option device      /dev/video0
option resolution  320x240
option fps         10
option www         /www/webcam
option port        8080

Компиляция прошивки open-wrt на tp-link tl-mr3020

Наконец-то дошли до этапа компиляции, выполняем:
make
В зависимости от мощности компьютера компиляция займет от нескольких минут до нескольких часов. Но такой длительный процесс будет только при первой компиляции. В дальнейшем будут компилироваться только те части в которые были внесены изменения, и процесс пойдет быстрее.
Если же сборка не прошла, то что бы понять в чем дело можно запустить компиляцию с выводом дополнительной информации:
make V=99

Установка прошивки open-wrt на tp-link mr 3020

Собранная прошивка лежит тут:   bin/ar71xx/openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin
Если на роутере установлена родная прошивка, то для установки надо воспользоваться WWW интерфейсом.
Если же уже стоит open-wrt, то что бы обновить прошивку,  надо сначала скопировать её на роутер:
scp bin/ar71xx/openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin root@192.168.1.1:/tmp
после этого на роутере надо выполнить команду:
mtd -r write /tmp/openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin firmware
после того как в консоли появиться Rebooting … процесс закончен.

 

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

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