{"id":54774,"date":"2020-01-04T00:00:00","date_gmt":"2020-01-03T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/prostejshaya-internet-radio-kolonka-kodi-ili-spasenie-malinovogo-kirpicha"},"modified":"2020-02-18T14:02:49","modified_gmt":"2020-02-18T11:02:49","slug":"prostejshaya-internet-radio-kolonka-kodi-ili-spasenie-malinovogo-kirpicha","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/prostejshaya-internet-radio-kolonka-kodi-ili-spasenie-malinovogo-kirpicha","title":{"rendered":"Nejjednodu\u0161\u0161\u00ed internetov\u00e1 r\u00e1dio reproduktor \u201eKodi\u201c nebo z\u00e1chrana \u201eMalinov\u00e9ho\u201c cihel","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Nejjednodu\u0161\u0161\u00ed internetov\u00e1 r\u00e1dio reproduktor \u201eKodi\u201c nebo z\u00e1chrana \u201eMalinov\u00e9ho\u201c cihel\" src=\"\/wp-content\/uploads\/2020\/01\/c20cd49d9e2ba397946a17ed24c117fd.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h5> Hlavn\u00ed p\u0159edpoklady: <\/h5>\n<p><\/p>\n<ol>\n<li> Existuje star\u00e1 nepou\u017e\u00edvan\u00e1 deska Raspberry Pi prvn\u00ed generace; <\/li>\n<li> Deska le\u017e\u00ed na sk\u0159\u00edni jako mrtv\u00e1 v\u00e1ha a nen\u00ed pou\u017e\u00edv\u00e1na \u2014 deska \u201eCihel\u201c; <\/li>\n<\/ol>\n<p><\/p>\n<h5> Co bych cht\u011bl z\u00edskat: <\/h5>\n<p><\/p>\n<ol>\n<li> V ur\u010dit\u00e9m okam\u017eiku (nap\u0159\u00edklad podle n\u00e1lady)<br \/>\ndeska p\u0159estane b\u00fdt \u201eCihla\u201c a do n\u00ed se vlo\u017e\u00ed kouzeln\u00e1 pam\u011b\u0165ov\u00e1 karta; <\/li>\n<li> K desce se p\u0159ipoj\u00ed Ethernet kabel a konektor od b\u011b\u017en\u00e9ho dom\u00e1c\u00edho reproduktoru nebo sluch\u00e1tek; <\/li>\n<li> Po p\u0159ipojen\u00ed nap\u00e1jen\u00ed b\u00fdval\u00e1 \u201eCihla\u201c \u2014 <strong>zp\u00edv\u00e1<\/strong><\/li>\n<\/ol>\n<p><\/p>\n<h5> Hlavn\u00ed my\u0161lenka: <\/h5>\n<p><\/p>\n<ol>\n<li> Minim\u00e1ln\u00ed mno\u017estv\u00ed pohyb\u016f pro jak\u00e9koli nastaven\u00ed, v ide\u00e1ln\u00edm p\u0159\u00edpad\u011b p\u0159ipoj\u00edme pouze \u201eEthernet\u201c kabel, nap\u00e1jen\u00ed a reproduktory, a nic v\u00edc ned\u011bl\u00e1me, od slova <strong>\u201e\u00fapln\u011b\u201c;<\/strong><\/li>\n<li> B\u00fdval\u00e1 \u201eCihla\u201c z krabice podporuje nap\u0159\u00edklad 20 internetov\u00fdch r\u00e1diov\u00fdch stanic, jejich\u017e p\u0159ep\u00edn\u00e1n\u00ed do kole\u010dka lze p\u0159i\u0159adit na stisknut\u00ed kole\u010dka my\u0161i nebo na ur\u010dit\u00fd pin GPIO (p\u0159ipojit dva dr\u00e1ty a spojit je (m\u016fj sen od d\u011btstv\u00ed));<\/li>\n<li> Ovl\u00e1d\u00e1n\u00ed prob\u00edh\u00e1 r\u00e1diov\u00fdm kan\u00e1lem, a t\u00edmto r\u00e1diov\u00fdm kan\u00e1lem se m\u016f\u017ee st\u00e1t oby\u010dejn\u00e1 r\u00e1diov\u00e1 my\u0161;<\/li>\n<li> Vezmeme ji\u017e hotov\u00fd syst\u00e9m, distribuci sestav\u00edme v \u201eYocto Project\u201c<br \/>\nt.j. jako obvykle nic neud\u011bl\u00e1me, proto\u017ee v\u0161e u\u017e bylo ud\u011bl\u00e1no.<br \/>\n(sta\u010d\u00ed jen um\u00edstit extern\u00edho pozorovatele na druhou stranu <strong>\u201eTelevizoru\u201c<\/strong>);<\/li>\n<\/ol>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h5>Popis<\/h5>\n<p>\nNejjednodu\u0161\u0161\u00ed Internet R\u00e1dio reproduktor \u201eKODI\u201c<br \/>\nSestava je ur\u010dena pro star\u00e9 desky Raspberry Pi 1<br \/>\n(prachuj\u00edc\u00ed se n\u011bkde na sk\u0159\u00edni, ale kter\u00e9 jsou je\u0161t\u011b p\u0159ipraveny pracovat)<\/p>\n<p>Ve v\u00fdchoz\u00edm nastaven\u00ed se pou\u017e\u00edv\u00e1 seznam m3u8 ze 12 internetov\u00fdch r\u00e1diov\u00fdch stanic.<\/p>\n<p>P\u0159edpokl\u00e1d\u00e1 se, \u017ee deska funguje bez HDMI v\u00fdstupu, a jej\u00ed vypnut\u00ed sta\u010d\u00ed odpojen\u00edm nap\u00e1jec\u00edho adapt\u00e9ru ze z\u00e1suvky. A jako ultra modern\u00ed bezdr\u00e1tov\u00fd ovlada\u010d m\u016f\u017eete pou\u017e\u00edt svou super r\u00e1diovou my\u0161 (nebo p\u0159ipojit oby\u010dejnou \u0161edou s kabelem).<\/p>\n<p>P\u0159i zapnut\u00ed se s\u00ed\u0165ov\u00e9 rozhran\u00ed ve v\u00fdchoz\u00edm nastaven\u00ed nastav\u00ed p\u0159es protokol DHCP a p\u0159ehraje posledn\u00ed zapamatovanou r\u00e1diovou stanici ze seznamu, ovl\u00e1d\u00e1n\u00ed hlasitosti p\u0159ehr\u00e1v\u00e1n\u00ed prob\u00edh\u00e1 pomoc\u00ed b\u011b\u017en\u00e9 my\u0161i: <br \/>\n(kone\u010dn\u011b si ur\u010dete svou my\u0161 jako \u201e\u0161\u00e9fku ovl\u00e1d\u00e1n\u00ed\u201c, a gratulujte j\u00ed, to si zaslou\u017eila)<\/p>\n<pre><code class=\"html\">  kol\u00edsko dop\u0159edu - zv\u00fd\u0161en\u00ed hlasitosti\n  kol\u00edsko dozadu - sn\u00ed\u017een\u00ed hlasitosti\n  dlouh\u00e9 stisknut\u00ed (3 sekundy a v\u00edce) prav\u00e9ho tla\u010d\u00edtka my\u0161i\n                   - v\u00fdb\u011br dal\u0161\u00ed r\u00e1diov\u00e9 stanice\n  dlouh\u00e9 stisknut\u00ed (3 sekundy a v\u00edce) lev\u00e9ho tla\u010d\u00edtka my\u0161i\n                   - v\u00fdb\u011br p\u0159edchoz\u00ed r\u00e1diov\u00e9 stanice\n<\/code><\/pre>\n<p><\/p>\n<blockquote><p>Pro p\u0159id\u00e1n\u00ed vlastn\u00edho seznamu internetov\u00fdch r\u00e1di\u00ed <br \/>\nv\u017edy m\u016f\u017eete p\u0159ipojit HDMI kabel od televizoru <br \/>\na vyu\u017e\u00edt standardn\u00ed grafick\u00e9 rozhran\u00ed Kodi 17.6<br \/>\n(vypn\u011bte desku, p\u0159ipojte HDMI a zapn\u011bte nap\u00e1jec\u00ed adapt\u00e9r)<\/p>\n<p>Hlavn\u00ed menu Kodi =&gt; \u201eDopl\u0148ky\u201c =&gt; \u201eMoje dopl\u0148ky\u201c <br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0=&gt; \u201eKlienty PVR\u201c =&gt; \u201ePVR IPTV Simple Client\u201c\n<\/p><\/blockquote>\n<p><\/p>\n<h5> P\u016fvodn\u00ed implementace <\/h5>\n<p> (mo\u017en\u00e1)<br \/>\nP\u016fvodn\u011b, kdy\u017e jsem se rozhodl vytvo\u0159it \u201eInternetov\u00e9 R\u00e1dio reproduktor\u201c, pl\u00e1noval jsem n\u00e1sleduj\u00edc\u00ed:<\/p>\n<ul>\n<li> Minimalistick\u00e1 konzolov\u00e1 distribuce v Yocto Project; <\/li>\n<li> Audiostream je p\u0159ehr\u00e1v\u00e1n p\u0159es GStreamer; <\/li>\n<li> S\u00ed\u0165ov\u00e9 rozhran\u00ed je nastavov\u00e1no pomoc\u00ed DHCP; <\/li>\n<\/ul>\n<p>\nA takov\u00e9 \u0159e\u0161en\u00ed m\u00e1 \u0159adu v\u00fdhod:<\/p>\n<ol>\n<li> Dostate\u010dn\u011b rychl\u00e9 (n\u00e1b\u011bh do pracovn\u00edho re\u017eimu od zapnut\u00ed nap\u00e1jen\u00ed 30-40 sekund);<\/li>\n<li> Dostate\u010dn\u011b spolehliv\u00e9 (m\u00e9n\u011b program\u016f, m\u00e9n\u011b bod\u016f selh\u00e1n\u00ed);<\/li>\n<li> Konzolov\u00e1 distribuce je mnohem jednodu\u0161\u0161\u00ed p\u0159ev\u00e9st do re\u017eimu pouze pro \u010dten\u00ed<br \/>\n tj. programy nic nezapisuj\u00ed do ko\u0159enov\u00e9ho souborov\u00e9ho syst\u00e9mu<br \/>\n (a souborov\u00fd syst\u00e9m na SDHC m\u00e9diu je podle m\u011b prvn\u00edm kandid\u00e1tem na selh\u00e1n\u00ed);<\/li>\n<\/ol>\n<p>\n<b class=\"spoiler_title\">Pozn\u00e1mka:<\/b> <\/p>\n<pre><code class=\"bash\">    V Yocto lze p\u0159ev\u00e9st ko\u0159enov\u00fd souborov\u00fd syst\u00e9m (rootfs) do re\u017eimu pouze pro \u010dten\u00ed pom\u011brn\u011b jednodu\u0161e, zm\u011bnou jednoho parametru b\u011bhem sestavov\u00e1n\u00ed.  \n  V z\u00e1kladu Yocto nab\u00edz\u00ed dv\u011b mo\u017enosti:  \n  1) Pr\u00e1ce souborov\u00e9ho syst\u00e9mu v b\u011b\u017en\u00e9m re\u017eimu \u010dten\u00ed\/z\u00e1pis  \n  (tak funguj\u00ed v\u0161echny distribuce obecn\u00fdch \u00fa\u010del\u016f, nap\u0159\u00edklad Ubuntu)  \n  2) Pr\u00e1ce souborov\u00e9ho syst\u00e9mu v re\u017eimu pouze pro \u010dten\u00ed  \n  (tak funguj\u00ed specializovan\u00e9 distribuce, nap\u0159\u00edklad v routerech)  \n  V re\u017eimu pouze pro \u010dten\u00ed jsou v\u0161echny adres\u00e1\u0159e, do kter\u00fdch se obvykle  \n  zapisuj\u00ed data aplikac\u00ed a slu\u017eeb b\u011bhem chodu, montov\u00e1ny  \n  do opera\u010dn\u00ed pam\u011bti (nap\u0159\u00edklad adres\u00e1\u0159 \/var\/log apod.)  \n  Data jsou aktu\u00e1ln\u00ed pouze pro aktu\u00e1ln\u00ed relaci a po vypnut\u00ed  \n  nap\u00e1jen\u00ed se data ztr\u00e1cej\u00ed.  \n  Pokud v Yocto Project za\u0159ad\u00edte p\u0159i sestavov\u00e1n\u00ed pou\u017e\u00edv\u00e1n\u00ed \"read only\",  \n  pak bude va\u0161e distribuce po sestaven\u00ed nastavena pouze pro \u010dten\u00ed,  \n  ale v\u017edy m\u016f\u017eete p\u0159idat mo\u017enost dynamick\u00e9ho p\u0159epnut\u00ed  \n  z \"read only\" na \"read\/write\", ale to u\u017e je \u00fapln\u011b jin\u00fd p\u0159\u00edb\u011bh ...\n    <\/code><\/pre>\n<p>\nA jeden hlavn\u00ed nedostatek:<\/p>\n<p>\u201eMus\u00ed to b\u00fdt ud\u011bl\u00e1no\u201c, tj. mus\u00edm str\u00e1vit N ve\u010der\u016f <br \/>\n(obvykle po pr\u00e1ci, a to je nejm\u00e9n\u011b efektivn\u00ed \u010das, kdy\u017e mozek u\u017e nevyd\u00e1v\u00e1 \u017e\u00e1dn\u00e9 my\u0161lenky, v\u011bt\u0161inou sp\u00ed)<\/p>\n<p>A tak\u00e9, sv\u016fj p\u0159edchoz\u00ed \u010dl\u00e1nek na Habr jsem psal o multimedi\u00e1ln\u00edm centru <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/467443\">Kodi a Yocto<\/a><\/noindex> projekt<br \/>\na mo\u017enost pokra\u010dovat ve stejn\u00e9m duchu p\u0159emohla m\u016fj v\u00fdzkumn\u00fd v\u00e1\u0161niv\u00fd z\u00e1jem. O tom v dal\u0161\u00ed kapitole.<\/p>\n<h5> P\u0159evod Kodi na internetovou r\u00e1diovou kolonku <\/h5>\n<p>\nAbych p\u0159idal po\u017eadovanou funk\u010dnost, p\u0159id\u00e1m do receptu pro sestaven\u00ed distribuce popsan\u00e9ho v p\u0159edchoz\u00edm <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/467443#distrib_recipe_koditv\"> \u010dl\u00e1nku <\/a><\/noindex> viz soubor berserk-image.bb <\/p>\n<pre><code class=\"bash\">GUI_SETTINGS = \"home\/root\/.kodi\/userdata\/guisettings.xml\"\n\n# konfigurace zah\u00e1jen\u00ed posledn\u00edho vybran\u00e9ho TV kan\u00e1lu (1-z\u00e1znam 2-pozad\u00ed)\nF1_LINE = \"&lt;startlast default=\"true\"&gt;0&lt;\\\/startlast&gt;\"\nR1_LINE = \"&lt;startlast&gt;1&lt;\\\/startlast&gt;\"\n# konfigurace v\u00fdstupu zvuku, v\u017edy p\u0159ipojen pouze analogov\u00fd audio v\u00fdstup\nF2_LINE = \"&lt;audiodevice default=\"true\"&gt;PI:HDMI&lt;\\\/audiodevice&gt;\"\nR2_LINE = \"&lt;audiodevice&gt;PI:Analogue&lt;\\\/audiodevice&gt;\"\n# proto\u017ee HDMI se ve v\u00fdchoz\u00edm nastaven\u00ed nepou\u017e\u00edv\u00e1, vyp\u00edn\u00e1m automatick\u00e9 aktualizace\n# jinak by se mohlo st\u00e1t, \u017ee nap\u00e1jen\u00ed odejde, ale data z\u016fstanou nezapsan\u00e1\nF3_LINE = \"&lt;addonupdates default=\"true\"&gt;0&lt;\\\/addonupdates&gt;\"\nR3_LINE = \"&lt;addonupdates&gt;2&lt;\\\/addonupdates&gt;\"\n\n\n# metoda odpov\u00edd\u00e1 za p\u0159id\u00e1n\u00ed konfigurace:\n# kter\u00e1 prom\u011b\u0148uje \"Chytrou televizi\" na \"oby\u010dejnou internetovou r\u00e1diovou bednu\"\nadd_radio_guisettings() {\n    sed -i \"s|${F1_LINE}|${R1_LINE}|\" ${IMAGE_ROOTFS}\/${GUI_SETTINGS}\n    sed -i \"s|${F2_LINE}|${R2_LINE}|\" ${IMAGE_ROOTFS}\/${GUI_SETTINGS}\n    sed -i \"s|${F3_LINE}|${R3_LINE}|\" ${IMAGE_ROOTFS}\/${GUI_SETTINGS}\n}\n\n\nFIND_STR = \"touch .\\\/tmp\/.FIRST_RUN.\"\nSCRIPT_FIRST_RUN = \"etc\/init.d\/first-run.sh\"\n# proto\u017ee HDMI v\u00fdstup nemus\u00ed b\u00fdt pou\u017e\u00edv\u00e1n,\n# je nutn\u00e9 vypnout \"\u00favodn\u00ed pozdrav\"\noff_kodi_welcome() {\n    sed -i \"s|${FIND_STR}|#&amp;|\" ${IMAGE_ROOTFS}\/${SCRIPT_FIRST_RUN}\n}\n<\/code><\/pre>\n<p>\nMetody jsou ur\u010deny k modifikaci ko\u0159enov\u00e9ho souborov\u00e9ho syst\u00e9mu p\u0159ed vytvo\u0159en\u00edm obrazu distribuce ve form\u00e1tu jednoho raw souboru, kter\u00fd se zap\u00ed\u0161e na kartu pam\u011bti p\u0159\u00edkazem <strong> dd <\/strong><\/p>\n<p>D\u011bl\u00e1 se to n\u00e1sleduj\u00edc\u00edm zp\u016fsobem:<br \/>\n<strong>ROOTFS_POSTPROCESS_COMMAND += \u201eadd_radio_guisettings; off_kodi_welcome;\u201c <\/strong><\/p>\n<p>Pokud to shrnu, v hlavn\u00edm konfigura\u010dn\u00edm souboru Kodi 17.6 se m\u011bn\u00ed \u201et\u0159i body\u201c<\/p>\n<ul>\n<li> Konfigurace spou\u0161t\u011bn\u00ed posledn\u00edho vybran\u00e9ho TV kan\u00e1lu; <\/li>\n<li> Konfigurace v\u00fdstupu zvuku, v\u017edy p\u0159ipojen pouze analogov\u00fd audio v\u00fdstup; <\/li>\n<li> Vypnut\u00ed automatick\u00fdch aktualizac\u00ed; <\/li>\n<li> <b class=\"spoiler_title\">Pozn\u00e1mka:<\/b>\n<pre><code class=\"html\">    Jedn\u00e1 se o jedinou v\u011bc, se kterou jsem m\u011bl obt\u00ed\u017ee, \n    \u017ee jsem musel p\u0159it\u00e1hnout datab\u00e1zov\u00fd soubor \n    ve form\u00e1tu sqlite =&gt; TV29.db, ve kter\u00e9m je uvedeno \n    aktu\u00e1ln\u011b p\u0159ehr\u00e1van\u00fd TV kan\u00e1l \n    (proto\u017ee ve v\u00fdchoz\u00edm nastaven\u00ed nen\u00ed \u017e\u00e1dn\u00fd kan\u00e1l vybr\u00e1n), \n    a to p\u0159es xml konfiguraci v Kodi neud\u011bl\u00e1te.\n    <\/code><\/pre>\n<\/li>\n<\/ul>\n<p>\npodrobn\u011bj\u0161\u00ed sledov\u00e1n\u00ed krok\u016f pro ka\u017ed\u00fd bod:<\/p>\n<p>1) Klikn\u011bte na ikonu \u201eozuben\u00e9ho kole\u010dka\u201c v lev\u00e9m horn\u00edm rohu obrazovky<br \/>\na vyberte polo\u017eku \u201eNastaven\u00ed PVR a TV\u201c (obr\u00e1zek televize se dv\u011bma ant\u00e9nkami)<br \/>\npot\u00e9 v lev\u00e9 \u010d\u00e1sti nab\u00eddky vyberte polo\u017eku \u201eP\u0159ehr\u00e1v\u00e1n\u00ed\u201c a v centr\u00e1ln\u00ed sekci \u201eObecn\u00e9\u201c<br \/>\nvyberte v rozbalovac\u00edm seznamu \u201ePokra\u010dovat z posledn\u00edho kan\u00e1lu p\u0159i spu\u0161t\u011bn\u00ed\u201c<br \/>\nzvolte nastaven\u00ed \u201eP\u0159edn\u00ed pl\u00e1n\u201c<\/p>\n<p>nebo v\u00edce n\u00e1zorn\u011b:<\/p>\n<pre><code class=\"bash\">      \"Nastaven\u00ed PVR a TV\" \n       =&gt; \"P\u0159ehr\u00e1v\u00e1n\u00ed\" \n       =&gt; \"Pokra\u010dovat z posledn\u00edho kan\u00e1lu p\u0159i spu\u0161t\u011bn\u00ed\" =&gt; \"Na pozad\u00ed\"\n<\/code><\/pre>\n<p>\n2) Klikn\u011bte na ikonu \u201eozuben\u00e9ho kola\u201c v lev\u00e9m horn\u00edm rohu obrazovky a vyberte mo\u017enost:<\/p>\n<pre><code class=\"bash\">       \"Syst\u00e9mov\u00e1 nastaven\u00ed\"  \n       =&gt; \"Dopl\u0148ky\" =&gt; \"Aktualizace\" =&gt; \"Nikdy nekontrolovat aktualizace\"\n<\/code><\/pre>\n<p>\n3) Klikn\u011bte na ikonu \u201eozuben\u00e9ho kola\u201c v lev\u00e9m horn\u00edm rohu obrazovky a vyberte mo\u017enost:<\/p>\n<pre><code class=\"bash\">       \"Syst\u00e9mov\u00e1 nastaven\u00ed\" \n       =&gt; \"Zvuk\" =&gt; \"V\u00fdstupn\u00ed za\u0159\u00edzen\u00ed\" =&gt; \"PI: Analogue\"\n<\/code><\/pre>\n<p><\/p>\n<h5> Jak jsem dva roky \u0161patn\u011b sledoval televizi. <\/h5>\n<p>\nMus\u00edm v\u00e1m p\u0159iznat, \u017ee za dva roky jsem se tak ani nenau\u010dil spr\u00e1vn\u011b sledovat televizi.<\/p>\n<p>Obvykle sleduji televizi v kuchyni. K televizi je p\u0159ipojena deska Raspberry Pi 2B, a na desce jsou ethernetov\u00e9 a HDMI konektory. Nap\u00e1jen\u00ed desky se dod\u00e1v\u00e1 p\u0159es b\u011b\u017en\u00fd USB kabel, kter\u00fd je zapojen do USB portu televize, tedy ve skute\u010dnosti zapnut\u00ed televize pomoc\u00ed standardn\u00edho d\u00e1lkov\u00e9ho ovlada\u010de dod\u00e1v\u00e1 nap\u00e1jen\u00ed i na desku Raspberry Pi, a vypnut\u00ed televize z ovlada\u010de tak\u00e9 okam\u017eit\u011b p\u0159eru\u0161\u00ed nap\u00e1jen\u00ed i z desky Raspberry Pi.<\/p>\n<p>Ano, jsem si pln\u011b v\u011bdom, \u017ee to tak d\u011blat nejde, proto\u017ee ko\u0159enov\u00fd souborov\u00fd syst\u00e9m multimedi\u00e1ln\u00edho centra Kodi (ext3) funguje v b\u011b\u017en\u00e9m re\u017eimu \u010dten\u00ed\/z\u00e1pisu. Ale jsem l\u00edn\u00fd \u010dlov\u011bk, a pro za\u010d\u00e1tek jsem se rozhodl zkontrolovat, jak dlouho takto mohu syst\u00e9m vyp\u00ednat, ne\u017e p\u0159estane zcela nab bootovat, ale bohu\u017eel b\u011bhem dvou let se mi to tak nepoda\u0159ilo (mo\u017en\u00e1 mi jen \u0161t\u011bst\u00ed p\u0159\u00e1lo, nev\u00edm).<\/p>\n<p>A podle m\u00e9ho n\u00e1zoru, pokud tento re\u017eim vyhovoval m\u00e9 televizi, bude vyhovovat i pro \"oby\u010dejnou internetovou r\u00e1dio jednotku\", a proto\u017ee jsem n\u00e1siln\u011b zak\u00e1zal automatick\u00e9 aktualizace plugin\u016f Kodi, pravd\u011bpodobnost selh\u00e1n\u00ed souborov\u00e9ho syst\u00e9mu se je\u0161t\u011b sn\u00ed\u017e\u00ed. Prozat\u00edm s t\u00edm probl\u00e9my nem\u00e1m.<\/p>\n<p><b class=\"spoiler_title\">Pozn\u00e1mka:<\/b> <\/p>\n<pre><code class=\"bash\">    Ale v\u017edy si m\u016f\u017eete pomoc\u00ed jednoho yocto p\u0159\u00edkazu \n    IMAGE_FEATURES += \"read-only-rootfs\"\n\n    a ur\u010dit\u00e9 magie p\u0159epnout v\u00e1\u0161 distribuci do re\u017eimu \"read only\"\n    <\/code><\/pre>\n<p>Distribuce \"internetov\u00e9 r\u00e1dio jednotky\", popsan\u00e1 v \u010dl\u00e1nku, je b\u011b\u017en\u00e1, a co je hlavn\u00ed pro b\u011b\u017enou distribuci \u2014 to je kr\u00e1sn\u00e9 GUI. Podle m\u00e9ho n\u00e1zoru je velmi obt\u00ed\u017en\u00e9 nebo skoro nemo\u017en\u00e9 nau\u010dit b\u011b\u017en\u00e9ho u\u017eivatele ps\u00e1t n\u011bjak\u00e9 nejasn\u00e9 magick\u00e9 p\u0159\u00edkazy do termin\u00e1lu, ani nev\u00ed, co to slovo znamen\u00e1. Ale GUI, to je pros\u00edm.<\/p>\n<p>A to je pravd\u011bpodobn\u011b m\u016fj hlavn\u00ed argument ve prosp\u011bch bezkonsolov\u00e9ho distribuce. Tepl\u00e9, \u00fatuln\u00e9 grafick\u00e9 u\u017eivatelsk\u00e9 rozhran\u00ed Kodi, i kdy\u017e je vlastn\u011b zbyte\u010dn\u00e9, ale existuje.<br \/>\n(Tak\u00e9 jsem \u00fapln\u011b zapomn\u011bl zm\u00ednit, \u017ee Kodi lze ovl\u00e1dat na d\u00e1lku, nap\u0159\u00edklad z telefonu, pokud si nainstalujete aplikaci \u201eYatse\u201c, a pro n\u011bkoho to m\u016f\u017ee b\u00fdt plus.)<\/p>\n<h3> Konfigurace Kodi pro ovl\u00e1d\u00e1n\u00ed my\u0161\u00ed <\/h3>\n<p>\n<b class=\"spoiler_title\">a te\u010f Raketa<\/b><\/p>\n<pre><code class=\"xml\">VolumeUp\n          VolumeDown\n          ChannelDown\n          ChannelDown\n          ChannelUp\n          <!-- konfigura\u010dn\u00ed raketa -->\n<\/code><\/pre>\n<p>Konfigurace p\u0159episuje glob\u00e1ln\u00ed ud\u00e1losti pro n\u00e1sleduj\u00edc\u00ed prvky:<\/p>\n<ul>\n<li> ot\u00e1\u010den\u00ed kole\u010dka my\u0161i dop\u0159edu <\/li>\n<li> ot\u00e1\u010den\u00ed kole\u010dka my\u0161i dozadu <\/li>\n<li> stisknut\u00ed prost\u0159edn\u00edho tla\u010d\u00edtka my\u0161i <\/li>\n<li> zpracov\u00e1n\u00ed dlouh\u00e9ho stisknut\u00ed my\u0161i (3 sekundy a v\u00edce),<br \/>\n0 identifik\u00e1tor prav\u00e9ho tla\u010d\u00edtka, 1 identifik\u00e1tor lev\u00e9ho tla\u010d\u00edtka <\/li>\n<\/ul>\n<p>podrobn\u011bj\u0161\u00ed informace o nastaven\u00ed ud\u00e1lost\u00ed my\u0161i:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/kodi.wiki\/view\/Alternative_keymaps_for_mice\">kodi.wiki\/view\/Alternative_keymaps_for_mice<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/kodi.wiki\/view\/Action_IDs\">kodi.wiki\/view\/Action_IDs<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/kodi.wiki\/view\/Window_IDs\">kodi.wiki\/view\/Window_IDs<\/a><\/noindex><\/p>\n<h5> Co d\u011blat, pokud kabelov\u00e9 p\u0159ipojen\u00ed k v\u00e1m nedorazilo<\/h5>\n<p>\n\u201eAle doma nem\u00e1m \u017e\u00e1dn\u00e9 voln\u00e9 Ethernet porty (nebo jsem \u017e\u00e1dn\u00e9 nikdy nem\u011bl)\u201c \u2014 m\u016f\u017ee vyk\u0159iknout \u010d\u00e1st \u0161\u0165astn\u00fdch majitel\u016f star\u00fdch desek Raspberry Pi 1 (mo\u017en\u00e1 byla deska zakoupena na experimentov\u00e1n\u00ed a tak skon\u010dila zapomenut\u00e1 na sk\u0159\u00edni)<\/p>\n<p>A proto\u017ee deska nem\u00e1 integrovan\u00e9 Wifi, bez Ethernet p\u0159ipojen\u00ed nen\u00ed p\u0159\u00edli\u0161 funk\u010dn\u00ed.<\/p>\n<p>Samoz\u0159ejm\u011b, mo\u017enost vyu\u017eit\u00ed desky Raspberry Pi 1 bez Ethernetu existuje, ale bude to vy\u017eadovat ur\u010dit\u00e9 \u00fasil\u00ed z va\u0161\u00ed strany. Takov\u00e9 v\u011bci obvykle zaj\u00edmaj\u00ed jen v r\u00e1mci u\u010den\u00ed se n\u011b\u010demu nov\u00e9mu, tj. to nen\u00ed u\u017eivatelsky p\u0159\u00edv\u011btiv\u00e1 pr\u00e1ce.<\/p>\n<p>Tak\u017ee se pod\u00edvejme na hypotetickou mo\u017enost vyu\u017eit\u00ed desky bez Ethernetu:<\/p>\n<p>M\u016f\u017eete p\u0159ipojit extern\u00ed USB \u2014 Wifi adapt\u00e9r, vych\u00e1zej\u00edc z toho, <br \/>\n\u017ee adapt\u00e9r by m\u011bl dob\u0159e fungovat pod Linuxem. <\/p>\n<p><b class=\"spoiler_title\">Pozn\u00e1mka:<\/b> <\/p>\n<pre><code class=\"bash\">    Bohu\u017eel \u010d\u00e1st WiFi adapt\u00e9r\u016f nebude fungovat, \n    co\u017e nen\u00ed vlastnost\u00ed distribuce uveden\u00e9 v tomto \u010dl\u00e1nku, \n    ale sp\u00ed\u0161e probl\u00e9m konkr\u00e9tn\u00edch ovlada\u010d\u016f WiFi adapt\u00e9r\u016f v j\u00e1dru Linuxu. \n    Je t\u0159eba konstatovat, \u017ee v sou\u010dasnosti nem\u016f\u017eete jednodu\u0161e \n    j\u00edt do obchodu a koupit jak\u00fdkoli WiFi adapt\u00e9r. M\u011bli byste sp\u00ed\u0161e vybrat WiFi \n    adapt\u00e9r z m\u00e9n\u011b problematick\u00e9ho a dob\u0159e funguj\u00edc\u00edho seznamu pro Linux.\n\n    Zkoumal jsem pouze n\u00e1sleduj\u00edc\u00ed modely:\n    - WiFi adapt\u00e9r na \u010dipov\u00e9 sad\u011b Atheros D-Link DWA-126 802.11n (AR9271)\n    - WiFi adapt\u00e9r NetGear WNDA3200\n    - WiFi adapt\u00e9r NetGear WNA1100\n    - WiFi adapt\u00e9r TP-Link TL-WN722N (AR9271)\n    - WiFi adapt\u00e9r TL-WN322G v3\n    - WiFi adapt\u00e9r TL-WN422G\n    - Wifi adapt\u00e9r Asus USB-N53 \u010dipov\u00e1 sada Ralink RT3572 \n    <\/code><\/pre>\n<p>\nPokud ji\u017e m\u00e1te USB Wifi adapt\u00e9r, m\u016f\u017eete zkontrolovat, jak dob\u0159e funguje pod Linuxem, n\u00e1sleduj\u00edc\u00edm zp\u016fsobem:<\/p>\n<ul>\n<li>Nainstalujte n\u011bjakou b\u011b\u017enou distribuci Linuxu<br \/>\n obecn\u00e9ho ur\u010den\u00ed, nap\u0159\u00edklad \u201eUbuntu Desktop\u201c <\/li>\n<li>Spus\u0165te syst\u00e9m<\/li>\n<li>P\u0159ipojte v\u00e1\u0161 Wifi USB adapt\u00e9r<\/li>\n<li>Spus\u0165te spr\u00e1vce s\u00edt\u011b a pokuste se p\u0159ipojit k va\u0161\u00ed WiFi p\u0159\u00edstupov\u00e9 bodu <\/li>\n<li>Pokud v\u0161e funguje dob\u0159e a va\u0161e internetov\u00e9 p\u0159ipojen\u00ed je stabiln\u00ed, znamen\u00e1 to, \u017ee v\u00e1\u0161 adapt\u00e9r je dob\u0159e podporov\u00e1n a m\u016f\u017eete pokra\u010dovat v pr\u00e1ci na p\u0159ipojen\u00ed tohoto adapt\u00e9ru ve specializovan\u00e9 distribuci a mo\u017en\u00e1 s jin\u00fdmi verzemi j\u00e1dra.<br \/>\n(pokud ne, tak ne, bohu\u017eel \u2014 lep\u0161\u00ed ani nezkou\u0161et) <\/li>\n<\/ul>\n<p>\n<strong> Podpora extern\u00edho Wifi adapt\u00e9ru v \u201eRaspberry PI\u201c <\/strong><\/p>\n<p>Pro spr\u00e1vnou funkci WiFi adapt\u00e9ru v Linuxu pot\u0159ebujeme dv\u011b v\u011bci:<br \/>\n<strong>1)<\/strong> Podpora WiFi adapt\u00e9ru j\u00e1drem Linuxu<br \/>\n<strong>2)<\/strong> Disponov\u00e1n\u00ed j\u00e1drov\u00e9ho modulu pro konkr\u00e9tn\u00ed Wifi adapt\u00e9r v syst\u00e9mu<\/p>\n<p>Vezm\u011bme si nap\u0159\u00edklad adapt\u00e9r TP-Link TL-WN722N. M\u00e1 prost\u011b vynikaj\u00edc\u00ed ant\u00e9nu.<br \/>\nZjist\u00edme \u010dipovou sadu, na kter\u00e9 deska pracuje \u2014 u m\u011b je to \u201eAR9271\u201c. <b class=\"spoiler_title\">pozn\u00e1mka:<\/b> <\/p>\n<pre><code class=\"bash\">    Co je zaj\u00edmav\u00e9, je, \u017ee pro stejn\u00fd model \n    stejn\u00e9ho v\u00fdrobce m\u016f\u017ee \u010dipov\u00e1 sada Wifi li\u0161it. \n    Nap\u0159\u00edklad jsem se setkal s t\u00edm, \u017ee pro TL-WN722N verze 2, \n    se ji\u017e pou\u017e\u00edv\u00e1 jin\u00e1 \u010dipov\u00e1 sada Realtek RTL8188, a ta ji\u017e \n    \u0161patn\u011b fungovala pod Linuxem (v t\u00e9 dob\u011b), bohu\u017eel takov\u00e1 je realita, \n    tj. n\u011bkdy je t\u0159eba tak\u00e9 d\u00e1vat pozor na mal\u00e9 \u010d\u00edslice \n    verze na zadn\u00ed (tmav\u00e9) stran\u011b adapt\u00e9ru.    \n    <\/code><\/pre>\n<p>\nNyn\u00ed najdeme n\u00e1zev parametru v konfiguraci j\u00e1dra, kter\u00fd se vztahuje na ovlada\u010d \u010dipov\u00e9 sady AR9271, je nejlep\u0161\u00ed hledat kombinaci slov \u201eAR9271 cateee.net\u201c<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0kde \u00abcateee.net\u00bb \u2014 skv\u011bl\u00e1 str\u00e1nka s popisem konfigurac\u00ed modul\u016f j\u00e1dra Linux<\/p>\n<p>Hned najdeme n\u00e1zev konfigurace j\u00e1dra \u2014 <strong>CONFIG_ATH9K_HTC<\/strong><br \/>\na n\u00e1zev pot\u0159ebn\u00e9ho modulu j\u00e1dra <strong> ath9k_htc <\/strong><\/p>\n<p>a d\u00e1le sta\u010d\u00ed uv\u00e9st n\u00e1zev pot\u0159ebn\u00e9ho modulu v souboru fragmentu konfigurace <br \/>\nLinux j\u00e1dra =&gt; recipes-kernel\/linux\/files\/rbpi.cfg, p\u0159idejte \u0159\u00e1dek:<br \/>\n<strong> CONFIG_ATH9K_HTC=m <\/strong><\/p>\n<p>T\u00edmto zp\u016fsobem m\u016f\u017eete p\u0159ipojit jak\u00e9koliv dodate\u010dn\u00e9 za\u0159\u00edzen\u00ed k va\u0161emu syst\u00e9mu (pokud je samoz\u0159ejm\u011b podporov\u00e1no v Linuxov\u00e9m j\u00e1d\u0159e)<\/p>\n<h5> Co d\u011blat, pokud jste hacke\u0159i - konstrukt\u00e9\u0159i <\/h5>\n<p>\nA vytv\u00e1\u0159\u00edte \u00fa\u017easn\u00e9 v\u011bci, t\u0159eba jako <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/477440\"> zde <\/a><\/noindex> nebo jste student a sn\u00edte o vytvo\u0159en\u00ed n\u011b\u010deho podobn\u00e9ho. <\/p>\n<p>Pak m\u016f\u017eete vz\u00edt n\u011bjak\u00fd dotykov\u00fd displej pro RPI na aliexpress, tam tak\u00e9 objednat vhodnou akumul\u00e1torovou baterii, p\u0159ipojit to v\u0161e k desce Raspberry Pi 1, 2 nebo 3 (l\u00e9pe k 3, proto\u017ee m\u00e1 zabudovan\u00e9 Wifi), vybrat t\u00e9ma grafick\u00e9ho rozhran\u00ed v Kodi, kter\u00e9 je ur\u010deno pro dotykovou obrazovku a voil\u00e0 =&gt; m\u016f\u017eete m\u00edt jednoduch\u00fd audio p\u0159ehr\u00e1va\u010d. Samoz\u0159ejm\u011b bude dost objemn\u00fd, ale bude v\u00e1\u0161.<\/p>\n<pre><code class=\"bash\">  Pozn\u00e1mka:\n  A abyste sestavili multimedi\u00e1ln\u00ed centrum Kodi pro nejlevn\u011bj\u0161\u00ed desku \n  Raspberry Pi Zero Wifi v yocto, sta\u010d\u00ed zm\u011bnit dva \u0159\u00e1dky:\n\n  konfigura\u010dn\u00ed soubor =&gt; build\/conf\/local.conf\n      MACHINE = 'raspberrypi0-wifi'\n\n  recept pro sestaven\u00ed Kodi =&gt; recipes-mediacentre\/kodi\/kodi_17.bbappend\n      EXTRA_OECONF_append = \"${@bb.utils.contains('MACHINE', \n                            'raspberrypi0-wifi', '${BS_RPI}',  '', d)}\"\n<\/code><\/pre>\n<p><\/p>\n<pre>\n  Pokud v\u00e1m bude reagov\u00e1n\u00ed GUI Kodi 17.6 \n  kv\u016fli jednomu procesorov\u00e9mu j\u00e1dru v Zero p\u0159ipadat \n  z\u00e1hadn\u00e9, m\u016f\u017eete ud\u011blat trik a sestavit star\u0161\u00ed, \n  ale velmi rychlou verzi, nap\u0159\u00edklad Kodi 15.2, ta je v tomto ohledu v\u00edce \n  \"p\u0159\u00e1telsk\u00e1\" (n\u011bkdy star\u0161\u00ed verze v\u0161echno vy\u0159e\u0161\u00ed)\n<\/pre>\n<p>\nBohu\u017eel desku nem\u00e1m, tak\u017ee to nemohu ov\u011b\u0159it, ale podle m\u00fdch pocit\u016f by to m\u011blo fungovat.<\/p>\n<p><b class=\"spoiler_title\">Kr\u00e1tk\u00fd n\u00e1vod na sestaven\u00ed<\/b> <\/p>\n<pre><code class=\"bash\">    1) Nainstalujte z\u00e1vislosti Yocto Project (nap\u0159\u00edklad v Ubuntu): \n    sudo apt-get install -y --no-install-suggests --no-install-recommends \n        gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential \n        chrpath socat cpio python python3 python3-pip python3-pexpect \n        xz-utils debianutils iputils-ping python3-git python3-jinja2 \n        libegl1-mesa libsdl1.2-dev xterm\n\n    2) St\u00e1hn\u011bte a nainstalujte Repo:\n        mkdir ~\/bin\n        curl http:\/\/commondatastorage.googleapis.com\/git-repo-downloads\/repo &gt; ~\/bin\/repo\n        chmod a+x ~\/bin\/repo\n\n    3) Na\u010dt\u011bte projekt z github:\n        PATH=${PATH}:~\/bin\n        mkdir radio\n        cd radio\n        repo init -u https:\/\/github.com\/berserktv\/bs-manifest \n                  -m raspberry\/rocko\/radio-rpi-0.2.8.xml\n        repo sync\n\n    4) Sestavte projekt:\n        .\/shell.sh\n        bitbake berserk-image\n        \n    tot\u00e9\u017e lze tak\u00e9 sestavit pro desky Raspberry Pi 3B Plus, 3B a 2B:\n    repo init -u https:\/\/github.com\/berserktv\/bs-manifest \n              -m raspberry\/rocko\/radio-0.2.8.xml\n    <\/code><\/pre>\n<p><\/p>\n<blockquote><p> podrobn\u011bj\u0161\u00ed pokyny pro sestaven\u00ed <br \/>\n a z\u00e1pis na microSDHC kartu viz. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/467443\/#instruction_koditv\">v p\u0159edchoz\u00edm \u010dl\u00e1nku<\/a><\/noindex>\n <\/p><\/blockquote>\n<h5> P.S. <\/h5>\n<p>\nSamoz\u0159ejm\u011b, \u017ee my\u0161lenka internetov\u00e9ho r\u00e1diov\u00e9ho reproduktoru je typick\u00e1, je v\u0161em zn\u00e1m\u00e1 a na Habr najdete spoustu \u010dl\u00e1nk\u016f na toto t\u00e9ma, nap\u0159\u00edklad <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/475172\">zde<\/a><\/noindex><\/p>\n<p>A je\u0161t\u011b m\u016f\u017eete m\u00edt pocit, \u017ee jsem jen p\u0159izp\u016fsobil po\u017eadavky hotov\u00e9mu \u0159e\u0161en\u00ed. Na to mohu \u0159\u00edct, \u017ee ne, opravdu ne.<\/p>\n<p><b class=\"spoiler_title\">P\u0159\u00edb\u011bh pana Ervi<\/b> <\/p>\n<pre><code class=\"html\">    Chcete-li v\u011b\u0159it, nebo ne, stalo se to takto:\n\n    Na\u0161e kancel\u00e1\u0159 hrani\u010d\u00ed s firmou na v\u00fdrobu r\u016fzn\u00fdch zvukov\u00fdch\n    za\u0159\u00edzen\u00ed, a jednoho dne p\u0159istoupil \u0159editel t\u00e9to firmy, nazv\u011bme ho pan \"Ervi\"\n    k na\u0161emu z\u00e1stupci \u0159editele pobo\u010dky panu \"Arseniovi\"\n    a zeptal se ho, jak slo\u017eit\u00e9 je p\u0159ipojit Raspberry Pi\n    k p\u0159ehr\u00e1v\u00e1n\u00ed zvukov\u00e9ho streamu, tj. deska je p\u0159ipojena k s\u00edti\n    a reproduktor\u016fm, a \"zn\u00ed charakteristick\u00fd zvuk\".\n\n    Po tom pan Arseni p\u0159i\u0161el k z\u00e1stupci m\u00e9ho\n    \u0161\u00e9fa - panu \"Borisovi\" a p\u0159eposlal mu tuto ot\u00e1zku,\n    no a j\u00e1, jako n\u00e1hodn\u00fd pozorovatel, si tuto my\u0161lenku zapamatoval\n    a nazval ji \"\u00dakol t\u0159\u00ed \u0161\u00e9f\u016f\".\n\n    Cht\u011bli jsme to ud\u011blat dob\u0159e,\n    a nakonec to dopadlo tak, jak citace - \"Ale pan Ervi, jak je jeho zvykem, pomohl.\"\n\n    Po n\u011bjak\u00e9 dob\u011b jsem se pana \"Borise\" zeptal\n    na jeho n\u00e1zor ohledn\u011b naps\u00e1n\u00ed kr\u00e1tk\u00e9ho \u010dl\u00e1nku na toto t\u00e9ma\n    na \"Habr\", na co\u017e \"Boris\" odpov\u011bd\u011bl, \u017ee zm\u011bna\n    \"t\u0159\u00ed polo\u017eek menu\" v Kodi, zvl\u00e1\u0161\u0165 nep\u0159in\u00e1\u0161\u00ed \u017e\u00e1dn\u00e9\n    nov\u00e9 informace a nestoj\u00ed za samostatn\u00e9 zm\u00edn\u011bn\u00ed.\n    Samoz\u0159ejm\u011b s n\u00edm zcela souhlas\u00edm a proto mu ne\u0159eknu,\n    \u017ee jsem o tom n\u011bco napsal.\n\n    \u010cl\u00e1nek je naps\u00e1n v\u00fdhradn\u011b pro desku \"Raspberry Pi 1\"\n    zap\u016fj\u010denou od pana \"Borise\" na dobu experimentu,\n    shodou okolnost\u00ed se ve\u0161ker\u00e9 ostatn\u00ed desky \"Raspberry Pi 1\" shoduj\u00ed.\n    <\/code><\/pre>\n<p>A\u0165 m\u00e1te co nejv\u00edce r\u016fzn\u00fdch a dobr\u00fdch sestaven\u00ed, a a\u0165 pro v\u00e1s v tomto roce i b\u00fdval\u00e1 cihla - zp\u00edv\u00e1.<br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/482714\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u0441\u044b\u043b\u043a\u0438: \u0415\u0441\u0442\u044c \u0441\u0442\u0430\u0440\u0430\u044f \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f \u043f\u043b\u0430\u0442\u0430 Raspberry Pi \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u044f; \u041f\u043b\u0430\u0442\u0430 \u043b\u0435\u0436\u0438\u0442 \u043d\u0430 \u0448\u043a\u0430\u0444\u0443 \u043c\u0435\u0440\u0442\u0432\u044b\u043c \u0433\u0440\u0443\u0437\u043e\u043c \u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u2014 \u043f\u043b\u0430\u0442\u0430 \u00ab\u041a\u0438\u0440\u043f\u0438\u0447\u00bb; \u0427\u0442\u043e \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c: \u0412 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044e) \u043f\u043b\u0430\u0442\u0430 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0435\u0442 \u0431\u044b\u0442\u044c \u00ab\u041a\u0438\u0440\u043f\u0438\u0447\u043e\u043c\u00bb, \u0438 \u0432 \u043d\u0435\u0435 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u043b\u0448\u0435\u0431\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0430 \u043f\u0430\u043c\u044f\u0442\u0438; \u041a \u043f\u043b\u0430\u0442\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f Ethernet \u043a\u0430\u0431\u0435\u043b\u044c \u0438 \u0448\u0442\u0435\u043a\u0435\u0440 \u043e\u0442 \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u0431\u044b\u0442\u043e\u0432\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":54775,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-54774","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/prostejshaya-internet-radio-kolonka-kodi-ili-spasenie-malinovogo-kirpicha\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0430\u044f \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0440\u0430\u0434\u0438\u043e \u043a\u043e\u043b\u043e\u043d\u043a\u0430 \u00abKodi\u00bb \u0438\u043b\u0438 \u0441\u043f\u0430\u0441\u0435\u043d\u0438\u0435 \u00ab\u041c\u0430\u043b\u0438\u043d\u043e\u0432\u043e\u0433\u043e\u00bb \u043a\u0438\u0440\u043f\u0438\u0447\u0430 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/prostejshaya-internet-radio-kolonka-kodi-ili-spasenie-malinovogo-kirpicha\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-01-03T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:02:49+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Nejjednodu\u0161\u0161\u00ed internetov\u00fd r\u00e1dio reproduktor \u201eKodi\u201c nebo z\u00e1chrana \u201eMalinov\u00e9ho\u201c ciheln\u00e9ho bloku | ProHoster","description":"Hlavn\u00ed.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/prostejshaya-internet-radio-kolonka-kodi-ili-spasenie-malinovogo-kirpicha","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0430\u044f \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0440\u0430\u0434\u0438\u043e \u043a\u043e\u043b\u043e\u043d\u043a\u0430 \u00abKodi\u00bb \u0438\u043b\u0438 \u0441\u043f\u0430\u0441\u0435\u043d\u0438\u0435 \u00ab\u041c\u0430\u043b\u0438\u043d\u043e\u0432\u043e\u0433\u043e\u00bb \u043a\u0438\u0440\u043f\u0438\u0447\u0430 | ProHoster","og:description":"\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435.","og:url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/prostejshaya-internet-radio-kolonka-kodi-ili-spasenie-malinovogo-kirpicha","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-01-03T21:00:00+00:00","article:modified_time":"2020-02-18T11:02:49+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"54774","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 12:41:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:58:22","updated":"2026-01-24 12:41:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/54774","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=54774"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/54774\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/54775"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=54774"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=54774"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=54774"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}