Einfaldasti netútvarpsdálkurinn „Kodi“ eða hjálpræði „hindberja“ múrsteinsins

Einfaldasti netútvarpsdálkurinn „Kodi“ eða hjálpræði „hindberja“ múrsteinsins

Grunnskilyrði:

  1. Það er gamalt ónotað fyrstu kynslóð Raspberry Pi borð;
  2. Borðið liggur á skápnum sem dauðaþyngd og er ekki notað - "Brick" borðið;

Hvað myndir þú vilja fá:

  1. Á ákveðnum tímapunkti (til dæmis eftir skapi)
    borðið hættir að vera "Múrsteinn", og töfruminniskort er sett í það;
  2. Ethernet snúru og stinga frá venjulegum heimilishátalara eða heyrnartólum eru tengdir við borðið;
  3. Eftir að hafa orkað fyrrum "Brick" - syngur

Meginhugmynd:

  1. Lágmarksfjöldi bendinga fyrir hvaða stillingu sem er, í besta tilfellinu, tengjum við aðeins „Ethernet“ snúruna, rafmagn og hátalara, og gerum ekkert annað, frá orðinu "alls";
  2. Til dæmis styðjum við fyrrverandi „Múrsteininn“ úr kassanum, til dæmis 20 netútvarpsstöðvar, sem hægt er að hengja upp í hring með því að ýta á músarhjólið eða á tiltekinn GPIO pinna (tengdu tvo víra og loka þeim (draumur minn frá barnæsku));
  3. Stjórnun fer fram í gegnum útvarpsrás og þessi útvarpsrás getur verið venjuleg útvarpsmús;
  4. Taktu tilbúið kerfi, settu saman dreifingarsettið í "Yocto Project"
    þeim. Eins og venjulega munum við ekki gera neitt með þér þar sem allt hefur þegar verið gert.
    (það er nóg að setja utanaðkomandi áhorfanda hinum megin "sjónvarp");

Lýsing

Einfaldasti netútvarpsdálkur „KODI“
Samsetning hönnuð fyrir gamla Raspberry Pi 1 borð
(safna ryki einhvers staðar á skápnum, en hverjir eru tilbúnir að vinna meira)

M3u8 listi yfir 12 netútvarpsstöðvar er sjálfgefið notaður.

Gert er ráð fyrir að borðið virki án HDMI úttaks og til að slökkva á því er bara að taka straumbreytinn úr sambandi. Og sem öfgafull nútíma þráðlaus fjarstýring geturðu notað ofurútvarpsmúsina þína (jæja, eða tengt venjulega gráa með hala).

Þegar kveikt er á því er netviðmótið sjálfgefið stillt í gegnum DHCP samskiptareglur og síðasta útvarpsstöðin sem hefur verið lögð á minnið af listanum er spiluð, hljóðstyrk spilunar er stjórnað af venjulegri mús:
(ráðaðu loksins músina þína sem "stjórnendastjóra" og óska ​​henni til hamingju, hún á það skilið)

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

Til að bæta við þínum eigin lista yfir netútvarpsstöðvar
þú getur alltaf tengt HDMI snúru úr sjónvarpinu þínu
og notaðu lager Kodi 17.6 GUI
(slökktu á borðinu, tengdu HDMI og kveiktu á straumbreytinum)

Kodi aðalvalmynd => "Viðbætur" => "Viðbætur mínar"
          => "PVR Clients" => "PVR IPTV Simple Client"

Upphafleg framkvæmd

(mögulegt)
Upphaflega, þegar ég ákvað að búa til „Internet Radio Column“, skipulagði ég eftirfarandi:

  • Lágmarksdreifing leikjatölva í Yocto Project;
  • Hljóðstraumurinn er spilaður í gegnum GStreamer;
  • Netviðmótið er stillt í gegnum DHCP;

Og þessi lausn hefur ýmsa kosti:

  1. Nógu hratt (hætta í rekstrarham frá aflgjafa 30-40 sekúndur);
  2. Nóg áreiðanleg (færri forrit, færri bilunarpunktar);
  3. Miklu auðveldara er að setja leikjatölvudreifinguna í skrifvarinn ham
    þeim. forrit skrifa ekki neitt í rótarskráarkerfið
    (skjalakerfi á SDHC miðli er að mínu mati fyrsti möguleiki á bilunum);

