De ienfâldichste ynternetradiokolom "Kodi" as it heil fan 'e bakstien "Raspberry".

De ienfâldichste ynternetradiokolom "Kodi" as it heil fan 'e bakstien "Raspberry".

Basis betingsten:

  1. Der is in âlde net brûkte earste generaasje Raspberry Pi board;
  2. It bestjoer leit op 'e kast as in dea gewicht en wurdt net brûkt - it "Brick" board;

Wat ik graach ûntfange wol:

  1. Op in bepaald punt yn 'e tiid (bygelyks neffens stimming)
    it bestjoer hâldt op mei in "Brick", en in magyske ûnthâldkaart wurdt ynfoege;
  2. In Ethernet kabel en in stekker fan in gewoane húshâlding sprekker of koptelefoan binne ferbûn oan it bestjoer;
  3. Nei macht wurdt tapast, de eardere "Brick" - sjongt

Haad idee:

  1. It minimum oantal stjoerings foar elke opset, yn it meast ideale gefal, ferbine wy ​​allinich de "Ethernet" kabel, macht en sprekkers, en dogge neat oars, fan it wurd "heulendal";
  2. De eardere "Brick" út 'e doaze stipet bygelyks 20 ynternetradiostasjons, dy't yn in sirkel wikselje kinne wurde troch te drukken op it mûsrad of op in spesifike GPIO-pin (ferbine twa triedden en koart se (myn dream sûnt bernetiid) );
  3. Kontrôle wurdt útfierd fia in radio kanaal, en dit radio kanaal kin wêze in gewoane radio mûs;
  4. Nim in ready-made systeem en sammelje de distribúsje yn it "Yocto Project"
    dy. lykas gewoanlik sille wy jo neat dwaan, om't alles al dien is.
    (it is genôch om gewoan in waarnimmer fan bûten oan 'e oare kant te pleatsen "TV");

beskriuwing

De ienfâldichste ynternetradiokolom "KODI"
De gearkomste is ûntworpen foar âldere Raspberry Pi 1-boards
(stof sammelje earne op 'e kast, mar dy't ree binne om wat mear wurk te dwaan)

Standert wurdt de m3u8-list fan 12 ynternetradiostasjons brûkt.

Der wurdt fan útgien dat it bestjoer wurket sûnder in HDMI-útfier, en om it út te skeakeljen, moatte jo gewoan de stroomadapter út it stopkontakt losmeitsje. En as in ultramodern draadloos kontrôlepaniel kinne jo jo super radiomûs brûke (of in gewoane grize mei in sturt ferbine).

As it ynskeakele is, wurdt de standert netwurkynterface konfigureare fia it DHCP-protokol en wurdt it lêste memorisearre radiostasjon út 'e list spile, it ôfspielvolume wurdt regele mei in gewoane mûs:
(Neem jo mûs einliks oan as "haad fan behear", en lokwinskje it, it fertsjinnet it)

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

Om jo eigen list mei ynternetradiostasjons ta te foegjen
jo kinne altyd in HDMI-kabel ferbine fan jo TV
en brûk de standert grafyske ynterface fan Kodi 17.6
(skeakelje it boerd út, ferbine HDMI en skeakelje de stroomadapter oan)

Kodi haadmenu => “Add-ons” => “Myn tafoegings”
          => "PVR-kliïnten" => "PVR IPTV Ienfâldige kliïnt"

Inisjele ymplemintaasje

(mooglik)
Yn it earstoan, doe't ik besleat om in "Internet Radio Column" te meitsjen, plande ik it folgjende:

  • Minimalistyske konsole-distribúsje yn it Yocto-projekt;
  • De audiostream wurdt spile fia GStreamer;
  • It netwurk ynterface wurdt konfigurearre fia DHCP;

En dizze oplossing hat in oantal foardielen:

  1. Hiel fluch (it duorret 30-40 sekonden om de bestjoeringsmodus te berikken fan 'e stroomfoarsjenning);
  2. Redlik betrouber (minder programma's, minder punten fan mislearring);
  3. In konsole-distribúsje is folle makliker om te wikseljen nei allinich-lêsmodus
    dy. programma's skriuwe neat nei it rootbestânsysteem
    (en it triemsysteem op SDHC media is, nei myn miening, de earste kandidaat foar mislearring);

Tink derom:

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

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

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

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

En ien wichtichste nadeel:

"It moat dien wurde" d.w.s. Ik moat N tal jûnen trochbringe
(meastentiids nei it wurk, en dit is de meast yneffektive tiid, op dit stuit tinkt it brein net mear, it sliept normaal)

En dochs skreau ik myn foarige artikel op Habré oer it multymediasintrum Kodi en Yocto projekt
en de kâns om yn deselde sfear troch te gean oermastere myn ûndersyksympuls. Mear oer dit yn it folgjende haadstik.

Kodi omsette yn in ynternetradioluidspreker

Om de funksjonaliteit ta te foegjen dy't ik nedich is, sil ik noch ien metoade tafoegje oan it resept foar it bouwen fan de ferdieling beskreaun yn 'e foarige artikel sjoch triem 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}
}

De metoaden binne bedoeld foar it wizigjen fan it rootbestânsysteem foardat jo in distribúsjeôfbylding foarmje yn 'e foarm fan ien rau bestân, dat wurdt skreaun nei de ûnthâldkaart mei it kommando dd

Dit wurdt dien op dizze manier:
ROOTFS_POSTPROCESS_COMMAND += "add_radio_guisettings; off_kodi_welcome;"

Koartsein, yn it haadkonfiguraasjetriem fan Kodi 17.6, "trije punten" feroarje

  • Konfiguraasje foar it lansearjen fan it lêst selektearre TV-kanaal;
  • Audio útfier konfiguraasje, allinne analoge audio útfier is altyd ferbûn;
  • Automatyske fernijings útskeakelje;
  • Tink derom:
        Единственное с чем у меня возникли сложности, 
        это то, что пришлось еще подтащить файл базы данных 
        в формате sqlite => TV29.db, в котором указывается 
        текущий проигрываемый ТВ канал 
        (так как по умолчанию никакой из каналов не выбран), 
        а через xml конфигурацию в Kodi этого не сделать.
        

in mear detaillearre folchoarder fan aksjes foar elk item:

1) Klikje op it gearbyldkaike yn 'e linker boppeste hoeke fan it skerm
en selektearje "PVR en TV-ynstellingen" (ôfbylding fan in tv mei twa hoarnen)
Selektearje dan oan 'e linkerkant fan it menu "ôfspielje", en yn 'e sintrale seksje "Algemien"
selektearje "Trochgean fan lêste kanaal by opstarten" yn it dellûk list
selektearje de "foargrûn" ynstelling

