Kolona më e thjeshtë e radios në internet "Kodi" ose shpëtimi i tullës "Mjedër".

Kolona më e thjeshtë e radios në internet "Kodi" ose shpëtimi i tullës "Mjedër".

Parakushtet themelore:

  1. Ekziston një tabelë e vjetër e papërdorur e gjeneratës së parë Raspberry Pi;
  2. Pllaka shtrihet në kabinet si një peshë e vdekur dhe nuk përdoret - bordi "Brick";

Çfarë do të doja të merrja:

  1. Në një moment të caktuar kohor (për shembull, sipas gjendjes shpirtërore)
    bordi pushon së qeni një "Tull", dhe një kartë memorie magjike futet në të;
  2. Një kabllo Ethernet dhe një prizë nga një altoparlant i zakonshëm ose kufje shtëpiake janë të lidhura në tabelë;
  3. Pas aplikimit të fuqisë, ish "Tulla" - këndon

Ideja kryesore:

  1. Numri minimal i gjesteve për çdo konfigurim, në rastin më ideal, ne lidhim vetëm kabllon "Ethernet", energjinë dhe altoparlantët dhe nuk bëjmë asgjë tjetër nga fjala "fare";
  2. Ish "Brick" nga kutia mbështet, për shembull, 20 stacione radio në internet, të cilat mund të ndërrohen në një rreth duke shtypur timonin e miut ose në një kunj të veçantë GPIO (lidhni dy tela dhe shkurtoni ato (ëndrra ime që nga fëmijëria) );
  3. Kontrolli kryhet nëpërmjet një kanali radio, dhe ky kanal radio mund të jetë një mi i rregullt radio;
  4. Merrni një sistem të gatshëm dhe montoni shpërndarjen në "Projekti Yocto"
    ato. si zakonisht, ne nuk do t'ju bëjmë asgjë, pasi gjithçka tashmë është bërë.
    (mjafton vetëm të vendosni një vëzhgues të jashtëm në anën tjetër "TV");

Përshkrim

Kolona më e thjeshtë e Radios në Internet "KODI"
Asambleja është projektuar për bordet më të vjetra Raspberry Pi 1
(duke mbledhur pluhur diku në dollap, por që janë gati për të bërë më shumë punë)

Si parazgjedhje, përdoret lista m3u8 me 12 stacione radio në internet.

Supozohet se bordi funksionon pa një dalje HDMI, dhe për ta fikur atë, thjesht duhet të shkëputni përshtatësin e rrymës nga priza. Dhe si një panel kontrolli me valë ultra-modern, mund të përdorni miun tuaj super të radios (ose të lidhni një të rregullt gri me një bisht).

Kur aktivizohet, ndërfaqja e paracaktuar e rrjetit konfigurohet nëpërmjet protokollit DHCP dhe luhet radiostacioni i fundit i memorizuar nga lista, volumi i riprodhimit kontrollohet me një maus të rregullt:
(më në fund cakto miun si "shef menaxherial" dhe përgëzoje, e meriton)

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

Për të shtuar listën tuaj të stacioneve radio në internet
gjithmonë mund të lidhni një kabllo HDMI nga televizori juaj
dhe përdorni ndërfaqen standarde grafike të Kodi 17.6
(fikni tabelën, lidhni HDMI dhe ndizni përshtatësin e energjisë)

Menyja kryesore e Kodi => "Shtesa" => "Shtesat e mia"
          => "Klientë PVR" => "Klient i thjeshtë PVR IPTV"

Zbatimi fillestar

(e mundur)
Fillimisht, kur vendosa të bëj një "Radio në Internet", planifikova sa vijon:

  • Shpërndarja minimaliste e konsolës në Projektin Yocto;
  • Transmetimi audio luhet nëpërmjet GStreamer;
  • Ndërfaqja e rrjetit është konfiguruar nëpërmjet DHCP;

