Роутер tp link 3020 openwrt

Embedder’s life

Когда-то давно я собирался сделать из упомянутого в названии роутера интернет-радио для мамы на кухню, и даже почти сделал его, однако проект заглох по причине отсутствия интереса к нему со стороны того, кому предназначался конечный продукт. Тем не менее, я наверняка сделаю на этом роутере еще что-то, тем более что сейчас у меня появился второй экземпляр. Надо сказать, что это событие и подвигло меня на написание этой статьи — прежде всего как напоминалки себе на будущее, ибо в процессе конфигурирования выяснилось, что с момента запуска первого роутера я многое забыл и мне снова пришлось лазить по wiki OpenWRT.

Эта статья освещает следующие вопросы:

1. Установка OpenWRT на роутер. Если кто не знает, OpenWRT — по сути полноценный линукс, под которым можно делать почти все что угодно.

2. Настройка доступа по Wi-Fi.

4. Установка интерпретатора Lua / редактора nano.

При этом «роутерный» функционал сознательно отодвигается на второй план. Т.е., конечная цель — получение маленькой Linux-коробки с вайфаем, из которой дальше можно делать что угодно.

1. Установка OpenWRT.

Тут нет ничего сложного. Прежде всего выкачиваем самую новую прошивку и куда-нибудь ее складываем. Да, чтобы не было возможных конфликтов сетей, всю дальнейшую настройку роутера (до поднятия Wi-Fi и включения в домашнюю сеть) производить желательно с компьютера, подключенного исключительно к этому роутеру и ни к чему более. Я, например, использовал для этого ноутбук — после выкачивания прошивки отключил Wi-Fi и подключил роутер в ethernet.

Итак, выкачав прошивку, идем в WEB-интерфейс роутера (не забываем, что его адрес по умолчанию — 192.168.0.254, а не 192.168.1.1 или 192.168.0.1) и выбираем штатную опцию обновления:

Указываем скачанный файл, жмем обновить, немного ждем и…

…а-а-а!!1111 Все сломалось, на 192.168.1.1 (адрес роутера по-умолчанию после установки OpenWRT) та же картина!

На самом деле ничего не сломалось и все хорошо. Просто в базовой поставке OpenWRT нет предустановленного WEB-интерфейса. Да и кому он нужен, учитывая, что мы собираемся с этим роутером делать дальше? Разве только слабым духом и девушкам. Впрочем, думаю, слабых духом среди нас нет; девушек — тем более, они уже сдали все экзамены и потому электроникой (и уж тем более мной и моим блогом) не интересуются до следующей сессии, потому продолжим так, как есть.

Свежеустановленная OpenWRT сразу после первой загрузки ждет, пока к ней подключатся через telnet и установят пароль root’а (основного пользователя, имеющего неограниченные права; хоть системный раздел затереть — никто не остановит). Ага-ага, тру-Ъ-кул-рил-олдскул линуксоиды в этом месте могут ужаснуться — мы будем постоянно сидеть под root’ом. В основном потому, что 90% нашего времени будет занимать настройка разных конфигов, что гораздо приятнее делать не приписывая каждый раз «sudo«; кроме того, я исхожу из мысли, что мы хорошо знаем, что делаем. А вообще, если устройство превратится в кирпич, мы всегда можем это поправить.

Читайте также:  Роутер ac2100 ip адрес

Итак, прежде всего нам надо установить пароль root-а. Заходим по telnet — если кто не знает, прямо в консоли Windows, той, которая cmd, пишем telnet 192.168.1.1, подключаемся

и попадаем в консоль Linux.

Здесь командой passwd устанавливаем новый пароль. При вводе пароля он отображаться не будет, даже звездочками. Пугаться не надо, все ОК. Просто в Linux так принято.

После этого telnet отключится и все дальнейшее общение роутер будет ожидать через SSH. Для SSH я предпочитаю использовать PuTTY. Подключаемся к 192.168.1.1, у нас спрашивают логин, пароль и пускают в консоль.

Бинго! Теперь на нашей карманной железке крутится полноценная система.

2. Настройка доступа по Wi-Fi.

