Для чего нужна своя прошивка 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 … процесс закончен.
Прошивку open-wrt для tp-link tl mr 3020, полученную по этой инструкции можно скачать тут.
а где, сама прошивка, которую предложили скачать???
Упс.. а прошивки то и нет. Спасибо, что сказали. Сейчас еще раз соберу и выложу.
выложил
Прошивку установил, спасибо.
Подскажите, что дальше:
1)Wi-Fi как включить (не виден он),
2)как на камеру выйти и из облака в том числе(Logitech c270, есть она в списке совместимости с линухом),
3)как веб-морду поставить,
4)как прикрутить usb-модем huawei ec1260-2 (потому что по вафле зайти не получилость и ssh по ethernet ).
Заранее спасибо.
Буду отвечать по-порядку:
1) wi-fi не виден, т.к. роутер настроен на работу в режиме клиента, т.е. он сам подключается к wi-fi роутеру. Что бы подключение прошло успешно надо что бы ID сети было SkyNet, пароль — terminator, а тип шифрования psk2. Для того что бы запустить в режиме точки доступа надо изменить конфиг /etc/config/wireless.
2) Не совсем понял что значит «выйти из облака».
Для того что получить изображение с web камеры надо просто набрать в браузере IP адрес роутера.
3) web-морду для чего? у меня сейчас нет готовых файлов, но можно поставить на роутер простой web сервер ( например lighttpd) и наваять какую угодно web-морду.
4) с usb модемами пока не разбирался. А доступ по wi-fi проверил — работает. по ethernet доступ тоже работает но почем-то только если роутер подключился к сети SkyNet, при этом подключаться надо не по ssh а при помощи telnet, т.к. после перепрошивки пароль root’а надо заново задавать.
А модули для звука зачем?
На роутере же нет звуковой карты
и это для чего все?
Тема не раскрыта, для какой цели собиралась своя прошивка?
Прошивку собирал для экспериментов, по этому и добавил интересующие меня модули.
Модули для звука — что бы подключить usb звуковую карту.
Модули для преобразователей usb rs232 — что бы можно было подключить микроконтроллер и управлять им.
kmod-usb-acm так же потребуется при использовании usb модема.
А заметка о том, как можно собрать свою прошивку и заточить ее именно под свои цели.
на базе mr3020 хочу сделать небольшой вебсервер….желательно с wordpress….
не могу найти на него mysql на аналоге sqlite3 неразобрался как создать бд c юзер пароль….она создает файл и все ..
Когда-то ставил wordpress на openwrt, который работал на asus wl500gp, и он жутко тормозил.
Мне кажется, что роутер не самая подходящая платформа для сайта на wordpress.
Не могу утверждать что работает mysql на openwrt, но посмотрите этот мануал http://wiki.openwrt.org/doc/howto/lamp
Первый вопрос — где и в чем делается всё, что описано вами (ПО, среда)???
Если у меня Виндовс что делать?
Второй — чем заходить на роутер, по какому порту, … чтобы смотреть видео с ВК? Пока я набирая iP роутера выхожу в Веб-интерфейс (что в общем-то естественно).
Прошивку пока не собирал — действовал методом установки модулей.
Прошивка ОпенВРТ + Люси. Роутер TP-Link TL-WR842ND
Но собирать скорее всего придется…
Звуковая карта (E-MU 0204 USB) подцепилась нормально.
Удалось запустить интернет-радио и поиграть файлы с компьютера (и-радио можно хоть на 24/7 включать, а вот для каждого файла — надо свое заклинание вводить).
Плеера madplay и aplay работают, но не «кушают» хай-резов.
mpd «объездить» не удалось — не понял, чего он хочет.
начнем с того, что «фулл» не лезет т.к. занимает 4Мб
мини скорее всего обладает недостаточным функционалом (как заявлено)
Результат такой:
— работает
— не потребляет лосслесс (только МРЗшки и ВаВы, переводить всю коллекцию в ВаВ … неее.)
— управляется из консоли
Чего хотелось бы:
— вставить в прошивку mpd-full
— понять, каких настроек он хочет — почему-то про это нигде не написано (типа как само собой разумеющееся)
И главное — хочу в веб-морду страничку управления звуком где было бы:
— выбор ЗК
— выбор АПИ (как я понял, присутствуют alsa и OSS)
— выбор выхода/входа ЗК
— «руление» клоком (может — выбор рулилки клоком) авто(из композиции)/вручную
— выбор регулятора громкости/управление им (или тупо все «движки» вывести)
— некий плейлист.
Пока это всё в ручном режиме происходит:
cat /proc/asound/cards выдает список ЗК
cat /proc/asound/modules спизок записывающих у-в
arecord -l то-же самое
amixer contents какими устройствами можно управлять из микшера
amixer -c 0 — sset ‘Clock rate Selector’ 0 в моем случае — управление клоком
вгет -q -O — фтр_192_168_0_226_a.mp3 | madplay -i -S -d — #слушаем a.mp3, находящегося в корне папки ftp-сервера на компе.
вгет -q -O — хттп_radio,sampo,ru_modern,mp3 | madplay -i -S -d -# слушаем радио «Модерн»
как видите, технически всё реализуемо, ничего особо сложного. Кроме того, что я не умею писать веб-морды.
протоколы пришлось убрать и кое-что перевети на русский т.к. движок форума их не пропускает — пишет, «ОПАСНО»
Среда — linux debian, но подойдет и ubuntu. И, наверно, другие дистрибутивы linux.
Если у Вас виндовс, то можно поставить виртуальную машину, и на неё linux, но компиляция будет занимать больше времени.
На роутер заходить обычным web-браузером, у mjpg-streamer’a порт по-умолчанию 8080.
Спасибо за идею! Как появится свободное время, попробую сделать web-морду, что бы получилось wi-fi интернет-радио.
Ага, движок он такой, с ним не забалуешь :)
Очень хочется плеер, который:
— работает без ресамплинга (только самый необходимый, н-р 16 бит в 24 )
— переключает ЗК в нужный режим
Я пробовал madplayer — он потребляет только МПЕГи!!! Даже ВаВы не разумеет!!!
aplay маниакально пытается всё отресамплить в 48к.
Например:
вгет -q -O — ……/16_44.wav | aplay —disable-resample —disable-format —disable-softvol —
Playing WAVE ‘stdin’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
aplay: set_params:1059: Sample format non available
Available formats:
— S24_3LE
ладно, убираем —disable-format
вгет -q -O — ……/16_44.wav | aplay —disable-resample —disable-softvol —
Playing WAVE ‘stdin’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Warning: rate is not accurate (requested = 44100Hz, got = 48000Hz)
please, try the plug plugin (-Dplug:default)
При этом из динамиков раздается вполне характерное хрипение на фоне звука, карточка 100% в режиме 44100, файл 100% 44100 (10 секунд СД-рипа)
(клок карточки устанавливается сл. образом:
amixer -c 0 — sset ‘Clock rate Selector’ 0
0 — 44100, 1 — 48000, 2 — 88200, 3 — 96000, 4 — 176400, 5 — 192000)
Ладно, добавим чего _оно_ хочет: -Dplug:default
вгет -q -O — …../16_44.wav | aplay —disable-resample —disable-softvol -Dplug:default —
Playing WAVE ‘stdin’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Warning: rate is not accurate (requested = 44100Hz, got = 48000Hz)
please, try the plug plugin
Из динамиков — шум с хрипом.
а вот если ставим ЗК в 48000 (amixer -c 0 — sset ‘Clock rate Selector’ 1) — получаем вполне нормальное звучание … но почему-то через раз
вгет -q -O — …………………/16_44.wav | aplay —disable-resample —disable-softvol —
Playing WAVE ‘stdin’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Warning: rate is not accurate (requested = 44100Hz, got = 48000Hz)
please, try the plug plugin (-Dplug:default)
с -Dplug:default — опять только шум.
В общем, надо найти какой-то адекватный способ засовывать ВАВы в ЗК
Есть замечательный плеер DeadBeef для линуха.
Вполне хорошо работает.
Есть он и для Андроида.
Можно и с консоли.
Но насколько могу понять, а) он будет не маленьким б) сомневаюсь, что он есть для ОпенВРТ.
Ну вот. Главное — пожаловаться.
aplay не такой уж маньячный пересжиматель … если сказать ему играть прямо в у-во:
amixer -q -c 0 — sset ‘Clock rate Selector’ 0 && вгет -q -O — …/16_44.wav | aplay -D plughw:0,0 —
amixer -q -c 0 — sset ‘Clock rate Selector’ 5 && вгет -q -O — …/24_192.wav | aplay -D plughw:0,0 -
Спасибо Вам за предоставленную информацию, уверен, она много кому пригодится!
А что если ваша прошивка втает нормально а вот собранная таким же способом (по defconfig на mr3020) стартует но после нескольких секунд перезагружается?
на этом месте(получено по serial-port):
[ 9.530000] ieee80211 phy0: Atheros AR9330 Rev:1 mem=0xb8100000, irq=2
[ 9.750000] PPP generic driver version 2.4.2
[ 9.910000] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 9.930000] xt_time: kernel timezone is -0000
[ 10.150000] NET: Registered protocol family 24
[ 10.160000] nf_conntrack version 0.5.0 (455 buckets, 1820 max)
[ 10.910000] ip6_tables: (C) 2000-2006 Netfilter Core Team
и все сначала:
U-Boot 1.1.4 (Mar 20 2012 — 11:37:54)
AP121 (ar9330) U-boot
Мне кажется, дело в том, что исходники, полученные из svn://svn.openwrt.org/openwrt/trunk постоянно изменяются разработчиками OpenWrt (вносятся улучшения и исправляются ошибок). Но из за изменений иногда получаются нерабочие версии, разработчики OpenWrt тоже люди и могут ошибаться. Могу посоветовать обновить исходники (выполнить svn update) или взять за основу другую ветку svn://svn.openwrt.org/openwrt/branches/attitude_adjustment.
Если не получиться собрать рабочую прошивку — напишите, пожалуйста.
Алексей, спасибо за ссылку!
Артём , как насчет веб-морды с радио?
Еще подумал — как сделать плеер. Хранить записи на роутере не очень правильно (места мало!!!). Может, в той-же «морде» указывать на ФТП-каталог, из которого будет вестись проигрывание … или на компе сделать своё веб-радио с пом какого-либо плеера, а роутер будет этот поток в звуковуху пихать?
Только надо как-то продумать, как ему сампл-рэйт на ходу переключать.
Что-то всё времени свободного нет :( Идея отличная, главное что бы руки дошли.
у меня тоже постоянно перезагружается да это действительно из-за нерабочей прошивки но главная проблема что из-за того что он постоянно перезагружается невозможно ввести в него не одной команды чтоб предотвратить или приостановить это
Я так понял, что разработчики OpenWrt постоянно вносят изменения в исходный код, и иногда получаются неработающие версии. Тут видимо как повезёт, или надо исходники брать не из trunk’а а из какой-нибудь замороженной ветки.
Да, да, приведенные автором исходники устарели, берите их отсюда
https://dev.openwrt.org/wiki/GetSource
Классная статья – спасибо!
Хочу попробовать 3020 сделать клиентом vpn виндового сервера и сервером usbip. Нужно ли ставить модули поддержки usb тех классов устройств, что собираюсь пробрасывать, или usbip по барабану на них?
Спасибо. Если будут какие нюансы озвучены по этой затее — вдвойне спасибо.
И где можно почитать про настройку конфигов ppp-клиента для openwrt?