La columna de ràdio per Internet més senzilla "Kodi" o la salvació del maó "Raspberry".

La columna de ràdio per Internet més senzilla "Kodi" o la salvació del maó "Raspberry".

Requisits bàsics:

  1. Hi ha una placa antiga de Raspberry Pi de primera generació sense utilitzar;
  2. El tauler es troba a l'armari com a pes mort i no s'utilitza: el tauler "Maó";

El que m'agradaria rebre:

  1. En un moment determinat (per exemple, segons l'estat d'ànim)
    el tauler deixa de ser un "Maó" i s'hi insereix una targeta de memòria màgica;
  2. Un cable Ethernet i un endoll d'un altaveu o auriculars domèstics habituals estan connectats a la placa;
  3. Després d'aplicar el poder, l'antic "Maó" - canta

Idea principal:

  1. El nombre mínim de gestos per a qualsevol configuració, en el cas més ideal, connectem només el cable "Ethernet", l'alimentació i els altaveus, i no fem res més, des de la paraula "en absolut";
  2. L'antic "Brick" fora de la caixa admet, per exemple, 20 emissores de ràdio per Internet, que es poden canviar en cercle prement la roda del ratolí o en un pin GPIO específic (connecteu dos cables i curteu-los (el meu somni des de petit) );
  3. El control es realitza mitjançant un canal de ràdio, i aquest canal de ràdio pot ser un ratolí de ràdio normal;
  4. Agafeu un sistema ja fet i munteu la distribució al "Projecte Yocto"
    aquells. com és habitual, no us farem res, ja que ja està tot fet.
    (n'hi ha prou amb posar un observador extern a l'altre costat "TV");

Descripció

La columna de ràdio per Internet més senzilla "KODI"
El conjunt està dissenyat per a plaques antigues de Raspberry Pi 1
(recollint pols en algun lloc de l'armari, però que estan preparats per treballar més)

Per defecte, s'utilitza la llista m3u8 de 12 estacions de ràdio per Internet.

Se suposa que la placa funciona sense una sortida HDMI i, per desactivar-la, només cal que desconnecteu l'adaptador d'alimentació de la presa de corrent. I com a panell de control sense fil ultramodern, podeu utilitzar el vostre ratolí de ràdio super (o connectar-ne un de gris normal amb una cua).

Quan està activat, la interfície de xarxa predeterminada es configura mitjançant el protocol DHCP i es reprodueix l'última emissora de ràdio memoritzada de la llista, el volum de reproducció es controla amb un ratolí normal:
(per fi designeu el vostre ratolí com a "cap de gestió" i feliciteu-lo, s'ho mereix)

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

Per afegir la vostra pròpia llista d'emissores de ràdio per Internet
sempre podeu connectar un cable HDMI des del vostre televisor
i utilitzeu la interfície gràfica estàndard de Kodi 17.6
(apaga la placa, connecta HDMI i enceneu l'adaptador d'alimentació)

Menú principal de Kodi => "Complements" => "Els meus complements"
          => "Clients PVR" => "Client simple IPTV PVR"

Implementació inicial

(possible)
Inicialment, quan vaig decidir fer una "Columna de ràdio per Internet", vaig planificar el següent:

  • Distribució de consola minimalista al Projecte Yocto;
  • El flux d'àudio es reprodueix mitjançant GStreamer;
  • La interfície de xarxa es configura mitjançant DHCP;

I aquesta solució té diversos avantatges:

  1. Bastant ràpid (es triguen 30-40 segons a arribar al mode de funcionament des de la font d'alimentació);
  2. Bastant fiable (menys programes, menys punts de fallada);
  3. Una distribució de consola és molt més fàcil canviar al mode de només lectura
    aquells. els programes no escriuen res al sistema de fitxers arrel
    (i el sistema de fitxers dels suports SDHC és, al meu entendre, el primer candidat a fallar);

Nota:

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

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

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

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

I un inconvenient principal:

"S'ha de fer", és a dir. Necessito passar N nombre de vespres
(normalment després de la feina, i aquest és el moment més ineficaç, en aquest moment el cervell ja no pensa, normalment dorm)

I tanmateix, vaig escriure el meu article anterior sobre Habré sobre el centre multimèdia Kodi i Yocto projecte
i l'oportunitat de continuar en la mateixa línia va superar el meu impuls de recerca. Més sobre això al següent capítol.

Convertint Kodi en un altaveu de ràdio per Internet

Per afegir la funcionalitat que necessito, afegiré un mètode més a la recepta per construir la distribució descrita a l'anterior. article vegeu el fitxer 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}
}

Els mètodes estan pensats per modificar el sistema de fitxers arrel abans de formar una imatge de distribució en forma d'un fitxer en brut, que s'escriu a la targeta de memòria amb l'ordre dd

Això es fa d'aquesta manera:
ROOTFS_POSTPROCESS_COMMAND += "add_radio_guisettings; off_kodi_benvingut;"

En resum, al fitxer de configuració principal de Kodi 17.6, canvien els "tres punts".

  • Configuració per llançar l'últim canal de TV seleccionat;
  • Configuració de la sortida d'àudio, només la sortida d'àudio analògica està sempre connectada;
  • Desactiva les actualitzacions automàtiques;
  • Nota:
        Единственное с чем у меня возникли сложности, 
        это то, что пришлось еще подтащить файл базы данных 
        в формате sqlite => TV29.db, в котором указывается 
        текущий проигрываемый ТВ канал 
        (так как по умолчанию никакой из каналов не выбран), 
        а через xml конфигурацию в Kodi этого не сделать.
        

una seqüència d'accions més detallada per a cada element:

1) Feu clic a la icona d'engranatge a la cantonada superior esquerra de la pantalla
i seleccioneu "Configuració PVR i TV" (imatge d'un televisor amb dues botzines)
a continuació, a la part esquerra del menú, seleccioneu "Reproducció" i a la secció central "General"
seleccioneu "Continua des de l'últim canal a l'inici" a la llista desplegable
seleccionant la configuració "Primer pla".

o més clar:

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

2) Feu clic a la icona "engranatge" a la cantonada superior esquerra de la pantalla i seleccioneu l'element:

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

3) Feu clic a la icona "engranatge" a la cantonada superior esquerra de la pantalla i seleccioneu l'element:

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

