Najjednostavniji internetski radijski stupac "Kodi" ili spas cigle "Malina".

Najjednostavniji internetski radijski stupac "Kodi" ili spas cigle "Malina".

Osnovni preduvjeti:

  1. Postoji stara nekorištena ploča Raspberry Pi prve generacije;
  2. Ploča leži na ormariću kao vlastiti teret i ne koristi se - ploča “Brick”;

Što biste željeli primiti:

  1. U određenom trenutku (na primjer, prema raspoloženju)
    ploča prestaje biti "Brick" i u nju se umeće čarobna memorijska kartica;
  2. Ethernet kabel i utikač iz običnog kućnog zvučnika ili slušalica spojeni su na ploču;
  3. Nakon što je dovedena struja, bivši "Kirpich" - pjeva

Glavna ideja:

  1. Minimalan broj pokreta za bilo koju postavku, u najidealnijem slučaju spojimo samo "Ethernet" kabel, napajanje i zvučnike i ne radimo ništa drugo, od riječi "uopće";
  2. Na primjer, podržavamo bivšu "Brick" iz kutije, na primjer, 20 internetskih radio postaja čije se prebacivanje u krug može prekinuti pritiskom na kotačić miša ili na određeni GPIO pin (spojite dvije žice i zatvoriti ih (moj san iz djetinjstva));
  3. Upravljanje se vrši preko radio kanala, a taj radio kanal može biti običan radio miš;
  4. Uzmite gotov sustav, sastavite distribucijski komplet u "Yocto projektu"
    oni. Kao i obično, nećemo ništa raditi s vama, jer je sve već učinjeno.
    (dovoljno je samo postaviti vanjskog promatrača s druge strane "TELEVIZOR");

Opis

Najjednostavnija rubrika internetskog radija "KODI"
Sklop dizajniran za stare Raspberry Pi 1 ploče
(skupljaju prašinu negdje po ormaru, ali koji su spremni raditi više)

Popis m3u8 od 12 internetskih radio postaja koristi se prema zadanim postavkama.

Pretpostavlja se da ploča radi bez HDMI izlaza, a da biste ga isključili, samo izvucite adapter iz utičnice. A kao ultra moderan bežični daljinski upravljač, možete koristiti svoj super radio miš (dobro, ili spojiti obični sivi s repom).

Kada je omogućeno, mrežno sučelje konfigurirano je prema zadanim postavkama putem DHCP protokola i reproducira se zadnja memorirana radio postaja s popisa, glasnoća reprodukcije kontrolira se običnim mišem:
(napokon postavite svoju mišicu za "head of management", i čestitajte joj, zaslužuje)

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

Za dodavanje vlastitog popisa internetskih radio postaja
uvijek možete spojiti HDMI kabel s TV-a
i koristite standardni Kodi 17.6 GUI
(isključite ploču, spojite HDMI i uključite adapter)

Kodi glavni izbornik => "Dodaci" => "Moji dodaci"
          => "PVR klijenti" => "PVR IPTV jednostavni klijent"

Početna implementacija

(moguće)
U početku, kada sam odlučio napraviti "Internet radio rubriku", planirao sam sljedeće:

  • Minimalistička distribucija konzole u projektu Yocto;
  • Audio stream se reproducira kroz GStreamer;
  • Mrežno sučelje je konfigurirano putem DHCP-a;

I ovo rješenje ima niz prednosti:

  1. Dovoljno brzo (izlaz u način rada iz napajanja 30-40 sekundi);
  2. Dovoljno pouzdan (manje programa, manje točaka kvarova);
  3. Distribuciju konzole puno je lakše staviti u način rada samo za čitanje
    oni. programi ne pišu ništa u korijenski datotečni sustav
    (datotečni sustav na SDHC mediju je po mom mišljenju prvi kandidat za kvarove);

Napomena:

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

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

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

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

I jedan veliki nedostatak:

"To se mora učiniti" tj. Trebam provesti N broj večeri
(obično nakon posla, a to je najneučinkovitije vrijeme, u to vrijeme mozak više ne razmišlja, obično spava)

Pa ipak, napisao sam svoj prethodni članak na Habréu o multimedijskom centru Kodi i Yocto projekt
i prilika da nastavim u istom tonu, nadjačala je moj istraživački impuls. Više o tome u sljedećem poglavlju.

Pretvaranje Kodija u zvučnik internetskog radija

Kako bih implementirao funkcionalnost koja mi je potrebna, dodat ću još jednu metodu receptu za izgradnju distribucije opisanom u prethodnom članak pogledajte datoteku 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}
}

