A columna de radio por Internet máis sinxela "Kodi" ou a salvación do ladrillo "Raspberry".

A columna de radio por Internet máis sinxela "Kodi" ou a salvación do ladrillo "Raspberry".

Requisitos básicos:

  1. Hai unha antiga placa Raspberry Pi de primeira xeración sen usar;
  2. O taboleiro atópase no armario como un peso morto e non se usa: o taboleiro "Brick";

O que me gustaría recibir:

  1. Nun momento determinado (por exemplo, segundo o estado de ánimo)
    o taboleiro deixa de ser un "ladrillo" e insírese nel unha tarxeta de memoria máxica;
  2. Conéctanse á placa un cable Ethernet e un enchufe dun altofalante ou auriculares domésticos habituais;
  3. Despois de aplicar o poder, o antigo "Brick" - canta

Idea principal:

  1. O número mínimo de xestos para calquera configuración, no caso máis ideal, conectamos só o cable "Ethernet", a alimentación e os altofalantes, e non facemos nada máis, desde a palabra "en todo";
  2. O antigo "Brick" fóra da caixa admite, por exemplo, 20 estacións de radio por Internet, que se poden cambiar en círculo premendo a roda do rato ou nun pin específico GPIO (conecte dous cables e curto (o meu soño dende a infancia) );
  3. O control realízase a través dunha canle de radio, e esta canle de radio pode ser un rato de radio normal;
  4. Toma un sistema preparado e ensambla a distribución no "Proxecto Yocto"
    aqueles. como é habitual, non che faremos nada, xa que xa está todo feito.
    (abonda con colocar un observador externo do outro lado "TV");

Descrición

A columna de radio por Internet máis sinxela "KODI"
O conxunto está deseñado para placas Raspberry Pi 1 máis antigas
(recollendo po nalgún lugar do armario, pero que están listos para traballar máis)

Por defecto, utilízase a lista m3u8 de 12 estacións de radio por Internet.

Suponse que a placa funciona sen saída HDMI, e para desactivala só tes que desconectar o adaptador de alimentación da toma. E como panel de control sen fíos ultramoderno, podes usar o teu super rato de radio (ou conectar un gris normal cunha cola).

Cando está activada, a interface de rede predeterminada configúrase mediante o protocolo DHCP e reprodúcese a última emisora ​​de radio memorizada da lista, o volume de reprodución contrólase cun rato normal:
(por fin nomea o teu rato como "xefe de xestión" e felicitao, o merece)

  колесико вперед  - увеличение громкости звука
  колесико назад   - уменьшение громкости звука
  длительное нажатие (3сек и более) на правую кнопку мыши
                   - выбор следующий радиостанции
  длительное нажатие (3сек и более) на левую кнопку мыши
                   - выбор предыдущей радиостанции

Para engadir a súa propia lista de emisoras de radio por Internet
sempre podes conectar un cable HDMI desde o teu televisor
e use a interface gráfica estándar de Kodi 17.6
(apaga o taboleiro, conecta HDMI e conecta o adaptador de alimentación)

Menú principal de Kodi => "Complementos" => "Os meus complementos"
          => "PVR Clients" => "PVR IPTV Simple Client"

Implementación inicial

(posible)
Inicialmente, cando decidín facer unha "Columna de radio por Internet", planeei o seguinte:

  • Distribución de consola minimalista no Proxecto Yocto;
  • O fluxo de audio reprodúcese a través de GStreamer;
  • A interface de rede está configurada mediante DHCP;

E esta solución ten unha serie de vantaxes:

  1. Moi rápido (leva 30-40 segundos en chegar ao modo operativo desde a fonte de alimentación);
  2. Bastante fiable (menos programas, menos puntos de fallo);
  3. Unha distribución de consola é moito máis fácil de cambiar ao modo de só lectura
    aqueles. os programas non escriben nada no sistema de ficheiros raíz
    (e o sistema de ficheiros en soporte SDHC é, na miña opinión, o primeiro candidato ao fracaso);

