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

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

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

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

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

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

 

V45.Full (06.11.2018)

  • Оптимизация отображения логотипов станций.

V42.Full (03.11.2018)

  • Исправлен формат скачивания пользовательского плейлиста для последующей загрузки.

V41.Full (02.11.2018)

  • Обновление для новой версии пульта под Android.

V40.Full (01.11.2018) Важное!

  • Изменён принцип обновления прошивки.
  • Добавлены логотипы станций.
  • На данную версию лучше перейти через кнопку «Восстановление прошивки»

V37.Full (31.10.2018)

  • Мелкие исправления.

V36.Full (29.10.2018)

  • В веб интерфейс добавлена информация о трафике и времени работы.
  • Исправлена индикация % сигнала wifi соединения.
  • Добавлена функция создания wifi точки доступа, для настройки без компьютера. (При нажатии 15 сек. на кнопку WPS создается точка доступа WifiRadio с паролем 12345678, подключившись к ней, можно зайти в веб интерфейс по http://ip адрес/play/, который вы присвоили проводной сети.) *

При условии полной установки прошивки, либо замены файла /etc/config/system

V35.Full (24.10.2018)

  • Изменения в настройке wifi: теперь сеть можно выбрать из выпадающего списка.

V34.Full (23.10.2018)

  • Небольшие изменения в веб интерфейсе
  • Функция «Восстановление прошивки» теперь не затрагивает пользовательские настройки.

V33.Full (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 mpc kmod-usb-core kmod-usb-audio kmod-sound-core alsa-utils kmod-usb-hid triggerhappy vsftpd unzip
wget -U "Mozilla/5.0" -O "/fw.zip" "http://wifiradio.su/download/wifiradio.su_full.zip"
unzip -o "/fw.zip" -d "/"
chmod -R 755 /www/cgi-bin/
chmod -R 755 /etc/wifiradio/
rm -r -f "/fw.zip"
reboot

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

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

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

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

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

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

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

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

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

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

74 комментария

    • Админ Автор

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

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

    Приветствую!
    Запустил радио на nexx 3020 и карте на pcm 2704, на карте назначил переключение станций на кнопку mute, где и что подправить чтоб при долгом нажатии включалась первая станция?

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

    • Админ Автор

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

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

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

  2. Влад Чазов

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

  3. NeLeGal

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

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

    Добрый день!

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

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

    • Админ Автор

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

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

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

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

  6. Serge Lopatin

    В первую очередь большое за труды.
    Вопрос,такой все сделал по инструкции за искл. настроек wifi,с вашими пропадает интернет на openwrt,кликаю проиграть станцию,звука нет.В логах openwrt Sun Oct 21 19:42:09 2018 daemon.err uhttpd[1118]: /www/cgi-bin/wr_station: line 8: mpc: not found
    Буду благодарен если подскажите что можно попробовать. Router tl-wr842nd
    p.s. ссылка на авторизацию в низу страницы ведёт в админку

    • Админ Автор

      Ну судя по всему у вас не установлен mpc.

      Попробуйте выполнить в консоли

      Opkg update
      Opkg install mpd-mini mpc

      И посмотрите что напишет.

    • Админ Автор

      В веб интерфейсе есть раздел настройка звука. Там нажмите на вопросик и посмотрите название своего устройства. Затем внесите его в поле и сохраните.

  7. vs sk

    Во первых — ОГРОМНОЕ спасибо за проект,
    Во вторых — верните возможность слушать на «Стандарт» AAC, OGG под mpd-full 🙂
    А теперь по порядку:
    прикручивать радио к роутеру начал достаточно давно. Первый опыт был на Asus WL-HDD, к сожалению не удачный.
    Второй уже более удачный был на легендарной 500
    Следующий и очень удачный был на DAP-1350, за что спасибо вашему посту, а то так бы и валялся без дела. Приатачить USB доп память было делом одного часа, а дальше была попытка прикрутить Bluetooth свисток. К сожалению, на ядро 15.05.1, которое я считаю самым удачным не очень ставиться PulseAudio. Пришлось перейти на ядро openwrt 18.06.1
    Вот тут и понеслось: Для того что бы поставить Флешку ушло 2 дня. Решилось разбиранием и собиранием — в 1350-squashfs-factory не установлено usb-dwc2. Поэтому мы не видим по USB ничего. Решили. Дальше ставим любой из пакетов, но /etc/wifiradio/config пишим руками.
    WifiRadio.SU v34 — в стандарте запустилос, что не удивительно, а вот Full ни как.
    Какие будут советы?
    У кого еще война с 18.06.1?

    • Админ Автор

      На standard не было никогда AAC, только в full.

      У меня попадался один роутер, категорически не работал mpd. Так и не смог его победить.

    • vs sk

      Эпилог:
      Для D-Link DAP-1350
      OpenWrt Chaos Calmer 15.05.1 Kernel Version 3.18.23
      Работают все три версии, багов не выявлено.
      WifiRadio.SU v35.Full mpd-mini работает без сбоев, естественно, AAC, OGG не воспроизводит, обложки не показывает
      WifiRadio.SU v35.Full mpd-full USB Hub (внешнее питание) USB Flash 2Gb ext4+swap РАБОТАЕТ ВСЕ 🙂 Спасибо

      OpenWrt 18.06.1 Kernel Version 4.14.63
      WifiRadio.SU v35.Light, Standard работают без выявленных багов.
      WifiRadio.SU v35.Full mpd-mini не работает
      WifiRadio.SU v35.Full mpd-full нет воспроизведения потокового радио всех форматов. обложки не показывает.
      Работа продолжается, следующим пунктом Bluetooth.
      Всем хорошей жизни, успеха в личной жизни и творчистве :-)~

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

    Добрый день!

    Гоняю радио на старом роутере TP-Link TL-WR842NND v1 — всё гуд. Но вот прошивка WifiRadio.SU v33.Full с mpd-mini работает нестабильно — радио пару часов поработает и перестаёт, хотя прошивка WifiRadio.SU v24 работала безостановочно несколько суток подряд.

    Как повысить стабильность? Пофиксино ли что-то в прошивке WifiRadio.SU v35.Full?

    • Админ Автор

      Кое-что поправил, с последней версии сделайте Восстановление прошивки из веб-интерфейса. О результатах отпишитесь пожалуйста.

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

        Добрый день! За несколько дней круглосуточной работы прошивки WifiRadio.SU v35.Full зависаний не выявил, большое спасибо за труды.
        PS. В моём случае радио подключено к домашнему роутеру по кабелю, а WiFi-интерфейс отключен.
        PPS. Предыдущая прошивка WifiRadio.SU v33.Full через несколько часов проигрывания станции Радио Книга подвисала — аудиопоток переставал проигрываться, а при попытке подключиться в к радио с помощью WifiRadio Remote высвечивалась ошибка Error …

    • NeLeGal

      на TL-WR842ND первой ревизии работает стабильно. Во всяком случае, разницы в стабильности проигрывания потока не замечал от версии к версии. почти круглосуточно работает (тестируется) и самое приятное радио на роутере гораздо стабильнее wi-fi радио собранного на ESP32 и ESP8266. Скоро установлю на TL-WR842 второй ревизии, правда с одним «битым» LAN портом, из-за чего отказывается работать фабричный софт. Еще попытался на tl-wr941 распаять usb и необходимую обвязку. Но пока не удается запустить usb без правки ядра (тут сложно)

        • NeLeGal

          гораздо страшнее ковырять ядро 🙂
          на печатной плате tl-wr941nd_v3 изначально пустующие посадочные места под usb и необходимую обвязку: это сам разъем, три резистора и две сдвоенные диодные сборки. (можно обойтись одним резистором и разъемом).
          для питания использовал временно линейный стабилизатор 7805, распаян быстро перемычками, чтоб не париться с большим количеством деталей DC-DC преобразователя.
          резистор R96 сопротивлением 4,7K установленный около «камня» не попал в кадр.
          http://molodoj.ucoz.net/upload/941.jpg
          в интернете есть информация об успешной модификации этой модели но нет готового решения.
          есть желающие ковырять ядро? подарю плату 🙂

          • Админ Автор

            Берете прошивку от модели на таком же чипе, но с юсб, и пробуете залить. Вероятность что заведется 95%

      • NeLeGal

        установил WiFi-Radio на два TL-MR3420 второй ревизии. Оба роутера с дефектами. не работают LAN-3 на одном и LAN-4 на втором роутере. Что не позволяет попасть в веб интерфейс как с заводской прошивкой, так и с прошивкой openwrt (постоянно горят светодиоды «битых» портов, к которым не подключен кабель). Из за чего были списаны в утиль прежними хозяевами. Не знаю как это у нмх случилось, ведь обычно бъются WAN порты от грозы. Чтоб не пропадать железу, собрал с нуля прошивку под 8мегабайтную флешку на полностью рабочем таком же роутере. далее отключил в сетевых настройках номера битых портов и перелил программатором дамп с флешки рабочего роутера на флешки дефектных. роутеры завелись, и без проблем попал в вебку, отредактировал в загрузчике индивидуальные MAC-и, все работают… сгодяться на подарки 🙂

  9. NeLeGal

    пробовал, от 1043, ближайший собрат с USB (другого не знаю), но у них LAN контроллеры разные. в 941 установлен Marvel 88E6060, в 1043 гигабитный… в итоге заводиться, видно по мерцанию светодиодов (не висит) но нет доступа по lan портам, даже на уровне загрузчика. Такое превращение проходит в WR841 с прошивкой WR3420

    • Админ Автор

      Это всего лишь индикация. Качество сигнала не изменилось. Изменил формулу подсчета процентов в меньшую сторону, поскольку столкнулся с роутерами которые показывали выше 100 процентов. 🙂

      В обновлении попробую исправить поточнее.

  10. Ace engels

    Здравствуйте!
    Чудесный проект. Но есть маленькое замечание. Клиент командной строки mpc при загрузке плейлистов не требует указания расширения плейлиста. Мне приходится во всех скриптах перед установкой-обновлением править «mpc load playlist» удаляя .m3u
    Иначе роутер произносит приветствие, название станции и дальше молчит, ибо «no such playlist».
    Задействован WR842ND v1 под lede 17.01.5, r3919-38e704be71 (в более поздних openwrt сборках mpd не играет mp3 потоки, но играет ogg :-O )

    • Админ Автор

      У Вас частный случай. Второй раз встречается. Возможно Вам проще в конфиге mpd что-то поколдовать? Ну или openwrt поменьше версию поставить.

  11. Валерий М

    Стер spi flash полностью на программаторе, заново залил дамп на TP-LINK wr842n v.3.
    Перешился через веб интерфейс на OpenWrt 15.05 luci. Прошил wifi radio 40 full.
    Станции АСС не воспроизводятся, ссылка на поток под названием станции работает (на телефоне прослушиваю), на роутере воспроизведение отсутствует, с остальными станциями все норм. Как можно вернуться на версию 35 full?

    • Админ Автор

      Да поймите Вы, прошивка радио это всего лишь оболочка, она не затрагивает плеер от версии к версии. И если играют другие станции, значит все в порядке. Вы пакет mpd-full точно установили?

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