kharlashkin Posted April 10, 2017 Share Posted April 10, 2017 (edited) Добрый день всем! Так сложилось, что уже довольно давно использую свой домашний Asus RT-N16 не только по "прямому" назначению. Хочу здесь публиковать свои изыскания относительно использования таких коробочек. Я как-то уже спрашивал нашу скромную компанию - "Стоит ли делиться опытом?". Конечно стоит! Так сложилось что мне пришлось обновлять прошивку. Соответственно нужно опять запускать OpenVPN и раз так заодно поделюсь этим опытом с форумчанами. 1. Почему именно DD-WRT? Как показывает практика, все производители домашних маршрутизаторов спустя рукава относятся к программному обеспечению, установленному на свои железки. А если говорить о таких вещах, как тонкая настройка множества параметров - заводские прошивки не представляют никаких инструментов от слова вообще. Хотя есть некоторые исключения в виде командной строки, но для этого нужно обложиться учебниками и справочниками, "курить манюалы", много гуглить и т.п. По закону подлости, всего не предусмотришь и часто что-то делая через shh и telnet ошибка приводит к отсутствию интернета так как роутер не может корректно загрузиться и раздать интернет, а практически никто не имеет дома резервный (или открытый соседский) канал интернета для допиливания конфигураций маршрутизатора из консоли. Я пробовал практически все альтернативные прошивки для своего Asus и только вышеназванная мною имеет возможность редактировать множество параметров "из коробки" в web-интерфейсе. Особенно это касается следующего пункта. 2. Почему OpenVPN? Тут все довольно просто - приведу пример. Вы с находитесь в гостевой сети (учеба/работа/интернет-кафе и т.п.) где суровым системным администратором запрещено почти всё - он-лайн игры, скачивание торрентов, просмотр потокового видео и т.д. Стандартные VPN обычно используют тоже известные порты и протоколы, таким образом очень сомневаюсь что тот, который настраивал доступ в интернет так же оставил Вам возможность использовать для обхода что-то типа PPTP/L2TP/PPPoE. Но у нас же есть предварительно настроенный OpenVPN, который работает на любом порте и TCP/UDP транспорте. Как пример если наше соединение работает по 443 порту (https) и используется TCP-транспорт, то для маршрутизатора, который нам дает доступ в интернет это будет выглядеть как будто мы просто просматриваем сайт (как google.com или koreanrandom.com). Трафик весь шифруется, и даже с помощью специальных утилит никто не увидит что же мы на этом сайте делаем. 3. Прошивка маршрутизатора. Идем в соответствующий раздел, вводим название производителя маршрутизатора и нам вываливаются список моделей которые можно прошить. Небольшое отступление. Так сложилось что мой первый домашний роутер был Asus WL-520gU и первый провайдер предоставлял доступ к интернет с PPPoE Dual Access (Russian PPPoE) - т.е. доступ к локальным ресурсам и отдельно доступ к сети интернет. При чем мой работодатель так же был подключен к этому провайдеру, соответственно я мог получать доступ к своему терминальному рабочему месту (1С, почта, файловое хранилище) и сайту (периодически наполнял его интересными статьями) из дома с наивысшей скоростью, как по локальной сети. Просидев пару вечеров допоздна с dd-wrt я так и не смог корректно настроить одновременную работу интернета и локальной сети провайдера. Вернулся на заводскую прошивку, но всё решил случай. В один летний день грянул гром, т.е. ожидалась гроза и провайдер выключил интернет - на тот момент кое-где между домами использовалась витая пара, и в целях сохранности своего оборудования этот поставщик услуг просто выключал физически электричество на всей своей сети. Поискав доступные беспроводные сети я нашел какую-то соседскую без пароля, подключившись увидел что там доступ к интернету имеется. Зайдя на маршрутизатор соседа глянул что там прописано в настройках - оказалось что другой провайдер, доступный в моем доме, не имеет вышеозначенных проблем с медными кабелями, а раздает интернет статическим адресом. И я просто сменил провайдера ;) А для доступа к ресурсам работодателя подключил себе услугу "Статический IP-адрес" за $2 и попросил системных администраторов разрешить мне доступ извне с этого IP. Имея статический адрес захотелось получать доступ к домашним ресурсам и более-менее простую установку и настройку как раз можно сделать с помощью OpenVPN и обсуждаемой альтернативной прошивки. В будущем когда стал выбор покупки маршрутизатора, сразу смотрел поддержку устройства на сайте. На страничке с прошивками для роутеров, мы видим прошивку для первого раза с заводской и несколько других с расширенным функционалом - инструкций для перепрошивки достаточно, я не буду тут описывать что к чему. 4. Подготовка OpenVPN. Так как большинство используют Windows, сборку ключей и сертификатов будем делать под этой ОС. Сначала идём на официальную страницу загрузки и качаем нужную версию. Установка ничем особо не отличается, кроме необходимости поставить галочку в нужном месте: Запускаем консоль Windows - ПКМ (правая кнопка мыши) на Пуск - выполнить - "cmd". Переходим в папку с установленной программой: cd C:\Program Files\OpenVPN\easy-rsa и последовательно выполняем команды: init-config.bat vars.bat clean-all.bat vars.bat build-ca.bat vars.bat build-dh.bat vars.bat build-key-server.bat "имя сервера" vars.bat build-key.bat "имя клиента" Под полями "имя сервера" и "имя клиента" вводите свои имена для маршрутизатора и подключаемых к нему потом устройств. При создании сертификатов/ключей у нас будут постоянно спрашивать всякое-разное, я вводил ответы "как оно есть". В итоге у нас в папке C:\Program Files\OpenVPN\easy-rsa\keys множество нам нужных ключей и сертификатов. И мы можем переходить к настройке маршрутизатора. 5. Настройка маршрутизатора. Идем на web-интерфейс нашего маршрутизатора и переходим на вкладку Services - VPN и включаем наш OpenVPN Daemon: Затем поочередно заполняем соответствующие поля нашими сертификатами и ключами из папки, просто открывая в текстовом редакторе: CA Cert - C:\Program Files\OpenVPN\easy-rsa\keys\ca.crt; Public Client Cert - C:\Program Files\OpenVPN\easy-rsa\keys\"имя сервера".crt; Private Client Key - C:\Program Files\OpenVPN\easy-rsa\keys\"имя сервера".key; DH PEM - C:\Program Files\OpenVPN\easy-rsa\keys\dh1024.pem; В поле OpenVPN Config, записываем конфигурацию, это пример моей: mode server tls-server daemon server 192.168.66.0 255.255.255.0 port 443 proto tcp-server dev tun0 ca /tmp/openvpn/ca.crt cert /tmp/openvpn/cert.pem key /tmp/openvpn/key.pem dh /tmp/openvpn/dh.pem push "redirect-gateway def1" push "dhcp-option DNS 192.168.66.1" push "dhcp-option WINS 192.168.66.1" keepalive 10 120 client-to-client persist-key persist-tun verb 3 6. Настройка клиента Windows. Так как у нас уже есть установленная версия, на ОС под которой мы создавали ключики и сертификаты, то просто редактируем с помощью блокнота "C:\Program Files\OpenVPN\sample-config\client.ovpn" и сохраняем конфигурационный файл в папку "C:\Program Files\OpenVPN\config". client dev tun proto tcp-client remote "myIP" 443 resolv-retry infinite nobind persist-key persist-tun ca "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\ca.crt" cert "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\"имя клиента".crt" key "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\"имя клиента".key" verb 3 Где "myIP" - это статический адрес нашего маршрутизатора или имя маршрутизатора через службу Динамического DNS. А "имя клиента" то же что и выше. 7. Собственно и всё. Запускаем OpebVPN GUI нажимаем ПКМ на иконке и подключаемся. После успешной авторизации значек заполниться зеленым, значит весь ваш интернет-трафик зашифрован и идет через домашний маршрутизатор, то есть никто не сможет увидеть куда вы ходите и что делаете в интернете. Ну кроме просмотра трафика после маршрутизатора. Edited April 12, 2017 by kharlashkin 3 @ Quote Link to comment Short link Share on other sites More sharing options...
kharlashkin Posted April 11, 2017 Author Share Posted April 11, 2017 (edited) Подключаем флешку/hdd к dd-wrt. Небольшое отступление. Так как у меня уже есть отдельный постоянно включенный "домашний ПК", мне не понадобиться файлообменник, торрентокачалка, медиа-сервер на маршрутизаторе. Хотя несколько лет назад это всё у меня прекрасно работало, был подключен портативный 2,5" HDD объемом на 1 ТБ к usb и были установлены: Transmission; Samba; Twonky; OpenVPN. Все это несколько лет прекрасно крутилось в круглосуточном бесшумном режиме. Конечно было заметно слабенький процессор - скорость закачки торрентов ≈ 2 МБ/сек, работа с сетевыми папками ≈ 6 МБ/сек. Затем был куплен большой стационарный ПК под телик, туда установлен HDD на 4 ТБ, а портативный HDD подарен. Как вспомню как, что делалось - дополню темку. Сейчас появилась необходимость сделать свой web-интерфейс типо "вумного дома" и чтобы не городить дополнительно сервер с Raspberry/Orange/Banana Pi пробую завести это все дело на маршрутизаторе ;) Имеется флешка на 8 ГБ, её и будем использовать. Разметил я её в GParted под Ubuntu как два раздела Ext3, один на 1000 МиБ под /opt раздел - сюда будем устанавливать наши пакеты, второй всё что осталось как /mnt - сюда буду складывать, что там мне может понадобиться. Для Windows можно использовать её же как LiveCD. Идем в интерфейс маршрутизатора и выставляем нужные галочки. Подключаем флешку в порт устройства и перегружаем его. Проверить подключилась ли флешка придется из консоли, как выше генерировали ключи сертификаты. Проверяем что у нас включен доступ к маршрутизатору через Telnet-протокол, вкладка "Services - Services" Включаем в Windows поддержку этого протокола. ПКМ на Пуск - Панель управления - Программы и компоненты - Клиент Telnet. Запускаем консоль и вводим: telnet 192.168.1.1 Маршрутизатор спросит у нас логин, и пароль - вводим что там выставлено при первоначальной настройке. Проверяем подключилась ли наша флешка: dmesg|grep lun Ответ должен быть таким: /dev/scsi/host0/bus0/target0/lun0: p1 p2 И теперь подключаем наши разделы на флешке как и было задумано, первый к /opt и второй к /mnt: mount -o noatime /dev/discs/disc0/part1 /opt mount -o noatime /dev/discs/disc0/part2 /mnt Проверить правильно ли все смонтировалось можно командой "df". Для подключения и отключения наших разделов нужно пройти на вкладку "Administration - Commands" и добавить команды в загрузочный скрипт и выключения: Следующим этапом мы установим Python на наш маршрутизатор, поднимем простенький сайт на нем и подключим его к Arduino. Edited April 12, 2017 by kharlashkin @ Quote Link to comment Short link Share on other sites More sharing options...
StranikS_Scan Posted April 12, 2017 Share Posted April 12, 2017 (edited) Следующим этапом мы установим Python на наш маршрутизатор, поднимем простенький сайт на нем и подключим его к Arduino. На NAS поднимать простенький сайт надо, где относительно нормальная дисковая подсистема и процессор есть, а не на маршрутизаторах это делать. Edited April 12, 2017 by StranikS_Scan @ Quote Link to comment Short link Share on other sites More sharing options...
kharlashkin Posted April 12, 2017 Author Share Posted April 12, 2017 (edited) На NAS поднимать простенький сайт надо, где относительно нормальная дисковая подсистема и процессор есть, а не на маршрутизаторах это делать. Под простеньким сайтом имелось ввиду внутренний домашний, в моем случае мониторинг воздуха дома. Когда-то у меня дома стоял D-Link DNS-313 который тоже настраивал как и маршрутизатор и могу сказать что скорость работы с ним была на уровне Asus Wl-520GU. Если сейчас посмотреть на характеристики и цены NAS и маршрутизаторов - думаю не всё так однозначно будет - потому как цены на NAS начинаются от $100. Если выпускать наружу сайтик - то лучше уж что нибудь из "пирогов" или VPS за символическую плату. подключим его к Arduino. Тут у меня другая проблема - оказалось под dd-wrt нет драйвера для китайских Arduino с чипом ch340g. Edited April 12, 2017 by kharlashkin 1 @ Quote Link to comment Short link Share on other sites More sharing options...
kharlashkin Posted April 12, 2017 Author Share Posted April 12, 2017 (edited) До утра сидел за ноутом, сегодня половину рабочего дня "гуглил" на работе - решил попробовать OpenWRT, так как в ней вроде есть нужный драйвер для китайских ардуин... Если чуть позже запал не пройдет - буду пробовать собрать драйвер для dd-wrt. решил попробовать OpenWRT Изначально боялся что придется всё делать в консоли, но оказалось есть неплохой веб-интерфейс. До этого только один раз устанавливал OpenWRT родителям дома из-за глючности заводской прошивки TP-Link, а других вариантов не было. Подключил флешку, при чем делается проще чем в dd-wrt - практически всё через web. Установил драйвер для китайской Arduino: Поставил python, pip, flask, pyserial. вывел себе в браузер "Hello world!" - красота ;) Edited April 13, 2017 by kharlashkin 1 @ Quote Link to comment Short link Share on other sites More sharing options...
kharlashkin Posted April 13, 2017 Author Share Posted April 13, 2017 (edited) Прошил в свою Arduino Nano 3.0 (специально покупал под проект мониторинга воздуха) следующий скетч: void setup() { Serial.begin(57600); pinMode(LED_BUILTIN, OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, HIGH); Serial.println("Led On"); delay(1000); digitalWrite(LED_BUILTIN, LOW); Serial.println("Led Off"); delay(1000); } То есть мигаем светодиодом и шлем сообщения. Подключил к маршрутизатору арудинку. Набросал проверочную программку: import serial ser = serial.Serial('/dev/ttyUSB0', 57600) while True: line = ser.readline() print line Скопировал её в папку на маршрутизаторе /mnt/test/ с помощью WinSCP. Что получилось: Никаких перерезаний дорожек и т.п. не потребовалось (тьфу-тьфу, может в будущем нужно будет). Кстати, у меня нормально так и не получилось подключаться к файловой системе маршрутизатора под Ubuntu. Так что я скачал портативную версию WinSCP распаковал в папку домашнего каталога и тупо запускаю её - через Wine все работает. Появилась мысль удаленного железного контроля Arduino. Заливка прошивки, монитор порта и т.д. и т.п. Сказано, сделано - нашелся проект Platformio, и был успешно установлен на маршрутизатор. Пока глубоко не копал и не совсем представляю что с ним делать - но команда platformio serialports monitor -b 57600 грузит процессор почти на 40% но выдает то же что и выше на скриншоте (python скрипт почти не грузит процессор, встроенные счетчики нагрузки в OpenWRT не фиксируют изменений). Для отладки скетчей самое то, прикрутить бы ещё форму заливки скетчей... Edited April 13, 2017 by kharlashkin @ Quote Link to comment Short link Share on other sites More sharing options...
kharlashkin Posted April 14, 2017 Author Share Posted April 14, 2017 (edited) Сказано, сделано - нашелся проект Platformio Как всегда - "Весело!". При попытке собрать и залить прошивку в адруинку вывалилась ошибка: root@OpenWrt:/mnt/pio# platformio run --target upload [Fri Apr 14 01:30:29 2017] Processing nanoatmega328 (platform: atmelavr, board: nanoatmega328, framework: arduino) -------------------------------------------------------------------------------- PlatformManager: Installing atmelavr Downloading [####################################] 100% Unpacking [####################################] 100% atmelavr @ 1.4.5 has been successfully installed! The platform 'atmelavr' has been successfully installed! The rest of packages will be installed automatically depending on your build environment. PackageManager: Installing toolchain-atmelavr @ ~1.40902.0 Error: Could not find a version that satisfies the requirement '~1.40902.0' for your system 'linux_mips' Если я правильно понял, для того чтобы иметь возможность компилировать прошивку прямо на девайсе - нужно пересобрать Toolchain под Linux MIPS платформу. Учитывая что инструмент этот хоть и может быть полезным в некоторых случаях, но несколько избыточен для того чтобы пару раз залить скетч. Так что решил пока отложить использование Platformio "на потом". Может кто подскажет/поможет с реализацией Toolchain. Edited April 14, 2017 by kharlashkin 1 @ Quote Link to comment Short link Share on other sites More sharing options...
Azbuka Posted April 14, 2017 Share Posted April 14, 2017 Может кто подскажет/поможет с реализацией Toolchain. А зачем? Компилировать можно и на своем компьютере (это быстрее, да и позволяет проверить код на ошибки), а использовать маршрутизатор только для программирования МК. Думаю, что скомпилировать AVRDUDE для MIPS легче, чем собрать avr-gcc. 1 @ Quote Link to comment Short link Share on other sites More sharing options...
kharlashkin Posted April 14, 2017 Author Share Posted April 14, 2017 Думаю, что скомпилировать AVRDUDE для MIPS легче, чем собрать avr-gcc. Тем более что avrdude уже есть в репозитории OpenWRT. @ Quote Link to comment Short link Share on other sites More sharing options...
kharlashkin Posted April 17, 2017 Author Share Posted April 17, 2017 “Не было бы счастья, да несчастье помогло”Так вышло, что у родителей вышел из строя HDD, флешку мою, забытую у них в спутниковом тюнере, мне не привезли. Пришлось вытягивать из маршрутизатора и делать из неё загрузочную - чтобы установить ОС на новый HDD, соответственно первоначальную настройку делать сначала. Таким образом появилась эта инструкция.1. Подготовка носителя в GParted.Открываем программу и выбираем нашу флешку: Отмонтируем нашу флешку от ОС, ПКМ - Отмонтировать: Удаляем все что есть на ней, клавиша "delete" или ПКМ - Удалить: Я решил, что под установочные пакеты отдам 1000 МиБ, под swap раздел 256 МиБ, остальное под мои файлы. Создаем разделы на флешке как мы задумали: , клавиша "insert" или ПКМ - Новый, для разделов под программы и мои файлы выбираем файловую систему "Ext3", под раздел подкачки "linux-swap": Применяем нужные нам изменения: Соглашаемся с применением изменений, ждём окончания операций. Закрываем GParted и вытягиваем флешку из ПК. 1 @ Quote Link to comment Short link Share on other sites More sharing options...
kharlashkin Posted April 18, 2017 Author Share Posted April 18, 2017 2. Подключаем накопитель к OpenWRT. Идем на веб страничку установки пакетов: Обновляем список доступных пакетов, кнопка Update list: Устанавливаем пакеты - kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-storage block-mount нажимаем и перегружаемся System - Reboot - Perform reboot Заходим в настройки точек монтирования System - Mount points и видим нашу флешку, ставим галочку напротив нашего раздела для установки пакетов и жмем кнопку Edit: Ставим галочку подключать диск, UUID оставляем тот же: Переходим на вкладку Advanced Settings и выбираем нашу файловую систему из выпадающего меню: Перегружаемся, после перезагрузки все наши настройки сбросятся, но мы увидим что наш раздел для установки стал намного больше: Опять устанавливаем нужные пакеты kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-storage block-mount, и подключаем теперь уже swap раздел и домашний каталог по аналогии. 1 @ Quote Link to comment Short link Share on other sites More sharing options...
kharlashkin Posted April 20, 2017 Author Share Posted April 20, 2017 (edited) AVRDUDE для MIPS Чего-то не взлетело у меня, а информации в интернете маловато. При проверке скетча в Arduino IDE, компилируется прошивка в нескольких вариантах, находятся в папке /tmp/arduino_build_XXXXXX/: blink_serial.ino.elf blink_serial.ino.hex blink_serial.ino.with_bootloader.hex Пробовал с первым и вторым файлом следующие манипуляции - копирую на маршрутизатор в папку, устанавливаю avrdude, пробу. прошить следующими командами с выводом: root@OpenWrt:/kharlashkin/tmp# avrdude -p m328p -P /dev/ttyUSB0 -c avrispmkII -U flash:w:blink_serial.ino.elf avrdude: stk500v2_ReceiveMessage(): timeout avrdude: stk500v2_ReceiveMessage(): timeout avrdude: stk500v2_ReceiveMessage(): timeout ^C root@OpenWrt:/kharlashkin/tmp# avrdude -p m328p -P /dev/ttyUSB0 -c avrispmkII -U flash:w:blink_serial.ino.hex avrdude: stk500v2_ReceiveMessage(): timeout avrdude: stk500v2_ReceiveMessage(): timeout avrdude: stk500v2_ReceiveMessage(): timeout ^C root@OpenWrt:/kharlashkin/tmp# avrdude -p m328p -P /dev/ttyUSB0 -c arduino -U fl ash:w:blink_serial.ino.hex avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00 ^C root@OpenWrt:/kharlashkin/tmp# avrdude -p m328p -P /dev/ttyUSB0 -c arduino -U fl ash:w:blink_serial.ino.elf avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00 ^C Нашел инструкцию по заливке с помощью picocom, нужно будет попробовать. Edited April 20, 2017 by kharlashkin @ Quote Link to comment Short link Share on other sites More sharing options...
Azbuka Posted April 20, 2017 Share Posted April 20, 2017 blink_serial.ino.elf Здесь помимо машинного кода находится отладочная информация. blink_serial.ino.hex Сам машинный код. blink_serial.ino.with_bootloader.hex Код и... бутлоадер? @kharlashkin, мне нагуглилась такая статья. Если коротко - нужно выставить baudrate с помощью ключа -b. ================== Ха-ха, отмена операции. avrdude может использовать Arduino как программатор, но не может использовать Arduino, чтобы запрограммировать саму себя. В Arduino есть собственный бутлоадер, который позволяет загружать программы по UART. Так что да, нужно воспользоваться picocom'ом. 1 @ Quote Link to comment Short link Share on other sites More sharing options...
kharlashkin Posted April 20, 2017 Author Share Posted April 20, 2017 (edited) Есть сподвижки, сейчас вот так: root@OpenWrt:/kharlashkin/tmp# avrdude -pm328p -carduino -P/dev/ttyUSB0 -b57600 -Uflash:w:/kharlashkin/tmp/blink_serial.ino.hex:r avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.01s avrdude: Device signature = 0x1e950f avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: reading input file "/kharlashkin/tmp/blink_serial.ino.hex" avrdude: writing flash (5618 bytes): Writing | ################################################## | 100% 1.81s avrdude: 5618 bytes of flash written avrdude: verifying flash memory against /kharlashkin/tmp/blink_serial.ino.hex: avrdude: load data flash data from input file /kharlashkin/tmp/blink_serial.ino.hex: avrdude: input file /kharlashkin/tmp/blink_serial.ino.hex contains 5618 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 1.41s avrdude: verifying ... avrdude: 5618 bytes of flash verified avrdude: safemode: Fuses OK (E:00, H:00, L:00) avrdude done. Thank you. Но прошивка не происходит, адруинка молчит потом как убитая. В порт ничего не шлет. Заработало! root@OpenWrt:/kharlashkin/tmp# avrdude -p m328p -P /dev/ttyUSB0 -b 57600 -c ardu ino -U flash:w:blink_serial.ino.hex avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.01s avrdude: Device signature = 0x1e950f avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: reading input file "blink_serial.ino.hex" avrdude: input file blink_serial.ino.hex auto detected as Intel Hex avrdude: writing flash (1990 bytes): Writing | ################################################## | 100% 0.66s avrdude: 1990 bytes of flash written avrdude: verifying flash memory against blink_serial.ino.hex: avrdude: load data flash data from input file blink_serial.ino.hex: avrdude: input file blink_serial.ino.hex auto detected as Intel Hex avrdude: input file blink_serial.ino.hex contains 1990 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 0.52s avrdude: verifying ... avrdude: 1990 bytes of flash verified avrdude: safemode: Fuses OK (E:00, H:00, L:00) avrdude done. Thank you. root@OpenWrt:/kharlashkin/tmp# python test.py Led Up! Led Down! Led Up! Led Down! Теперь под Flask страничку загрузки прошивок буду делать. Edited April 20, 2017 by kharlashkin @ Quote Link to comment Short link Share on other sites More sharing options...
kharlashkin Posted June 27, 2017 Author Share Posted June 27, 2017 Как-то позабылась тема. В основном из-за того, что много пересекающихся связей между маршрутизатором и ардуинкой ;) Как-то статья мимо меня прошла - "Умный обход блокировок в Украине". Ну и ссылка на репозиторий. 1 @ Quote Link to comment Short link Share on other sites More sharing options...
kharlashkin Posted July 10, 2017 Author Share Posted July 10, 2017 Прошла гроза, сгорел мой добрый Asus RT-N16. Вот взял во временное пользование у знакомого железку попользоваться, теперь есть некоторое время ломать голову покупкой нового маршрутизатора. Денег много как то вообще не готов отдавать, потому как гроза за собой потянула и стационарный комп (пока масштаб бедствий не известен). Что нужно - usb, пара внутренних портов и наверное AC. Разумеется чтобы работало это все под OpenWRT. Вот смотрю в сторону Xiaomi Mini, кто что думает? 1 @ Quote Link to comment Short link Share on other sites More sharing options...
kharlashkin Posted July 15, 2017 Author Share Posted July 15, 2017 (edited) Ну хоть один человек (кроме меня) одобрил мой выбор - плюсик поставил. Заказал я себе Xiaomi MiWiFi Mini, при чем оаказалось что дешевле и быстрее заказать себе этот маршрутизатор по месту, в Украине. На AliExpress цена около 718 грн с бесплатной доставкой, в интернет-магазине ROZETKA я покупал во вторник за 609 грн +35 грн доставка (сейчас ещё подешевел до 599 грн.). Вчера днем его забрал, вечером настроил на китайской стоковой прошивке и больше суток все нормально работало до сегодняшнего вечера. Сегодня же руки зачесались, и решил попробовать установить на него ту прошивку для которого эта железка и покупалась - OpenWrt. Всё встало/заработало без проблем и считаю своим долгом поделиться опытом. Первым делом сходил на страничку с описанием маршрутизатора на OpenWrt и увидел способ прошивки без плясок с бубном, регистрации и смс. Вчера я обновлял прошивку на последнюю от производителя, и при попытке получить telnet доступ я не получил правильное сообщение об ошибки из описания: {"msg":"未能連線到指定Wi-Fi(Probe timeout)","code":1616} Был ответ на китайском с кодом 1617 ;) Первым делом я откатился в ручном режиме на стоковую прошивку с версией 2.1.6, хотя маршрутизатор после перезагрузки ругался что последняя версия доступная 2.15.78: Далее в соседней вкладке вводим в адресную строку: http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/xqnetwork/set_wifi_ap? ssid=whatever&encryption=NONE&enctype=NONE&channel=1%3B%2Fusr%2Fsbin%2Ftelnetd Где <STOK> это цифробуквенный код с обычного web-интерфеса, мой видно на скриншоте. Получаю правильную ошибку, и ввожу следующий запрос: http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/xqsystem/set_name_password?oldPwd=<CURRENTPASS>&newPwd=<NEWPASS> Где <CURRENTPASS> это установленный на этапе настройки пароль доступа к вебморде (кстати в родной прошивке он ключ к Wi-Fi) и <NEWPASS>, соответственно новый пароль. Открываем консольку и телнетом перешиваем, последовательно вводя несколько команд - загрузка прошивки OpenWrt, проверка расположения MTD и собственно прошивка. Ниже привожу просто копипаст из терминала. kharlashkin@asus-K56CB:~$ telnet 192.168.31.1 Trying 192.168.31.1... Connected to 192.168.31.1. Escape character is '^]'. XiaoQiang login: root Password: BusyBox v1.19.4 (2015-03-20 10:08:59 CST) built-in shell (ash) Enter 'help' for a list of built-in commands. ----------------------------------------------------- Welcome to XiaoQiang! ----------------------------------------------------- root@XiaoQiang:~# cd /tmp; wget http://downloads.openwrt.org/chaos_calmer/15.05.1/ramips/mt7620/openwrt-15.05.1-ramips-mt7620-xiaomi-miwifi-mini-squashfs-sysupgrade.bin --2017-07-16 03:36:31-- http://downloads.openwrt.org/chaos_calmer/15.05.1/ramips/mt7620/openwrt-15.05.1-ramips-mt7620-xiaomi-miwifi-mini-squashfs-sysupgrade.bin Resolving downloads.openwrt.org... 78.24.191.177 Connecting to downloads.openwrt.org|78.24.191.177|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 3670020 (3.5M) [application/octet-stream] Saving to: 'openwrt-15.05.1-ramips-mt7620-xiaomi-miwifi-mini-squashfs-sysupgrade.bin' 100%[======================================>] 3,670,020 2.61M/s in 1.3s 2017-07-16 03:36:33 (2.61 MB/s) - 'openwrt-15.05.1-ramips-mt7620-xiaomi-miwifi-mini-squashfs-sysupgrade.bin' saved [3670020/3670020] root@XiaoQiang:/tmp# cat /proc/mtd dev: size erasesize name mtd0: 01000000 00010000 "ALL" mtd1: 00030000 00010000 "Bootloader" mtd2: 00010000 00010000 "Config" mtd3: 00010000 00010000 "Factory" mtd4: 00c80000 00010000 "OS1" mtd5: 00b21c3e 00010000 "rootfs" mtd6: 00200000 00010000 "OS2" mtd7: 00100000 00010000 "overlay" mtd8: 00010000 00010000 "crash" mtd9: 00010000 00010000 "reserved" mtd10: 00010000 00010000 "Bdata" root@XiaoQiang:/tmp# mtd -r write openwrt-15.05.1-ramips-mt7620-xiaomi-miwifi-mi ni-squashfs-sysupgrade.bin OS1 Unlocking OS1 ... Writing from openwrt-15.05.1-ramips-mt7620-xiaomi-miwifi-mini-squashfs-sysupgrade.bin to OS1 ... Rebooting ... После перезагрузки увидя активное сетевое подключения и посмотрев адрес полученный от dhcp - 192.168.1.115 я возликовал, а зайдя в веб-интерфейс и увидев OpenWrt - вдвойне ;) Edited July 15, 2017 by kharlashkin 1 @ Quote Link to comment Short link Share on other sites More sharing options...
kharlashkin Posted July 16, 2017 Author Share Posted July 16, 2017 (edited) Должен сообщить, что OpenWrt лучше родной прошивки. Приведу пример. Выше отписывал, что гроза потянула за собой стационарный ПК, который у меня как HTPC работает. Выгорел сетевой порт, и отвалились часть usb-портов. Во временное пользование был выпрошен у знакомого Wi-Fi usb-свисток. Так вот с родной прошивкой от Xiaomi наблюдалось периодическое отваливание беспроводной сети, помогало только физическое передергивание модуля. Изначально грешил именно на беспроводной модуль - так как мне сразу говорили что он очень глючный и пришлось повозиться с драйверами (в комплекте не было, в интернете тоже не сразу нашлись). После перепрошивки маршрутизатора, отваливаний не наблюдаю пока от слова "вообще". Edited July 16, 2017 by kharlashkin 1 @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.