Die einfachste Internetradio-Kolumne "Kodi" oder die Rettung von "Raspberry" -Backstein


Die Haupträumlichkeiten:

  1. Es gibt ein altes unbenutztes Raspberry Pi Board der ersten Generation.
  2. Die Platte liegt mit Eigengewicht auf dem Schrank und wird nicht verwendet - die Brick-Platte;

Was ich erhalten möchte:

  1. Zu einem bestimmten Zeitpunkt (zum Beispiel nach Stimmung)
    Das Board ist kein "Brick" mehr und es wird eine magische Speicherkarte eingelegt.
  2. Ein Ethernet-Kabel und ein Stecker eines normalen Haushaltslautsprechers oder Kopfhörers sind an die Platine angeschlossen.
  3. Nach der Stromversorgung singt der ehemalige "Brick"

Die Hauptidee:

  1. Die minimale Anzahl von Gesten für jede Einstellung, im Idealfall verbinden wir nur das "Ethernet" -Kabel, die Stromversorgung und die Lautsprecher und machen nichts anderes, als das Wort "vollständig";
  2. Der ehemalige "Brick" aus der Box unterstützt beispielsweise 20 Internetradiosender, deren Umschaltung im Kreis durch Drücken des Mausrads oder auf einen bestimmten GPIO-Pin aufgehängt werden kann (zwei Drähte verbinden und schließen (mein Traum seit meiner Kindheit));
  3. Die Verwaltung erfolgt über einen Funkkanal, und dieser Funkkanal kann zu einer normalen Funkmaus werden.
  4. Nehmen Sie ein fertiges System, montieren Sie die Distribution im "Yocto Project"
    d.h. wie immer werden wir nichts tun, da schon alles erledigt ist.
    (Platzieren Sie einfach einen externen Beobachter auf der anderen Seite des Fernsehgeräts. )

Beschreibung

Die einfachste Internet-Radio-Kolumne "KODI"
Die Montage ist für ältere Raspberry Pi 1-Boards vorgesehen
(Staub sammelt sich irgendwo auf dem Schrank, aber die sind immer noch bereit zu arbeiten)

Standardmäßig wird die m3u8-Liste mit 12 Internetradiosendern verwendet.

Es wird davon ausgegangen, dass die Karte ohne HDMI-Ausgang arbeitet. Um sie auszuschalten, ziehen Sie einfach den Netzadapter aus der Steckdose. Und als ultramoderne drahtlose Fernbedienung können Sie Ihre Super-Funkmaus verwenden (oder eine gewöhnliche graue Maus mit einem Schwanz verbinden).

Wenn Sie die Netzwerkschnittstelle standardmäßig einschalten, wird sie über das DHCP-Protokoll konfiguriert und der zuletzt gespeicherte Radiosender aus der Liste abgespielt. Die Wiedergabelautstärke wird mit einer herkömmlichen Maus gesteuert:
(Bestelle endlich deine Maus zum "Abteilungsleiter" und gratuliere ihr, sie hat es verdient)

  -      -      (3  )     -      (3  )     -    

So fügen Sie eine eigene Liste von Internetradiosendern hinzu
Sie können jederzeit ein HDMI-Kabel vom Fernsehgerät anschließen
und verwenden Sie die Standard-Kodi 17.6-GUI
(Schalten Sie die Karte aus, schließen Sie HDMI an und schalten Sie das Netzteil ein.)

Kodi-Hauptmenü => "Add-Ons" => "Meine Add-Ons"
=> “PVR Clients” => “PVR IPTV Simple Client”

Erstimplementierung
(möglich)
Als ich mich entschied, eine „Internet-Radio-Kolumne“ zu erstellen, plante ich zunächst Folgendes:

  • Minimalistische Konsolenverteilung im Yocto-Projekt;
  • Der Audiostream wird über GStreamer wiedergegeben.
  • Die Netzwerkschnittstelle wird über DHCP konfiguriert.

Und diese Lösung hat mehrere Vorteile:

  1. Schnell genug (Ausgabe in den Betriebsmodus von Netzteil 30-40 Sek.);
  2. Zuverlässig genug (weniger Programme, weniger Fehlerquellen);
  3. Konsolenverteilung ist viel einfacher als schreibgeschützt einzustellen
    d.h. Programme schreiben nichts in das Stammverzeichnis des Dateisystems
    (Ein Dateisystem auf SDHC-Medien ist meiner Meinung nach der erste Kandidat für Ausfälle);