Dhe kjo zgjidhje ka një numër avantazhesh:

  1. Mjaft i shpejtë (duhen 30-40 sekonda për të arritur modalitetin e funksionimit nga furnizimi me energji elektrike);
  2. Mjaft i besueshëm (më pak programe, më pak pikë dështimi);
  3. Një shpërndarje konsole është shumë më e lehtë për të kaluar në modalitetin vetëm për lexim
    ato. programet nuk shkruajnë asgjë në sistemin e skedarëve rrënjë
    (dhe sistemi i skedarëve në mediat SDHC është, për mendimin tim, kandidati i parë për dështim);

Shenim:

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

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

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

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

Dhe një pengesë kryesore:

"Duhet të bëhet" d.m.th. Më duhet të kaloj N numër mbrëmjesh
(zakonisht pas punës, dhe kjo është koha më joefektive, në këtë kohë truri nuk mendon më, zakonisht fle)

E megjithatë, unë shkrova artikullin tim të mëparshëm në Habré për qendrën multimediale Kodi dhe Yocto projekt
dhe mundësia për të vazhduar në të njëjtën mënyrë e mposhti impulsin tim kërkimor. Më shumë për këtë në kapitullin vijues.

Shndërrimi i Kodi në një altoparlant radio në internet

Për të shtuar funksionalitetin që më nevojitet, do të shtoj një metodë tjetër në recetën për ndërtimin e shpërndarjes të përshkruar në atë të mëparshme artikull shih skedarin berserk-image.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}
}

Metodat kanë për qëllim modifikimin e sistemit të skedarëve rrënjë përpara se të formojnë një imazh të shpërndarjes në formën e një skedari të papërpunuar, i cili shkruhet në kartën e kujtesës me komandën dd

Kjo bëhet në këtë mënyrë:
ROOTFS_POSTPROCESS_COMMAND += "add_radio_guisettings; off_kodi_welcome;"

Me pak fjalë, në skedarin kryesor të konfigurimit të Kodi 17.6, "tre pika" ndryshojnë

  • Konfigurimi për nisjen e kanalit të fundit televiziv të zgjedhur;
  • Konfigurimi i daljes audio, vetëm dalja analoge e audios është gjithmonë e lidhur;
  • çaktivizoni përditësimet automatike;
  • Shenim:
        Единственное с чем у меня возникли сложности, 
        это то, что пришлось еще подтащить файл базы данных 
        в формате sqlite => TV29.db, в котором указывается 
        текущий проигрываемый ТВ канал 
        (так как по умолчанию никакой из каналов не выбран), 
        а через xml конфигурацию в Kodi этого не сделать.
        

një sekuencë më të detajuar veprimesh për secilin artikull:

1) Klikoni në ikonën e ingranazhit në këndin e sipërm të majtë të ekranit
dhe zgjidhni "PVR and TV Settings" (imazhi i një televizori me dy bori)
pastaj në anën e majtë të menysë, zgjidhni "Playback" dhe në seksionin qendror "Të përgjithshme"
zgjidhni "Vazhdo nga kanali i fundit në fillim" në listën rënëse
duke zgjedhur cilësimin "Foreground".

ose më qartë:

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

2) Klikoni në ikonën "ingranazh" në këndin e sipërm të majtë të ekranit dhe zgjidhni artikullin:

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

3) Klikoni në ikonën "ingranazh" në këndin e sipërm të majtë të ekranit dhe zgjidhni artikullin:

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

Si kam shikuar TV në mënyrë të gabuar për dy vjet.

Duhet t'ju rrëfej se në dy vjet nuk kam mësuar ende si të shikoj TV siç duhet.

Zakonisht shikoj TV në kuzhinë. Një tabelë Raspberry Pi 2B është e lidhur me televizorin dhe lidhësit Ethernet dhe HDMI janë të lidhur në tabelë. Pllaka mundësohet nëpërmjet një kablloje të zakonshme USB, e cila është e lidhur në portën USB të televizorit, d.m.th. në fakt, ndezja e televizorit duke përdorur telekomandën standarde furnizon me energji bordin e Raspberry Pi dhe fikja e televizorit nga telekomanda gjithashtu rivendos menjëherë energjinë nga bordi Raspberry Pi.