Nota:

    В Yocto перевести корневую файловую систему (rootfs) 
    в режим только чтение можно сделать достаточно просто, 
    изменив один параметр во время сборки 

    Из коробки Yocto предлагает два варианта:
    1) Работа файловой системы в обычном режиме чтение/запись 
    (так работают все дистрибутивы общего назначения, например Ubuntu)
    2) Работа файловой системы в режиме только чтение
    (так работают специализированные дистрибутивы, например в маршрутизаторах)

    В режиме только чтение все каталоги, в которые обычно 
    записываются данные приложений и сервисов во время работы монтируются 
    в оперативную память (например каталог /var/log и т.п.)
    Данные актуальны только для текущего сеанса работы и после сброса питания
    данные теряются.

    Если в Yocto Project вы укажете при сборке использовать "read only", 
    то после сборки ваш дистрибутив будет настроен только на чтение, 
    но вы всегда можете добавить возможность динамического перевода 
    из "read only"  в "read/write", но это уже совсем другая история ...
    

E un principal inconveniente:

"Debe facerse", é dicir. Necesito pasar N número de noites
(normalmente despois do traballo, e este é o momento máis ineficaz, neste momento o cerebro xa non pensa, adoita durmir)

E aínda así, escribín o meu artigo anterior sobre Habré sobre o centro multimedia Kodi e Yocto proxecto
e a oportunidade de seguir na mesma liña superou o meu impulso investigador. Máis sobre isto no seguinte capítulo.

Convertendo Kodi nun altofalante de radio por Internet

Para engadir a funcionalidade que necesito, engadirei un método máis á receita para construír a distribución descrita no anterior Artigo ver o ficheiro berserk-image.bb

GUI_SETTINGS = "home/root/.kodi/userdata/guisettings.xml"

# конфигурация запуска последнего выбранного ТВ канала (1-фон 2-передний план)
F1_LINE = "<startlast default="true">0</startlast>"
R1_LINE = "<startlast>1</startlast>"
# конфигурация вывода звука, всегда подключен только аналоговый аудио выход
F2_LINE = "<audiodevice default="true">PI:HDMI</audiodevice>"
R2_LINE = "<audiodevice>PI:Analogue</audiodevice>"
# так как HDMI по умолчанию не используется отключаю автоматическое обновление
# а то может получиться что питание уехало, а данные остались не записанными
F3_LINE = "<addonupdates default="true">0</addonupdates>"
R3_LINE = "<addonupdates>2</addonupdates>"


# метод отвечает за добавление конфигурации:
# которая превращает "Умный телевизор" в "простую Интернет Радио колонку"
add_radio_guisettings() {
    sed -i "s|${F1_LINE}|${R1_LINE}|" ${IMAGE_ROOTFS}/${GUI_SETTINGS}
    sed -i "s|${F2_LINE}|${R2_LINE}|" ${IMAGE_ROOTFS}/${GUI_SETTINGS}
    sed -i "s|${F3_LINE}|${R3_LINE}|" ${IMAGE_ROOTFS}/${GUI_SETTINGS}
}


FIND_STR = "touch ./tmp/.FIRST_RUN."
SCRIPT_FIRST_RUN = "etc/init.d/first-run.sh"
# так как HDMI выход может не использоваться, 
# то необходимо отключить "стартовое приветствие"
off_kodi_welcome() {
    sed -i "s|${FIND_STR}|#&|" ${IMAGE_ROOTFS}/${SCRIPT_FIRST_RUN}
}

Os métodos están destinados a modificar o sistema de ficheiros raíz antes de formar unha imaxe de distribución en forma dun ficheiro en bruto, que se escribe na tarxeta de memoria co comando dd

Isto faise deste xeito:
ROOTFS_POSTPROCESS_COMMAND += "add_radio_guisettings; off_kodi_welcome;"

En resumo, no ficheiro de configuración principal de Kodi 17.6, os "tres puntos" cambian

  • Configuración para iniciar a última canle de TV seleccionada;
  • Configuración da saída de audio, só sempre está conectada a saída de audio analóxica;
  • Desactivar as actualizacións automáticas;
  • Nota:
        Единственное с чем у меня возникли сложности, 
        это то, что пришлось еще подтащить файл базы данных 
        в формате sqlite => TV29.db, в котором указывается 
        текущий проигрываемый ТВ канал 
        (так как по умолчанию никакой из каналов не выбран), 
        а через xml конфигурацию в Kodi этого не сделать.
        

unha secuencia máis detallada de accións para cada elemento:

1) Fai clic na icona da engrenaxe na esquina superior esquerda da pantalla
e seleccione "Configuración de PVR e TV" (imaxe dun televisor con dúas bocinas)
a continuación, no lado esquerdo do menú, seleccione "Reprodución" e na sección central "Xeral"
seleccione "Continuar desde a última canle ao iniciar" na lista despregable
seleccionando a configuración "Primeiro plano".