of dúdliker:

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

2) Klikje op it "gear" ikoan yn 'e boppeste linker hoeke fan it skerm en selektearje it item:

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

3) Klikje op it "gear" ikoan yn 'e boppeste linker hoeke fan it skerm en selektearje it item:

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

Hoe't ik al twa jier op 'e ferkearde manier TV sjoch.

Ik moat jo bekenne dat ik yn twa jier noch net leard haw hoe goed televyzje te sjen.

Ik sjoch meastentiids televyzje yn 'e keuken. In Raspberry Pi 2B board is ferbûn mei de TV, en Ethernet en HDMI Anschlüsse wurde ferbûn oan it bestjoer. It bestjoer wurdt oandreaun fia in gewoane USB-kabel, dy't yn 'e USB-poarte fan' e TV stekke is, d.w.s. yn feite, it ynskeakeljen fan de TV mei help fan de standert remote control leveret macht oan de Raspberry Pi board, en it útskeakeljen fan de TV út de ôfstânsbetsjinning ek fuortendaliks weromsette de macht fan de Raspberry Pi board.

Ja, ik bin der goed bewust fan dat dit net kin wurde dien, om't it root-bestânsysteem fan it Kodi-mediasintrum (ext3) funksjonearret yn normale lês-/skriuwmodus. Mar ik bin in lui persoan, en earst besleat ik om te kontrolearjen hoe lang ik it systeem sa útsette koe, oant it folslein stoppe mei laden, mar spitigernôch, nei twa jier haw ik dit noait slagge (miskien wie ik gewoan gelok, Ik wit it net ).