Ath:

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

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

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

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

Og einn stór galli:

„Það verður að gera það“ þ.e. Ég þarf að eyða N fjölda kvölda
(venjulega eftir vinnu, og þetta er óhagkvæmasti tíminn, á þessum tíma hugsar heilinn ekki lengur, hann sefur venjulega)

Og samt skrifaði ég fyrri grein mína á Habré um margmiðlunarmiðstöðina Kodi og Yocto verkefni
og tækifærið til að halda áfram í sama streng, sigraði könnunarhvöt mína. Meira um þetta í næsta kafla.

Að breyta Kodi í netútvarpshátalara

Til að útfæra þá virkni sem ég þarf, mun ég bæta einni aðferð í viðbót við dreifingaruppskriftina sem lýst er hér á undan grein sjá skrána berserk-mynd.bb

GUI_SETTINGS = "home/root/.kodi/userdata/guisettings.xml"

# конфигурация запуска последнего выбранного ТВ канала (1-фон 2-передний план)
F1_LINE = "<startlast default="true">0</startlast>"
R1_LINE = "<startlast>1</startlast>"
# конфигурация вывода звука, всегда подключен только аналоговый аудио выход
F2_LINE = "<audiodevice default="true">PI:HDMI</audiodevice>"
R2_LINE = "<audiodevice>PI:Analogue</audiodevice>"
# так как HDMI по умолчанию не используется отключаю автоматическое обновление
# а то может получиться что питание уехало, а данные остались не записанными
F3_LINE = "<addonupdates default="true">0</addonupdates>"
R3_LINE = "<addonupdates>2</addonupdates>"


# метод отвечает за добавление конфигурации:
# которая превращает "Умный телевизор" в "простую Интернет Радио колонку"
add_radio_guisettings() {
    sed -i "s|${F1_LINE}|${R1_LINE}|" ${IMAGE_ROOTFS}/${GUI_SETTINGS}
    sed -i "s|${F2_LINE}|${R2_LINE}|" ${IMAGE_ROOTFS}/${GUI_SETTINGS}
    sed -i "s|${F3_LINE}|${R3_LINE}|" ${IMAGE_ROOTFS}/${GUI_SETTINGS}
}


FIND_STR = "touch ./tmp/.FIRST_RUN."
SCRIPT_FIRST_RUN = "etc/init.d/first-run.sh"
# так как HDMI выход может не использоваться, 
# то необходимо отключить "стартовое приветствие"
off_kodi_welcome() {
    sed -i "s|${FIND_STR}|#&|" ${IMAGE_ROOTFS}/${SCRIPT_FIRST_RUN}
}

Aðferðirnar eru ætlaðar til að breyta rótarskráarkerfinu áður en dreifingarmyndin er mynduð í formi einnar hráskrár, sem er skrifuð á minniskortið með skipuninni dd

Þetta er gert á þennan hátt:
ROOTFS_POSTPROCESS_COMMAND += "add_radio_guisettings; off_kodi_velcome;"

Í stuttu máli, í aðalstillingarskrá Kodi 17.6, breytast „þrír punktar“

  • Ræstu uppsetningu á síðustu valda sjónvarpsrásinni;
  • Stilling hljóðúttaks, aðeins hliðræn hljóðútgangur er alltaf tengdur;
  • Slökkva á sjálfvirkum uppfærslum;
  • Ath:
        Единственное с чем у меня возникли сложности, 
        это то, что пришлось еще подтащить файл базы данных 
        в формате sqlite => TV29.db, в котором указывается 
        текущий проигрываемый ТВ канал 
        (так как по умолчанию никакой из каналов не выбран), 
        а через xml конфигурацию в Kodi этого не сделать.
        

nákvæmari röð aðgerða fyrir hvert atriði:

1) Smelltu á "gír" táknið í efra vinstra horninu á skjánum
og veldu „PVR og sjónvarpsstillingar“ (mynd af sjónvarpi með tveimur hornum)
lengra vinstra megin í valmyndinni skaltu velja "Playback" hlutinn og í miðhlutanum "Almennt"
veldu „Halda áfram frá síðustu rás við ræsingu“ í fellilistanum
með því að velja „Forgrunn“ stillinguna

eða skýrara:

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