Com he estat mirant la televisió de manera equivocada durant dos anys.

Us he de confessar que en dos anys encara no he après a veure la televisió correctament.

Normalment miro la televisió a la cuina. Una placa Raspberry Pi 2B està connectada al televisor i els connectors Ethernet i HDMI estan connectats a la placa. La placa s'alimenta mitjançant un cable USB normal, que està connectat al port USB del televisor, és a dir. de fet, encendre el televisor amb el comandament a distància estàndard subministra energia a la placa Raspberry Pi i apagar la televisió des del comandament a distància també restableix immediatament l'alimentació de la placa Raspberry Pi.

Sí, sóc molt conscient que això no es pot fer, perquè el sistema de fitxers arrel del centre de mitjans Kodi (ext3) funciona en mode de lectura/escriptura normal. Però sóc una persona mandrosa, i primer vaig decidir comprovar quant de temps podia apagar el sistema així, fins que va deixar de carregar-se completament, però malauradament, després de dos anys no vaig aconseguir fer-ho mai (potser vaig tenir sort, no ho sé).

I, al meu entendre, si aquest mode fos adequat per al meu televisor, també seria adequat per a un "altaveu simple de ràdio per Internet", i com que vaig desactivar per la força l'actualització automàtica dels connectors de Kodi, la probabilitat d'un error del sistema de fitxers serà igual. menys. Fins ara no hi veig cap problema

Nota:

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

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

La distribució d'"altaveus de ràdio per Internet" que es descriu a l'article és una distribució domèstica, i el més important per a una distribució domèstica és una bella GUI. Al meu entendre, és molt difícil o gairebé impossible ensenyar a un usuari normal a introduir ordres màgiques incomprensibles a la consola, i ni tan sols sap la paraula. Però la GUI, si us plau.

