La più semplice colonna radio su Internet "Kodi" o la salvezza del mattone "Raspberry".

La più semplice colonna radio su Internet "Kodi" o la salvezza del mattone "Raspberry".

Prerequisiti di base:

  1. C'è una vecchia scheda Raspberry Pi di prima generazione inutilizzata;
  2. La tavola giace sul mobile come un peso morto e non viene utilizzata: la tavola “Brick”;

Cosa vorrei ricevere:

  1. Ad un certo punto nel tempo (ad esempio, in base all'umore)
    il tabellone cessa di essere un "mattone" e al suo interno viene inserita una scheda di memoria magica;
  2. Alla scheda sono collegati un cavo Ethernet e una spina di un normale altoparlante domestico o di una cuffia;
  3. Dopo aver applicato l'alimentazione, l'ex "Mattone" - canta

L'idea principale:

  1. Il numero minimo di gesti per qualsiasi configurazione, nel caso ideale, colleghiamo solo il cavo "Ethernet", l'alimentazione e gli altoparlanti e non facciamo nient'altro, dalla parola "affatto";
  2. Il primo “Brick” pronto all'uso supporta, ad esempio, 20 stazioni radio Internet, che possono essere commutate in cerchio premendo la rotella del mouse o su uno specifico pin GPIO (collegare due fili e cortocircuitarli (il mio sogno fin dall'infanzia) );
  3. Il controllo viene effettuato tramite un canale radio e questo canale radio può essere un normale mouse radio;
  4. Prendi un sistema già pronto e assembla la distribuzione nel “Progetto Yocto”
    quelli. come al solito non ti faremo nulla, visto che è già stato fatto tutto.
    (è sufficiente porre dall’altra parte un osservatore esterno "TV");

descrizione

La più semplice rubrica della radio Internet “KODI”
L'assemblaggio è progettato per le vecchie schede Raspberry Pi 1
(raccolgono polvere da qualche parte nell'armadio, ma sono pronti a fare altro lavoro)

Per impostazione predefinita, viene utilizzato l'elenco m3u8 di 12 stazioni radio Internet.

Si presuppone che la scheda funzioni senza uscita HDMI e per spegnerla è sufficiente scollegare l'alimentatore dalla presa. E come pannello di controllo wireless ultramoderno, puoi utilizzare il tuo super mouse radio (o collegarne uno normale grigio con coda).

All'accensione, l'interfaccia di rete predefinita viene configurata tramite il protocollo DHCP e viene riprodotta l'ultima stazione radio memorizzata dall'elenco, il volume di riproduzione è controllato con un normale mouse:
(finalmente nomina il tuo topo “capo della direzione”, e congratulati con lui, se lo merita)

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

Per aggiungere il proprio elenco di stazioni radio Internet
puoi sempre collegare un cavo HDMI dalla TV
e utilizzare l'interfaccia grafica standard di Kodi 17.6
(spegni la scheda, collega l'HDMI e accendi l'alimentatore)

Menu principale di Kodi => “Componenti aggiuntivi” => “I miei componenti aggiuntivi”
          => “Client PVR” => “Client semplice PVR IPTV”

Implementazione iniziale

(possibile)
Inizialmente, quando ho deciso di creare una “Colonna sulla radio Internet”, ho pianificato quanto segue:

  • Distribuzione console minimalista nel progetto Yocto;
  • Il flusso audio viene riprodotto tramite GStreamer;
  • L'interfaccia di rete è configurata tramite DHCP;

E questa soluzione presenta numerosi vantaggi:

  1. Abbastanza veloce (impiega 30-40 secondi per raggiungere la modalità operativa dall'alimentazione);
  2. Abbastanza affidabile (meno programmi, meno punti di errore);
  3. Una distribuzione console è molto più semplice da passare alla modalità di sola lettura
    quelli. i programmi non scrivono nulla nel file system root
    (e il file system sui supporti SDHC è, a mio avviso, il primo candidato al fallimento);

Nota:

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

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

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

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

E uno svantaggio principale:

“Deve essere fatto” cioè Ho bisogno di trascorrere N numero di serate
(di solito dopo il lavoro, e questo è il momento più inefficace, in questo momento il cervello non pensa più, di solito dorme)

Eppure ho scritto il mio precedente articolo su Habré a proposito del centro multimediale Kodi e Yocto progetto
e l’opportunità di continuare sulla stessa linea ha sopraffatto il mio impulso alla ricerca. Maggiori informazioni su questo nel prossimo capitolo.

Trasformare Kodi in uno speaker radiofonico su Internet

Per aggiungere le funzionalità di cui ho bisogno, aggiungerò un altro metodo alla ricetta per costruire la distribuzione descritta in quella precedente Articolo vedere il file 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}
}