Po, e di mirë që kjo nuk mund të bëhet, sepse sistemi i skedarëve rrënjësor i qendrës mediatike Kodi (ext3) funksionon në modalitetin normal të leximit/shkrimit. Por unë jam një person dembel dhe së pari vendosa të kontrolloja se sa kohë mund ta fikja sistemin në këtë mënyrë, derisa të ndalonte së ngarkuari plotësisht, por për fat të keq, pas dy vjetësh nuk arrita ta bëja kurrë këtë (ndoshta isha thjesht me fat, Une nuk e di ).

Dhe për mendimin tim, nëse kjo mënyrë do të ishte e përshtatshme për televizorin tim, atëherë do të ishte gjithashtu i përshtatshëm për një "altoparlant të thjeshtë të radios në Internet", dhe meqenëse çaktivizova me forcë përditësimin automatik të shtojcave Kodi, gjasat e një dështimi të sistemit të skedarëve do të bëhen të barabartë më pak. Deri më tani nuk shoh ndonjë problem me këtë

Shenim:

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

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

Shpërndarja e "altoparlantëve të radios në internet" e përshkruar në artikull është një pajisje shtëpiake dhe ajo që është më e rëndësishme për një shpërndarje shtëpiake është një GUI e bukur. Sipas mendimit tim, është shumë e vështirë ose pothuajse e pamundur të mësosh një përdorues të zakonshëm të futë ndonjë komandë magjike të pakuptueshme në tastierë, dhe ai as nuk e di fjalën. Por GUI, ju lutem.

Dhe ky është ndoshta argumenti im kryesor në favor të një shpërndarjeje jo të konsolës. Ndërfaqja grafike e përdoruesit të llambës së ngrohtë të Kodi, nuk është vërtet e nevojshme, por është atje.
(Kam harruar gjithashtu plotësisht të përmend se Kodi mund të kontrollohet nga distanca, për shembull nga një smartphone, duke instaluar aplikacionin Yatse, dhe ndoshta për disa kjo do të jetë një plus)

Konfigurimi i Kodi për kontrollin e miut

dhe tani Raketa

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

Konfigurimi anashkalon ngjarjet globale për elementët e mëposhtëm:

  • lëvizni rrotën e miut përpara
  • rrotulloni rrotën e miut prapa
  • duke klikuar butonin e mesit të miut
  • përpunimi i klikimeve të gjata të miut (3 sekonda ose më shumë),
    0 ID e butonit djathtas, ID e butonit të majtë 1

Informacion më të detajuar mbi konfigurimin e ngjarjeve të miut:

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

Çfarë duhet të bëni nëse sistemi kabllor nuk ju vjen

"Por unë nuk kam porte falas Ethernet në shtëpi (ose nuk kam kurrë)," mund të bërtasin disa nga pronarët e lumtur të pllakave të vjetra Raspberry Pi 1 (ndoshta bordi është blerë për kërkime dhe ka mbetur i shtrirë në kabinet)

Dhe meqenëse bordi nuk ka Wifi të integruar, nuk është shumë funksional pa një lidhje Ethernet.

Sigurisht, është e mundur të përdoret bordi Raspberry Pi 1 pa Ethernet, por do të kërkojë disa përpjekje nga ana juaj. Zakonisht, gjëra të tilla janë interesante për t'u bërë vetëm si pjesë e të mësuarit të diçkaje të re, d.m.th. Kjo nuk është punë me porosi.

Pra, le të shqyrtojmë një rast përdorimi hipotetik për një tabelë pa Ethernet:

Ju mund të lidhni një përshtatës të jashtëm USB - Wifi, të udhëhequr nga konsiderata
që përshtatësi duhet të funksionojë mirë nën Linux

Shenim:

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

Nëse tashmë keni një përshtatës USB Wifi, mund të kontrolloni nëse funksionon mirë në Linux si më poshtë:

  • Instaloni disa shpërndarje Linux të përdorur gjerësisht
    qëllimi i përgjithshëm, për shembull "Ubuntu Desktop"
  • Nisni sistemin
  • Lidhni përshtatësin tuaj Wifi USB
  • Hapni menaxherin e rrjetit dhe provoni të lidheni me pikën tuaj të hyrjes WiFi
  • Nëse gjithçka funksionon mirë dhe lidhja juaj në internet është e qëndrueshme, atëherë përshtatësi juaj mbështetet mirë dhe mund të vazhdoni punën tuaj për lidhjen e këtij përshtatësi në një shpërndarje të specializuar dhe ndoshta me versione të tjera të kernelit
    (nëse jo, atëherë jo, mjerisht, është më mirë të mos provoni)

