Собственно этот блог я и начал писать, чтобы не забывать как настраивать систему, когда меняешь девайс или перешиваешь. Надоедает каждый раз гуглить - искать нужны конфиги.
Год назад, я был тогда еще зелен (зеленее не бывает) в прошивке OpenWRT, при очередной перепрошивке брикнул TP-Link 1043ND. Он конечно был гарантийный, но мне, я считал себя аццким перцем (бугога), захотелось перешить самому.
Погуглил, раскрыл, припаял контакты к материнке роутера (последовательный порт). Подключил к старому компу с RS232 портом. Он мне выдал крякозябры. Я расстроился. Понял что я бессилен. А гарантии уже нет :-( Пошел сначала по знакомым - у тех тоже самое. Потом звонил всем подряд сервис-центрам. Везде одно и тоже: "мы таким не занимаемся." Стоит, если делать, дороже, чем купить новый роутер. Другие говорили: "Мы, типа, iPhone'ами занимаемся, а китайцами - нам не пруха". Видать забыли, что ЯМобилки - собирают там же в Китае. Бугога.
Причем нашел на openwrt.org как вообще выпаять и перешить флеш-чип с полным мануалом. Принес еще одному умельцу. Сказал зайди через неделю. Через неделю "умелец" Вова сказал - "НЕТ. Процесс дорогой. Лучше купи новый роутер." А за "диагностику" взял мил человек 30 грн. и не побрезговал :-).
Расстроился я окончательно, достал из дорогой мне заначки $100 и с горя купил Linksys WRT160NL. Собственно тогда я и завел блог. Хотя, ввиду схожести архитектуры, все написанное здесь работает и на TP-Link'e (Проверено электроникой).
TP-Link жил себе на работе, перенес переезд в другой кабинет. Я уже думал выкинуть его ко всем чертям. Как вдруг, btard, дал линк на то, как он поднял свой WRT160NL после сбоя. Думаю, заберу домой, а вдруг, как говорится?... :-)
Естесственно у меня ничего не вышло. Другой подход в создании бут-лоадера. Linksys поэтому и дороже в 1.5 раза, потому что он умнее :-). CISCO как никак! Но решил опять погуглить. Терять уже нечего, рабочий роутер есть. Прежде чем выкидывать, так попробую. Залез в гугл. Нашел статью и форум, где на нее была ссылка. Там увидел, в чем была моя проблема. Проблема была в том, что я подключал в порту компа напрямую. А там, если все правильно помню на выходе 5В, а надо 3.3В. Один форумчанин описал симптомы с другим питанием в точ-точь как у меня: кракозябры и прочее. Ага, значит надежда есть :-) В соответствии с мануалом, купил на радиорынке китайский кабель Nokia CA-42, хотя как мне потом сказал Win7 x64, это не нокия, а prolific.com.tw . Соответственно и фирменные Nokia кабеля того же производителя.
Так как моя Винда х64 не захотела запускать девайс USB-to-RS232, я включил кабель в ноут с Ubuntu. dmesg мне сказал, что /dev/ttyUSB0 - готов к работе.
Осталось дело за малым:
1. Скачал родную прошивку для TP-LINK
2. Поставил TFTP сервер как в мануале по дебрикингу на ноут с семеркой и подлючил его к порту 1 роутера. (не имеет значения с какого компа заливать по TFTP - главное прописать адрес сетевой на ноуте 192.168.0.5 (только его). У меня так получилось, что консолью я ходил из под Ubuntu, а заливал по TFTP из под Win7 x64. Но это мои детали. Просто мне не захотелось бороться с Gnome Network Manager. Туповатый он, когда пытаешься ручками адреса прописать. Вообщем влом было и торопился я.
3. Разделал кабель (решил не заморачиваться с припаиванием контактов - гемор еще тот), определил где какой шнур. В моей случае было так: БЕЛЫЙ - RX, ЗЕЛЕНЫЙ - TX, СИНИЙ - GND. Соответственно на роутере TX/RX меняются местами.
4. Подлючил все и о ЧУДООО!! - увидел надписи в Putty на родном английском языке. Конечно запрыгал от счастья :-)
5. Дальше все по манулу, все поднялось и запело.
...................
Естественно родная прошивка TP-LINK, к-ю я сразу влил - как всегда, даже последняя версия, начала лагать с IPTV по WiFi.
Я взял конфиги с WRT160NL, чуть допили, и настроил его под себя уже в OpenWRT10.3.1.
На данный момень 2 часа - полет нормальный. Роутер работает!!!!.
...................
P.S. Полный привэд сервис-мэну Вове. Вова - если ты читаешь этот пост - ганьба тебе. Если есть совесть - верни деньги. Дело принципа!!!!
P.P.S. Полный привэд ВСЕМ сервис-мэнам "авторизированных" СЦ. Ребята - с Вас китайцы сделали обезьян, умеющих только платы переставлять. Вы забыли про паяльник и программатор. Помнится в студенческие годы я криво проапдейтил BIOS на компе :-) (Традиция у мну такая). 1999 год. Операция по восстановлению компа с выниманием флешки, программатором и возвратом назад заняли 20 минут и 20 грн. денег (тогда курс курс 5.35 для справки).
P.P.P.S. Всем спасибо. У кого есть подобные проблемы - задавайте вопросы. Чем смогу - помогу. Сегодня хороший день!
P.P.P.P.S. btard - Вам за вдохновение и автору манула ELVEON (Антон) для TP-LINK - мой респект и уважуха. Спасибо огромное. С меня \_/\_/\_/
Useful notes how to take an advancage of routers based on Atheros 91xx. TP-Link TL-WR1043ND, Linksys WRT160NL, etc.
неділя, 8 січня 2012 р.
пʼятниця, 12 серпня 2011 р.
OpenWRT + Linksys WRT160NL
Решил таки прошить роутер последней прошивкой OpenWRT. Тем более было обещано, что стабильной работы WiFi от Atheros улучшена.
До этого стояла DD-WRT. Для корректной прошивки, сначала через web-интерфейс прошился в родную прошивку linksys. А с нее уже перешился в OpenWRT.
Прошивку брал последней версии 10.03.1-rc5. Все делал через Web-интерфейс, используя штатные функции. Все прошло гладко.
Сразу после перешивки доступен telnet, LUCI (Web-интерфейс).
Доустановил DDNS, UDP Proxy, Pure-FTP, SAMBA3, Transmission Daemon, nano, htop, mc и прикрутил USB Диск на 500 ГБ, сделав на нем 2 раздела: 128MB под swap раздел, а остальное раздел для данных в ext3.
Позже расскажу как это все дело запустить. На wiki.openwrt.org есть все подробные доки по настройке. Я лишь расскажу, как поднять то, что было необходимо мне.
Система стоит уже 3 дня. Стоит отметить, что стабильность работы системы на высоте. DD-WRT уже бы раз пять повесилась при прикручивании того или другого. Особенно глючно на DD-WRT работает WiFi.
----------------------------------------------------------------------
26-12-2011
-----------------------------------------------------------------------
Перешился на релиз OpenWRT 10.3.1 через LUCI. Прошивка *squashfs-sysupgrade*. Обязательно необходимо убирать галку "Keep Configuration Files". Иначе можно брикнуть роутер. Все прошло без сучка. Кста роутер запомнил измененный MAC-address.
Все работает замечательно.
До этого стояла DD-WRT. Для корректной прошивки, сначала через web-интерфейс прошился в родную прошивку linksys. А с нее уже перешился в OpenWRT.
Прошивку брал последней версии 10.03.1-rc5. Все делал через Web-интерфейс, используя штатные функции. Все прошло гладко.
Сразу после перешивки доступен telnet, LUCI (Web-интерфейс).
Доустановил DDNS, UDP Proxy, Pure-FTP, SAMBA3, Transmission Daemon, nano, htop, mc и прикрутил USB Диск на 500 ГБ, сделав на нем 2 раздела: 128MB под swap раздел, а остальное раздел для данных в ext3.
Позже расскажу как это все дело запустить. На wiki.openwrt.org есть все подробные доки по настройке. Я лишь расскажу, как поднять то, что было необходимо мне.
Система стоит уже 3 дня. Стоит отметить, что стабильность работы системы на высоте. DD-WRT уже бы раз пять повесилась при прикручивании того или другого. Особенно глючно на DD-WRT работает WiFi.
----------------------------------------------------------------------
26-12-2011
-----------------------------------------------------------------------
Перешился на релиз OpenWRT 10.3.1 через LUCI. Прошивка *squashfs-sysupgrade*. Обязательно необходимо убирать галку "Keep Configuration Files". Иначе можно брикнуть роутер. Все прошло без сучка. Кста роутер запомнил измененный MAC-address.
Все работает замечательно.
середа, 15 грудня 2010 р.
wrt160nl + DD-WRT + Multicast IPTV + udpxy
wrt160nl, как и вся продукция от linksys by cisco, из коробки отказывается работать с multicast IPTV по WiFi на стоковой прошивке. dd-wrt тоже не имеет стандартных средств для этого. Вся проблема заключается в том, что мультикаст igmp-траффик сильно "засоряет" WiFi, путем многоадрессной рассылки пакетов по всем адресам внутри сети, а не только на адрес получателя. Делает это настолько "хорошо", что WiFi просто отваливается. Даже если смотреть IPTV по шнурку, все равно WiFi отвалится. Так как по дефолту WiFi и LAN в бридже.
На своем старом роутере wrt54gl я ставил udpxy - UDP Proxy, который берет мультикаст пакеты из внешнего интерфейса и пересылает на конкретный IP адрес. Таким образом WiFi остается рабочим. Есдинственное "но" - необходимо изменить адрес канала (указать адрес и порт прокси), но об этом чуть позже.
Решил искать скомпиленный udpxy для wrt160nl. Оказалось проблемой, так как другой производитель чипсета (Atheros, а не Broadcom). Нашел на форуме dd-wrt. Один добрый человек скомпилил под Атеросы. Только надо зарегиться, тогда будет видно ссылку.
Далее описаны шаги, как заставить работать udpxy автоматически и автоматически всегда иметь свежий плейлист со списком каналов, адаптированный под udpxy.
На своем старом роутере wrt54gl я ставил udpxy - UDP Proxy, который берет мультикаст пакеты из внешнего интерфейса и пересылает на конкретный IP адрес. Таким образом WiFi остается рабочим. Есдинственное "но" - необходимо изменить адрес канала (указать адрес и порт прокси), но об этом чуть позже.
Решил искать скомпиленный udpxy для wrt160nl. Оказалось проблемой, так как другой производитель чипсета (Atheros, а не Broadcom). Нашел на форуме dd-wrt. Один добрый человек скомпилил под Атеросы. Только надо зарегиться, тогда будет видно ссылку.
Далее описаны шаги, как заставить работать udpxy автоматически и автоматически всегда иметь свежий плейлист со списком каналов, адаптированный под udpxy.
- Скачиваем этот файл (udpxy).
- Далее необходимо разрешить раздел /jffs (Web Interface -> Administration -> Management ).
- Заходим на роутер по SSH (клиент любой, самій простой putty). Для этого он должен быть предварительно разрешен (Web Interface -> Services).
- Выполняем с консоли:mkdir -p /jffs/etc/configmkdir /jffs/binmkdir /jffs/iptv (позже объясню зачем)
- Копируем на роутер файл udpxy в папку /jffs/bin/ :
- Из под Линукса это можно сделать командой scp:
- Из под Windows, предварительно скачав и установив программу WinSCP.
- Далее, опять в консоли, выполняем следующее: chmod +x /jffs/bin/udpxy (делаем файл исполняемым. Можно тоже самое делать с помощью WinSCP - установить атрибут исполняемого файла)
- Теперь, либо прямо из консоли посредством vi, либо на компьютере набрать, а потом скопировать любым описанным выше способом создаем файл запуска прокси в папке /jffs/etc/config.
vi /jffs/etc/config/udpxy.wanup
Разрешение файла .wanup - обязательно. Оно указывает на то, что файл будет запускаться сразу после поднятия внешнего интерфейса, смотрящего к провайдеру. И набираем текст:
iptables -I INPUT -d 224.0.0.0/240.0.0.0 -j ACCEPT/jffs/bin/udpxy -p 81 -M 30 -B 256Kb -m 10.10.1.1 -a 192.168.1.1
Сохраняем. Выходим.где:-p 81 - порт на котором будет выстявляться во внутреннюю сеть каналы по http протоколу;10.10.1.1 - внешний адрес роутера (заменить на свой);192.168.1.1 - внутренний адрес роутера (заменить на свой). - Далаем стартовый скрипт исполняемым:
- Необходимо плейлист менять на роутере, благо все для этого в нем есть, и грузить уже непосредственно с роутера. Необходимо создать в нем скриптовый файлик и сделать его исполняемым: vi /jffs/iptv/iptv_playlist.sh . И вбиваем туда следующий текст:
- iptv.inet-provider.com - адрес в сети провайдера, по которому можно найти плейлист;
- udp_playlist.m3u - плейлист со списком каналов, который нам отдает провайдер, который надо менять;
- http_playlist.m3u - плейлист со списком каналов, который мы формируем под наш udpxy;
- 192.168.1.1 - внутренний адрес роутера. После этого делаем его исполняемым: chmod +x jffs/iptv/iptv_playlist.sh
- Аналогично, описанному в шаге 7 создаем файлик: vi /jffs/etc/config/iptv.wanup и вбиваем туда следующий текст: /jffs/iptv/iptv_playlist.sh . Потом делаем его исполняемым, как описано выше. Все, с редактированием файлов закончено. Переходим к настройкам через Web.
- Заходим в админку роутера на страницу: Services -> NAS. Разрешаем ProFTPD сервер. Устанавливаем File Directory: /jffs. Allow Write: Disable. В поле User Password List вбиваем одном строкой: iptv iptv. Anonymous Login (Read-only) запрещаем. Сохраняем результат.
- Переходим на страницу Administration -> Management. Разрешаем планировщик заданий cron и вбиваем в поле Additional Cron Jobs задачу, например, ежедневного обновления в 6-00 плейлиста со списком каналов: 0 6 * * * root /jffs/iptv/iptv_maxnet.sh .
- Все сохраняем и перезагружаем роутер.
- Измененный список каналов теперь доступен по адресу: ftp://iptv:iptv@192.168.1.1/iptv/http_playlist.m3u
- Для VLC создается ярлык и правится строка запуска. После самого плеера вбивается этот адрес. Теперь у Вас всегда будет свежий плейлист с каналами.
- Для IPTV Player в настройках вбить адрес и указать обновление при запуске.
В принципе по работе самой прокси все. Если теперь рестартонуть роутер - прокся поднимется и будет слушать по 81 порту запросы на получение IPTV. Но есть 1 нюанс. Мультикаст UDP адрес IPTV канала имеет вид: udp://@239.0.0.59:1234 .
И наша поднятая прокси никак не сможет догадаться, что он нее хотят, если не изменить адрес канала. Необходимо в адресе указать, что надо пойти за каналом на проксю. И адрес канала изменится на следующий: http://192.168.1.1:81/udp/239.0.0.59:1234 . Это необходимо сделать для всего плейлиста со списком каналов. Хорошо если провайдер не меняет список доступных каналов. А если наоборот? И список меняется чуть-ли не каждый день, что характерно для провайдеров, которые только запускают услугу IPTV. Каждый раз менять руками (с помощью текстового редактора) весь плейлист - тяжко и напряжно. Правда в IPTV Player есть возможность указать сетевой интерфейс откуда брать "телевизор". Тогда плейлист можно не менять, а в интерфейс вписать адрес роутера и порт: 192.168.1.1:81. В VLC Media Player я такого не нашел. Может плохо искал. Но решил, что можно сделать и по другому.
echo -----------------------------------------------
echo updating providers iptv playlist from iptv.inet-provider.com
echo -----------------------------------------------
cd /jffs/iptv/
rm udp_playlist.m3u
rm http_playlist.m3u
wget http://iptv.inet-provider.com/udp_playlist.m3u
sed 's|udp://@|http://192.168.1.1:81/udp/|' udp_playlist.m3u > http_playlist.m3u
echo ----------------------------------
echo iptv playlist successfully updated
echo ----------------------------------
где:
Теперь, Вам неважно, поменял провайдер список каналов или нет. Он всегда будет обновленным. И не надо менять руками на каждом девайсе список, достаточно указать адрес списка каналов с роутера.
P.S. Данное решение подходит не только для этого роутера. Для любого, под который есть скомпиленный udpxy, и в прошивке есть ftp-server. Изначально решение было создано на роутере TP-Link TL-WR1043ND, но после того, как я его убил перепрошивкой на OpenWRT - Купил Linksys WRT160NL. Кста на OpenWRT это тоже работает, только там я ставил другой ftp-server (не помню какой). Но это и не важно. Можно вместо ftp, использовать http.
P.S. Данное решение подходит не только для этого роутера. Для любого, под который есть скомпиленный udpxy, и в прошивке есть ftp-server. Изначально решение было создано на роутере TP-Link TL-WR1043ND, но после того, как я его убил перепрошивкой на OpenWRT - Купил Linksys WRT160NL. Кста на OpenWRT это тоже работает, только там я ставил другой ftp-server (не помню какой). Но это и не важно. Можно вместо ftp, использовать http.
(с) william
dd-wrt + linksys wrt160nl и MAC-addres Clone
После установки dd-wrt (rel. 14896) на linksys wrt160nl, обнаружил, что не работает функция MAC-address clone (клонирования MAC-адреса) внешнего сетевого интерфейса, смотрящего к провайдеру. До рестара роутера все работает. После рестарта - снова выставляется аппаратный MAC-адрес.
Поиск в гугле результатов не принес. Кроме того, что проблема есть не только у меня одного.
Решение было найдено. Написал скрипт через веб-морду и сохранил его как стартап скрипт:
ifconfig eth1 down
killall udhcpc
ifconfig eth1 hw ether aa:bb:cc:dd:ee:ff
ifconfig eth1 up
udhcpc -i eth1 -p /var/run/udhcpc.pid -s /tmp/udhcpc
Поиск в гугле результатов не принес. Кроме того, что проблема есть не только у меня одного.
Решение было найдено. Написал скрипт через веб-морду и сохранил его как стартап скрипт:
ifconfig eth1 down
killall udhcpc
ifconfig eth1 hw ether aa:bb:cc:dd:ee:ff
ifconfig eth1 up
udhcpc -i eth1 -p /var/run/udhcpc.pid -s /tmp/udhcpc
Где aa:bb:cc:dd:ee:ff - заменить клонированным МАС-адресом.
После этого - ребут. Все работает.
Только в веб-морде для WAN интерфейса все равно светится хардварный МАС адрес. ИМХО, это не важно - главное железка работает.
З.Ы. Это нужно для тех, у кого провайдер жестко привязывается к MAC-адресу устройства.
З.Ы. Это нужно для тех, у кого провайдер жестко привязывается к MAC-адресу устройства.
(c) william
Підписатися на:
Дописи (Atom)