Hinweis:
   Yocto     (rootfs)        ,         Yocto   : 1)       / (     ,  Ubuntu) 2)        (   ,   )      ,                (  /var/log  ..)             .   Yocto Project      "read only",          ,          "read only"  "read/write",       ... 



Und ein Hauptnachteil:

"Es muss getan werden", d.h. Ich muss N Abende verbringen
(normalerweise nach der Arbeit, und dies ist die ineffizienteste Zeit, zu dieser Zeit denkt das Gehirn nicht mehr, es schläft normalerweise)

Und doch schrieb ich meinen vorherigen Artikel über das Multimedia-Center Kodi und das Yocto- Projekt auf Habré
und die Fähigkeit, in der gleichen Weise fortzufahren, überwältigte meinen Forschungsimpuls. Darüber im nächsten Kapitel.

Kodi in eine Internet-Radio-Säule verwandeln

Um die benötigte Funktionalität hinzuzufügen, füge ich dem im vorherigen Artikel beschriebenen Verteilungserstellungsrezept eine weitere Methode hinzu ( siehe berserk-image.bb)

 GUI_SETTINGS = "home/root/.kodi/userdata/guisettings.xml" #       (1- 2- ) F1_LINE = "<startlast default=\"true\"^_^gt&#0;lt^_^/startlast>" R1_LINE = "<startlast^_^gt lt^_^/startlast>" #   ,       F2_LINE = "<audiodevice default=\"true\">PI:HDMI</audiodevice>" R2_LINE = "<audiodevice>PI:Analogue</audiodevice>" #   HDMI        #       ,      F3_LINE = "<addonupdates default=\"true\"^_^gt&#0;lt^_^/addonupdates>" R3_LINE = "<addonupdates^_^gt lt^_^/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} } 

Die Methoden sollen das Root-Dateisystem modifizieren, bevor das Distributions-Image in Form einer einzelnen Rohdatei erstellt wird, die mit dem Befehl dd auf die Speicherkarte geschrieben wird

Dies geschieht folgendermaßen:
ROOTFS_POSTPROCESS_COMMAND + = "add_radio_guisettings; off_kodi_welcome; "

Kurz gesagt, in der Hauptkonfigurationsdatei von Kodi 17.6 ändern sich "drei Punkte"

  • Konfiguration des zuletzt gewählten TV-Kanals starten;
  • Audioausgangskonfiguration, nur der analoge Audioausgang ist immer angeschlossen;
  • Automatische Updates deaktivieren;
  • Hinweis:
            ,  ,          sqlite => TV29.db,        (        ),   xml   Kodi   . 



detailliertere Abfolge von Aktionen für jeden Gegenstand:

1) Klicken Sie auf das Zahnradsymbol in der oberen linken Ecke des Bildschirms
und wählen Sie "PVR- und TV-Einstellungen" (Bild eines Fernsehgeräts mit zwei Hörnern)
Weiter links im Menü wählen Sie den Punkt „Wiedergabe“ und im mittleren Bereich „Allgemein“
in der Dropdown-Liste angeben, dass beim Start vom letzten Kanal fortgefahren werden soll
Wählen Sie die Einstellung „Vordergrund“

oder klarer:

  " PVR  " => "" => "     " => " " 

2) Klicken Sie auf das Zahnradsymbol in der oberen linken Ecke des Bildschirms und wählen Sie das Element aus:

  " " => "" => "" => "   " 

3) Klicken Sie auf das Zahnradsymbol in der oberen linken Ecke des Bildschirms und wählen Sie:

  " " => "" => "  " => "PI: Analogue" 

Ich habe zwei Jahre lang falsch ferngesehen.

Ich muss Ihnen zugeben, dass ich zwei Jahre lang nicht gelernt habe, wie man richtig fernsieht.

Normalerweise schaue ich in der Küche fern. Die Raspberry Pi 2B-Karte ist mit dem Fernsehgerät verbunden, und Ethernet- und HDMI-Anschlüsse sind mit der Karte verbunden. Die Platine wird über ein normales USB-Kabel mit Strom versorgt, das an den USB-Anschluss des Fernsehgeräts angeschlossen ist, d. H. Wenn Sie das Fernsehgerät mit der Standardfernbedienung einschalten, wird auch die Himbeer-Pi-Platine mit Strom versorgt, und wenn Sie das Fernsehgerät mit der Fernbedienung ausschalten, wird auch die Stromversorgung der Himbeer-Pi-Platine sofort zurückgesetzt.