Mbështetje për përshtatësin e jashtëm Wifi në Raspberry PI

Që përshtatësi WiFi të funksionojë siç duhet në Linux, na duhen dy gjëra:
1) Mbështetje kernel Linux për përshtatës specifik Wifi
2) Prania e një moduli kernel në sistem për një përshtatës specifik Wifi

Merrni për shembull përshtatësin TP-Link TL-WN722N. Ka një antenë thjesht të mrekullueshme.
Le të gjejmë chipset në të cilin funksionon bordi - për mua është "AR9271", shënim:

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

Tani le të gjejmë emrin e parametrit në konfigurimin e kernelit përgjegjës për drejtuesin e çipave AR9271, është më mirë të kërkoni kombinimin e fjalëve "AR9271 catee.net"
     ku "cateee.net" është një faqe interesante që përshkruan konfigurimet e moduleve të kernelit Linux

Ne gjejmë menjëherë emrin e konfigurimit të kernelit - CONFIG_ATH9K_HTC
dhe emrin e modulit të kernelit që na nevojitet ath9k_htc

dhe pastaj thjesht specifikoni emrin e modulit të kërkuar në skedarin e fragmentit të konfigurimit
Kernel Linux => recipes-kernel/linux/files/rbpi.cfg, shtoni rreshtin:
CONFIG_ATH9K_HTC=m

Kështu, në të ardhmen mund të lidhni çdo pajisje shtesë me sistemin tuaj (epo, sigurisht, nëse tashmë mbështetet në kernelin Linux)

Çfarë duhet të bëni nëse jeni një habra geek - stilist

Dhe ju krijoni gjërat më të lezetshme, si p.sh këtu ose jeni student dhe ëndërroni të krijoni diçka të ngjashme.

Thjesht, mund të merrni një lloj ekrani me prekje për RPI në aliexpress, të porosisni një bateri të përshtatshme atje, t'i lidhni të gjitha me një tabelë Raspberry Pi 1,2 ose 3 (mundësisht 3, pasi ka Wifi të integruar), zgjidhni një ndërfaqe me temë dizajni grafik në Kodi, e krijuar për një ekran me prekje dhe voila => mund të merrni një riprodhues të thjeshtë audio. Sigurisht që do të jetë mjaft e rëndë, por do të jetë e juaja.

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

  Nëse përgjegjshmëria e GUI Kodi 17.6 për shkak të bërthamës së vetme të procesorit në Zero ju duket misterioze, atëherë mund të mashtroni veshët dhe të ndërtoni një version më të vjetër, por shumë të shpejtë, për shembull Kodi 15.2, është më "miqësor" në këtë drejtim. (nganjëherë trashëgimia zgjidh gjithçka)

Fatkeqësisht, nuk e kam tabelën, kështu që nuk mund ta kontrolloj, por mendoj se duhet të funksionojë.

Udhëzime të shkurtra të Asamblesë

    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
    

udhëzime më të hollësishme të montimit
dhe regjistrimi në një kartë microSDHC, shihni në artikullin e mëparshëm

poshtëshënim

Sigurisht, ideja e një altoparlanti radio në internet është tipike, të gjithë e dinë atë dhe në Habré do të gjeni shumë artikuj mbi këtë temë, p.sh. këtu

Dhe ju gjithashtu mund të mendoni se unë thjesht i përshtata kërkesat për një zgjidhje të gatshme. Kësaj mund të kundërshtoj dhe të them se jo, sinqerisht.

Historia e zotit Ervey

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

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

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

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

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

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

Më shumë asamble të mira dhe të ndryshme për ju, dhe le të këndojë edhe ish tulla këtë vit.

Burimi: www.habr.com

Shto një koment