A "Kodi" legegyszerűbb internetes rádiórovat vagy a "Málna" tégla megváltása

A "Kodi" legegyszerűbb internetes rádiórovat vagy a "Málna" tégla megváltása

Alapfeltételek:

  1. Van egy régi, használaton kívüli első generációs Raspberry Pi tábla;
  2. A tábla holtsúlyként fekszik a szekrényen, és nincs használatban - a „tégla” tábla;

Amit szeretnék kapni:

  1. Egy adott időpontban (például hangulat szerint)
    a tábla megszűnik „tégla” lenni, és egy mágikus memóriakártya kerül bele;
  2. Egy Ethernet-kábel és egy hagyományos háztartási hangszóró vagy fejhallgató csatlakozója csatlakozik az alaplaphoz;
  3. A tápfeszültség bekapcsolása után a korábbi „tégla” - énekel

Fő gondolat:

  1. Minimális számú gesztus minden beállításhoz, a legideálisabb esetben csak az „Ethernet” kábelt, a tápellátást és a hangszórókat csatlakoztatjuk, és semmi mást nem teszünk. "egyáltalán";
  2. Az egykori „Brick” kidobott állapotban például 20 internetes rádióállomást támogat, melyeket az egér görgőjének megnyomásával vagy egy adott GPIO tűn körbe lehet kapcsolni (kötsünk össze két vezetéket és zárjuk rövidre (az álmom gyerekkorom óta) );
  3. A vezérlés rádiócsatornán keresztül történik, és ez a rádiócsatorna lehet egy hagyományos rádióegér;
  4. Vegyünk egy kész rendszert, és állítsuk össze a disztribúciót a „Yocto Project”-be.
    azok. szokás szerint nem teszünk veled semmit, mivel már mindent megtettünk.
    (elég csak egy külső szemlélőt helyezni a másik oldalra "TÉVÉ");

Leírás

A legegyszerűbb internetes rádió rovat „KODI”
Az összeállítást régebbi Raspberry Pi 1 táblákhoz tervezték
(por gyűlik valahol a szekrényen, de készen állnak további munkára)

Alapértelmezés szerint a 3 internetes rádióállomást tartalmazó m8u12 lista használatos.

Feltételezhető, hogy az alaplap HDMI-kimenet nélkül működik, és a kikapcsoláshoz csak ki kell húzni a hálózati adaptert a konnektorból. Ultramodern vezeték nélküli vezérlőpanelként használhatja szuper rádiós egerét (vagy csatlakoztathat egy normál szürke egeret farokkal).

Bekapcsolt állapotban az alapértelmezett hálózati interfész a DHCP protokollon keresztül konfigurálva van, és a listából az utoljára memorizált rádióállomás kerül lejátszásra, a lejátszás hangereje pedig normál egérrel vezérelhető:
(végre nevezze ki az egeret "menedzsment vezetőnek", és gratuláljon hozzá, megérdemli)

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

Saját internetes rádióállomások listájának hozzáadásához
HDMI-kábelt mindig csatlakoztathat a TV-hez
és használja a Kodi 17.6 szabványos grafikus felületét
(kapcsolja ki a kártyát, csatlakoztassa a HDMI-t és kapcsolja be a hálózati adaptert)

Kodi főmenü => „Kiegészítők” => „Kiegészítőim”
          => "PVR kliensek" => "PVR IPTV egyszerű kliens"

Kezdeti megvalósítás

(lehetséges)
Kezdetben, amikor elhatároztam, hogy létrehozok egy „Internet Radio Columnt”, a következőket terveztem:

  • Minimalista konzol disztribúció a Yocto Projectben;
  • Az audio stream lejátszása a GStreameren keresztül történik;
  • A hálózati interfész konfigurálása DHCP-n keresztül történik;

És ennek a megoldásnak számos előnye van:

  1. Meglehetősen gyors (30-40 másodpercet vesz igénybe az üzemmód elérése a tápegységről);
  2. Meglehetősen megbízható (kevesebb program, kevesebb hibapont);
  3. A konzolos disztribúcióknál sokkal könnyebb átváltani csak olvasható módba
    azok. a programok nem írnak semmit a gyökér fájlrendszerbe
    (és az SDHC adathordozón lévő fájlrendszer véleményem szerint az első esély a kudarcra);

Megjegyzés:

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

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

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

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

És egy fő hátránya:

„Meg kell tenni” azaz. N számú estét kell töltenem
(általában munka után, és ez a leghatékonyabb időszak, ilyenkor az agy már nem gondolkodik, általában alszik)

Pedig az előző cikkemet a Habré-n írtam a multimédiás központról Kodi és Yocto program
és a lehetőség, hogy ugyanebben a szellemben folytassam, felülkerekedett kutatói impulzusomon. Erről bővebben a következő fejezetben.

A Kodi internetes rádió hangszóróvá alakítása

