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

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

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

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

  1. Поддерживаемые потоки: MP3
  2. Индикация проигрываемого трека: есть
  3. Функция Play/Stop: есть
  4. Веб интерфейс: настройки wifi, управление подписками, добавление своих станций, загрузка своих плейлистов, упрощенный пульт управления, управление громкостью, управление переключением станций, управление избранным, управление озвучкой, управление звуковым устройством, обновление прошивки.
  5. Время переключения между станциями: ~2 сек.
  6. Поддержка приложения управлением с Android: есть
  7. При нажатии 15 сек. на кнопку WPS создается точка доступа WifiRadio с паролем 12345678, подключившись к ней, можно зайти в веб интерфейс по http://ip адрес/play/, который вы присвоили проводной сети.
История изменений

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

V91.Standard (09.13.2019)

  • Оптимизация размера прошивки.

V89.Standard (09.11.2019)

  • Добавлена кнопка Mute/Unmute в веб интерфейс.
  • Доработано состояние прогресса громкости.

V88.Standard (23.10.2019)

  • Оптимизирован модуль инициализации.
  • Исправлены ошибки при произношении названия станций в некоторых случаях.

V87.Standard (22.10.2019)

  • Добавлена возможность листать избранные станции вперед и назад (/www/cgi-bin/wr_nextfav и /www/cgi-bin/wr_prevfav). Функции можно привязать на пульт управления.

V86.Standard (09.10.2019) Важное!

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

V85.Standard (30.09.2019)

  • Добавлена возможность обновления списка профилей с сервера для дистанционного управления с USB устройств (При обновлении, файл конфигурации изменяется!).
  • Добавлен профиль управления переключением станций USB мышью.
  • Исправлена неверная работа кнопки Mute/Unmute на странице виртуального пульта управления.

V84.Standard (06.08.2019)

  • Добавлена возможность выбора голоса озвучки (муж/жен).
  • Обязательно нужно выбрать голос озвучки в веб интерфейсе, и сохранить параметры после прошивки!

V80.Standard (12.05.2019)

  • Добавлено оповещение при начале и завершении обновления прошивки.

V79.Standard (29.04.2019)

  • Небольшие косметические изменения в веб интерфейсе.

V78.Standard (23.04.2019) Важное!

  • Фикс громкости на служебных сообщениях и озвучке станций (при условии установленной громкости не более 90%).
  • Оптимизация веб интерфейса.
  • Добавлена возможность своего голосового приветствия при запуске.

V76.Standard (22.04.2019)

  • Небольшой фикс скрипта обновления прошивки.
  • Некоторые изменения в веб интерфейсе.

V71.Standard (14.04.2019) Важное!

  • Небольшой фикс скрипта обновления прошивки.
  • Добавлено новое звуковое устройство в автоопределение.

V68.Standard (07.04.2019) Важное!

  • Исправлено произношение времени.

V67.Standard (05.04.2019)

  • Небольшая оптимизация

V66.Standard (04.04.2019) Важное!

  • Добавлена возможность произношения погоды и времени при старте. Включается в веб интерфейсе. Необходимо настроить часовой пояс в файле /etc/config/system, либо через веб интерфейс LUCI.
  • Мелкие исправления.

V64.Standard (03.04.2019) Важное!

  • Теперь любые названия станций произносятся голосом. Внимание! Не используйте спецсимволы в названиях станций, для правильной работы озвучки ( ? \ / и т.п. ).

V62.Standard (26.03.2019) Важное!

  • Добавлена возможность добавлять станции из базы данных в один клик (более 1300 станций).

V61.Standard (19.03.2019) Важное!

  • Добавлена поддержка русских шрифтов в плейлист.

Порядок установки прошивки на роутер.

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

  1. роутер прошитый на openwrt с веб интерфейсом LuCI
  2. имеющий usb порт
  3. имеющий ~2.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):

opkg update
opkg install curl kmod-usb-core kmod-usb-audio kmod-sound-core alsa-utils kmod-usb-hid triggerhappy madplay
wget -U "Mozilla/5.0" -O "/fw.tar.gz" "http://fw.wifiradio.su/download/wifiradio.su_standard.tar.gz"
tar -xvzf "/fw.tar.gz" -C "/"
chmod -R 755 /www/cgi-bin/
chmod -R 755 /etc/wifiradio/
rm -r -f "/fw.tar.gz"
reboot

