Прошивка для прослушивания интернет радио на роутере. (WifiRadio.SU v33.Full)

Прошивка WifiRadio.SU Full с веб интерфейсом, для прослушивания интернет радио на роутерах с прошивкой Openwrt.

Возможности:

  1. Поддерживаемые потоки: MP3 (AAC, OGG — опционально при установке mpd-full)
  2. Индикация проигрываемого трека: есть
  3. Веб интерфейс: настройки wifi, управление подписками, добавление своих станций, загрузка своих плейлистов, упрощенный пульт управления, управление громкостью, управление переключением станций, управление избранным, управление озвучкой, управление звуковым устройством, обновление прошивки.
  4. Время переключения между станциями: ~2 сек.
  5. Поддержка приложения управлением с Android: есть

История изменений »

После обновления прошивки, в веб интерфейсе желательно обновить страницу клавишами CTRL+F5.

 

V33 MPD (21.10.2018)

Далее опишу возможности данного скрипта и порядок установки на роутер.

Для установки нам понадобится:

  1. роутер прошитый на openwrt с веб интерфейсом LuCI
  2. имеющий usb порт
  3. имеющий ~4 мегабайта свободной flash памяти для установки всех компонентов (можно расширить память при помощи внешней флешки)
  4. также необходим usb звуковой адаптер или usb наушники

Для начала опишу настройку wifi в режиме клиента. После настройки радио будет видеться в Вашей основной сети и иметь доступ к интернет по wifi.

Рекомендуемые настройки сети »

Редактируем следующие файлы:

/etc/config/wireless (добавляем в Ваш файл)

config wifi-iface
	option network 'wwan'
	option ssid '*********' #имя Вашей точки доступа WiFi
	option encryption 'psk2' #тип шифрования Вашей точки доступа
	option device 'radio0'
	option mode 'sta'
	option key '********' #пароль Вашей точки доступа

/etc/config/network (полностью заменяем Ваш файл, но параметр option ifname ‘eth0’ меняем на свой)

config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'

config interface 'lan'
option ifname 'eth0'
option type 'bridge'
option proto 'static'
option netmask '255.255.255.0'
option dns '8.8.8.8' 
option ipaddr '192.168.2.1' #ip адрес для Вашего роутера openwrt по кабелю (можно не менять)
option gateway '192.168.1.254' #ip адрес Вашего роутера openwrt в домашней подсети

config interface 'wwan'
option proto 'static'
option netmask '255.255.255.0'
option gateway '192.168.1.1' #ip адрес Вашего роутера или модема с интернетом
option dns '8.8.8.8'
option ipaddr '192.168.1.254' #ip адрес Вашего роутера openwrt в домашней подсети

/etc/config/firewall (полностью заменяем Ваш файл)

config defaults
option syn_flood '1'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'

config zone
option name 'lan'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
option network ' '

config zone
option name 'wan'
option network 'wan'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
option masq '1'
option mtu_fix '1'

config forwarding
option src 'lan'
option dest 'wan'

config forwarding
option src 'wan'
option dest 'lan'

config rule
option name 'Allow-DHCP-Renew'
option src 'wan'
option proto 'udp'
option dest_port '68'
option target 'ACCEPT'
option family 'ipv4'

config rule
option name 'Allow-Ping'
option src 'wan'
option proto 'icmp'
option icmp_type 'echo-request'
option family 'ipv4'
option target 'ACCEPT'

config rule
option name 'Allow-DHCPv6'
option src 'wan'
option proto 'udp'
option src_ip 'fe80::/10'
option src_port '547'
option dest_ip 'fe80::/10'
option dest_port '546'
option family 'ipv6'
option target 'ACCEPT'

