{"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\/pl\/blog\/administrirovanie\/prostejshaya-internet-radio-kolonka-kodi-ili-spasenie-malinovogo-kirpicha","title":{"rendered":"Najprostszy internetowy g\u0142o\u015bnik radiowy \u201eKodi\u201d lub ratunek dla \u201eMalinowego\u201d ceg\u0142y","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Najprostszy internetowy g\u0142o\u015bnik radiowy \u201eKodi\u201d lub ratunek dla \u201eMalinowego\u201d ceg\u0142y\" src=\"\/wp-content\/uploads\/2020\/01\/c20cd49d9e2ba397946a17ed24c117fd.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h5> G\u0142\u00f3wne za\u0142o\u017cenia: <\/h5>\n<p><\/p>\n<ol>\n<li> Mamy star\u0105, nieu\u017cywan\u0105 p\u0142yt\u0119 Raspberry Pi pierwszej generacji; <\/li>\n<li> P\u0142yta le\u017cy na szafie jako martwy ci\u0119\u017car i nie jest u\u017cywana \u2014 p\u0142yta \u201eCeg\u0142a\u201d; <\/li>\n<\/ol>\n<p><\/p>\n<h5> Czego by\u015bmy chcieli: <\/h5>\n<p><\/p>\n<ol>\n<li> W pewnym momencie (na przyk\u0142ad w zale\u017cno\u015bci od nastroju)<br \/>\np\u0142yta przestaje by\u0107 \u201eCeg\u0142\u0105\u201d i wk\u0142adamy w ni\u0105 magiczn\u0105 kart\u0119 pami\u0119ci; <\/li>\n<li> Do p\u0142yty pod\u0142\u0105czony jest kabel Ethernet i wtyczka od zwyk\u0142ego g\u0142o\u015bnika domowego lub s\u0142uchawek; <\/li>\n<li> Po pod\u0142\u0105czeniu zasilania by\u0142y \u201eCeg\u0142a\u201d \u2014 <strong>\u015bpiewa<\/strong><\/li>\n<\/ol>\n<p><\/p>\n<h5> G\u0142\u00f3wna idea: <\/h5>\n<p><\/p>\n<ol>\n<li> Minimalna liczba ruch\u00f3w do jakiejkolwiek konfiguracji, w idealnym przypadku pod\u0142\u0105czamy tylko kabel \u201eEthernet\u201d, zasilanie i g\u0142o\u015bniki, i wi\u0119cej nic nie robimy, w og\u00f3le <strong>\u201ezupe\u0142nie\u201d;<\/strong><\/li>\n<li> By\u0142y \u201eCeg\u0142a\u201d z pude\u0142ka obs\u0142uguje na przyk\u0142ad 20 stacji radiowych internetowych, prze\u0142\u0105czanie kt\u00f3rych w k\u00f3\u0142ko mo\u017cna zrealizowa\u0107 za pomoc\u0105 klikni\u0119cia k\u00f3\u0142kiem myszy lub na okre\u015blonym pinie GPIO (pod\u0142\u0105czy\u0107 dwa przewody i je po\u0142\u0105czy\u0107 (moje marzenie z dzieci\u0144stwa));<\/li>\n<li> Sterowanie odbywa si\u0119 przez kana\u0142 radiowy, a tym kana\u0142em radiowym mo\u017ce by\u0107 zwyk\u0142a myszka radiowa;<\/li>\n<li> Wzi\u0105\u0107 ju\u017c gotowy system, zbudowa\u0107 dystrybucj\u0119 w \u201eYocto Project\u201d<br \/>\ntj. jak zwykle nic nie b\u0119dziemy robi\u0107, bo wszystko ju\u017c zosta\u0142o zrobione.<br \/>\n(wystarczy tylko umie\u015bci\u0107 zewn\u0119trznego obserwatora po drugiej stronie <strong>\u201eTelewizora\u201d<\/strong>);<\/li>\n<\/ol>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h5>Opis<\/h5>\n<p>\nNajprostszy Internetowy G\u0142o\u015bnik Radiowy \u201eKODI\u201d<br \/>\nZestaw przeznaczony dla starych p\u0142yt Raspberry Pi 1<br \/>\n(kurz\u0105cych si\u0119 gdzie\u015b na szafie, ale kt\u00f3re s\u0105 jeszcze gotowe do pracy)<\/p>\n<p>Domy\u015blnie u\u017cywany jest z listy m3u8 12 internetowych stacji radiowych.<\/p>\n<p>Zak\u0142ada si\u0119, \u017ce p\u0142yta dzia\u0142a bez wyj\u015bcia HDMI, a do jej wy\u0142\u0105czenia wystarczy wyj\u0105\u0107 zasilacz z gniazdka. A jako ultra nowoczesny bezprzewodowy pilot, mo\u017cesz u\u017cy\u0107 swojej super myszki radiowej (lub pod\u0142\u0105czy\u0107 zwyk\u0142\u0105 szaro-czarn\u0105 mysz z kablem).<\/p>\n<p>Po w\u0142\u0105czeniu interfejs sieciowy domy\u015blnie konfigurowany jest przez protok\u00f3\u0142 DHCP i odtwarzana jest ostatnia zapami\u0119tana stacja radiowa z listy, a regulacja g\u0142o\u015bno\u015bci odbywa si\u0119 za pomoc\u0105 zwyk\u0142ej myszy: <br \/>\n(nadaj swojej myszy w ko\u0144cu status \u201eszefowej sterowania\u201d i gratuluj jej, zas\u0142u\u017cy\u0142a na to)<\/p>\n<pre><code class=\"html\">  k\u00f3\u0142ko do przodu - zwi\u0119ksz g\u0142o\u015bno\u015b\u0107\n k\u00f3\u0142ko do ty\u0142u - zmniejsz g\u0142o\u015bno\u015b\u0107\n d\u0142ugie naci\u015bni\u0119cie (3 sekundy i wi\u0119cej) prawego przycisku myszy - wyb\u00f3r nast\u0119pnej stacji radiowej\n d\u0142ugie naci\u015bni\u0119cie (3 sekundy i wi\u0119cej) lewego przycisku myszy - wyb\u00f3r poprzedniej stacji radiowej\n<\/code><\/pre>\n<p><\/p>\n<blockquote><p>Aby doda\u0107 swoje w\u0142asne listy internetowych stacji radiowych <br \/>\nzawsze mo\u017cesz pod\u0142\u0105czy\u0107 kabel HDMI do telewizora <br \/>\ni skorzysta\u0107 z domowego interfejsu graficznego Kodi 17.6<br \/>\n(wy\u0142\u0105cz p\u0142yt\u0119, pod\u0142\u0105cz HDMI i w\u0142\u0105cz zasilacz)<\/p>\n<p>G\u0142\u00f3wne menu Kodi =&gt; \u201eDodatki\u201d =&gt; \u201eMoje dodatki\u201d <br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0=&gt; \u201eKlienci PVR\u201d =&gt; \u201ePVR IPTV Simple Client\u201d\n<\/p><\/blockquote>\n<p><\/p>\n<h5> Pocz\u0105tkowa implementacja <\/h5>\n<p> (mo\u017cliwa)<br \/>\nPocz\u0105tkowo, gdy postanowi\u0142em stworzy\u0107 \u201eInternetow\u0105 Kolumn\u0119 Radiow\u0105\u201d, planowa\u0142em nast\u0119puj\u0105ce:<\/p>\n<ul>\n<li> Minimalistyczny rozk\u0142ad konsolowy w Yocto Project; <\/li>\n<li> Strumie\u0144 audio odtwarzany przez GStreamer; <\/li>\n<li> Interfejs sieciowy konfigurowany przez DHCP; <\/li>\n<\/ul>\n<p>\nA takie rozwi\u0105zanie ma szereg zalet:<\/p>\n<ol>\n<li> Wystarczaj\u0105co szybkie (czas do osi\u0105gni\u0119cia stanu roboczego od momentu zasilania 30-40 sek);<\/li>\n<li> Wystarczaj\u0105co niezawodne (mniej program\u00f3w, mniej punkt\u00f3w awarii);<\/li>\n<li> Rozk\u0142ad konsolowy jest znacznie \u0142atwiejszy do przekszta\u0142cenia w tryb tylko do odczytu<br \/>\n tzn. programy nic nie zapisuj\u0105 na g\u0142\u00f3wnym systemie plik\u00f3w<br \/>\n (a system plik\u00f3w na no\u015bniku SDHC jest moim zdaniem pierwszym kandydatem do awarii);<\/li>\n<\/ol>\n<p>\n<b class=\"spoiler_title\">Uwaga:<\/b> <\/p>\n<pre><code class=\"bash\">    W Yocto mo\u017cna stosunkowo prosto przeprowadzi\u0107 konwersj\u0119 systemu plik\u00f3w rootfs w tryb tylko do odczytu, zmieniaj\u0105c jeden parametr podczas budowy. \n\nZ pude\u0142ka Yocto oferuje dwa warianty: \n1) Praca systemu plik\u00f3w w standardowym trybie odczyt\/zapisywanie \n(tak dzia\u0142aj\u0105 wszystkie dystrybucje og\u00f3lnego przeznaczenia, na przyk\u0142ad Ubuntu) \n2) Praca systemu plik\u00f3w w trybie tylko do odczytu \n(tak dzia\u0142aj\u0105 specjalistyczne dystrybucje, na przyk\u0142ad w routerach) \n\nW trybie tylko do odczytu wszystkie katalogi, do kt\u00f3rych zwykle \nzapisuje si\u0119 dane aplikacji i us\u0142ug podczas pracy, s\u0105 montowane \nw pami\u0119ci operacyjnej (na przyk\u0142ad katalog \\\/var\\\/log itp.) \nDane te s\u0105 aktualne tylko w trakcie bie\u017c\u0105cej sesji pracy i po \nwy\u0142\u0105czeniu zasilania dane s\u0105 tracone. \n\nJe\u015bli w projekcie Yocto podczas budowy wska\u017cesz u\u017cycie \"read only\", \npo budowie Twoja dystrybucja b\u0119dzie skonfigurowana w trybie tylko do odczytu, \nmo\u017cesz jednak zawsze doda\u0107 mo\u017cliwo\u015b\u0107 dynamicznej konwersji \nz \"read only\" na \"read\/write\", ale to ju\u017c zupe\u0142nie inna historia ...\n    <\/code><\/pre>\n<p>\nI jedna g\u0142\u00f3wna wada:<\/p>\n<p>\u201eMusz\u0119 to zrobi\u0107\u201d to znaczy, \u017ce musz\u0119 po\u015bwi\u0119ci\u0107 N ilo\u015b\u0107 wieczor\u00f3w <br \/>\n(zwykle po pracy, a to jest najbardziej nieefektywny czas, wtedy m\u00f3zg ju\u017c nie my\u015bli, zwykle \u015bpi)<\/p>\n<p>A poza tym, m\u00f3j poprzedni artyku\u0142 na Habra by\u0142 o centrum multimedialnym <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/467443\">Kodi i Yocto<\/a><\/noindex> projekt<br \/>\ni mo\u017cliwo\u015b\u0107 kontynuacji w tym samym duchu przezwyci\u0119\u017cy\u0142a m\u00f3j badawczy zapa\u0142. O tym w nast\u0119pnej rozdziale.<\/p>\n<h5> Przemiana Kodi w internetowy g\u0142o\u015bnik radiowy <\/h5>\n<p>\nAby doda\u0107 po\u017c\u0105dan\u0105 mi funkcjonalno\u015b\u0107, dodam jeszcze jedn\u0105 metod\u0119 do przepisu budowy dystrybucji opisanego w poprzedniej <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/467443#distrib_recipe_koditv\"> artyku\u0142 <\/a><\/noindex> zobacz plik berserk-image.bb <\/p>\n<pre><code class=\"bash\">GUI_SETTINGS = \"home\/root\/.kodi\/userdata\/guisettings.xml\"\n\n# konfiguracja uruchamiania ostatnio wybranego kana\u0142u TV (1-t\u0142o 2-przedni plan)\nF1_LINE = \"0\"\nR1_LINE = \"1\"\n# konfiguracja wyj\u015bcia d\u017awi\u0119ku, zawsze pod\u0142\u0105czony tylko analogowy wyj\u015bcie audio\nF2_LINE = \"PI:HDMI\"\nR2_LINE = \"PI:Analogue\"\n# poniewa\u017c HDMI domy\u015blnie nie jest u\u017cywane, dezaktywuj\u0119 automatyczne aktualizacje\n# bo mo\u017ce si\u0119 zdarzy\u0107, \u017ce zasilanie by\u0142o wy\u0142\u0105czone, a dane nie zosta\u0142y zapisane\nF3_LINE = \"0\"\nR3_LINE = \"2\"\n\n\n# metoda odpowiada za dodawanie konfiguracji:\n# kt\u00f3ra przekszta\u0142ca \"Inteligentny telewizor\" w \"zwyk\u0142\u0105 kolumn\u0119 radiow\u0105 Internetu\"\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# poniewa\u017c wyj\u015bcie HDMI mo\u017ce nie by\u0107 u\u017cywane,\n# konieczne jest wy\u0142\u0105czenie \"powitania startowego\"\noff_kodi_welcome() {\n    sed -i \"s|${FIND_STR}|#&amp;|\" ${IMAGE_ROOTFS}\/${SCRIPT_FIRST_RUN}\n}\n<\/code><\/pre>\n<p>\nMetody s\u0105 przeznaczone do modyfikacji systemu plik\u00f3w root przed utworzeniem obrazu dystrybucji w postaci jednego pliku raw, kt\u00f3ry jest zapisywany na karcie pami\u0119ci za pomoc\u0105 polecenia <strong> dd <\/strong><\/p>\n<p>Robi si\u0119 to w ten spos\u00f3b:<br \/>\n<strong>ROOTFS_POSTPROCESS_COMMAND += \u201eadd_radio_guisettings; off_kodi_welcome;\u201d <\/strong><\/p>\n<p>W skr\u00f3cie, w g\u0142\u00f3wnym pliku konfiguracyjnym Kodi 17.6 zmienia si\u0119 \u201etrzy elementy\u201d<\/p>\n<ul>\n<li> Konfiguracja uruchamiania ostatnio wybranego kana\u0142u TV; <\/li>\n<li> Konfiguracja wyj\u015bcia d\u017awi\u0119ku, zawsze pod\u0142\u0105czony tylko analogowy wyj\u015bcie audio; <\/li>\n<li> Wy\u0142\u0105czenie automatycznych aktualizacji; <\/li>\n<li> <b class=\"spoiler_title\">Uwaga:<\/b>\n<pre><code class=\"html\">    Jedyna rzecz, z kt\u00f3r\u0105 mia\u0142em trudno\u015bci,\n    to to, \u017ce musia\u0142em tak\u017ce wci\u0105gn\u0105\u0107 plik bazy danych\n    w formacie sqlite =&gt; TV29.db, w kt\u00f3rym wskazuje si\u0119\n    aktualny odtwarzany kana\u0142 TV\n    (poniewa\u017c domy\u015blnie \u017caden z kana\u0142\u00f3w nie by\u0142 wybrany),\n    a przez konfiguracj\u0119 xml w Kodi tego nie da si\u0119 zrobi\u0107.\n    <\/code><\/pre>\n<\/li>\n<\/ul>\n<p>\nW bardziej szczeg\u00f3\u0142owy spos\u00f3b sekwencja dzia\u0142a\u0144 dla ka\u017cdego punktu:<\/p>\n<p>1) Naci\u015bnij ikon\u0119 \u201ez\u0119batki\u201d w lewym g\u00f3rnym rogu ekranu<br \/>\ni wybierz punkt \u201eUstawienia PVR i TV\u201d (obraz telewizora z dwoma antenkami)<br \/>\nnast\u0119pnie w lewej cz\u0119\u015bci menu wybierz punkt \u201eOdtwarzanie\u201d, a w centralnej sekcji \u201eOg\u00f3lne\u201d<br \/>\nwska\u017a w rozwijanej li\u015bcie \u201eKontynuuj od ostatniego kana\u0142u przy uruchomieniu\u201d<br \/>\nwybierz ustawienie \u201ePrzedni plan\u201d<\/p>\n<p>lub bardziej zrozumiale:<\/p>\n<pre><code class=\"bash\">      \"Ustawienia PVR i TV\" \n       =&gt; \"Odtwarzanie\" \n       =&gt; \"Kontynuuj z ostatniego kana\u0142u przy uruchomieniu\" =&gt; \"Na pierwszym planie\"\n<\/code><\/pre>\n<p>\n2) Kliknij ikon\u0119 \u201ez\u0119batki\u201d w lewym g\u00f3rnym rogu ekranu i wybierz opcj\u0119:<\/p>\n<pre><code class=\"bash\">       \"Ustawienia systemowe\"  \n       =&gt; \"Rozszerzenia\" =&gt; \"Aktualizacje\" =&gt; \"Nigdy nie sprawdzaj aktualizacji\"\n<\/code><\/pre>\n<p>\n3) Kliknij ikon\u0119 \u201ez\u0119batki\u201d w lewym g\u00f3rnym rogu ekranu i wybierz opcj\u0119:<\/p>\n<pre><code class=\"bash\">       \"Ustawienia systemowe\" \n       =&gt; \"Audio\" =&gt; \"Urz\u0105dzenie wyj\u015bciowe d\u017awi\u0119ku\" =&gt; \"PI: Analogue\"\n<\/code><\/pre>\n<p><\/p>\n<h5> Jak przez dwa lata \u017ale ogl\u0105da\u0142em telewizj\u0119. <\/h5>\n<p>\nMusz\u0119 przyzna\u0107, \u017ce przez dwa lata nie nauczy\u0142em si\u0119 w\u0142a\u015bciwie ogl\u0105da\u0107 telewizji.<\/p>\n<p>Zwykle ogl\u0105dam telewizj\u0119 w kuchni. Do telewizora pod\u0142\u0105czona jest p\u0142ytka Raspberry Pi 2B, a do p\u0142ytki z\u0142\u0105cza Ethernet i HDMI. Zasilanie p\u0142ytki jest dostarczane przez zwyk\u0142y kabel USB, kt\u00f3ry jest pod\u0142\u0105czony do portu USB telewizora, wi\u0119c w zasadzie w\u0142\u0105czenie telewizora przy pomocy pilota zdalnego sterowania, zasila r\u00f3wnie\u017c p\u0142ytk\u0119 Raspberry Pi, a wy\u0142\u0105czenie telewizora z pilota, r\u00f3wnie\u017c natychmiast wy\u0142\u0105cza zasilanie z p\u0142ytki Raspberry Pi.<\/p>\n<p>Tak, doskonale zdaj\u0119 sobie spraw\u0119, \u017ce tak nie powinno si\u0119 robi\u0107, poniewa\u017c g\u0142\u00f3wny system plik\u00f3w centrum multimedialnego Kodi (ext3) dzia\u0142a u mnie w zwyk\u0142ym trybie odczytu\/zapisu. Ale jestem leniwym cz\u0142owiekiem, wi\u0119c na pocz\u0105tku postanowi\u0142em sprawdzi\u0107, jak d\u0142ugo mo\u017cna wy\u0142\u0105cza\u0107 system, zanim ca\u0142kowicie przestanie si\u0119 \u0142adowa\u0107, ale niestety przez dwa lata nie uda\u0142o mi si\u0119 tego zrobi\u0107 (mo\u017ce po prostu mia\u0142em szcz\u0119\u015bcie, nie wiem).<\/p>\n<p>Moim zdaniem, je\u015bli ten tryb dzia\u0142a\u0142 z moim telewizorem, to r\u00f3wnie\u017c b\u0119dzie odpowiedni dla 'zwyk\u0142ej kolumny internetowej', a poniewa\u017c wymusi\u0142em wy\u0142\u0105czenie automatycznych aktualizacji wtyczek Kodi, prawdopodobie\u0144stwo awarii systemu plik\u00f3w znacznie si\u0119 zmniejszy. Na razie nie widz\u0119 z tym problem\u00f3w.<\/p>\n<p><b class=\"spoiler_title\">Uwaga:<\/b> <\/p>\n<pre><code class=\"bash\">    Jednak zawsze, je\u015bli masz ochot\u0119, mo\u017cesz za pomoc\u0105 jednej komendy yocto \n    IMAGE_FEATURES += \"read-only-rootfs\"\n\n    i pewnej magii prze\u0142\u0105czy\u0107 sw\u00f3j dystrybucyjny system w tryb \"tylko do odczytu\".\n    <\/code><\/pre>\n<p>Dystrybucja 'kolumny internetowej' opisana w artykule jest u\u017cytkowa, a co najwa\u017cniejsze dla dystrybucji u\u017cytkowej \u2014 to pi\u0119kny interfejs graficzny. Uwa\u017cam, \u017ce bardzo trudno lub prawie niemo\u017cliwe jest nauczenie zwyk\u0142ego u\u017cytkownika wpisywania jakichkolwiek niezrozumia\u0142ych magicznych komend w konsoli, nawet nie zna on tego s\u0142owa. A oto interfejs graficzny, prosz\u0119 bardzo.<\/p>\n<p>I to jest chyba m\u00f3j g\u0142\u00f3wny argument na rzecz niekonsolowej dystrybucji. Ciep\u0142y, przytulny interfejs graficzny u\u017cytkownika Kodi, kt\u00f3ry mo\u017ce nie jest szczeg\u00f3lnie potrzebny, ale jednak istnieje.<br \/>\n(Jeszcze zapomnia\u0142em wspomnie\u0107, \u017ce Kodi mo\u017cna zdalnie sterowa\u0107, na przyk\u0142ad za pomoc\u0105 smartfona, instaluj\u0105c aplikacj\u0119 \u201eYatse\u201d, co dla niekt\u00f3rych mo\u017ce by\u0107 plusem)<\/p>\n<h3> Konfiguracja Kodi do sterowania mysz\u0105 <\/h3>\n<p>\n<b class=\"spoiler_title\">a teraz Rakieta<\/b><\/p>\n<pre><code class=\"xml\">VolumeUp\n          VolumeDown\n          ChannelDown\n          ChannelDown\n          ChannelUp\n          <!-- konfiguracja rakiety -->\n<\/code><\/pre>\n<p>Konfiguracja nadpisuje og\u00f3lne (globalne) zdarzenia dla nast\u0119puj\u0105cych element\u00f3w:<\/p>\n<ul>\n<li> przewijanie ko\u0142a myszki do przodu <\/li>\n<li> przewijanie ko\u0142a myszki do ty\u0142u <\/li>\n<li> naci\u015bni\u0119cie przycisku \u015brodkowego myszki <\/li>\n<li> przetwarzanie d\u0142ugiego naci\u015bni\u0119cia myszki (3 sekundy i d\u0142u\u017cej),<br \/>\n0 identyfikator prawego przycisku, 1 identyfikator lewego przycisku <\/li>\n<\/ul>\n<p>bardziej szczeg\u00f3\u0142owe informacje na temat konfiguracji zdarze\u0144 myszki:<\/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 zrobi\u0107, je\u015bli system kablowy nie dotar\u0142 do Ciebie<\/h5>\n<p>\n\u201eAle nie mam wolnych port\u00f3w Ethernet (albo nigdy ich nie mia\u0142em)\u201d \u2014 mog\u0105 zawo\u0142a\u0107 niekt\u00f3rzy szcz\u0119\u015bliwi posiadacze starych p\u0142yt Raspberry Pi 1 (mo\u017cliwe, \u017ce p\u0142yta zosta\u0142a kupiona do bada\u0144 i tak sobie le\u017ca\u0142a na p\u00f3\u0142ce)<\/p>\n<p>A poniewa\u017c na p\u0142ycie nie ma wbudowanego Wifi, to bez pod\u0142\u0105czenia Ethernet nie jest ona zbyt funkcjonalna.<\/p>\n<p>Oczywi\u015bcie istnieje mo\u017cliwo\u015b\u0107 u\u017cycia p\u0142yty Raspberry Pi 1 bez Ethernet, ale wymaga to od Ciebie pewnych wysi\u0142k\u00f3w. Zwykle tego rodzaju rzeczy ciekawi\u0105 tylko w kontek\u015bcie nauki czego\u015b nowego, tzn. to nie jest zaj\u0119cie dla u\u017cytkownika.<\/p>\n<p>Zatem rozwa\u017cmy hipotetyczny przypadek u\u017cycia p\u0142yty bez Ethernet:<\/p>\n<p>Mo\u017cna pod\u0142\u0105czy\u0107 zewn\u0119trzny adapter USB \u2014 Wifi, kieruj\u0105c si\u0119 tym za\u0142o\u017ceniem, <br \/>\n\u017ce adapter musi dobrze dzia\u0142a\u0107 pod Linuksem <\/p>\n<p><b class=\"spoiler_title\">Uwaga:<\/b> <\/p>\n<pre><code class=\"bash\">    Niestety, niekt\u00f3re z adapter\u00f3w WiFi mog\u0105 nie dzia\u0142a\u0107, \n    to nie jest problem konkretnej dystrybucji opisywanej w tym artykule, \n    ale raczej kwestia specyficznych sterownik\u00f3w adapter\u00f3w WiFi w j\u0105drze Linux. \n    Mo\u017cna stwierdzi\u0107, \u017ce obecnie nie mo\u017cesz po prostu \n    p\u00f3j\u015b\u0107 do sklepu i kupi\u0107 dowolnego adaptera WiFi. Lepiej, je\u015bli wybierzesz adapter WiFi \n    z listy mniej problematycznych i dobrze dzia\u0142aj\u0105cych pod Linux.\n\n    Sprawdza\u0142em tylko nast\u0119puj\u0105ce modele:\n    - Adapter WiFi z chipem Atheros D-Link DWA-126 802.11n (AR9271)\n    - Adapter WiFi NetGear WNDA3200\n    - Adapter WiFi NetGear WNA1100\n    - Adapter WiFi TP-Link TL-WN722N (AR9271)\n    - Adapter WiFi TL-WN322G v3\n    - Adapter WiFi TL-WN422G\n    - Adapter Wifi Asus USB-N53 chipset Ralink RT3572 \n    <\/code><\/pre>\n<p>\nJe\u015bli masz ju\u017c adapter USB WiFi, mo\u017cesz sprawdzi\u0107, jak dobrze dzia\u0142a pod Linux, w nast\u0119puj\u0105cy spos\u00f3b:<\/p>\n<ul>\n<li>Zainstaluj jak\u0105\u015b powszechnie u\u017cywan\u0105 dystrybucj\u0119 Linuxa<br \/>\n og\u00f3lnego przeznaczenia, na przyk\u0142ad \u201eUbuntu Desktop\u201d <\/li>\n<li>Uruchom system<\/li>\n<li>Pod\u0142\u0105cz sw\u00f3j adapter USB WiFi<\/li>\n<li>Uruchom mened\u017cera sieci i spr\u00f3buj po\u0142\u0105czy\u0107 si\u0119 z punktem dost\u0119powym WiFi <\/li>\n<li>Je\u015bli wszystko dzia\u0142a dobrze i Twoje po\u0142\u0105czenie internetowe jest stabilne, oznacza to, \u017ce Tw\u00f3j adapter jest dobrze wspierany i mo\u017cesz kontynuowa\u0107 prac\u0119 nad pod\u0142\u0105czeniem tego adaptera w specjalistycznej dystrybucji, by\u0107 mo\u017ce z innymi wersjami j\u0105dra.<br \/>\n(je\u015bli nie, to niestety \u2014 lepiej nawet nie pr\u00f3bowa\u0107) <\/li>\n<\/ul>\n<p>\n<strong> Wsparcie dla zewn\u0119trznego adaptera WiFi w \u201eRaspberry PI\u201d <\/strong><\/p>\n<p>Aby poprawnie dzia\u0142a\u0142 adapter WiFi w Linuxie, potrzebujemy dw\u00f3ch rzeczy:<br \/>\n<strong>1)<\/strong> Wsparcie j\u0105dra Linux dla konkretnego adaptera WiFi<br \/>\n<strong>2)<\/strong> Obecno\u015b\u0107 w systemie modu\u0142u j\u0105dra dla konkretnego adaptera WiFi<\/p>\n<p>We\u017amy na przyk\u0142ad adapter TP-Link TL-WN722N. Ma po prostu wspania\u0142\u0105 antenk\u0119.<br \/>\nZnajdziemy chipset, na kt\u00f3rym dzia\u0142a p\u0142yta \u2014 u mnie jest to \u201eAR9271\u201d, <b class=\"spoiler_title\">uwaga:<\/b> <\/p>\n<pre><code class=\"bash\">    Co ciekawe, dla jednego i tego samego modelu \n    tego samego producenta, chipset WiFi mo\u017ce si\u0119 r\u00f3\u017cni\u0107. \n    Na przyk\u0142ad spotka\u0142em si\u0119 z tym, \u017ce dla TL-WN722N wersja 2, \n    u\u017cywany jest ju\u017c inny chipset Realtek RTL8188, a ten ju\u017c \n    s\u0142abo dzia\u0142a\u0142 pod Linux (w tamtym czasie), niestety, taka jest rzeczywisto\u015b\u0107, \n    tzn. czasami trzeba r\u00f3wnie\u017c zwr\u00f3ci\u0107 uwag\u0119 na ma\u0142e numery \n    wersji po stronie odwrotnej (ciemnej) adaptera.    \n    <\/code><\/pre>\n<p>\nTeraz znajdziemy nazw\u0119 parametru w konfiguracji j\u0105dra odpowiedzialnego za sterownik chipsetu AR9271, najlepiej poszuka\u0107 kombinacji s\u0142\u00f3w \u201eAR9271 cateee.net\u201d<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0gdzie \u00abcateee.net\u00bb \u2014 \u015bwietna strona z opisem konfiguracji modu\u0142\u00f3w j\u0105dra Linux<\/p>\n<p>Bezpo\u015brednio znajdujemy nazw\u0119 konfiguracji j\u0105dra \u2014 <strong>CONFIG_ATH9K_HTC<\/strong><br \/>\ni nazw\u0119 potrzebnego nam modu\u0142u j\u0105dra <strong> ath9k_htc <\/strong><\/p>\n<p>a nast\u0119pnie wystarczy wskaza\u0107 nazw\u0119 potrzebnego modu\u0142u w pliku fragmentu konfiguracji <br \/>\nj\u0105dra Linux =&gt; recipes-kernel\/linux\/files\/rbpi.cfg, dodaj lini\u0119:<br \/>\n<strong> CONFIG_ATH9K_HTC=m <\/strong><\/p>\n<p>W ten spos\u00f3b mo\u017cesz pod\u0142\u0105czy\u0107 dowolne dodatkowe urz\u0105dzenie do swojego systemu (o ile oczywi\u015bcie jest ju\u017c wspierane w j\u0105dra Linux)<\/p>\n<h5> Co robi\u0107, je\u015bli jeste\u015b hobbyst\u0105 \u2014 konstruktorem <\/h5>\n<p>\nI tworzysz \u015bwietne rzeczy, na przyk\u0142ad takie jak <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/477440\"> tutaj <\/a><\/noindex> lub jeste\u015b studentem i marzysz o zrobieniu czego\u015b podobnego. <\/p>\n<p>Mo\u017cesz na przyk\u0142ad kupi\u0107 jaki\u015b ekran dotykowy dla RPI na aliexpress, zam\u00f3wi\u0107 odpowiedni\u0105 bateri\u0119, pod\u0142\u0105czy\u0107 to wszystko do p\u0142ytki Raspberry Pi 1, 2 lub 3 (lepiej 3, poniewa\u017c ma wbudowane WiFi), wybra\u0107 motyw interfejsu graficznego w Kodi, kt\u00f3ry jest przystosowany do ekranu dotykowego i voila =&gt; mo\u017cesz stworzy\u0107 prosty odtwarzacz audio. Oczywi\u015bcie b\u0119dzie do\u015b\u0107 du\u017cy, ale b\u0119dzie tw\u00f3j.<\/p>\n<pre><code class=\"bash\">  Uwaga:\n  Aby zbudowa\u0107 centrum multimedialne Kodi dla najta\u0144szej p\u0142ytki \n  Raspberry Pi Zero Wifi w yocto, wystarczy zmieni\u0107 dwie linie:\n\n  plik konfiguracyjny =&gt; build\/conf\/local.conf\n      MACHINE = 'raspberrypi0-wifi'\n\n  przepis na zbudowanie 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  Je\u015bli responsywno\u015b\u0107 GUI Kodi 17.6 \n  z powodu jednego rdzenia procesora w Zero wydaje ci si\u0119 \n  tajemnicza, mo\u017cesz zastosowa\u0107 sprytne rozwi\u0105zanie i zbudowa\u0107 starsz\u0105, \n  ale bardzo szybk\u0105 wersj\u0119, na przyk\u0142ad Kodi 15.2, kt\u00f3ra w tym przypadku jest bardziej \n  \"przyjazna\" (czasami stare rozwi\u0105zania rozwi\u0105zuj\u0105 wszystko)\n<\/pre>\n<p>\nNiestety nie mam p\u0142ytki, wi\u0119c nie mog\u0119 tego sprawdzi\u0107, ale z moich odczu\u0107 powinno to dzia\u0142a\u0107.<\/p>\n<p><b class=\"spoiler_title\">Kr\u00f3tka instrukcja dotycz\u0105ca budowy<\/b> <\/p>\n<pre><code class=\"bash\">    1) Zainstaluj zale\u017cno\u015bci Yocto Project (np. w 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) Pobierz i zainstaluj 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) Pobierz 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) Zbuduj projekt:\n        .\/shell.sh\n        bitbake berserk-image\n        \n    mo\u017cna r\u00f3wnie\u017c zbudowa\u0107 to samo dla p\u0142yt Raspberry Pi 3B Plus, 3B i 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> szczeg\u00f3\u0142ow\u0105 instrukcj\u0119 budowy <br \/>\n i nagrywania na kart\u0119 microSDHC prosz\u0119 zobaczy\u0107 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/467443\/#instruction_koditv\">w poprzednim artykule<\/a><\/noindex>\n <\/p><\/blockquote>\n<h5> Postscriptum <\/h5>\n<p>\nOczywi\u015bcie pomys\u0142 internetowej kolumny radiowej jest znany, znajdziesz wiele artyku\u0142\u00f3w na ten temat na hucie, na przyk\u0142ad <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/475172\">tutaj<\/a><\/noindex><\/p>\n<p>I jeszcze mo\u017cesz pomy\u015ble\u0107, \u017ce po prostu dostosowa\u0142em wymagania do gotowego rozwi\u0105zania. Na to mog\u0119 odpowiedzie\u0107, \u017ce nie, naprawd\u0119.<\/p>\n<p><b class=\"spoiler_title\">Historia pana Erwi<\/b> <\/p>\n<pre><code class=\"html\">    Chc\u0105c wierzy\u0107 lub nie, sprawa wygl\u0105da\u0142a tak:\n\n    Nasze biuro graniczy z firm\u0105 produkuj\u0105c\u0105 r\u00f3\u017cne urz\u0105dzenia d\u017awi\u0119kowe, a pewnego dnia dyrektor tej firmy, nazwijmy go panem \"Ervi\", podszed\u0142 do naszego zast\u0119pcy dyrektora oddzia\u0142u pana \"Arseniusza\" i zapyta\u0142 go, jak trudne jest pod\u0142\u0105czenie odtwarzania strumienia d\u017awi\u0119ku do p\u0142ytki Raspberry Pi, tzn. p\u0142ytka jest pod\u0142\u0105czona do sieci i g\u0142o\u015bnik\u00f3w, i \"s\u0142ycha\u0107 charakterystyczny d\u017awi\u0119k\".\n\n    Po tym pan Arseniusz podszed\u0142 do zast\u0119pcy mojego szefa - pana \"Borysa\" i przekaza\u0142 mu pytanie, a ja, jako przypadkowy obserwator, zapami\u0119ta\u0142em ten pomys\u0142 i nazwa\u0142em go \"Zadaniem trzech szef\u00f3w\".\n\n    W skr\u00f3cie, chcieli dobrze, a wysz\u0142o, cytat - \"Ale pan Ervi, jak zawsze, pom\u00f3g\u0142.\"\n\n    Po pewnym czasie zapyta\u0142em pana \"Borysa\" o jego opini\u0119 na temat napisania kr\u00f3tkiego artyku\u0142u na ten temat na \"Habra\", na co \"Borys\" odpowiedzia\u0142, \u017ce zmiana \"trzech pozycji w menu\" w Kodi szczeg\u00f3lnie nie wnosi \u017cadnych nowych informacji i nie zas\u0142uguje na osobne wspomnienie. Oczywi\u015bcie ca\u0142kowicie si\u0119 z nim zgadzam i dlatego nie powiem mu, \u017ce co\u015b w tej sprawie napisa\u0142em.\n\n    Artyku\u0142 jest napisany wy\u0142\u0105cznie dla p\u0142ytki \"Raspberry Pi 1\" po\u017cyczonej od pana \"Borysa\" na czas eksperymentu, a podobie\u0144stwa z innymi p\u0142ytkami \"Raspberry Pi 1\" s\u0105 przypadkowe.\n    <\/code><\/pre>\n<p>\u017byczymy Wam wielu udanych i r\u00f3\u017cnorodnych projekt\u00f3w, a niech nawet zesz\u0142oroczny ceg\u0142a - dla Was w tym roku \u015bpiewa.<br \/>\n<br \/>\u0179r\u00f3d\u0142o: <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.1.1 - 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\/pl\/blog\/administrirovanie\/prostejshaya-internet-radio-kolonka-kodi-ili-spasenie-malinovogo-kirpicha\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\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\/pl\/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\udd47Najprostsza internetowa kolumna radiowa \u201eKodi\u201d lub ratunek dla \u201eMalinowego\u201d ceg\u0142y | ProHoster","description":"G\u0142\u00f3wne.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/prostejshaya-internet-radio-kolonka-kodi-ili-spasenie-malinovogo-kirpicha","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","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\/pl\/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\/pl\/wp-json\/wp\/v2\/posts\/54774","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=54774"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/54774\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/54775"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=54774"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=54774"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=54774"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}