После перезагрузки заиграет радио.

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

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

Управление аппаратной кнопкой WPS на роутере: (нажатие 0-1 сек.) следующая станция, (нажатие 2-4 сек.) предыдущая станция, нажатие на кнопку (5-9 сек.) возвращает на первую станцию в списке.

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

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

 

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

  1. Реван Лаэда

    Или лыжи не едут или я где-то не там стою. Нет доступа к роутеру после настройки WiFi. Радио играет, пульт управления цепляется к статическому IP, но доступа ни к /play, ни к самому роутеру нет. А вот по кабелю все ок. Что я не так делаю?

  2. Алексей Фоменков

    поставил себе классная штука роутер nexx wt 3020 F Open wrt openwrt-18.06.1-ramips-mt7620-wt3020-8M-squashfs-sysupgrade хватило места на руссификацию интерфейса и 1,49 мБ осталось , ставил через PuTTY без проблем и заморочек приложение на андроиде не хочет работать станцию показывает но кнопки не влияют ни на что . Звуковуха китайская без кнопок при работе мерцает красным. Что не так с приложением? непонятно. Спасибо за софтину просто и удобно.

  3. Алексей Фоменков

    пробую ставить на orange PI zero не хочет ставлю вручную выдает ошибки на mdp-full

    Installing mpd-full (0.18.23-1) to root…
    Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/sunxi/generic/packages/packages/mpd-full_0.18.23-1_sunxi.ipk.
    Multiple packages (kmod-input-core and kmod-input-core) providing same name marked HOLD or PREFER. Using latest.
    Collected errors:
    * satisfy_dependencies_for: Cannot satisfy the following dependencies for mpd-full:
    * kernel (= 3.18.23-1-3dbff8ef8ed26481a5d3cd9723973f43) *
    * opkg_install_cmd: Cannot install package mpd-full.
    на alsa
    Collected errors:
    * satisfy_dependencies_for: Cannot satisfy the following dependencies for alsa-utils:
    * kernel (= 3.18.23-1-3dbff8ef8ed26481a5d3cd9723973f43) *
    * opkg_install_cmd: Cannot install package alsa-utils.
    может их можно заменить чем то ?

  4. Алексей Фоменков

    nexx wt3020 f а щас мучаю сяоми р 3 г все стало на чистую последнюю врт звука нет выдает
    Simple mixer control ‘Speaker’,0
    Capabilities: pvolume pswitch pswitch-joined
    Playback channels: Front Left — Front Right
    Limits: Playback 0 — 151
    Mono:
    Front Left: Playback 151 [100%] [-0.06dB] [on]
    Front Right: Playback 151 [100%] [-0.06dB] [on]
    Simple mixer control ‘Mic’,0
    Capabilities: pvolume pvolume-joined cvolume cvolume-joined pswitch pswitch-joined cswitch cswitch-joined
    Playback channels: Mono
    Capture channels: Mono
    Limits: Playback 0 — 127 Capture 0 — 16
    Mono: Playback 0 [0%] [0.00dB] [off] Capture 0 [0%] [0.00dB] [on]
    Simple mixer control ‘Auto Gain Control’,0
    Capabilities: pswitch pswitch-joined
    Playback channels: Mono
    Mono: Playback [on]

    ‘Speaker’,0 это что звук есть но уровень его 0 чтоль регуляторы кручу по виду хорошо а звука нету

  5. Михаил Пантюхов

    Можно в mpd.conf в настройках alsa заменить hardware на software.
    А я свой nexx wt3020 так и не смог подлючить, меняю конфиги, пропадает интернет и доступ к вебморде. Если конфиги не менять, то звук смены радиостанции есть, но ни один поток не воспроизводится 🙁 И еще не понятно, «полностью заменяем Ваш файл, но параметр option ifname ‘eth0’ меняем на свой» — это который в моем файле?

  6. oka676

    Добрый вечер. Вроде все получилось и работает: роутер asus wg500 с прошивкой standart. Full не захотела играть (видимо проблемы mpd и прошивки 18.06.1) Но есть ложка дегтя: при нажатии на кнопки stop и play на web-морде и в андроид-приложении проговаривается название станции и продолжается воспроизведение. Остановить воспроизведение никак не получается, кроме отключения питания. Это не есть хорошо — ведь девайс убран с глаз долой и без отключения тупо жрет интернет трафик. Как можно починить реакцию на кнопки.

  7. oka676

    Значит придется попробовать установить OpenWRT более ранних версий — вроде писали, что там с mpd проблем не возникало.

  8. max nikolaev

    1 у кого не «останавливается» нашел костыль. регистрируйте любую станцию от болды. Станции нет и потока нет 🙂 ни чего не качает ни чего не воспроизводит.И отключите проговаривание станций.

    2 Второй костыль. Программа на андройде и веб браузер работают правильно. У кого не работает уровень громкости — меняйте аудио карту!!!!! Из трех разных у меня работает четко на двух.

  9. Владимир Нестратов

    Здравствуйте. Запустил радио на модеме Sagemcom 2804, OpenWrt 18.06.2, прошивка Standard. USB гарнитура Plantronics, определяется так:
    Simple mixer control ‘Speakers’,0
    Simple mixer control ‘Sidetone’,0
    Simple mixer control ‘Microphone’,0
    Simple mixer control ‘Auto Gain Control’,0
    Громкость регулируется когда меняю название устройства со Speaker на Speakers (как програмно так и с пульта на проводе гарнитуры), но после отключения радио или перезагрузки, название устройства становится опять Speaker. Что посоветуете в данной ситуации?

  10. Алексей Фоменков

    orang zero pi мучаю купил доп плату с выходом аудио прошивку с 4 пда openwrt-lede-18.06.02 заработала но звук не регулируется и надо править rc.local
    » amixer -c 0 -q set «Line Out» 100%+ unmute &
    amixer -c 0 -q set «DAC» 100%+ unmute &
    Так же прописать это в rc.local »
    задаю команды в путти работает до перезагрузки пытаюсь добавить команды в rc.local WinScp не дает менять файл не дает перезаписать что делать?

  11. Алексей Фоменков

    Simple mixer control ‘Line In’,0
    Simple mixer control ‘Line Out’,0
    Simple mixer control ‘Line Out Source’,0
    Simple mixer control ‘Mic1’,0
    Simple mixer control ‘Mic1 Boost’,0
    Simple mixer control ‘Mic2’,0
    Simple mixer control ‘Mic2 Boost’,0
    Simple mixer control ‘Mixer’,0
    Simple mixer control ‘Mixer Reversed’,0
    Simple mixer control ‘ADC Gain’,0
    Simple mixer control ‘DAC’,0
    Simple mixer control ‘DAC Reversed’,0

    из веб интерфеса

  12. Алексей Фоменков

    сделал по новой файлы закинул через WinScp атрибуты не прописывал,прописал в rc.local amixer -c 0 -q set «Line Out» 100%+ unmute &
    amixer -c 0 -q set «DAC» 100%+ unmute &
    аудио устройство прописал «Line Out»
    вроде все работает теперь спасибо.

  13. иван иванов

    V66.Standard (04.04.2019) Важное!

    Добавлена возможность произношения погоды и времени при старте.
    …либо через веб интерфейс LUCI

    по подробнее можно! чета не нашел куда в интерфейс ЛЮСИ вставить время ?

  14. alex daf

    Здравствуйте! Респект за классный проект!
    Такой вопрос — есть OpenWRTна Х86 платформе. (mini ITX плата от VIA). Хочу запустить на нём Wifiradio через встроенный звук AC97. При установке kmod-sound-via82xx пакета из офиц. репозитария OpenWRT название устройства в приложении меняется с Speaker на PCM но звука нет. Приложение всё отображает, трафик идёт, в ps процессы присутствуют. С USB-sound картой всё работает нормально. Аппаратно АС97 исправен. Похоже, какие-то конфиги нужно править. Не подскажете куда копать.
    Спасибо.

      • alex daf

        Спасибо за быстрый ответ! А что конкретно смотреть не подскажете?
        P.S. Я пока больше script-kiddie, чем тру-линуксоид. Недавно начал изучать nix 🙂

      • alex daf

        Разобрался.
        Может ещё кому пригодится: в X86-OpenWRT под AC97 версия Sandart не завелась даже после фестиваля с бубном. Версия Full заработала после добавления в начало файла /etc/rc.local строки:
        alsactl init
        И в домашнем OpenVPN+USB-over-IP сервере+etc освободился 1 USB-порт, а wifiradio продолжает работать. Теперь буду LIRC с USB на onboard-FIR переводить, но это уже другая история.

        @Админ, ещё раз спасибо!

  15. Vitaliy Gorbunov

    Роутер прошил. Радио установил. Всё работает. Через web морду управляется. Затык в управлении с кнопки WPS на роутере. При нажатии он начинает сразу перезагружаться. В чем может быть причина? Роутер TP-LINK WR842N V3. Имеет кнопку wi-fi и кнопку WPS.

  16. Станислав Мальков

    добрый вечер при установке пакетов пишет
    * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-usb-core:
    * kernel (= 4.14.142-1-0707e29c4715f8f301ea767182d4caaa) *
    * opkg_install_cmd: Cannot install package kmod-usb-core.
    * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-usb-audio:
    * kernel (= 4.14.142-1-0707e29c4715f8f301ea767182d4caaa) *
    * opkg_install_cmd: Cannot install package kmod-usb-audio.
    все остальное проходит интерфейс работает usb карту alsa не видит как можно это преодолеть.

  17. Станислав Мальков

    Разобрался со своим вопросом надо было прошивку open wrt ставить последней версии, теперь вопрос в другом USB-Dac CMedia не воспроизводит радио а только название радиостанции при его втыкании в tp-link tl-mr3020 v3.20, в каком направлении надо копать Alsamixer его видит.

    • Станислав Мальков

      Поставил дополнительно kmod-usb-uhci kmod-usb-cmedia при включение есть звук приветствие и погода а дальше тишина радио не работает, при пере подключении карты появляется и радио, передергивать USB-Dac приходится и после переключения радиостанции.

          • Админ Автор

            Madplay так и работает. Нужно убить процесс прежде чем запускать второй.

          • Станислав Мальков

            Соответственно процессы предыдущего были убиты. Потом запускался второй. И еще при первичной установке радио не работает, ни погода, ни приветствие не помогало передергивание карты. Залил свой плей лист он заработал после пере подключения карты. Сейчас из скрипта загрузка убрал все команды пуска амиксера, и о чудо радио играет с самого начала, только при смене радиостанции приходится пере подключать карту. Обещают к концу недели принести другой соунд бластер попробую.

  18. Михаил Согрин

    Здравствуйте, подскажите пожалуйста! У меня такая же ситуация как у Станислава Малькова — играет только первая выбранная станция. Установил я madplay-alsa — все работает, но только теперь при голосовой озвучке съедает несколько последних букв. Что-то типа «Рекорд р» вместо «Рекорд рОК». В чем может быть проблема? WT3020 + PCM2704 + Standart /88
    И вопрос №2 Есть ли какая-то возможность добавить DNLA плеер, чтобы по сети играть свою музыку. Или это все съест много ресурсов.

    • Админ Автор

      1. Попробуйте сбросить все к заводским настройкам и заново установить радио.
      Либо если позволяет память, попробуйте установить full прошивку.

      2. Возможность в openwrt есть, но в рамках данной прошивки пока в раздумьях, делать или нет.

    • Сергей Казанков

      — «И вопрос №2 Есть ли какая-то возможность добавить DNLA плеер, чтобы по сети играть свою музыку. Или это все съест много ресурсов»

      Я конечно всё понимаю, но, не проще ли, раз пошла такая пьянка, смотреть уже в сторону одноплатников — готовых решений несколько, ни к чему изобретать велосипед. Rune, Volumio, Moode, LMS — я всё это пробовал/использую на Raspberry Pi 3 и Orange Pi Zero.
      А роутеру оставим радио, ну куда ему ещё)…

  19. Сергей Казанков

    Уважаемый Админ, проясните для меня пожалуйста, один момент.
    Вот у вас, в веб интерфейсе, напротив каждой станции есть кнопочка «добавить в избранное». А какой функционал это несёт?
    Включение отображения только списка избранного, в настройках я не нашел (может не туда смотрел?)… Аппаратная кнопка тоже, переключает все станции из плейлиста туда/обратно, без деления на избранные или нет… В андроид приложении, возможности выбрать только избранное тоже нет…
    Для чего этот список избранного? Спасибо)

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