В этой главе мы будем продолжать наше светлое дело превращения TL-MR3020 в полноценный миникомпьютер, так как сейчас платформа все еще продолжает считать себя роутером — Wi-Fi сконфигурирован в режиме точки доступа (и отключен), работает DHCP-сервер и т.п. И потому перед нами стоит цель отучить систему от всего этого, научить подключаться к имеющейся сети/точке доступа Wi-Fi в режиме обычного клиента и соединяться через нее с интернетом для собственных нужд, а не для трансляции данных кому-то еще. А интернет нам понадобится обязательно, ибо, пока мы не установим поддержку флешек, другого способа добычи нужных программ у нас не будет.

Здесь надо сделать небольшое отступление и рассказать о замечательной штуке в составе OpenWRT, которая называется uci. Это консольная утилита, которая позволяет заменить долгое копание в десятках конфигурационных файлов простой настройкой с помощью консольных команд. Полную справку по поддерживаемым параметрам можно получить, просто введя в консоли «uci» без параметров. Я перечислю только самые интересные для нас.

Первый случай — uci show . Эта команда показывает состояние интересующей конфигурации. Например, uci show network покажет конфигурацию сети, uci show wireless — конфигурацию Wi-Fi.

Вторая важная команда — uci set =. Как нетрудно догадаться, устанавливает нужное значение в интересующее поле; именно этой командой мы и будем допиливать конфиги до необходимого вида. Да, чтобы убрать ненужное поле можно просто оставить значение пустым. Аналогично, если запрошенного поля нет, она его создаст. uci — умная утилита.

Наконец, uci commit сохраняет измененные параметры.

Пара общих слов перед тем, как я покажу пример настроек, к которым мы будем стремиться.

Перед нами стоит задача настроить два сетевых интерфейса — для Ethernet и Wi-Fi. Оба они будут настроены на статические IP. Конечно, роутер поддерживает и получение DHCP, но тогда каждый раз, когда нам захочется подключиться к нему, мы должны будем какими-то джедайскими путями узнавать его адрес, что крайне неудобно.

Читайте также:  Установить вайфай от роутера

Но прежде всего надо отучить его раздавать DHCP — мы же хотим, чтобы оно работало как обычный компьютер, без роутерских замашек. Для этого надо удалить dnsmasq, DNS/DHCP-сервер. Пишем в консоли

opkg — это пакетный менеджер, что-то типа Windows Installer (ага, линуксоиды тут опять вздрогнут, а у кого и глаз задергается). О нем будет разговор попозже; пока нам важно только, что приведенная команда удалит указанную программу.

Сейчас наш компьютер (с которого конфигурируем) продолжает работать на адресе, выданном dnsmasq компьютеру еще тогда, когда OpenWRT только загрузилась. Если процесс будет прерван на этом моменте, то при следующем подключении выдать адрес компьютеру будет некому. Нужно будет настроить оный вручную в свойствах подключения. Роутер по умолчанию имеет адрес 192.168.1.1, компьютеру можно дать любой другой. Например, 192.168.1.2 (маска подсети 255.255.255.0).

Ну вот, а сейчас я покажу пример того, как должна выглядеть конфигурация сети, чтобы все работало (через точку с запятой будут мои комментарии; это НЕ стандартно и НЕ поддерживается системой конфигов, в выводе uci show этого не будет; все это дописано исключительно здесь ради большей понятности):

root@OpenWrt:~# uci show network network.loopback=interface ; первый сетевой интерфейс, классика, 127.0.0.1 - отвечатель сам себе. Тут ничего менять не надо. network.loopback.ifname=lo network.loopback.proto=static network.loopback.ipaddr=127.0.0.1 network.loopback.netmask=255.0.0.0 network.lan=interface ; второй сетевой интерфейс, lan. network.lan.ifname=eth0 ; подключен к ethernet'у. network.lan.proto=static ; DHCP? Нет, спасибо. network.lan.netmask=255.255.255.0 network.lan.ipaddr=192.168.2.1 ; Wi-Fi и ethernet для простоты лучше настроить на разные подсети. network.wwan=interface ; третий сетевой интерфейс, я назвал его [w]ireless wan, т.к. с него будем подключаться к внешней для нас сети и интернету. Но по сути это lan, конечно. network.wwan.proto=static ; не надо DHCP network.wwan.netmask=255.255.255.0 ; маска подсети той сети, куда будем подсоединяться по Wi-Fi network.wwan.ipaddr=192.168.1.20 ; желаемый адрес в сети, куда будем подключаться network.wwan.dns=8.8.8.8 network.wwan.gateway=192.168.1.1 ; адрес настоящего роутера, к которому будем подключаться через Wi-Fi root@OpenWrt:~# uci show wireless wireless.radio0=wifi-device ; настройка физического Wi-Fi устройства. Тут ничего менять не надо. wireless.radio0.type=mac80211 wireless.radio0.channel=11 wireless.radio0.hwmode=11ng wireless.radio0.path=platform/ar933x_wmac wireless.radio0.htmode=HT20 wireless.radio0.ht_capab=SHORT-GI-20 SHORT-GI-40 RX-STBC1 DSSS_CCK-40 wireless.radio0.disabled=0 ; ничего менять не надо, кроме этого. Ну, включить-то Wi-Fi надо. 0 - включено. wireless.@wifi-iface[0]=wifi-iface ; настройка Wi-Fi интерфейса. wireless.@wifi-iface[0].device=radio0 wireless.@wifi-iface[0].mode=sta ; sta - подключаться как клиент wireless.@wifi-iface[0].ssid= wireless.@wifi-iface[0].key= wireless.@wifi-iface[0].encryption=psk2 ; шифрование сети wireless.@wifi-iface[0].network=wwan ; Wi-Fi будет прикручен к wwan.

