В настоящее время существует уже несколько методов переделки популярной точки доступа TP-Link WA-5210G в аналог Ubiquiti NanoStation.
Для первого метода вам понадобится паяльник и навыки работы с ним, простейший программатор и файл прошивки, так называемый full flash. Все это прекрасно описано и обсуждено в топике - www.lan23.ru . Данный метод переделки условно называется аппаратным.
Второй метод, разрабатываемый в данное время и обсуждаемый в текущем топике - www.lan23.ru подразумевает разработку специального бутлоадера, который будучи загруженным через WEB-интерфейс заводской прошивки дает возможность подгрузить по TFTP прошивку от Ubiquiti. Данный метод переделки условно называется программным.
Аппаратный метод полностью бесплатен, а вот для того, что-бы воспользоваться программным, необходимо перечислить небольшой гонорар (Donate) авторам разработки (orensnake и unicorp99).
Труд авторов кропотлив, финансовый запрос вполне адекватен, а если учесть, что разрабатываемое сейчас решение в будущем будет работать не только для переделки WA5210G, то просим их поддержать.
Преимущества прошивки Ubiquiti по сравнению с оригинальной от TP-Link:
- расширенный частотный диапазон;
- каналы шириной 5, 10 и 20 МГц;
- более стабильная работа;
Преимущества аппаратной части WA-5210G по сравнению с NanoStation 2:
- встроенная грозозащита, а как следствие - меньшее кол-во отказов в работе;
- бОльшее усиление антенны;
Помимо TP-Link WA-5210G в будущем возможна переделка и других устройств. Главное требование - 16MB RAM и 4MB FLASH и чип Atheros 7240/7241. Для устройств с 2MB FLASH возможно, позже будет выпущена отдельная прошивка без WEB интерфейса, управляемая через AirControl от Ubiquiti. Поддержка устройств с 8MB RAM не будет рассматриваться в принципе. Неплохие кандидаты на переделку - точки доступа внешнего исполнения фирмы Senao, а так-же WA-5110G как настольный вариант и т.д.
Так-как TP-Link WA-5210G не является полным схемотехническим клоном Ubiquiti NanoStation, оригинальные прошивки от UBNT работают не совсем корректно. Индикаторы уровня сигнала работают в инверсном режиме, не работает переключатель антенн H/V и Ext. Для исправления выявленных недостатков и внесения дополнительных возможностей было принято решение о создании прошивки на базе GPL исходников от Ubiquiti.
Текущий релиз - XS2.ar2316.v4.0.2.WA5210G.SDK.130121.2203.bin
Свежие прошивки находятся тут - http://flyrouter.net/downloads/software/wa5210g/firmware
По вышеуказанной ссылке лежат не full flash для аппаратного метода переделки, а прошивки для стандартного обновления через WEB.
Изменения в прошивке, относительно официальной версии из SDK:
- исправлена индикация уровня сигнала (в TP-Link используются другие GPIO);
- в bysybox добавлены аплеты - awk, head, tr, wc, wget;
- в ядро добавлена поддержка tun/tap (для L2/L3 туннелей openvpn и vtun);
- добавлен модуль proc_gpio.o и простой скрипт gpioctl;
- при заходе по SSH отображается имя хоста, а не версия прошивки;
- добавлена утилита hexdump для просмотра раздела EEPROM;
- убран warning при обновлении через WEB, теперь это FW от Ubiquiti;
- заменен логотип устройства (спасибо kuslik с форума www.lan23.ru);
- в систему встроен модуль мониторинга http://flymon.net (вкладка Services);
Текущие ограничения:
При настройке роутера, во вкладке Advanced, обязательно установить тип антенны Vertical - если используете встроенную и External - если используете внешнюю, подключаемую через разъем SMA. На данный момент типы антенн Horizontal и Auto не поддерживаются ! Использование других типов антенн (которых нет реально в TP-Link) и отсутствие внешней антенны при выборе External, может повлечь за собой выход из строя передатчика !
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Немного технической информации:
Утилитой hexdump удобно рассматривать внутренности в EEPROM. Команда имеет много ключей для разных режимов отображения. Например:
UBNT# hexdump --help
Usage: hexdump [-[bcdefnosvx]] [OPTION] FILE
UBNT# hexdump /dev/mtd6
0000000 3533 3131 247b 0005 4174 6865 726f 7320
0000010 4152 3530 3031 4150 2064 6566 6175 6c74
Для управления GPIO, а как следствие светодиодами и переключателями антенн воспользуйтесь скриптом gpioctl. В качестве передаваемых параметров используются номер вызываемого GPIO и устанавливаемый уровень. У WA5210G доступны GPIO, выведенные на индикаторы уровня сигнала - 2, 3, 4, 7.
Для переключения антенн External/Internal используются GPIO:
WA5210G - GPIO=1
NanoStation 2 - GPIO=7
NanoStation 5 - GPIO=1
NanoStation Loco 2 - GPIO=2
У оригинальной Ubiquiti для уровней сигнала используются следующие GPIO:
GPIO_0 - красный
GPIO_1 - оранжевый
GPIO_3 - зеленый
GPIO_4 - зеленый
У WA-5210G используются GPIO, от минимального к максимальному:
GPIO_2
GPIO_3
GPIO_4
GPIO_7
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
В планах на будущее:
- добавить больше системных утилит busybox и vtund для L2/L3 туннелей;
- сделать возможным переключение антенн на Horizontal и Auto;
- написать программу, которая позволит менять MAC-адрес (последние три октета) прямо на устройстве (не путать с подменой через ifconfig !).
- создать картинки логотипов WA5210G для WEB-меню
- разлочить MAC-адреса от TP-Link, что-бы не приходилось их менять на микс от Ubnt+TPL
- исправить "костыли" по сборке модуля gpio, скрипта ext_ant и выложить исходники на GITHUB
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Свежие прошивки для WEB обновлений - http://flyrouter.net/downloads/software/ubiquiti/firmware
Украинский сертификат на WA5210G - http://www.tp-link.ua/resources/document/certs/ua/TL-WA5210G.pdf
Исходники версии 5.5 для Ubiquitu M - https://github.com/ninuxorg/SDK.UBNT.v5.5
Исходный код системы мониторинга FlyMon - https://github.com/slayer/flymon, сама система - http://flymon.net