I metodi hanno lo scopo di modificare il file system root prima di formare un'immagine di distribuzione sotto forma di un file raw, che viene scritto sulla scheda di memoria con il comando dd

Questo viene fatto in questo modo:
ROOTFS_POSTPROCESS_COMMAND += "add_radio_guisettings; off_kodi_welcome;"

Insomma, nel file di configurazione principale di Kodi 17.6 cambiano “tre punti”.

  • Configurazione per il lancio dell'ultimo canale TV selezionato;
  • Configurazione dell'uscita audio, è sempre collegata solo l'uscita audio analogica;
  • Disabilitare gli aggiornamenti automatici;
  • Nota:
        Единственное с чем у меня возникли сложности, 
        это то, что пришлось еще подтащить файл базы данных 
        в формате sqlite => TV29.db, в котором указывается 
        текущий проигрываемый ТВ канал 
        (так как по умолчанию никакой из каналов не выбран), 
        а через xml конфигурацию в Kodi этого не сделать.
        

una sequenza più dettagliata di azioni per ciascun elemento:

1) Fai clic sull'icona a forma di ingranaggio nell'angolo in alto a sinistra dello schermo
e seleziona “Impostazioni PVR e TV” (immagine di una TV con due trombe)
quindi nella parte sinistra del menu selezionare “Riproduzione” e nella sezione centrale “Generale”
seleziona "Continua dall'ultimo canale all'avvio" nell'elenco a discesa
selezionando l'impostazione "Primo piano".

o più chiaramente:

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

2) Fare clic sull'icona "ingranaggio" nell'angolo in alto a sinistra dello schermo e selezionare la voce:

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

3) Fare clic sull'icona "ingranaggio" nell'angolo in alto a sinistra dello schermo e selezionare la voce:

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

Come ho guardato la TV nel modo sbagliato per due anni.

Devo confessarti che in due anni non ho ancora imparato a guardare correttamente la TV.

Di solito guardo la TV in cucina. Una scheda Raspberry Pi 2B è collegata al televisore e i connettori Ethernet e HDMI sono collegati alla scheda. La scheda viene alimentata tramite un normale cavo USB, che viene collegato alla porta USB del televisore, ad es. infatti, accendendo la TV tramite il telecomando standard si alimenta la scheda Raspberry Pi, e spegnendo la TV dal telecomando si ripristina immediatamente anche l'alimentazione dalla scheda Raspberry Pi.

Sì, so bene che ciò non è possibile, perché il file system root del media center Kodi (ext3) funziona in modalità lettura/scrittura normale. Ma sono una persona pigra, e prima ho deciso di verificare per quanto tempo avrei potuto spegnere il sistema in questo modo, finché non smettesse di caricarsi completamente, ma sfortunatamente dopo due anni non ci sono mai riuscito (forse sono stato solo fortunato, Non lo so).

E secondo me, se questa modalità fosse adatta alla mia TV, allora sarebbe adatta anche per un "semplice altoparlante della radio Internet" e poiché ho disabilitato forzatamente l'aggiornamento automatico dei plugin Kodi, la probabilità di un errore del file system diventerà pari meno. Finora non vedo alcun problema con questo

Nota:

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

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

La distribuzione "Altoparlanti della radio Internet" descritta nell'articolo è domestica e ciò che è più importante per una distribuzione domestica è una bella GUI. Secondo me, è molto difficile o quasi impossibile insegnare a un utente normale a inserire comandi magici incomprensibili nella console e non conosce nemmeno la parola. Ma la GUI, per favore.