I aquest és potser el meu principal argument a favor d'una distribució sense consola. La interfície d'usuari gràfica de la làmpada càlida de Kodi, realment no és necessària, però hi és.
(També em vaig oblidar completament d'esmentar que Kodi es pot controlar de forma remota, per exemple des d'un telèfon intel·ligent, instal·lant l'aplicació Yatse, i potser per a alguns això serà un avantatge)

Configuració de Kodi per al control del ratolí

i ara Rocket

<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>

La configuració anul·la els esdeveniments globals per als elements següents:

  • desplaçar la roda del ratolí cap endavant
  • desplaça la roda del ratolí cap enrere
  • fent clic al botó central del ratolí
  • processant clics llargs del ratolí (3 segons o més),
    0 ID del botó dret, 1 ID del botó esquerre

Informació més detallada sobre com configurar els esdeveniments del ratolí:

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

Què fer si no us arriba el sistema de cable

"Però no tinc ports Ethernet gratuïts a casa (o mai ho tinc)", poden exclamar alguns dels feliços propietaris de les antigues plaques Raspberry Pi 1 (potser la placa es va comprar per investigar i es va quedar a l'armari)

I com que la placa no té Wifi integrat, no és gaire funcional sense connexió Ethernet.

Per descomptat, és possible utilitzar la placa Raspberry Pi 1 sense Ethernet, però requerirà algun esforç per part vostra. Normalment, aquestes coses són interessants de fer només com a part d'aprendre alguna cosa nova, és a dir. Això no és un treball personalitzat.

Per tant, considerem un cas d'ús hipotètic per a una placa sense Ethernet:

Podeu connectar un adaptador USB - Wifi extern, guiat per la consideració
que l'adaptador hauria de funcionar bé amb 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 
    

Si ja teniu un adaptador USB Wifi, podeu comprovar si funciona bé amb Linux de la següent manera:

  • Instal·leu una distribució Linux àmpliament utilitzada
    propòsit general, per exemple "Escriptori Ubuntu"
  • Inicieu el sistema
  • Connecteu el vostre adaptador USB Wifi
  • Inicieu el gestor de xarxa i proveu de connectar-vos al vostre punt d'accés WiFi
  • Si tot funciona bé i la vostra connexió a Internet és estable, aleshores el vostre adaptador té un bon suport i podeu continuar treballant per connectar aquest adaptador en una distribució especialitzada i possiblement amb altres versions del nucli.
    (si no, doncs no, per desgràcia, és millor ni tan sols intentar-ho)

Suport per a adaptador Wifi extern a Raspberry PI

Perquè l'adaptador WiFi funcioni correctament a Linux, necessitem dues coses:
1) Suport del nucli de Linux per a un adaptador Wifi específic
2) La presència d'un mòdul del nucli al sistema per a un adaptador Wifi específic

Prengui per exemple l'adaptador TP-Link TL-WN722N. Té una antena simplement magnífica.
Anem a buscar el chipset en què funciona la placa: per a mi és "AR9271", nota:

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

Ara anem a trobar el nom del paràmetre a la configuració del nucli responsable del controlador del chipset AR9271, el millor és buscar la combinació de paraules "AR9271 catee.net"
     on "cateee.net" és un lloc fantàstic que descriu configuracions dels mòduls del nucli de Linux

De seguida trobem el nom de la configuració del nucli - CONFIG_ATH9K_HTC
i el nom del mòdul del nucli que necessitem ath9k_htc

i després només especifiqueu el nom del mòdul requerit al fitxer de fragment de configuració
Nucli de Linux => recipes-kernel/linux/files/rbpi.cfg, afegiu la línia:
CONFIG_ATH9K_HTC=m

Així, en el futur podeu connectar qualsevol equip addicional al vostre sistema (bé, és clar, si ja és compatible amb el nucli Linux)

Què fer si sou un habra geek - dissenyador

I tu crees les coses més maques, com ara aquí o ets estudiant i somies amb crear alguna cosa semblant.

De seguida, podeu agafar algun tipus de pantalla tàctil per a RPI a aliexpress, demanar una bateria adequada allà, connectar-ho tot a una placa Raspberry Pi 1,2 o 3 (preferiblement 3, ja que té Wifi integrat), seleccionar una interfície de tema de disseny gràfic a Kodi, dissenyada per a una pantalla tàctil i voilà => podeu obtenir un reproductor d'àudio senzill. Per descomptat, serà força voluminós, però serà el 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)}"

  Si la capacitat de resposta de la GUI Kodi 17.6 a causa del nucli de processador únic a Zero us sembla misteriosa, podeu enganyar-vos les orelles i crear una versió més antiga però molt ràpida, per exemple Kodi 15.2, és més "amable" en aquest sentit. (de vegades el llegat ho soluciona tot)

Malauradament, no tinc el tauler, així que no puc comprovar, però crec que hauria de funcionar.

Instruccions breus de muntatge

    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
    

instruccions de muntatge més detallades
i gravar en una targeta microSDHC, vegeu a l’article anterior

Postscript

Per descomptat, la idea d'un altaveu de ràdio per Internet és típica, tothom la sap i a Habré trobareu molts articles sobre aquest tema, per exemple aquí

I també podeu pensar que simplement vaig adaptar els requisits a una solució ja feta. A això puc contrarestar i dir que no, sincerament.

La història del senyor Ervey

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

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

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

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

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

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

Més muntatges bons i diferents per a tu, i que fins i tot l'antic maó et canti aquest any.

Font: www.habr.com

Afegeix comentari