En nei myn miening, as dizze modus geskikt wie foar myn TV, dan soe it ek geskikt wêze foar in "ienfâldige ynternetradio-sprekker", en om't ik de automatyske bywurking fan Kodi-plugins mei geweld útskeakele, sil de kâns op in bestânsysteemflater even wurde minder. Oant no ta sjoch ik hjir gjin probleem mei

Tink derom:

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

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

De ferdieling "ynternet radio sprekkers" beskreaun yn it artikel is in húshâlding, en wat is it wichtichste foar in húshâlding distribúsje is in moaie GUI. Yn myn miening is it heul lestich as hast ûnmooglik om in gewoane brûker te learen om ûnbegryplike magyske kommando's yn 'e konsole yn te fieren, en hy wit it wurd net iens. Mar de GUI, asjebleaft.

En dit is miskien myn wichtichste argumint yn it foardiel fan in distribúsje net-konsole. De waarme lamp grafyske brûkersynterface fan Kodi, it is net echt nedich, mar it is der.
(Ik fergeat ek folslein te neamen dat Kodi op ôfstân bestjoerd wurde kin, bygelyks fan in smartphone, troch de Yatse-applikaasje te ynstallearjen, en miskien foar guon sil dit in plus wêze)

Kodi-konfiguraasje foar mûskontrôle

en no Rocket

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

De konfiguraasje oerskriuwt globale eveneminten foar de folgjende eleminten:

  • scroll mûs tsjil foarút
  • scroll mûs tsjil werom
  • klikke op de middelste mûsknop
  • ferwurkjen fan lange mûsklikken (3 sekonden of mear),
    0 rjochter knop ID, 1 linker knop ID

Mear detaillearre ynformaasje oer it ynstellen fan mûseveneminten:

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

Wat te dwaan as it kabelsysteem net by jo komt

"Mar ik haw gjin fergese Ethernet-poarten thús (of haw ik noait)," kinne guon fan 'e lokkige eigners fan âlde Raspberry Pi 1-boerden útroppe (miskien is it boerd kocht foar ûndersyk en bleau op it kabinet lizzen)

En om't it bestjoer gjin ynboude Wifi hat, is it net heul funksjoneel sûnder in Ethernet-ferbining.

Fansels is it mooglik om it Raspberry Pi 1-board te brûken sûnder Ethernet, mar it sil wat ynspannings fan jo kant fereaskje. Meastal binne sokke dingen nijsgjirrich om te dwaan allinnich as ûnderdiel fan it learen fan wat nijs, d.w.s. Dit is gjin maatwurk.

Litte wy dus in hypotetysk gebrûksgefal beskôgje foar in boerd sûnder Ethernet:

Jo kinne ferbine in eksterne USB - Wifi adapter, liede troch de konsideraasje
dat de adapter goed moat wurkje ûnder Linux

Tink derom:

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

As jo ​​​​al in USB Wifi-adapter hawwe, kinne jo kontrolearje as it goed wurket ûnder Linux as folget:

  • Ynstallearje wat wiid brûkte Linux-distribúsje
    algemien doel, bygelyks "Ubuntu Desktop"
  • Boot it systeem
  • Ferbine jo Wifi usb-adapter
  • Start netwurkbehearder en besykje te ferbinen mei jo WiFi-tagongspunt
  • As alles goed wurket en jo ynternetferbining stabyl is, dan wurdt jo adapter goed stipe en kinne jo jo wurk trochgean mei it ferbinen fan dizze adapter yn in spesjalisearre distribúsje en mooglik mei oare ferzjes fan 'e kernel
    (as net, dan nee, helaas, it is better net iens te besykjen)