2) Smelltu á "gír" táknið í efra vinstra horninu á skjánum og veldu hlutinn:

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

3) Smelltu á "gír" táknið í efra vinstra horninu á skjánum og veldu hlutinn:

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

Hvernig ég hef horft vitlaust á sjónvarpið í tvö ár.

Ég verð að viðurkenna fyrir þér að á tveimur árum hef ég ekki lært að horfa almennilega á sjónvarpið.

Ég horfi yfirleitt á sjónvarpið í eldhúsinu. Raspberry Pi 2B borð er tengt við sjónvarpið og Ethernet og HDMI tengi eru tengd við borðið. Stjórnin er knúin með venjulegri USB snúru sem er tengdur í USB tengi sjónvarpsins. Reyndar veitir Raspberry Pi spjaldið einnig rafmagn með því að kveikja á sjónvarpinu með því að nota venjulegu fjarstýringuna, og ef slökkt er á sjónvarpinu frá fjarstýringunni endurstillir það líka strax kraftinn frá Raspberry Pi borðinu.

Já, ég er vel meðvituð um að þetta er ekki hægt að gera, vegna þess að rótarskrárkerfi Kodi margmiðlunarmiðstöðvarinnar (ext3) virkar í venjulegu lestri / skrifa ham. En ég er latur og til að byrja með ákvað ég að athuga hvað það tekur langan tíma að slökkva á kerfinu, þangað til það hættir að hlaðast, en því miður í tvö ár hef ég ekki getað þetta (kannski var bara heppinn, ég veit það ekki).

Og að mínu mati, ef þessi stilling hentar fyrir sjónvarpið mitt, þá hentar hann líka fyrir „einfaldan netútvarpshátalara“, og þar sem ég slökkti valdi á sjálfvirkri uppfærslu Kodi viðbætur, verða líkurnar á bilun í skráarkerfi jafnvel minna. Enn sem komið er sé ég ekki vandamál með það.

Ath:

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

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

Dreifingarsettið "netútvarpshátalarar" sem lýst er í greininni er heimilislegt og það sem skiptir mestu máli fyrir heimilisdreifingarsett er fallegt GUI. Að mínu mati er mjög erfitt eða nánast ómögulegt að kenna venjulegum notanda að keyra í einhverjum óskiljanlegum töfraskipunum í stjórnborðinu og hann kann ekki einu sinni orð eins og það. Og hér er GUI, takk.

Og þetta er kannski aðalröksemdin mín fyrir dreifingu sem ekki er leikjatölva. GUI heitt lampa Kodi, það er í raun ekki þörf, en það er til staðar.
(Ég gleymdi líka alveg að nefna að Kodi er hægt að fjarstýra, td úr snjallsíma með því að setja upp Yatse forritið, og kannski fyrir einhvern mun þetta vera plús)

Kodi stillingar, fyrir músastýringu

og nú eldflaug

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

Uppsetningin hnekkir alþjóðlegum atburðum fyrir eftirfarandi þætti:

  • músarhjól skruna áfram
  • músarhjól skruna til baka
  • með því að ýta á miðju músarhnappinn
  • vinnsla á löngum músarsmelli (3 sekúndur eða meira),
    0 auðkenni hægri hnapps, 1 auðkenni vinstri hnapps

frekari upplýsingar um að stilla músarviðburði:

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

Hvað á að gera ef kapalkerfið kom ekki til þín

„En ég er ekki með ókeypis Ethernet tengi heima (eða hafði aldrei),“ kunna sumir ánægðir eigendur gamalla Raspberry Pi 1 borða að hrópa (kannski var brettið keypt til rannsóknar og lá áfram í skápnum)

Og þar sem það er ekkert innbyggt Wifi á borðinu, án Ethernet tengingar, þá er það ekki mjög virk.

Auðvitað er möguleikinn á að nota Raspberry Pi 1 borðið án Ethernet fyrir hendi, en það mun krefjast nokkurrar fyrirhafnar frá þér. Yfirleitt er áhugavert að gera slíkt aðeins sem hluti af rannsókn á einhverju nýju, þ.e. þetta er ekki sérsniðin vinna.

Svo skulum við íhuga ímyndað notkunartilvik fyrir borð án Ethernet:

Þú getur tengt utanáliggjandi USB - Wifi millistykki, að leiðarljósi
að millistykkið ætti að virka vel undir Linux