Ja, mir ist klar, dass dies nicht möglich ist, da ich im Root-Dateisystem des Kodi Multimedia Center (ext3) normale Lese- / Schreibfunktionen habe. Aber ich bin ein fauler Mensch, und zunächst habe ich mich entschlossen, zu prüfen, wie lange das System so ausgeschaltet werden kann, bis es nicht mehr geladen wird. Leider gelang mir dies zwei Jahre lang nicht (vielleicht hatte ich nur Glück, ich weiß es nicht) )

Und wenn ein solcher Modus meiner Meinung nach für mein Fernsehgerät geeignet wäre, wäre er auch für einen „einfachen Internetradio-Lautsprecher“ geeignet, und da ich die automatische Aktualisierung von Kodi-Plugins gewaltsam deaktiviert habe, würde die Wahrscheinlichkeit eines Ausfalls des Dateisystems sogar noch geringer werden. Ich sehe zwar kein Problem damit

Hinweis:
           yocto  IMAGE_FEATURES += "read-only-rootfs"         "read only" 


Die im Artikel beschriebene Distribution "Internetradio-Lautsprecher" ist "Haushalt", und was für eine Haushaltsdistribution am wichtigsten ist, ist eine schöne grafische Benutzeroberfläche. Meiner Meinung nach ist es sehr schwierig oder fast unmöglich, einem normalen Benutzer beizubringen, seltsame Zauberbefehle in der Konsole einzugeben, und er kennt nicht einmal ein solches Wort. Und hier ist die GUI, das ist bitte.

Und dies ist vielleicht mein Hauptargument für eine Nicht-Konsolen-Distribution. Die grafische Benutzeroberfläche von Kodi für Warm Tube ist zwar nicht unbedingt erforderlich, wird aber dennoch benötigt.
(Ich habe auch völlig vergessen zu erwähnen, dass Kodi über die Installation der Yatse-Anwendung ferngesteuert werden kann, zum Beispiel von einem Smartphone aus. Für jemanden ist dies möglicherweise ein Vorteil.)

Kodi-Konfiguration für die Maussteuerung


und jetzt Rocket
 <keymap> <global> <mouse> <wheelup>VolumeUp</wheelup> <wheeldown>VolumeDown</wheeldown> <middleclick>ChannelDown</middleclick> <longclick id=^_^quot&#0;quot^_^>ChannelDown</longclick> <longclick id=^_^quot quot^_^>ChannelUp</longclick> <!--  rocket --> </mouse> </global> </keymap> 


Die Konfiguration überschreibt die globalen Ereignisse für die folgenden Elemente:

  • Mausrad nach vorne
  • Mausrad zurückblättern
  • Klicken Sie mit der mittleren Maustaste
  • Verarbeitung langer Mausklicks (3 Sekunden oder länger),
    0 rechte Taste, 1 linke Taste


Weitere Informationen zum Einrichten von Mausereignissen:

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

Was tun, wenn das Kabelsystem nicht zu Ihnen gekommen ist?

"Aber ich habe zu Hause keine freien Ethernet-Ports (oder hatte ich noch nie)" - können einige der glücklichen Besitzer alter Raspberry Pi 1-Boards ausrufen (vielleicht wurde das Board für Forschungszwecke gekauft und blieb im Schrank)

Und da auf der Karte kein integriertes WLAN vorhanden ist, ist es ohne Ethernet-Verbindung nicht sehr funktionsfähig.

Natürlich besteht die Möglichkeit, die Raspberry Pi 1-Karte ohne Ethernet zu verwenden, aber Sie müssen sich einige Mühe geben. Normalerweise ist es interessant, solche Dinge nur im Rahmen des Studiums von etwas Neuem, d. H. Dies ist keine Benutzerarbeit.

Betrachten Sie daher eine hypothetische Option für die Verwendung einer Karte ohne Ethernet:

Sie können einen externen USB-WLAN-Adapter anschließen.
dass der Adapter unter Linux gut funktionieren soll

Hinweis:

     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 