Stipe foar eksterne Wifi-adapter yn Raspberry PI

Foar de WiFi-adapter om goed te wurkjen yn Linux, hawwe wy twa dingen nedich:
1) Linux kernel-stipe foar spesifike Wifi-adapter
2) De oanwêzigens fan in kernelmodule yn it systeem foar in spesifike Wifi-adapter

Nim bygelyks de TP-Link TL-WN722N-adapter. It hat in gewoan prachtige antenne.
Litte wy de chipset fine wêrop it bestjoer wurket - foar my is it "AR9271", noat:

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

Litte wy no de namme fan 'e parameter fine yn' e kernelkonfiguraasje ferantwurdlik foar de AR9271-chipset-bestjoerder, it is it bêste om te sykjen nei de kombinaasje fan wurden "AR9271 catee.net"
     wêr "cateee.net" is in koele side dy't beskriuwt konfiguraasjes fan Linux kernel modules

Wy fine fuortendaliks de namme fan 'e kernel konfiguraasje - CONFIG_ATH9K_HTC
en de namme fan 'e kernelmodule dy't wy nedich binne ath9k_htc

en spesifisearje dan gewoan de namme fan 'e winske module yn it konfiguraasjefragminttriem
Linux kernel => recipes-kernel/linux/files/rbpi.cfg, foegje de rigel ta:
CONFIG_ATH9K_HTC=m

Sa kinne jo yn 'e takomst alle ekstra apparatuer ferbine mei jo systeem (goed, fansels, as it al wurdt stipe yn' e Linux-kernel)

Wat te dwaan as jo in habra-geek binne - ûntwerper

En jo meitsje de coolste dingen, lykas hjir of do bist in studint en dream fan it meitsjen fan wat ferlykber.

Krekt fuortdaliks kinne jo in soarte fan Touch Screen-skerm nimme foar RPI op aliexpress, dêr in geskikte batterij bestelle, it allegear ferbine mei in Raspberry Pi 1,2 of 3 board (leafst 3, om't it ynboude Wifi hat), selektearje in interface foar grafysk ûntwerptema yn Kodi, ûntworpen foar in touchscreen en voila => jo kinne in ienfâldige audiospieler krije. Fansels sil it frijwat bulk wêze, mar it sil jo wêze.

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

  As de responsiviteit fan GUI Kodi 17.6 fanwegen de ienige prosessor-kearn yn Zero mysterieus foar jo liket, dan kinne jo jo earen ferrifelje en in âldere, mar heul rappe ferzje bouwe, bygelyks Kodi 15.2, it is yn dit ferbân mear "freonlik" (soms lost legacy alles op)

Spitigernôch, ik haw net it bestjoer, dus ik kin net kontrolearje, mar ik fiel dat it moat wurkje.

Koarte gearkomste ynstruksjes

    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
    

mear detaillearre montage ynstruksjes
en opname op in microSDHC card, sjoch yn in foarige artikel

Postscript

Fansels is it idee fan in ynternetradiosprekker typysk, elkenien wit it en op Habré fine jo in protte artikels oer dit ûnderwerp, bygelyks hjir

En jo kinne ek tinke dat ik de easken gewoan ôfstimd haw op in klearebare oplossing. Dêr kin ik tsjin tsjin sizze en nee, earlik sein.

Mr Ervey's ferhaal

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

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

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

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

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

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

Mear goede en oare gearkomsten foar jo, en lit sels de eardere bakstien dit jier foar jo sjonge.

Boarne: www.habr.com

Add a comment