ou máis claramente:

      "Настройки PVR и ТВ" 
       => "Воспроизведение" 
       => "Продолжить с последнего канала при запуске" => "Передний план"

2) Fai clic na icona "engrenaxe" na esquina superior esquerda da pantalla e selecciona o elemento:

       "Системные настройки"  
       => "Дополнения" => "Обновления" => "Никогда не проверять обновления"

3) Fai clic na icona "engrenaxe" na esquina superior esquerda da pantalla e selecciona o elemento:

       "Системные настройки" 
       => "Аудио" => "Устройство вывода звука" => "PI: Analogue"

Como levo dous anos vendo a televisión de forma equivocada.

Debo confesarche que en dous anos aínda non aprendín a ver a televisión correctamente.

Normalmente vexo a televisión na cociña. Unha placa Raspberry Pi 2B está conectada ao televisor e os conectores Ethernet e HDMI están conectados á tarxeta. A placa é alimentada a través dun cable USB normal, que está conectado ao porto USB do televisor, é dicir. de feito, acender o televisor usando o control remoto estándar proporciona enerxía á placa Raspberry Pi, e apagando a televisión desde o control remoto tamén restablece inmediatamente a alimentación da tarxeta Raspberry Pi.

Si, sei ben que isto non se pode facer, porque o sistema de ficheiros raíz do centro multimedia Kodi (ext3) funciona no modo de lectura/escritura normal. Pero son unha persoa preguiceiro, e primeiro decidín comprobar canto tempo podía apagar o sistema así, ata que deixou de cargarse por completo, pero por desgraza, despois de dous anos nunca conseguín facelo (quizais tiven sorte, non sei).

E na miña opinión, se este modo fose axeitado para o meu televisor, tamén sería adecuado para un "altofalante simple de radio por Internet", e xa que desactivei por forza a actualización automática dos complementos de Kodi, a probabilidade de que se produza un fallo do sistema de ficheiros será igual. menos. Ata agora non vexo ningún problema con isto

Nota:

    Но вы всегда при желании можете с помощью одной yocto команды 
    IMAGE_FEATURES += "read-only-rootfs"

    и определенной магии перевести ваш дистрибутив в режим "read only"
    

A distribución de "altofalantes de radio por Internet" descrita no artigo é familiar, e o máis importante para unha distribución doméstica é unha fermosa GUI. Na miña opinión, é moi difícil ou case imposible ensinarlle a un usuario común a introducir comandos máxicos incomprensibles na consola e nin sequera coñece a palabra. Pero a GUI, por favor.

E este é quizais o meu principal argumento a favor dunha distribución sen consola. A interface gráfica de usuario de lámpada cálida de Kodi, realmente non é necesaria, pero está aí.
(Tamén esquecín por completo mencionar que Kodi pódese controlar de forma remota, por exemplo desde un teléfono intelixente, instalando a aplicación Yatse, e quizais para algúns isto sexa un plus)

Configuración de Kodi para o control do rato

e agora Foguete

<keymap>
    <global>
        <mouse>
          <wheelup>VolumeUp</wheelup>
          <wheeldown>VolumeDown</wheeldown>
          <middleclick>ChannelDown</middleclick>
          <longclick id="0">ChannelDown</longclick>
          <longclick id="1">ChannelUp</longclick>
          <!-- конфигурационный rocket -->
        </mouse>
    </global>
</keymap>

A configuración anula os eventos globais para os seguintes elementos:

  • despraza a roda do rato cara adiante
  • despraza a roda do rato cara atrás
  • premendo no botón central do rato
  • procesando clics longos do rato (3 segundos ou máis),
    0 ID do botón dereito, 1 ID do botón esquerdo

Información máis detallada sobre a configuración de eventos do rato:

kodi.wiki/view/Alternative_keymaps_for_mice
kodi.wiki/view/Action_IDs
kodi.wiki/view/Window_IDs

Que facer se non che chega o sistema de cable

"Pero non teño portos Ethernet gratuítos na casa (ou nunca o teño)", poden exclamar algúns dos felices propietarios das antigas placas Raspberry Pi 1 (quizais a placa foi comprada para a investigación e quedou tirada no armario)