config rule
option name 'Allow-ICMPv6-Input'
option src 'wan'
option proto 'icmp'
list icmp_type 'echo-request'
list icmp_type 'echo-reply'
list icmp_type 'destination-unreachable'
list icmp_type 'packet-too-big'
list icmp_type 'time-exceeded'
list icmp_type 'bad-header'
list icmp_type 'unknown-header-type'
list icmp_type 'router-solicitation'
list icmp_type 'neighbour-solicitation'
list icmp_type 'router-advertisement'
list icmp_type 'neighbour-advertisement'
option limit '1000/sec'
option family 'ipv6'
option target 'ACCEPT'

config rule
option name 'Allow-ICMPv6-Forward'
option src 'wan'
option dest '*'
option proto 'icmp'
list icmp_type 'echo-request'
list icmp_type 'echo-reply'
list icmp_type 'destination-unreachable'
list icmp_type 'packet-too-big'
list icmp_type 'time-exceeded'
list icmp_type 'bad-header'
list icmp_type 'unknown-header-type'
option limit '1000/sec'
option family 'ipv6'
option target 'ACCEPT'

config include
option path '/etc/firewall.user'

После редактирования этих файлов нужно перезагрузить роутер.

Далее устанавливаем саму прошивку.

Автоматический вариант установки через telnet или ssh (putty, xshell):

Если позволяет память, вместо mpd-mini нужно установить mpd-full, тогда появится поддержка AAC потоков. Инструкция по расширению памяти при помощи usb флешки по этой ссылке »

opkg update
opkg install curl mpd-mini kmod-usb-core kmod-usb-audio kmod-sound-core alsa-utils kmod-usb-hid triggerhappy vsftpd unzip
curl -o "/etc/wifiradio/config/fw.zip" "http://wifiradio.su/download/wifiradio.su_full.zip"
unzip -o "/etc/wifiradio/config/fw.zip" -d "/"
chmod -R 755 /www/cgi-bin/
chmod -R 755 /etc/wifiradio/
rm -r -f "/etc/wifiradio/config/fw.zip"
echo "</pre>"
reboot

После выполнения этих команд роутер перезагрузится и заиграет радио.

Чтобы попасть в web интерфейс с настройками, необходимо в браузере открыть:

http://ip_адрес_роутера/play/

Через web интерфейс можно управлять следующими функциями:

  • Переключать станции
  • Управлять громкостью
  • Управлять избранным (для переключения usb клавиатурой или андроид приложением)
  • Загружать плейлисты
  • Добавлять и удалять станции
  • Управлять подпиской на плейлист
  • Управлять озвучкой станций
  • Настраивать звуковое устройство
  • Настраивать WiFi подключение
  • Обновлять прошивку через OTA

Управление аппаратной кнопкой WPS на роутере: (нажатие 0-1 сек.) переключение станций по кругу, долгое нажатие на кнопку (4-10 сек.) возвращает на первую станцию в списке.

Имеется возможность управлять станцией через приложение для андроид.

*При использовании usb клавиатуры возможны несовпадения кодов событий, поэтому нужно будет подправить файл example.conf в папке triggerhappy/triggers.d

*Также возможно придется изменить название звукового устройства для управления громкостью. Сделать это можно через веб интерфейс.

Если возникнут вопросы, с радостью отвечу на них.