Далее действуем очень просто. Смотрим через uci show network / uci show wireless конфиги, сравниваем с эталоном выше и корректируем несовпадающее / добавляем недостающее / удаляем лишнее. Как-то так:

uci set network.wwan=interface uci set network.wwan.proto=static uci set network.wwan.netmask=255.255.255.0

И так далее, и так далее. Когда все готово, сохраянем настройки и включаем Wi-Fi:

uci commit network uci commit wireless wifi

Все. Отключаем роутер от компьютера, для верности перезагружаем его. Теперь он должен подключиться к указанной сети и быть доступен через Wi-Fi + SSH по указанному адресу (в примере 192.168.1.20).

Читайте также:  Роутера xiaomi mi wifi mini

3. Настройка USB Storage.

Вне зависимости от того, что мы будем делать на этом роутере дальше, нам наверняка захочется подключить к нему флешку/жесткий диск/кард-ридер, ибо места в его собственной памяти не так много. Чтобы иметь возможность подключать устройства хранения, нам надо доустановить несколько системных модулей, отвечающих за:

  • собственно поддержку mass storage;
  • поддержку файловой системы на накопителе;
  • поддержку кодировок, в которых написаны имена файлов.

Как уже говорилось, за установку софта тут отвечает opkg — софтина типа Windows Installer’а. Опять же, полную справку по командам можно получить, просто написав в консоли «opkg» без аргументов. Для нас интересна команда install. «opkg install zzz» означает «выкачать из интернета и установить программу zzz со всем необходимым для ее работы».

Перед тем, как пользоваться opkg, надо обновить список доступного софта:

А дальше просто устанавливаем необходимые для поддержки флешек пакеты.

opkg install kmod-usb-storage
opkg install kmod-nls-cp1251 opkg install kmod-nls-cp437 opkg install kmod-nls-cp866 opkg install kmod-nls-iso8859-1

Все. Втыкаем флешку и монтируем ее.

Если ругается, значит не хвататет какого-то модуля. Посмотреть, что не так, можно с помощью команды

Она покажет последние несколько сообщений системного лога. Там можно посмотреть, что не так, и доустановить недостающее.

Если смонтировалось успешно, содержимое флешки будет доступно в каталоге /mnt.

4. Установка интерпретатора Lua и редактора nano.

Если мы хотим делать что-то на роутере, то, наверное, мы хотим писать под него свои приложения. Однако тут есть небольшой облом — кросс-тулчейн существует только под Linux и только в исходниках; я же не использую Linux на десктопе и не горю желанием красноглазить, собирая тулчейн под minGW. Однако, к моему счастью, существуют уже собранные под роутер интерпретатор и компилятор Lua — достаточно приличного языка, похожего на продукт постмодернистского скрещивания Pascal и JavaScript. Ну а писать можно прямо на роутере в редакторе nano — достаточно приличном редакторе, типа EDIT в MS-DOS (кто-то из линуксоидов тут упадет в обморок). Установим:

opkg install lua opkg install nano

Заключение.

После всех перечисленных действий роутер превратился в универсальный миникомпьютер, который подключается по Wi-Fi в локальную сеть, в который можно втыкать флешки и под который можно писать на Lua. Как его развивать дальше — отдельная история… Может быть, я об этом еще напишу.

Источник

Оцените статью
Adblock
detector