E como a placa non ten Wifi incorporada, non é moi funcional sen conexión Ethernet.

Por suposto, é posible usar a placa Raspberry Pi 1 sen Ethernet, pero requirirá algún esforzo da túa parte. Normalmente, tales cousas son interesantes para facer só como parte de aprender algo novo, é dicir. Este non é un traballo personalizado.

Entón, consideremos un caso de uso hipotético para unha placa sen Ethernet:

Podes conectar un adaptador USB - Wifi externo, guiado pola consideración
que o adaptador debería funcionar ben en Linux

Nota:

    К сожалению часть WiFi адаптеров работать не будет, 
    это не особенность представленного в данной статье дистрибутива, 
    а скорее проблема конкретных драйверов WiFi адаптеров в ядре Linux. 
    Можно констатировать тот факт, что в настоящий момент вы не можете просто 
    пойти в магазин и купить любой WiFi адаптер. Скорее вы должны подобрать WiFi 
    адаптер из списка менее проблематичных и хорошо работающих под Linux.

    я проверял только следующии модели:
    - WiFi адаптер на чипсете Atheros D-Link DWA-126 802.11n (AR9271)
    - WiFi адаптер NetGear WNDA3200
    - WiFi адаптер NetGear WNA1100
    - WiFi адаптер TP-Link TL-WN722N (AR9271)
    - WiFi адаптер TL-WN322G v3
    - WiFi адаптер TL-WN422G
    - Wifi адаптер Asus USB-N53 chipset Ralink RT3572 
    

Se xa tes un adaptador USB Wifi, podes comprobar se funciona ben en Linux do seguinte xeito:

  • Instala algunha distribución Linux moi utilizada
    propósito xeral, por exemplo "Escritorio Ubuntu"
  • Arranque o sistema
  • Conecta o teu adaptador USB Wifi
  • Inicia o xestor de rede e tenta conectarte ao teu punto de acceso WiFi
  • Se todo funciona ben e a túa conexión a Internet é estable, entón o teu adaptador está ben compatible e podes continuar co teu traballo para conectar este adaptador nunha distribución especializada e posiblemente con outras versións do núcleo.
    (se non, entón non, por desgraza, é mellor nin tentar)

Soporte para adaptador Wifi externo en Raspberry PI

Para que o adaptador WiFi funcione correctamente en Linux, necesitamos dúas cousas:
1) Compatibilidade do núcleo de Linux para un adaptador Wifi específico
2) A presenza dun módulo do núcleo no sistema para un adaptador Wifi específico

Tome por exemplo o adaptador TP-Link TL-WN722N. Ten unha antena simplemente magnífica.
Imos atopar o chipset no que funciona a placa - para min é "AR9271", Nota:

    что самое интересное, это то, что для одной и той же модели
    одного и того же производителя, чипсет Wifi может отличаться.
    Я например сталкивался с тем, что для TL-WN722N версии 2, 
    используется уже другой чипсет Realtek RTL8188, а он уже 
    плохо работал под Linux (на тот момент), увы такие вот дела, 
    т.е. иногда нужно еще приглядываться к маленьким цифрам 
    версии на обратной (темной) стороне адаптера.    
    

Agora imos buscar o nome do parámetro na configuración do núcleo responsable do controlador de chipset AR9271, o mellor é buscar a combinación de palabras "AR9271 catee.net"
     onde "cateee.net" é un sitio xenial que describe configuracións dos módulos do núcleo de Linux

Inmediatamente atopamos o nome da configuración do núcleo - CONFIG_ATH9K_HTC
e o nome do módulo do núcleo que necesitamos ath9k_htc

e despois simplemente especifique o nome do módulo desexado no ficheiro de fragmentos de configuración
Núcleo de Linux => recipes-kernel/linux/files/rbpi.cfg, engade a liña:
CONFIG_ATH9K_HTC=m

Así, no futuro podes conectar calquera equipo adicional ao teu sistema (ben, por suposto, se xa está soportado no núcleo de Linux)

Que facer se es un habra geek - deseñador

E creas as cousas máis chulas, como aquí ou es estudante e soñas con crear algo semellante.