Metode su namijenjene modificiranju korijenskog datotečnog sustava prije formiranja distribucijske slike u obliku jedne sirove datoteke koja se upisuje na memorijsku karticu naredbom dd

To se radi na sljedeći način:
ROOTFS_POSTPROCESS_COMMAND += "add_radio_guisettings; off_kodi_dobrodošao;"

Ukratko, u glavnoj konfiguracijskoj datoteci Kodi 17.6 mijenjaju se "tri točke".

  • Pokretanje konfiguracije posljednjeg odabranog TV kanala;
  • Konfiguracija audio izlaza, uvijek je spojen samo analogni audio izlaz;
  • Onemogućavanje automatskog ažuriranja;
  • Napomena:
        Единственное с чем у меня возникли сложности, 
        это то, что пришлось еще подтащить файл базы данных 
        в формате sqlite => TV29.db, в котором указывается 
        текущий проигрываемый ТВ канал 
        (так как по умолчанию никакой из каналов не выбран), 
        а через xml конфигурацию в Kodi этого не сделать.
        

detaljniji slijed radnji za svaku stavku:

1) Kliknite na ikonu "zupčanik" u gornjem lijevom kutu ekrana
i odaberite "PVR i TV postavke" (slika TV-a s dvije sirene)
dalje na lijevoj strani izbornika odaberite stavku "Reprodukcija", au središnjem dijelu "Općenito"
na padajućem popisu odaberite "Nastavi od zadnjeg kanala pri pokretanju".
odabirom postavke "Prednji plan".

ili jasnije:

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

2) Kliknite na ikonu "zupčanik" u gornjem lijevom kutu ekrana i odaberite stavku:

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

3) Kliknite na ikonu "zupčanik" u gornjem lijevom kutu ekrana i odaberite stavku:

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

Kako već dvije godine krivo gledam TV.

Moram vam priznati da u dvije godine nisam naučio kako pravilno gledati TV.

Obično gledam TV u kuhinji. Na TV je spojena Raspberry Pi 2B ploča, a na ploču su spojeni Ethernet i HDMI konektori. Ploča se napaja preko običnog USB kabela, koji se utakne u USB port TV-a. zapravo, uključivanje TV-a pomoću standardnog daljinskog upravljača također napaja Raspberry Pi ploču, a isključivanje TV-a s daljinskog upravljača također odmah resetira napajanje iz Raspberry Pi ploče.

Da, svjestan sam da se to ne može učiniti jer korijenski sustav datoteka Kodi multimedijskog centra (ext3) funkcionira u mom normalnom načinu čitanja/pisanja. Ali ja sam lijena osoba i za početak sam odlučio provjeriti koliko dugo treba da se sustav ugasi, dok se uopće ne prestane učitavati, ali nažalost već dvije godine to ne mogu učiniti (možda sam samo imao sreće, ne znam).

I po mom mišljenju, ako je ovaj način prikladan za moj TV, onda je prikladan i za "jednostavni internetski radio zvučnik", a budući da sam prisilno isključio automatsko ažuriranje Kodi dodataka, vjerojatnost kvara datotečnog sustava postat će čak i manje. Zasad ne vidim problem u tome.

Napomena:

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

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

Distribucijski komplet "Internet radio zvučnici" opisan u članku je za kućanstvo, a ono što je najvažnije za kućni distribucijski komplet je lijepo GUI. Po mom mišljenju, vrlo je teško ili gotovo nemoguće naučiti običnog korisnika da ubacuje bilo kakve nerazumljive čarobne naredbe u konzoli, a on čak ne zna niti jednu takvu riječ. A ovdje je GUI, molim.

I ovo je možda moj glavni argument u korist distribucije bez konzole. Kodijev GUI za tople lampe, nije baš potreban, ali je tu.
(Također sam potpuno zaboravio spomenuti da se Kodi može kontrolirati na daljinu, na primjer s pametnog telefona instaliranjem aplikacije Yatse, a možda će nekome to biti plus)

Kodi konfiguracija, za kontrolu mišem

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

Konfiguracija nadjačava globalne događaje za sljedeće elemente:

  • kotačić miša pomicanje naprijed
  • kotačić miša pomicanje unatrag
  • pritiskom srednje tipke miša
  • obrada dugog klika mišem (3 sekunde ili više),
    0 ID desnog gumba, 1 ID lijevog gumba

više informacija o konfiguriranju događaja miša:

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

Što učiniti ako vam kabelski sustav nije došao

“Ali ja kod kuće nemam slobodnih Ethernet priključaka (ili ih nikad nisam imao)”, uzviknut će neki od sretnih vlasnika starih Raspberry Pi 1 ploča (možda je ploča kupljena radi istraživanja i ostala ležati na ormaru)