Ath:

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

Ef þú ert nú þegar með USB Wifi millistykki geturðu athugað hvort það virki vel undir Linux eins og þetta:

  • Settu upp vinsæla Linux dreifingu
    almennur tilgangur, svo sem "Ubuntu Desktop"
  • Ræstu kerfið
  • Tengdu Wifi usb millistykkið þitt
  • Ræstu netstjórann og reyndu að tengjast WiFi heitum reitnum þínum
  • Ef allt virkar vel og nettengingin þín er stöðug, þá er millistykkið þitt vel studd og þú getur haldið áfram vinnu þinni við að tengja þetta millistykki í sérhæfðri dreifingu og hugsanlega með öðrum kjarnaútgáfum
    (ef ekki, þá nei, því miður - það er betra að reyna ekki einu sinni)

Stuðningur við utanaðkomandi Wifi millistykki í „Raspberry PI“

Til að WiFi millistykki virki rétt í Linux: við þurfum tvennt:
1) Linux kjarnastuðningur fyrir tiltekið Wifi millistykki
2) Tilvist í kerfinu af kjarnaeiningu fyrir tiltekið Wifi millistykki

Tökum TP-Link TL-WN722N millistykkið sem dæmi. Hann er með frábært loftnet.
Við skulum finna flísasettið sem borðið virkar á - ég er með það "AR9271", athugið:

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

Nú skulum við finna nafn færibreytunnar í kjarnastillingunni sem ber ábyrgð á AR9271 kubba reklanum, það er best að leita að samsetningu orðanna "AR9271 cateee.net"
     þar sem "cateee.net" er flott síða sem lýsir stillingum Linux kjarnaeininga

Við finnum strax nafn kjarnastillingar - CONFIG_ATH9K_HTC
og nafnið á kjarnaeiningunni sem við þurfum ath9k_htc

og tilgreindu þá bara nafnið á viðkomandi einingu í stillingarbrotaskránni
Linux kjarna => recipes-kernel/linux/files/rbpi.cfg, bættu við línunni:
CONFIG_ATH9K_HTC=m

Þannig geturðu í framtíðinni tengt hvaða viðbótarbúnað sem er við kerfið þitt (jæja, ef það er auðvitað þegar stutt í Linux kjarnanum)

Hvað á að gera ef þú ert habra nörd - smiður

Og þú býrð til flottustu hlutina eins og hér eða þú ert nemandi og dreymir um að búa til eitthvað svipað.

Síðan er hægt að taka einhvers konar snertiskjá fyrir RPI á aliexpress, panta viðeigandi rafhlöðu þar, tengja hana alla við Raspberry Pi 1,2 eða 3 borðið (betra að 3, þar sem það er með innbyggt Wifi), veldu þemaviðmót fyrir grafíska hönnun í Kodi, hannað fyrir snertiskjá og voila => þú getur fengið einfaldan hljóðspilara. Auðvitað verður það frekar fyrirferðarmikið, en það verður þitt.

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

  Ef svörun Kodi 17.6 GUI vegna eins örgjörvakjarna í Zero virðist þér dularfull, þá geturðu svínað með eyrunum og smíðað eldri en mjög hraðvirka útgáfu, til dæmis Kodi 15.2, hún er „vingjarnlegri“ í þessu sambandi (stundum ræður arfleifð öllu)

Því miður er ég ekki með borð, svo ég get ekki athugað það, en samkvæmt mínum tilfinningum ætti það að virka.

Stuttar samsetningarleiðbeiningar

    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
    

nánari samsetningarleiðbeiningar
og upptaka á microSDHC kort, sjá í fyrri grein

Postscript

Hugmyndin um netútvarpsdálkinn er auðvitað dæmigerð, hún er öllum kunn og á Habré er að finna margar greinar um þetta efni, t.d. hér

Og þú gætir líka haldið að ég hafi bara lagað kröfurnar um tilbúna lausn. Við þessu get ég svarað og sagt nei, satt best að segja.

Saga Herra Ervey

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

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

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

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

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

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

Fleiri góðar og öðruvísi samkomur fyrir þig, og láttu jafnvel fyrrverandi múrsteinn syngja fyrir þig í ár.

Heimild: www.habr.com

Bæta við athugasemd