De inmediato, podes levar algún tipo de pantalla táctil para RPI en aliexpress, pedir alí unha batería adecuada, conéctalo todo a unha placa Raspberry Pi 1,2 ou 3 (preferentemente 3, xa que ten Wifi incorporado), selecciona unha interface de tema de deseño gráfico en Kodi, deseñada para unha pantalla táctil e listo => podes obter un reprodutor de audio sinxelo. Por suposto que será bastante voluminoso, pero será o teu.

  Примечание:
  A для того, чтобы собрать Мультимедиа центр Kodi для самой бюджетной платы 
  Raspberry Pi Zero Wifi в yocto вам достаточно изменить две строки:

  конфигурационный файл => build/conf/local.conf
      MACHINE = 'raspberrypi0-wifi'

  рецепт сборки Kodi  => recipes-mediacentre/kodi/kodi_17.bbappend
      EXTRA_OECONF_append = "${@bb.utils.contains('MACHINE', 
                            'raspberrypi0-wifi', '${BS_RPI}',  '', d)}"

  Se a capacidade de resposta da GUI Kodi 17.6 debido ao núcleo de procesador único en Zero che parece misteriosa, podes enganar os teus oídos e construír unha versión máis antiga, pero moi rápida, por exemplo, Kodi 15.2, é máis "amigable" a este respecto. (Ás veces o legado resolve todo)

Desafortunadamente, non teño o taboleiro, polo que non podo comprobar, pero creo que debería funcionar.

Instrucións breves de montaxe

    1) Установите зависимости Yocto Project (например в Ubuntu): 
    sudo apt-get install -y --no-install-suggests --no-install-recommends 
        gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential 
        chrpath socat cpio python python3 python3-pip python3-pexpect 
        xz-utils debianutils iputils-ping python3-git python3-jinja2 
        libegl1-mesa libsdl1.2-dev xterm

    2) Скачайте и установите Repo:
        mkdir ~/bin
        curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
        chmod a+x ~/bin/repo

    3) Загрузите проект с github:
        PATH=${PATH}:~/bin
        mkdir radio
        cd radio
        repo init -u https://github.com/berserktv/bs-manifest 
                  -m raspberry/rocko/radio-rpi-0.2.8.xml
        repo sync

    4) Соберите проект:
        ./shell.sh
        bitbake berserk-image
        
    можно тоже самое собрать для плат Raspberry Pi 3B Plus, 3B и 2B:
    repo init -u https://github.com/berserktv/bs-manifest 
              -m raspberry/rocko/radio-0.2.8.xml
    

instrucións de montaxe máis detalladas
e gravar nunha tarxeta microSDHC, consulte nun artigo anterior

Postscript

Por suposto, a idea dun altofalante de radio por Internet é típica, todos o saben e en Habré atoparás moitos artigos sobre este tema, por exemplo aquí

E tamén pode pensar que simplemente adaptei os requisitos a unha solución preparada. A isto podo contrarrestar e dicir que non, sinceramente.

A historia do señor Ervey

    Хотите верьте, хотите нет, а дело было так:

    Наш рабочий офис граничит с фирмой по производству разного звукового
    оборудования, и однажды директор этой фирмы, назовем его мистер "Эрви"
    подошел к нашему заместителю директора филиала мистеру "Арсению"
    и спросил у него, насколько сложно повесить на плату Raspberry Pi 
    проигрывание звукового потока т.е. плата подключается к сети 
    и колонкам, и "слышен характерный звук".

    После этого мистер Арсений подошел к заместителю моего 
    начальника - мистеру "Борису" и переадресовал вопрос ему, 
    ну а я, как сторонний наблюдатель случайно эту идею запомнил
    и назвал ее "Задача трех начальников".

    В общем хотели как лучше, 
    а получилось, цитата - "Но мистер Эрви, как всегда, помог."

    Через некоторое время я поинтересовался у мистера "Бориса" 
    его мнением по поводу написания небольшой заметки на эту тему 
    на "Хабре", на что "Борис" ответил, что изменение 
    "трех пунктов меню" в Kodi, особо не привносит никакой 
    новой информации и не заслуживает отдельного упоминания. 
    Конечно я с ним полностью согласен и поэтому, я не расскажу ему, 
    что что-то написал по этому поводу.

    Статья написана исключительно для платы "Raspberry Pi 1" 
    взятой у мистера "Бориса" на время эксперимента, 
    совпадения со всеми другими платами "Raspberry Pi 1" случайны.
    

Máis montaxes boas e diferentes para ti, e que ata o antigo ladrillo te cante este ano.

Fonte: www.habr.com

Engadir un comentario