|
Результаты опроса: Если роутер прошит и настроен под Arduino, Вы купили бы его | |||
Да | 53 | 31.36% | |
Нет | 24 | 14.20% | |
Куплю и сам настрою | 92 | 54.44% | |
Голосовавшие: 169. Вы ещё не голосовали в этом опросе |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
19.07.2012, 03:12 | #1 | |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Ставим OpenWrt на миниатюрный WiFi роутер TP-LINK TL-MR3020
Статья про то как прошить и настроить роутер TP-Link MR3020[/URL] или TL-WR703N для использования его в своих проектах.
Популярный проект WiFi робот Так же wr703n и MR3020 можно прошить прошивкой CyberWrt, данная прошивка понравится тем кто не хочет использовать дополнительный софт(PUTTY, WinCSP и др.) В этой прошивке встроен веб интерфейс , к роутеру можно подключатся через любой веб браузер, Доступны все возможные модули благодаря которым Вы в считанные секунды, можете превратить свой роутер в Видеорегистратор, Веб радио, Часы, Робота, WiFi контроллер и пр. и при этом не почувствуете что работаете с линуксом Цитата:
Характеристики роутера TP-Link MR3020: процессор Atheros AR7240 частотой 400 МГц SoC: Atheros AR9330 Rev 1 32 Мб ram 4 Мб флэш-памяти USB-2.0 Host Wi-Fi 802.11 b/g/n 150Mbps Ethernet-порт 100MBit UART (на плате) Питание осуществляется через мини-USB (+5В) Максимальный ток с включенным Wi-Fi 150мА или 100мА без него. Размер печатной платы: 5,7см х 5,7см Размер роутера: 6,7см х 7.4cm х 2.2cm 1. Прошивка Вместо заводской прошивки, зальем на него OpenWRT. Сначала скачиваем новую прошивку от 21.09.12 (r33482) с этого форума. Подключаем роутер к компьютеру LAN кабелем (адрес по-умолчанию: 192.168.0.254), логин/пароль: admin/admin. Заходим через браузер в системные настройки, выбираем заранее скаченый файл прошивки, нажимаем кнопку обновить и ждем пока зальется. Во время прошивки не трогайте роутер и не отключайте его питание, иначе получите танцы с бубном или убитый роутер. После прошивки роутер уйдет автоматически в ребут. Теперь роутер получил адрес 192.168.1.1. Подключаемся к нему телнетом, я использовал Putty и получаем окно терминала 2. Начальная настройка сети Открываем фаил network текстовом редакторе vi и пропишем в нем свои сетевые настройки: root@OpenWrt:~# vi /etc/config/network Настройки Секции config interface 'lan' должны выглядеть так: Код:
config interface 'lan' option ifname 'eth0' option type 'bridge' option proto 'static' option ipaddr '192.168.1.99' # новый IP роутера MR3020 option netmask '255.255.255.0' # маска option gateway '192.168.1.1' # шлюз к которому будет подключаться mr3020 list dns '192.168.1.1' # DNS1 сервер (головной роутер) list dns '8.8.8.8' # DNS2 сервер Если у вас другая подсеть необходимо сменить сетевые адреса на вашу подсеть. Для дальнейшей настройки роутера mr3020 необходимо его подключить по Ethernet к головному роутеру или ADSL модему получающему интернет. Схема подключения Еще нужно добавить строку в /etc/sysupgrade.conf для предотвращения перезаписи конфигов после ребута. root@OpenWrt:~#echo "/etc/config/" >> /etc/sysupgrade.conf Выполняем Reboot. Ждем перезагрузки и проверяем подключение к Интернету: root@OpenWrt:~#ping cyber-place.ru Если пингуется: PING cyber-place.ru (5.9.57.134): 56 data bytes 64 bytes from 5.9.57.134: seq=0 ttl=252 time=52.902 ms 64 bytes from 5.9.57.134: seq=1 ttl=252 time=52.017 ms 64 bytes from 5.9.57.134: seq=2 ttl=252 time=52.137 ms 64 bytes from 5.9.57.134: seq=3 ttl=252 time=52.376 ms 64 bytes from 5.9.57.134: seq=4 ttl=252 time=52.128 ms 64 bytes from 5.9.57.134: seq=5 ttl=252 time=52.166 ms Прерываем выполнение нажатием клавиш Ctrl^C Здесь нужно быть внимательным! т.к. использовалась прошивка от 21.09.2012 r33482 (с этого форума) для установки пакетов нужно поменять источник репозитория тоже на эту-же версию. Правим файл /etc/opkg.conf комментируем 1-ю строчку и добавляем свою Код:
#src/gz attitude_adjustment http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages src/gz attitude_adjustment http://cyber-place.ru/download/packages/ dest root / dest ram /tmp lists_dir ext /var/opkg-lists option overlay_root /overlay Казалось бы на этом все, но в своем распоряжении вы имеете очень маленький объем Flash памяти, всего 1.4 Мб, из которых свободно всего около 300 Кб! Этого не хватит даже LuCI установить. Выход есть, нужно подключить внешнюю USB флешку. Для этого придется выполнить все что я написал ниже. Начинаем установку пакетов программ! Обновляем список пакетов и устанавливаем нужные нам пакеты: root@OpenWrt:~# opkg update root@OpenWrt:~# opkg install kmod-usb2 root@OpenWrt:~# insmod ehci-hcd root@OpenWrt:~# opkg install kmod-usb-core kmod-usb-storage kmod-fs-ext4 kmod-scsi-core block-mount e2fsprogs fdisk Посмотреть список установленных пакетов: root@OpenWrt:~# opkg list-installed ... ... kmod-scsi-core - 3.3.8-1 kmod-usb-core - 3.3.8-1 kmod-usb-ohci - 3.3.8-1 kmod-usb-storage - 3.3.8-1 kmod-usb-uhci - 3.3.8-1 kmod-usb2 - 3.3.8-1 kmod-wdt-ath79 - 3.3.8-1 ... ... Смотрим как флешка определась системой: root@OpenWrt:~# fdisk -l у меня USB Flash-диск определился как sda Disk /dev/sda: 1018 MB, 1018691584 bytes 9 heads, 56 sectors/track, 3947 cylinders, total 1989632 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0004862f Device Boot Start End Blocks Id System /dev/sda1 2048 1989631 993792 83 Linux Сначала создаем на USB Flash раздел: root@OpenWrt:~# fdisk /dev/sda Выполняем следующие команды: Command (m for help): d Partition number (1-4): 1 Command (m for help): d Partition number (1-4): 2 Command (m for help): d Partition number (1-4): 3 Command (m for help): d No partition is defined yet! Создаем раздел: Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (27-122, default 27): Using default value 27 Last cylinder or +size or +sizeM or +sizeK (27-122, default 122): Using default value 122 Смотрим, что получилось: Command (m for help): p Disk /dev/sda: 1018 MB, 1018691584 bytes 7 heads, 8 sectors/track, 35529 cylinders, total 1989632 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0004862f Device Boot Start End Blocks Id System /dev/sda1 * 2048 1989631 993792 83 Linux Command (m for help): a Partition number (1-4): 1 Выходим: Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. Раздел создан, форматируем его: root@OpenWrt:~# mkfs.ext4 /dev/sda1 mke2fs 1.42.4 (12-June-2012) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 62208 inodes, 248448 blocks 12422 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=255852544 8 block groups 32768 blocks per group, 32768 fragments per group 7776 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Allocating group tables: done Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done Монтируем новый диск и копируем на него все необходимое: root@OpenWrt:~# mkdir -p /mnt/usb root@OpenWrt:~# mount -t ext4 /dev/sda1 /mnt/usb -o rw,sync root@OpenWrt:~# tar -C /overlay -cvf - . | tar -C /mnt/usb -xvf - Правим фаил /etc/config/fstab: root@OpenWrt:~# vi /etc/config/fstab Нам нужно отредактировать секцию config 'mount': config 'mount' option target /overlay option device /dev/sda1 option fstype ext4 option options rw,sync option enabled 1 option enabled_fsck 0 Сохраняем, перезагружаемся, проверяем: root@OpenWrt:~# df -h Filesystem Size Used Available Use% Mounted on rootfs 968.0M 51.9M 867.6M 6% / /dev/root 1.5M 1.5M 0 100% /rom tmpfs 14.2M 72.0K 14.2M 0% /tmp tmpfs 512.0K 0 512.0K 0% /dev /dev/sda1 968.0M 51.9M 867.6M 6% /overlay overlayfs:/overlay 968.0M 51.9M 867.6M 6% / Отлично!!! У нас теперь много свободного пространства, для установки модулей и утилит. 4. Последние шрихи. Устанавливаем поддержку кодировок opkg update opkg install kmod-nls-cp1251 kmod-nls-koi8r kmod-nls-utf8 kmod-nls-cp866 kmod-nls-cp437 Детальное описание всего что устанавливалось на роутер TP-LINK Примечание Так как при работе с роутером необходимо постоянно что-то редактировать и изменять, очень удобно (вместо встроенного vi) работать используя WinSCP - это графический клиент SFTP (SSH File Transfer Protocol) для Windows с открытым исходным кодом. Он также поддерживает протокол SCP (Secure Copy Protocol). Предназначен для защищённого копирования файлов между компьютером и серверами, поддерживающими эти протоколы. Программа имеет встроенный редактор (но можно подключить и внешний). Есть также руссификатор программы. Для работы по защищенному протоколу SSH, SCP необходимо задать пароль для пользователя root. Для этого необходимо в консоле дать команду: passwd и ввести ваш новый пароль (ввод не видим), затем повторить еще раз. Это также позволит работать с Putty используя SSH протокол (22 порт). Более детально можно прочитать здесь Последний раз редактировалось andr128; 25.06.2013 в 17:10. Причина: правка источника пакетов |
|
04.08.2012, 23:36 | #2 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Ручной метод прошивки с помощью TFTP
setenv ipaddr <device-ip, eg. 192.168.1.4> setenv serverip <server-ip, eg. 192.168.1.2> tftpboot 0x80000000 firmware-image.bin erase 0x9f020000 +0x3c0000 cp.b 0x80000000 0x9f020000 0x3c0000 bootm 0x9f020000 Цоколевка UART 1-TX 2-RX 3-GND 4-VCC Вывод 1 обозначен на плате. Чтобы получить надежное последовательное соединение, вам придется подключить подтягивающий резистор 10К между TX и VCC. Настройки для доступа к консоли через UART будут следующие Bits per second: 115200 Data bits: 8 Stop bits: 1 Parity: None Flow control: None более подробно здесь После загрузки оригинальной прошивки , Вы можете нажать return для активации Linux TL-MR3020 mips #185 Fri Oct 21 16:26:50 CST 2011 (none) TL-MR3020 login: root password: 5up Увеличение объема оперативной памяти до 64мГб В роутере используется чип памяти Zentel A3S56D40FTP DDR1 16Мбит х 16бит (16 * 16 = 256 Mbit. 256 / 8 = 32MByte) 400 МГц . Его можно заменить его на любой 32Mbit х 16-битный чип. 333 вместо 400 МГц и роутер будет работает отлично. Правда сейчас довольно трудно найти такие чипы. Нужно искать ноутбучную планку памяти DDR-SODIMM. Проверенные микросхемы памяти: V58C2512164SAI5 (планка Kingston KVR400X64C3A/256) Hynix HY5DU121622DTP-D43 (планка Mustang DDR-SODIMM на 512 МБ) Hynix HY5DU121622CTP-D43 (планка Hynix SODIMM DDR-PC2700S-25330 на 512MB DDR 333 CL 2.5, 400 МГц чипы совместимы с "D43", маркировкой). Infineon HYB25D512160BE (планка Infineon DDR-SODIMM на 512 МБ) Не проверенные планки, но теоретически они должны работать: PC400 HY5DU121622DTP-D43-C Hynix PC400 H5DU5162ETR-E3C Hynix PC400 K4H511638G-LCCC Samsung PC400 K4H511638J-LCCC Samsung PC400 A3S12D40ETP-G5 Zentel PC400 NT5DS32M16BS-5Т Nanya PC400 P3S12D40ETP-GUTT Mira PC333 MT46V32M16TG-6T:F Micron PC333 MT46V32M16P-6T:F Micron PC333 EDD5116ADTA-6B-E Elpida PC333 HYB25D512160CE-6 Qimonda PC333 HYB25D512160CEL-6 Qimonda PC333 HYB25D512160DE-6 Qimonda Поле замены микросхемы памяти, роутер должен сам определить новый объем RAM 64мГб Последний раз редактировалось andr128; 09.07.2013 в 20:58. |
11.03.2013, 16:02 | #3 | |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799 |
Цитата:
Планки Kingston KVR400X64C3A/256 от 5 долларов с доставкой - можно изъять от туда соответствующее количество чипов Оба вида чипов Hynix есть чистые от 6 долларов с доставкой |
|
26.03.2014, 13:37 | #4 | |
Junior Member
Регистрация: 21.03.2014
Сообщений: 4
Вес репутации: 0 |
Re: Ставим OpenWrt на миниатюрный WiFi роутер TP-LINK TL-MR3020
Цитата:
Соединил только RX и TX на мегу TX2 16 и RX2 17 PHP код:
Последний раз редактировалось scort; 26.03.2014 в 14:08. |
|
30.03.2014, 23:25 | #5 | |
Junior Member
Регистрация: 21.03.2014
Сообщений: 4
Вес репутации: 0 |
Re: Ставим OpenWrt на миниатюрный WiFi роутер TP-LINK TL-MR3020
Цитата:
wiki.openwrt.org/ru/toh/tp-link/tl-mr3420 раздел последовательный порт на 3020 резистор TX-VCC точно не нужен, т.к нет там в линии ни 2x5.6кОм ни конденсатора. |
|
08.08.2012, 18:08 | #6 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Как прошить роутер в OpenWrt из командной строки?
Выбираем папку /tmp cd /tmp Скачиваем в папку /tmp совместимую с роутером прошивку root@OpenWrt:/tmp# wget http://downloads.openwrt.org/snapsho...fs-factory.bin Connecting to downloads.openwrt.org (78.24.191.177:80) openwrt-ar71xx-gener 100% |*************************************** ******************| 3840k 0:00:00 ETA[/I] root@OpenWrt:/tmp# wget http://downloads.openwrt.org/snapsho...ar71xx/md5sums Connecting to downloads.openwrt.org (78.24.191.177:80) md5sums 100% |*************************************** **************************************** ***********************************| 27375 0:00:00 ETA Проверить целостность файлов md5sum -c md5sums Прошиваем mtd -r write /tmp/openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin firmware Ждём пару минут, роутер после прошивки, уйдет автоматически в reboot Оригинальная прошивка для роутера MR3020 |
09.08.2012, 22:04 | #7 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Устанавливаем Midnight Commander
opkg update opkg install mc Для правильной работы MC, перед запуском нужно выполнить: export TERMINFO="/usr/share/terminfo" export TERM="xterm" mc Но что бы каждый раз не писать эти строчки перед запуском, то лучше прописать их в файле profile: vi /etc/profile export TERMINFO=/usr/share/terminfo export TERM=xterm Еще можно выбрать тип терминала в Putty Midnight Commander должен выглядеть вот так: |
10.08.2012, 00:02 | #8 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Устанавливаем Web Interface LuCI
opkg update opkg install luci Включаем и запускаем веб интерфейс /etc/init.d/uhttpd enable /etc/init.d/uhttpd start Проверяем, из браузера с любого устройства, набраем IP адрес 192.168.1.99 Логин: root Пароль: xxxx Для руссификации Luci устанавливаем следующий пакет opkg update opkg install luci-i18n-russian |
10.08.2012, 20:03 | #9 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Описание часто используемых команд в OpenWrt linux:
uname -a - Показать версию ядра Linux; cat /proc/cpuinfo - Показать информацию о железе cat /proc/meminfo - Показать расширенную информацию о занимаемой оперативной памяти free -m - Информация о используемой и свободной оперативной памяти ls /dev - Показать все устройства в системе id - Показывает сводную информацию по текущему пользователю (логин, UID, GID); ps - Показать все загруженные процессы; top - Посмотреть какой процесс и на сколько он нагружает процессор date - Посмотреть дату и время dmesg - Показывает log-файл загрузки lsmod - Список всех модулей загруженных в ядро netstat -rn - Выводит таблицу маршрутизации netstat -an | grep LISTEN - Показывает список всех открытых портов netstat -tup - Активные соединения с интернетом nslookup cyber-place.ru - отправить запрос DNS серверу и получить IP запрашиваемого домена stty -F /dev/ttyATH0 speed - узнать скорость порта stty -F /dev/ttyATH0 -a - полная информация об настройках порта stty -F /dev/ttyATH0 cs8 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts - Изменить параметры UART порта fdisk -l Информация о всех подключенных дисках; blkid - Выводит UUID информацию всех доступных накопителей в системе; df Показывает свободное и занятое место в разделах; mkfs.ext4 /dev/sda1 - Форматирует диск sda1 в FS ext4 mount /dev/sda1 /mnt - Монтирует раздел /dev/sda1 к точке монтирования /mnt; mount - Показывает полную информацию о примонтированных устройствах; umount /mnt - Отмонтирует раздел от точки монтирования /mnt; clear - Очистить окно терминала; reboot - Перезагрузить устройство; exit - Завершить сеанс; passwd - Меняет пароль текущего пользователя; date - Показывает текущую дату и время; pwd - Показывает текущий путь; ls - Показывает список файлов и каталогов в текущей папке; mkdir /test - Создание папки с именем test; rmdir /test - Удаление папки с именем test; rm -i stats.gif - Удаление файла с именем stats.gif; touch /tmp/myfile.txt - Создать фаил chmod 777 /tmp/myfile.txt - Изменить права доступа к файлу cd /tmp - Перейти в указанную папку; wget htp://cyber-place.ru/images/misc/stats.gif - Скачать файл в текущую папку opkg update – обновляет список пакетов (загружая его из репозитория, указанных в конфигурационном файле); opkg upgrade – обновляет все установленные пакеты; opkg install <имя_пакета> – устанавливает пакет (в качестве параметра может принимать имя пакета, а также путь или HTTP URL, указывающий на файл пакета); opkg remove <имя_пакета|регулярно� �_выражение> – удаляет один или несколько пакетов; opkg list – выводит на экран полный список пакетов; opkg list-installed – выводит на экран список установленных пакетов. cat /home/primer- Показать содержимое файла /home/primer ; vi /folder/filename - открыть файл в редакторе vi i - включить режим редактирования [Esc] - выйти из режима редактирования u - undo (отмена) CTRL + R - redo :w [Enter] - сохранить внесенные изменения. :q [Enter] - выйти без сохранения изменений :wq [Enter] - сохранить внесенные изменения и выйти. dd - удалет строку на которой находится курсор x - удалет символ на котором находится курсов [y] - копирует строку в буфер [P] - вставляет скопированную строку после той, на которой в текущий момент находится курсор wget -O - -q http://www.chisono.it/ip.asp && echo - Посмотреть Ваш IP |
10.08.2012, 22:18 | #10 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Подключил Arduino Nano V.7 к UART роутера
Залил тестовый скетч в Arduino Nano PHP код:
cat /dev/ttyATH0 Отправить из консоли в порт роутера echo "Привет" > /dev/ttyATH0 Светодиод на Arduino реагирует моментально! Теперь можно написать веб морду для удаленного управления. |
Здесь присутствуют: 22 (пользователей: 0 , гостей: 22) | |
|
|