E questo è forse il mio argomento principale a favore di una distribuzione non console. L'interfaccia utente grafica della lampada calda di Kodi non è realmente necessaria, ma è lì.
(Mi sono anche completamente dimenticato di dire che Kodi può essere controllato da remoto, ad esempio da uno smartphone, installando l'applicazione Yatse, e forse per alcuni questo sarà un vantaggio)

Configurazione Kodi per il controllo del mouse

e ora Razzo

<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 configurazione sovrascrive gli eventi globali per i seguenti elementi:

  • scorrere la rotellina del mouse in avanti
  • scorrere indietro la rotellina del mouse
  • facendo clic sul pulsante centrale del mouse
  • elaborazione di clic lunghi del mouse (3 secondi o più),
    0 ID pulsante destro, 1 ID pulsante sinistro

Informazioni più dettagliate sulla configurazione degli eventi del mouse:

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

Cosa fare se il sistema via cavo non ti arriva

"Ma non ho porte Ethernet libere a casa (o non le ho mai avute)", potrebbero esclamare alcuni felici possessori di vecchie schede Raspberry Pi 1 (forse la scheda è stata acquistata per la ricerca ed è rimasta sul mobile)

E poiché la scheda non dispone di Wi-Fi integrato, non è molto funzionale senza una connessione Ethernet.

Naturalmente è possibile utilizzare la scheda Raspberry Pi 1 senza Ethernet, ma richiederà un certo sforzo da parte vostra. Di solito, queste cose sono interessanti da fare solo come parte dell'apprendimento di qualcosa di nuovo, ad es. Questo non è un lavoro personalizzato.

Consideriamo quindi un ipotetico caso d'uso per una scheda senza Ethernet:

È possibile collegare un adattatore USB - Wifi esterno, guidato dalla considerazione
che l'adattatore dovrebbe funzionare bene sotto 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 disponi già di un adattatore Wifi USB, puoi verificare se funziona bene su Linux come segue:

  • Installa alcune distribuzioni Linux ampiamente utilizzate
    uso generale, ad esempio "Ubuntu Desktop"
  • Avvia il sistema
  • Collega il tuo adattatore USB Wifi
  • Avvia il gestore di rete e prova a connetterti al tuo punto di accesso WiFi
  • Se tutto funziona bene e la tua connessione Internet è stabile, allora il tuo adattatore è ben supportato e puoi continuare il tuo lavoro per connettere questo adattatore in una distribuzione specializzata ed eventualmente con altre versioni del kernel
    (se no, allora no, ahimè, è meglio non provarci nemmeno)

Supporto per adattatore Wi-Fi esterno in Raspberry PI

Affinché l'adattatore WiFi funzioni correttamente in Linux, abbiamo bisogno di due cose:
1) Supporto del kernel Linux per adattatore Wi-Fi specifico
2) La presenza di un modulo kernel nel sistema per uno specifico adattatore Wifi

Prendiamo ad esempio l'adattatore TP-Link TL-WN722N. Ha un'antenna semplicemente magnifica.
Troviamo il chipset su cui funziona la scheda: per me è "AR9271", Nota:

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

Ora troviamo il nome del parametro nella configurazione del kernel responsabile del driver del chipset AR9271, è meglio cercare la combinazione di parole “AR9271 catee.net”
     dove "cateee.net" è un sito interessante che descrive le configurazioni dei moduli del kernel Linux

Troviamo subito il nome della configurazione del kernel - CONFIG_ATH9K_HTC
e il nome del modulo del kernel di cui abbiamo bisogno ath9k_htc

e quindi semplicemente specificare il nome del modulo richiesto nel file di frammento di configurazione
Kernel Linux => ricette-kernel/linux/files/rbpi.cfg, aggiungi la riga:
CONFIG_ATH9K_HTC=m

Pertanto, in futuro potrai collegare qualsiasi apparecchiatura aggiuntiva al tuo sistema (beh, ovviamente, se è già supportata nel kernel Linux)

Cosa fare se sei un designer habra geek

E crei le cose più belle, come qui oppure sei uno studente e sogni di creare qualcosa di simile.

Per un attimo, puoi prendere una sorta di touch screen per RPI su aliexpress, ordinare lì una batteria adatta, collegare il tutto a una scheda Raspberry Pi 1,2 o 3 (preferibilmente 3, poiché ha Wifi integrato), selezionare un'interfaccia a tema di design grafico in Kodi, progettata per un touch screen e voilà => puoi ottenere un semplice lettore audio. Naturalmente sarà piuttosto ingombrante, ma sarà tuo.

  Примечание:
  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 la reattività della GUI Kodi 17.6 dovuta al singolo core del processore in Zero ti sembra misteriosa, allora puoi ingannare le tue orecchie e costruire una versione più vecchia, ma molto veloce, ad esempio Kodi 15.2, è più "amichevole" in questo senso (a volte l'eredità risolve tutto)

Sfortunatamente non ho la scheda, quindi non posso controllare, ma sento che dovrebbe funzionare.

Brevi istruzioni di montaggio

    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
    

istruzioni di montaggio più dettagliate
e registrazione su una scheda microSDHC, vedere nell'articolo precedente

poscritto

Certo, l'idea di uno speaker radiofonico su Internet è tipica, lo sanno tutti e su Habré troverai molti articoli su questo argomento, ad esempio qui

E potresti anche pensare che io abbia semplicemente adattato i requisiti a una soluzione già pronta. A questo posso ribattere e dire di no, sinceramente.

La storia del signor Ervey

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

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

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

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

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

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

Assemblaggi più belli e diversi per voi, e che anche l'ex mattone canti per voi quest'anno.

Fonte: habr.com

Aggiungi un commento