A budući da na ploči nema ugrađen Wifi, bez Ethernet veze nije baš funkcionalna.

Naravno, mogućnost korištenja Raspberry Pi 1 ploče bez Etherneta postoji, ali to će od vas zahtijevati malo truda. Obično je takve stvari zanimljivo raditi samo u sklopu proučavanja nečeg novog, tj. ovo nije posao po narudžbi.

Dakle, razmotrimo hipotetski slučaj upotrebe za ploču bez Etherneta:

Možete spojiti vanjski USB - Wifi adapter, vođeni razmatranjem
da bi adapter trebao dobro raditi pod Linuxom

Napomena:

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

Ako već imate usb Wifi adapter, možete provjeriti radi li dobro pod Linuxom ovako:

  • Instalirajte neku popularnu distribuciju Linuxa
    opće namjene, kao što je "Ubuntu Desktop"
  • Pokrenite sustav
  • Spojite svoj Wifi USB adapter
  • Pokrenite upravitelj mreže i pokušajte se spojiti na svoju WiFi pristupnu točku
  • Ako sve radi dobro i vaša internetska veza je stabilna, tada je vaš adapter dobro podržan i možete nastaviti s radom na povezivanju ovog adaptera u specijaliziranoj distribuciji i po mogućnosti s drugim verzijama kernela
    (ako ne, onda ne, jao - bolje ni ne pokušavati)

Podrška za vanjski Wifi adapter u "Raspberry PI"

Da bi WiFi adapter ispravno radio u Linuxu: potrebne su nam dvije stvari:
1) Podrška jezgre Linuxa za određeni Wifi adapter
2) Prisutnost u sustavu kernel modula za određeni Wifi adapter

Uzmimo TP-Link TL-WN722N adapter kao primjer. Ima odličnu antenu.
Pronađimo čipset na kojem ploča radi - ja ga imam "AR9271", Bilješka:

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

Pronađimo sada naziv parametra u konfiguraciji kernela koji je odgovoran za upravljački program AR9271 čipseta, najbolje je potražiti kombinaciju riječi "AR9271 cateee.net"
     gdje je "cateee.net" cool stranica koja opisuje konfiguracije modula kernela Linuxa

Odmah nalazimo naziv konfiguracije kernela - CONFIG_ATH9K_HTC
i ime modula jezgre koji nam je potreban ath9k_htc

a zatim samo navedite naziv željenog modula u datoteci konfiguracijskog fragmenta
Linux kernel => recipes-kernel/linux/files/rbpi.cfg, dodajte redak:
CONFIG_ATH9K_HTC=m

Dakle, u budućnosti možete spojiti bilo koju dodatnu opremu na svoj sustav (dobro, ako je, naravno, već podržana u Linux kernelu)

Što učiniti ako ste habra geek – konstruktor

I stvarate najcool stvari poput здесь ili ste student i sanjate o stvaranju nečeg sličnog.

Onda na brzinu, možeš uzeti nekakav Touch Screen ekran za RPI na aliexpressu, tamo naručiti odgovarajuću bateriju, spojiti sve to na Raspberry Pi 1,2 ili 3 ploču (bolje na 3, jer ima ugrađen Wifi), odaberite sučelje teme grafičkog dizajna u Kodiju, dizajnirano za zaslon osjetljiv na dodir i voila => možete dobiti jednostavan audio player. Naravno, bit će prilično glomazan, ali bit će vaš.

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

  Ako vam se odziv Kodi 17.6 GUI-a zbog jedne jezgre procesora u Zero-u čini tajanstvenim, onda možete napraviti fintu svojim ušima i izgraditi stariju, ali vrlo brzu verziju, na primjer Kodi 15.2, više je "prijateljski" u tom smislu (ponekad nasljeđe odlučuje o svemu)

Nažalost, nemam ploču, pa ne mogu provjeriti, ali prema mojim osjećajima trebala bi raditi.

Kratke upute za montažu

    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
    

detaljnije upute za sastavljanje
i snimanje na microSDHC karticu, vidi u prethodnom članku

dodatak pismu

Naravno, ideja rubrike internetskog radija je tipična, svima je poznata i na Habréu ćete naći mnogo članaka na tu temu, npr. здесь

A možda mislite i da sam samo prilagodio zahtjeve za gotovo rješenje. Na ovo mogu uzvratiti i reći ne, iskreno iskreno.

Priča gospodina Erveya

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

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

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

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

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

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

Još vam dobrih i drugačijih sklopova, a neka vam ove godine pjeva i bivša cigla.

Izvor: www.habr.com

Dodajte komentar