Ahhoz, hogy a szükséges funkcionalitást kiegészítsem, még egy módszert adok az előzőben leírt disztribúció felépítésének receptjéhez cikk lásd a berserk-image.bb fájlt

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

A metódusok a gyökér fájlrendszer módosítására szolgálnak, mielőtt egy terjesztési képet alkotnának egy nyers fájl formájában, amelyet a memóriakártyára írnak a paranccsal. dd

Ez a következőképpen történik:
ROOTFS_POSTPROCESS_COMMAND += "add_radio_guisettings; off_kodi_welcome;"

Röviden, a Kodi 17.6 fő konfigurációs fájljában a „három pont” megváltozik

  • Konfiguráció az utoljára kiválasztott TV-csatorna indításához;
  • Hangkimenet konfiguráció, mindig csak analóg hangkimenet van csatlakoztatva;
  • Az automatikus frissítések letiltása;
  • Megjegyzés:
        Единственное с чем у меня возникли сложности, 
        это то, что пришлось еще подтащить файл базы данных 
        в формате sqlite => TV29.db, в котором указывается 
        текущий проигрываемый ТВ канал 
        (так как по умолчанию никакой из каналов не выбран), 
        а через xml конфигурацию в Kodi этого не сделать.
        

részletesebb műveletsor minden elemhez:

1) Kattintson a fogaskerék ikonra a képernyő bal felső sarkában
és válassza ki a „PVR és TV beállítások” lehetőséget (két kürttel rendelkező tévé képe)
majd a menü bal oldalán válassza a „Lejátszás” lehetőséget, a központi részben pedig az „Általános” lehetőséget.
válassza a „Folytatás az utolsó csatornától induláskor” lehetőséget a legördülő listában
az "előtér" beállítás kiválasztásával

vagy pontosabban:

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

2) Kattintson a „fogaskerék” ikonra a képernyő bal felső sarkában, és válassza ki az elemet:

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

3) Kattintson a „fogaskerék” ikonra a képernyő bal felső sarkában, és válassza ki az elemet:

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

Hogy két éve rosszul nézek tévét.

Be kell vallanom, hogy két év alatt még mindig nem tanultam meg helyesen tévézni.

Általában a konyhában nézek tévét. A TV-hez egy Raspberry Pi 2B kártya, az Ethernet és HDMI csatlakozók pedig a kártyához csatlakoznak. Az alaplap tápellátása egy normál USB-kábelen keresztül történik, amely a TV USB-portjába csatlakozik, pl. Valójában a tévé normál távirányítóval történő bekapcsolása a Raspberry Pi kártyát látja el árammal, a tévé távirányítóról történő kikapcsolása pedig azonnal visszaállítja a Raspberry Pi kártyáról érkező tápellátást is.

Igen, jól tudom, hogy ezt nem lehet megtenni, mert a Kodi médiaközpont gyökér fájlrendszere (ext3) normál olvasási/írási módban működik. De lusta vagyok, és először úgy döntöttem, hogy megnézem, meddig tudom így kikapcsolni a rendszert, amíg teljesen leáll a töltés, de sajnos két év után ez nem sikerült (talán csak szerencsém volt, nem tudom).

És véleményem szerint, ha ez a mód megfelelne a TV-mnek, akkor az „egyszerű internetes rádió hangszórójához” is alkalmas lenne, és mivel erőszakosan letiltottam a Kodi bővítmények automatikus frissítését, a fájlrendszer meghibásodásának valószínűsége egyenletes lesz. Kevésbé. Egyelőre nem látok ezzel problémát

Megjegyzés:

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

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

A cikkben ismertetett „Internetrádió hangszórók” disztribúciója háztartási, és ami a legfontosabb a háztartási terjesztéshez, az egy gyönyörű grafikus felület. Véleményem szerint nagyon nehéz vagy szinte lehetetlen megtanítani egy hétköznapi felhasználót, hogy bármilyen érthetetlen mágikus parancsot beírjon a konzolba, és nem is ismeri a szót. De a GUI-t kérem.

És talán ez a fő érvem a nem konzolos disztribúció mellett. A Kodi meleglámpás grafikus felhasználói felülete, igazából nincs is rá szükség, de ott van.
(Teljesen elfelejtettem megemlíteni, hogy a Kodi távolról is vezérelhető, például okostelefonról, a Yatse alkalmazás telepítésével, és talán néhánynak ez pluszt jelent)

Kodi konfiguráció az egérvezérléshez

és most Rakéta

<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 konfiguráció felülbírálja a globális eseményeket a következő elemeknél:

  • görgesse az egér görgőjét előre
  • görgesse vissza az egér görgőjét
  • kattintson a középső egérgombbal
  • hosszú egérkattintások feldolgozása (3 másodperc vagy több),
    0 jobb gomb azonosítója, 1 bal gomb azonosítója

Részletesebb információ az egéresemények beállításáról:

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

Mi a teendő, ha a kábelrendszer nem érkezik meg Önhöz