Wenn Sie bereits einen USB-WLAN-Adapter haben, können Sie wie folgt prüfen, ob dieser unter Linux funktioniert:

  • Installieren Sie eine weit verbreitete Linux-Distribution
    Allzweck, zum Beispiel "Ubuntu Desktop"
  • Boot-System
  • Stecken Sie Ihren WLAN-USB-Adapter ein
  • Starten Sie den Netzwerkmanager und versuchen Sie, eine Verbindung zu Ihrem WLAN-Zugangspunkt herzustellen
  • Wenn alles gut funktioniert und Ihre Internetverbindung stabil ist, wird Ihr Adapter gut unterstützt und Sie können mit der Arbeit an der Verbindung dieses Adapters in einem speziellen Distributionskit und möglicherweise mit anderen Versionen des Kernels fortfahren
    (Wenn nicht, dann leider nicht - es ist besser, es nicht einmal zu versuchen)

Unterstützung für externen WLAN-Adapter in "Raspberry PI"

Damit der WiFi-Adapter unter Linux ordnungsgemäß funktioniert, benötigen wir zwei Dinge:
1) Linux-Kernel-Unterstützung für einen bestimmten Wifi-Adapter
2) Das Vorhandensein eines Kernelmoduls für einen bestimmten Wifi-Adapter im System

Nehmen Sie zum Beispiel den TP-Link TL-WN722N Adapter. Er hat einfach eine tolle Antenne.
Wir werden den Chipsatz finden, auf dem das Board funktioniert - ich habe es "AR9271",
hinweis:

    ,  ,            ,  Wifi  .     ,   TL-WN722N  2,     Realtek RTL8188,       Linux (  ),    , ..           ()  . 

Jetzt finden wir den Namen des Parameters in der Kernelkonfiguration, die für den Treiber für den AR9271-Chipsatz verantwortlich ist. Suchen Sie am besten nach der Kombination der Wörter „AR9271 cateee.net“.
Dabei ist "cateee.net" eine coole Site, die die Konfigurationen von Linux-Kernelmodulen beschreibt

Suchen Sie sofort den Namen der Kernel-Konfiguration - CONFIG_ATH9K_HTC
und den Namen des Kernelmoduls ath9k_htc, das wir brauchen

Geben Sie dann einfach den Namen des gewünschten Moduls in der Konfigurationsfragmentdatei an
Linux-Kernel => recipes-kernel / linux / files / rbpi.cfg, fügen Sie die folgende Zeile hinzu:
CONFIG_ATH9K_HTC = m

Auf diese Weise können Sie in Zukunft jedes zusätzliche Gerät an Ihr System anschließen (natürlich, wenn es bereits vom Linux-Kernel unterstützt wird).

Was tun, wenn Sie ein Geek-Designer sind?

Und Sie kreieren zum Beispiel die coolsten Dinge, wie hier, oder Sie sind Student und träumen davon, etwas Ähnliches zu kreieren.

So können Sie nebenbei eine Art Touchscreen für RPI auf aliexpress nehmen, dort einen geeigneten Akku bestellen, alles an das Raspberry Pi 1.2 oder 3 Board anschließen (besser an 3, da es eingebautes Wifi hat), ein Grafikdesign-Thema auswählen Schnittstelle in Kodi, ausgelegt für Touchscreen und Voila => Sie können einen einfachen Audio-Player bekommen. Natürlich wird es sperrig genug sein, aber es wird dir gehören.

  : 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)}" 

   Wenn die Reaktionsfähigkeit der Kodi-GUI 17.6 
   Wegen eines Prozessorkerns in Zero werden Sie scheinen 
   mysteriös, du kannst mit deinen Ohren eine Finte machen und eine ältere einsammeln, 
   Aber eine sehr schnelle Version, zum Beispiel Kodi 15.2, ist mehr 
   "freundlich" (manchmal entscheidet das Erbe alles)

Leider habe ich keine Gebühr, daher kann ich nicht überprüfen, aber nach meinen Gefühlen sollte dies funktionieren.

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

detailliertere Montageanleitung
Informationen zum Aufnehmen auf eine microSDHC-Karte finden Sie im vorherigen Artikel


Postscript

Natürlich ist die Idee einer Internet-Radio-Kolumne typisch, sie ist jedem bekannt und auf dem Hub finden Sie viele Artikel zu diesem Thema, zum Beispiel hier

Und Sie denken vielleicht auch, dass ich nur die Anforderungen für eine schlüsselfertige Lösung erfülle. Ich kann dem entgegenwirken und ehrlich gesagt nein sagen.

Weitere Builds für dich sind gut und anders.

Source: https://habr.com/ru/post/de482714/


All Articles