119 комментариев

  1. slava dukhevich

    Огромное спасибо за MPD! Но пока что в новой вашей версии через веб-страничку (192.168.1.1/play) не добавляются или не отображаются основные станции по умолчанию, не регулируется громкость, но добавляются и проигрываются аудио-ссылки формата mp3,AAC.

    • Админ Автор

      Для управления громкостью нужно правильно выбрать звуковое устройство.
      Станции не грузятся потому-что возможно не создалась папка. Можно попробовать сделать полную установку скрипта.

  2. slava dukhevich

    Короче удалось нормально запустить радиовещание под openwrt.
    На счет LEDE — никак… 🙁 Возможно в этой производной от openwrt что то со скриптами…
    Пока рано говорить о стабильности самой LEDE.

  3. slava dukhevich

    Не самый лучший: TP-LINK MR3220 v1.2 CPU Atheros AR7241@400MHz
    Флешь я установил объемом 16 мб. После установки MPD, свободной памяти стало 60%.
    (Я к тому что 8 мб наверно маловато…)
    На счет управления кнопкой qss/wps удобно задействовать скрипт переключения станций в обратном порядке: mpc prev (2-4c). Это только мое суждение 🙂
    Мне еще не понятно с форматом FLAC (не пережатый без потерь) не пробовали , может ли MPD проигрывать его на роутере?

    • Админ Автор

      В принципе можно через интерфейс luci зайти, там есть раздел led индикаторы. Там можете сами зажечь нужные.

  4. Александр Лашманов

    Дело было так: 1-е радио обновил до 15 версии, все работало отлично. Вчера вечером включаю, а оно не подает признаков жизни. Захожу через web интерфейс, сменил пару станций, станции не озвучиваются и при перезагрузке не проговаривает «интернет радио… наш сайт и т.д.» Думал звуковуха накрылась, проверил, работает. Достал второе радио, которое давно не включал, еще с прошивкой 8.0. оно не подхватывает список станций. Хотел написать вам, ваш сайт не грузился. 2-е радио предложило обновится до версии 9.0. Но долго не могло этого сделать, не начиналась загрузка. Я подумал что проблема у вас с серваком. В один прекрасный момент оно обновилось сразу до 16 версии. Но список станций не прогружался. Включил 1-е радио (отключив 2-е). 1-е заработало. обновил до 16 версии. включаю 2-е радио, (IP адреса разные), первое отрубилось, через веб интерфейс по несколько минут не мог загрузить страницу, список станций не прогружался, со 2-м радио такая же история. Выключаю 2-е, первое начинает работать, включаю 2-е, первое сразу вырубается. Если включить только 2-е, через веб интерфейс захожу на него, но не подгружается список станций и не подключается через мобильное приложение. Возможно как то «криво» обновилось. Попробую программатором заново перепрошить. Не понятно как 2-е радио «забивает» 1-е. Пробовал менять IP адреса, не помогает. Фантастика.

    • Админ Автор

      По идее, если проблема с доступом к серверу, можно попробовать в настройках отключить всю озвучку и автообновление, и посмотреть как будет себя вести.

      А на том которое обновилось со старой версии, все же попробуйте поставить сразу последнюю пришивку полностью через telnet. Или попробуйте нажать кнопку — включить все подписки.

      Кстати проблема в том что они забивают друг друга, может крыться в том, что Вы их шили дампом, и у них одинаковые мак адреса теперь.

  5. Евгений Севастьянов

    Дело было в прошивке… походу старая была какая-то или косячная. скачал другую, перезалил — видит инет. Настройки Ваши не помогают(скачивал настройки с роутера, редактировал, заливал обратно — не обновлялись), редактировал в вебморде то, что смог найти из примера.

  6. Евгений Севастьянов

    перепрошил на другую прошивку, установил заново все пакеты, прошил последнюю Вашу.
    ниже скрины с ошибками
    https://prnt.sc/jhblmr
    https://prnt.sc/jhblso
    https://prnt.sc/jhbm4u
    Переустановил заново все пакеты, которые были с ошибками. Пока ничего не помогло. Wifi не виден, usb карта не работает. Блин….

  7. Дзмітрый Паграноўскі

    Добрый день. устанавливаю openwrt на dir320 (rev A2:DDR=32,FLASH=4) настраиваю CLIENT через web, через PuTTY/WinSCP/Xshell соединяюсь и отправляю команды для установки пакетов, в итоге, ошибка-недостаточно свободного места (иногда, не все файлы доступны в сети-ругается, хотя с сетью все ок). и, момент, не могу соединиться по ftp: стандартно в totalcommander создаю 192.168.1.1 учетка: варианты root/root, root/no pass(после defaul), просто без записи-не пускает. пробовал 22,23 порты и без-никак.
    Ребята, подскажите, как запустить на сем аппарате с минимум знаний в unix?
    Буду очень признателен. и, уверен, подробный FAQ будет интересен и важен для пользователей с моими проблемами.
    Спасибо.

  8. Сергей Любимов

    Приветствую!
    Запустил радио на nexx 3020 и карте на pcm 2704 (https://www.ebay.com/itm/PCM2704-USB-DAC-USB-to-S-PDIF-Sound-Card-Decoder-Board-3-5mm-Analog-Output/162834830412?hash=item25e9b6544c:g:YesAAOSwTQtaTaGu&autorefresh=true), на карте назначил переключение станций на кнопку mute, где и что подправить чтоб при долгом нажатии включалась первая станция?

    Рекомендую карту для тех у кого нет кнопок на роутере, там три кнопки и по умолчанию работают кнопки громкости, есть оптический и коаксильный выходы, звучит гораздо лучше простых usb карт.

    • Админ Автор

      Содержимое файла example.conf в папке triggerhappy/triggers.d

      Долгое нажатие это вроде значение 2, но не всегда долгое нажатие верно отрабатывается. Попробуйте.

      Исполняемый файл для запуска первой станции — /etc/wifiradio/first.sh

  9. Игорь Башарин

    как я ни пытался делать по инструкции, после попытки настройки сети, к роутеру было не достутчаться. приходилось заново накатывать прошивку, и снова настраивать. я сам из luci настроил wifi клиентом. после чего скачал wifiradio.su. работает, но до управления можно добраться только по лан. андроид приложение соответсвенно тоже не работает. с openwrt столкнулся впервые, подскажите чего сделать чтобы заработало приложение (и соотв. упраление по воздуху).
    основной роутер (xiomi mi mini на padavan) 192.168.1.70
    роутер с wifiradio.su (nexx wt3020 (8Mb), загрузчик breed, openwrt 15.05 192.168.1.1
    порты может где какие пробросить или еще чего? эта часть сетевых настроек мне практически не знакома.
    картинка с настройками интерфесов из luci https://ibb.co/chhP8z
    файл wireless http://rgho.st/6Znb9q4ZR
    файл network http://rgho.st/6NT7mSG2D
    файл firewall http://rgho.st/85Mv69kMV

    • Админ Автор

      В этой статье есть рекомендуемые настройки сети. Внимательно посмотрите этот пункт.
      Все что Вам нужно, это изменить в файле wireless данные своего wifi, и в файле network поменять 192.168.1.1 на 192.168.1.70.

      • Игорь Башарин

        благодарю, разобрался. подправьте инструкцию здесь:
        /etc/config/network (полностью заменяем Ваш файл)….
        option ifname ‘eth0’ может быть и ‘eth0.1’ нужно смотреть как на конкретном роутере.
        после задания пароля и получения доступа через SSH,
        Автоматический вариант установки через telnet (putty, xshell)…
        телнет больше работать не будет. в консоль нужно идти через ssh

          • Игорь Башарин

            «В силу особенностей защиты ОС OpenWRT, доступ по Telnet закрывается при смене пароля, поскольку данные передающиеся через терминал telnet передаются «как есть», то есть не шифруются.

            Для того, чтобы зайти на роутер в консольном режиме, воспользуйтесь SSH.

            Чтобы вернуть доступ к роутеру через Telnet необходимо произвести сброс настроек на заводские.»
            — нашел в сети, и наверное это правильно.

  10. Влад Чазов

    Спасибо за пршивку с MPD!
    Поставил на Nexx3020, играет!
    Большая просьба, поэкспериментируйте, как добавить функцию UPnP/DLNA рендерера.
    Хочется иногда играть музыку с NAS, подключенного в локальную сеть.
    На 4pda в теме по радио из роутера человек доустонавливал upmpdcli.(opkg install upmpdcli).
    Управлял с Андроида через BubbleUPnP.

  11. NeLeGal

    Доброе время суток!
    Интересует, возможно, ли как-то «прикрутить» авторизацию на вход в ip&domaine/play ?
    В домашней, внутренней сетке это, наверное, не особо актуально, но если мы пробрасываем порт из вне на роутер, на котором установлено wifi-radio, для удаленного управления, то получаем открытый доступ к страничке /Play

  12. NeLeGal

    Попробовал обновиться… чтот наскоком не получилось послушать acc.
    После появления версии 24MPD решил перейти с mpd-mini на mpd-full.
    Прошивка в роутерах изначально была подготовлена для флешки 16M (роутеры TL-MR3420 и TL-WR842ND) но обходился версией mini не смотря на достаточный объем памяти.
    Решил попробовать на TL-WR842ND.
    Как переходил: по ftp отредактировал файл /cgi-bin/wr_fwfull заменив mpd-mini на mpd-full и в вебке WIFI-Радио жмякнул на «Полная переустановка прошивки»
    до установки было свободное место около 75% после установи — «Свободное место: 16% (744.00 KB)»
    Что изменилось: в вебке пропала ссылка «Полная переустановка прошивки»
    появился тумблер «AAC+, OGG» — включил, обновил список станций с сервера
    попробовал послушать AВВА — звука нет, редкое, кратковременное шипение, примерно раз в 30сек
    обложки загружаются, но очень долго
    попробовал добавить «свою» aac станцию
    Радио Родных Дорог (http://stream1.radiord.ru:8000/live96.aac) предварительно проверил ее на работоспособность в связке ESP32+VS1053 — в роутере нет звука
    с mp3 все гууд. Пока не знаю в чем проблема….

    • Админ Автор

      При накатывании mpd-full не удаляя mpd-mini, у меня тоже были глюки. А что касается возможности полной переустановки прошивки, то я ее удалил в последней версии.

  13. NeLeGal

    Сейчас обложки загружаются нормально, звук присутствует.
    Косяк у меня был — моя невнимательность. Не тот роутер выбрал, не переделанный в 16M (их у меня 4 для экспериментов) один 3420v1 и 842v1 три штуки.
    памяти не хватало, заметил по логам. Переделал в 16M — все работает (Свободное место: 57%)

    Заметно медленнее обновляется в вебке «Список станций» при переключении между станциями аас потока.
    при переключении между мп3 станциями разницы в скорости работы вебки не вижу что с mini что с full

    • NeLeGal

      да, пожалуй, некая тягучесть веб интерфейса присутствует, заметно когда меняешь настройки роутера, но, заметна, именно когда проигрывается аас потоки

  14. NeLeGal

    Загрузчик uboot Breed имеет возможность в вебинтерфейсе изменять частоту процессора с шагом 10Mhz. Для AR7241 устанавливаемого в тп-линках 3420 и 842 первых ревизий это диапазон от 200Mhz до 500MHz. Мой экземпляр подвисает на 500. Вообще классный загрузчик. С нуля быстро собирается прошивка под увеличенный объем spi флеш (заявлена поддержка до 32Mb). Главное иметь бэкап art раздела свой или чужой от такой модели. Встроен редактор MAC и PIN в веб консоли, можно подгружать софт — стоковый без загрузчика, DD-WRT, OpenWRT

    [img]molodoj.ucoz.net/upload/overlocking.png[/img]

    • NeLeGal

      Вчера успешно установил фулл версию на TP-LINK_WR2543ND предварительно увеличив объем spi флеши до 16M (фабричная 8M)

      Вопрос по поводу регулировки звука.
      Имеются геймерские наушники со встроенной звуковой картой и усилителем. С них и начинал эксперименты на домашнем роутере — с этими ушками звук регулируется нормально. На работе есть наушники sennheiser PC7 — одноканальные для калл центров с микрофоном – а вот с этими сенхами громкость звука не регулируется. Поначалу не обращал внимания, думал мож особенность такая или несовместимость. Сегодня получил из китая бескорпусную usb звуковуху на PCM2704C — та же ситуация, уровень звука не регулируется.

      Simple mixer control ‘PCM’,0
      Capabilities: pvolume pswitch pswitch-joined
      Playback channels: Front Left — Front Right
      Limits: Playback 0 — 64
      Mono:
      Front Left: Playback 64 [100%] [0.00dB] [on]
      Front Right: Playback 64 [100%] [0.00dB] [on]

      Изменил название звукового устройства Speaker на PCM2407С, далее ребут, не помогло. Пока не знаю куда копать. Переустанавливать пакеты? С сенхами устанавливал с нуля неоднократно на разных роутерах, звук не регулируется, наверное, и с PCM это не поможет. Есть какие-то рекомендации?

        • NeLeGal

          Ну, теперь и Сенхи регулируются, и оказывается, нет никакой особенности или их не совместимости, как я ошибочно предполагал.
          И если бы мои геймерские наушники не заработали нормально сразу «по-умолчанию» со «Спикером» я бы это понял раньше, на первом этапе. В общем, вопрос решен.

          • Админ Автор

            Наушники обычно Headphone обзываются 🙂

  15. Сергей Белугин

    Добрый день!

    На некоторых каналах, например на канале «Детские песни», в панели «Сейчас играет» неправильно отображаются русские буквы и не выводится картинка канала. В чём может быть причина?

    И ещё вопрос — можно ли заставить радио работать по кабелю (проигрывать радиоканалы через WAN или LAN вместо WiFi)? Это было бы удобно, если радио расположено рядом с домашним маршрутизатором и есть возможность соединиться кабелем.

    • Админ Автор

      Не на всех радио названия передаются в правильной кодировке, поэтому так. Картинки есть только на станциях из AAC пакета. На обычных станциях картинок нет.

      Настроить соединение по кабелю можно, нужно только настроить wan порт.

      • Сергей Белугин

        Добрый день! По поводу настроек по кабелю — выключил WiFi, включил WAN, внёс след.изменения в настройки openwrt:
        /etc/config/wireless:
        config wifi-device radio0
        option disabled 1
        /etc/config/network:
        config interface wan
        option ifname eth1
        option proto dhcp
        #config interface wwan
        # option proto dhcp

        После этого сетевая связность есть — хосты пингуются, трассировка работает, адреса резолвятся, радио запускается, плейлист подгружается, обновление прошивки (до 26 MPD) прошло успешно. Но радио то играет, то не играет (после перезагрузки или переключения станции название станции произносится, но радио не играет, затем проходит минут 10-20 и радио вдруг самопроизвольно начинает играть, довольно долго играет и затем самопроизвольно прекращает играть, затем всё повторяется). Что подкрутить?

        PS. В новой версии в разделе «Настройки WiFi» неплохо бы скрыть пароль.

        • Админ Автор

          Возможно в файле /etc/config/firewall что-то нужно еще сделать, к сожалению точно не смогу подсказать.

          Насчет скрытия пароля — по идее если Вы имеете доступ к роутеру, то подразумевается что Вы его знаете 🙂

  16. NeLeGal

    иногда, уже не первый раз, после выхода обновы, вижу такое
    http://molodoj.ucoz.net/upload/ver.png
    зависимость не понял, точно не от инета (разный). проявлялось на тплинках 3420 и 842. Считаю полезной была ссылка в вебке полной переустановки ../cgi-bin/wr_fwfull. быстрее и без заморочек позволяла решать некоторые проблемы. сейчас приходиться ее вводить вручную

    • Админ Автор

      Такое пишет если не удается при загрузке получить версию с сервера. Если после обновления страницы через несколько секунд не показывает, то можно еще раз перезагрузить роутер.

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

      • NeLeGal

        Спасибо. Предложение, если такое конечно возможно без проблем реализовать. Не плохо было б иметь два варианта переустановки на выбор — full или mini версия mpd

        • Админ Автор

          Думаю так будет путаница. Как вариант наверное просто уберу переустановку компонентов, оставив только скрипты.

  17. Сергей Белугин

    Добрый день! Пож-ста добавьте в обновляемый плейлист разговорные станции типа Эха Москвы, Радио России, BBC, … И было бы здорово добавить функцию радиобудильника, т.е. включения и выключения радио по расписанию.

Добавить комментарий