„De nincs otthon (vagy soha nem is volt) ingyenes Ethernet portom” – kiálthatja fel a régi Raspberry Pi 1 kártyák boldog tulajdonosa (talán a kártyát kutatás céljából vásárolták, és a szekrényen hever)

És mivel az alaplapon nincs beépített Wifi, Ethernet kapcsolat nélkül nem túl működőképes.

Természetesen a Raspberry Pi 1 kártya Ethernet nélkül is használható, de ez némi erőfeszítést igényel. Általában az ilyen dolgok csak valami új tanulás részeként érdekesek, pl. Ez nem egyedi munka.

Tehát vegyünk egy feltételezett használati esetet egy Ethernet nélküli kártya esetében:

Külső USB - Wifi adaptert csatlakoztathat, a megfontolástól vezérelve
hogy az adapternek jól kell működnie Linux alatt

Megjegyzés:

    К сожалению часть 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 
    

Ha már rendelkezik USB Wifi adapterrel, az alábbiak szerint ellenőrizheti, hogy jól működik-e Linux alatt:

  • Telepítsen néhány széles körben használt Linux disztribúciót
    általános cél, például "Ubuntu Desktop"
  • Indítsa el a rendszert
  • Csatlakoztassa a Wifi usb adaptert
  • Indítsa el a hálózatkezelőt, és próbáljon meg csatlakozni a WiFi hozzáférési ponthoz
  • Ha minden jól működik, és az internetkapcsolat stabil, akkor az adapter jól támogatott, és folytathatja a munkát az adapter csatlakoztatásán egy speciális disztribúcióban és esetleg a kernel más verzióival
    (ha nem, akkor nem, sajnos jobb, ha meg sem próbálod)

Támogatás a külső Wifi adapterhez a Raspberry PI-ben

Ahhoz, hogy a WiFi adapter megfelelően működjön Linux alatt, két dologra van szükségünk:
1) Linux kernel támogatása adott Wifi adapterhez
2) Kernelmodul jelenléte a rendszerben egy adott Wifi-adapterhez

Vegyük például a TP-Link TL-WN722N adaptert. Egyszerűen csodálatos antennája van.
Keressük meg a lapkakészletet, amelyen az alaplap működik - nekem ez az "AR9271" jegyzet:

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

Most keressük meg a paraméter nevét az AR9271 chipset illesztőprogramért felelős kernelkonfigurációban, a legjobb, ha az „AR9271 catee.net” szavak kombinációját keressük.
     ahol a "cateee.net" egy remek webhely, amely a Linux kernel moduljainak konfigurációit írja le

Azonnal megtaláljuk a kernelkonfiguráció nevét - CONFIG_ATH9K_HTC
és a szükséges kernelmodul neve ath9k_htc

majd csak adja meg a kívánt modul nevét a konfigurációs töredékfájlban
Linux kernel => receptek-kernel/linux/files/rbpi.cfg, add hozzá a következő sort:
CONFIG_ATH9K_HTC=m

Így a jövőben bármilyen további berendezést csatlakoztathat a rendszeréhez (persze, ha a Linux kernel már támogatja)

Mi a teendő, ha habra geek - tervező

És létrehozod a legmenőbb dolgokat, mint pl itt vagy diák vagy és valami hasonló létrehozásáról álmodozol.

Egyszerűen csak elővehetsz valamilyen érintőképernyős képernyőt az RPI-hez az aliexpressen, ott rendelhetsz megfelelő akkumulátort, csatlakoztathatod az egészet egy Raspberry Pi 1,2, 3 vagy 3 kártyához (lehetőleg XNUMX, mert beépített Wifi van benne), válaszd egy grafikus tervezési téma felület a Kodiban, érintőképernyőhöz tervezve, és íme => kaphat egy egyszerű audiolejátszót. Természetesen elég terjedelmes lesz, de a tiéd lesz.

  Примечание:
  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)}"

  Ha a GUI Kodi 17.6 érzékenysége az egyetlen processzormag miatt a Zero-ban titokzatosnak tűnik számodra, akkor becsaphatod a füled, és építhetsz egy régebbi, de nagyon gyors verziót, például a Kodi 15.2-t, amely ebből a szempontból „barátságosabb” (néha az örökség mindent megold)

Sajnos nincs meg a tábla, így nem tudom ellenőrizni, de úgy érzem, működnie kellene.

Rövid összeszerelési útmutató

    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
    

részletesebb összeszerelési útmutató
és rögzítés microSDHC kártyára, lásd az előző cikkben

utóirat

Természetesen az internetes rádió hangszóró ötlete tipikus, mindenki ismeri, és a Habré-n sok cikket találsz ebben a témában, pl. itt

És azt is gondolhatja, hogy egyszerűen egy kész megoldásra szabtam a követelményeket. Erre tudok ellentmondani és azt mondani, hogy nem, őszintén.

Ervey úr története

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

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

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

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

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

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

További jó és más összeállításokat neked, és még az egykori tégla is énekeljen neked idén.

Forrás: will.com

Hozzászólás