A colonna radiu Internet più simplice "Kodi" o a salvezza di u brick "Raspberry".

A colonna radiu Internet più simplice "Kodi" o a salvezza di u brick "Raspberry".

Prerequisiti basi:

  1. Ci hè una vechja scheda Raspberry Pi di prima generazione inutilizata;
  2. U tavulinu si trova nantu à u gabinettu cum'è un pesu mortu è ùn hè micca usatu - u tavulinu "Brick";

Ciò chì mi piacerebbe riceve:

  1. À un certu puntu in u tempu (per esempiu, secondu l'umore)
    u bordu cessà di esse un "Brick", è una carta di memoria magica hè inserita in questu;
  2. Un cable Ethernet è un plug da un parlante di casa regulare o cuffie sò cunnessi à u bordu;
  3. Dopu chì u putere hè appiicatu, l'ex "Brick" - canta

Idea principale:

  1. U numeru minimu di gesti per ogni setup, in u casu più ideale, cunnettamu solu u cable "Ethernet", u putere è i parlanti, è ùn fate nunda di più, da a parolla. "per nunda";
  2. L'anzianu "Brick" fora di a scatula sustene, per esempiu, 20 stazioni di radiu Internet, chì ponu esse cambiate in un cercolu pressu a rota di u mouse o nantu à un pin GPIO specificu (cunnetta dui fili è cortu (u mo sognu da a zitiddina) );
  3. U cuntrollu hè realizatu via un canale di radiu, è questu canale di radiu pò esse un mouse radio regular;
  4. Pigliate un sistema prontu è assemble a distribuzione in u "Progettu Yocto"
    quelli. cum'è di solitu, ùn ti faremu nunda, postu chì tuttu hè digià fattu.
    (hè abbastanza solu per mette un observatore esterno da l'altra parte "TV");

discrizzione

A colonna Radio Internet più simplice "KODI"
L'assemblea hè pensata per i vechji schede Raspberry Pi 1
(cullendu a polvera in qualchì locu nantu à l'armadiu, ma chì sò pronti per fà un pocu di travagliu)

Per automaticamente, a lista m3u8 di 12 stazioni di radiu Internet hè aduprata.

Hè presumitu chì u bordu travaglia senza una uscita HDMI, è per disattivà hè solu bisognu di unplug l'adattatore d'alimentazione da a presa. È cum'è un pannellu di cuntrollu wireless ultra-modernu, pudete aduprà u vostru mouse super radio (o cunnette un grisgiu regulare cù una cuda).

Quandu hè attivata, l'interfaccia di rete predeterminata hè cunfigurata via u protokollu DHCP è l'ultima stazione radio memorizata da a lista hè ghjucata, u voluminu di riproduzione hè cuntrullatu cù un mouse regulare:
(infine designà u vostru mouse cum'è "chief of management", è felicità, si merita)

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

Per aghjunghje a vostra propria lista di stazioni di radiu Internet
pudete sempre cunnette un cable HDMI da a vostra TV
è utilizate l'interfaccia grafica standard di Kodi 17.6
(spegne a scheda, cunnette HDMI è accende l'adattatore di alimentazione)

Menu principale Kodi => "Add-ons" => "I mo add-ons"
          => "PVR Clients" => "PVR IPTV Simple Client"

Implementazione iniziale

(possible)
Inizialmente, quandu aghju decisu di fà una "Colonna di Radio Internet", aghju pianificatu i seguenti:

  • Distribuzione di cunsola minimalista in u Prughjettu Yocto;
  • U flussu audio hè ghjucatu via GStreamer;
  • L'interfaccia di a rete hè cunfigurata via DHCP;

È sta suluzione hà una quantità di vantaghji:

  1. Piuttostu veloce (pigherà 30-40 seconde per ghjunghje à u modu operativu da l'alimentazione);
  2. Piuttostu affidabile (menu prugrammi, menu punti di fallimentu);
  3. Una distribuzione di cunsola hè assai più faciule per cambià à u modu di sola lettura
    quelli. I prugrammi ùn scrivenu nunda à u sistema di fugliale radicali
    (è u sistema di schedari nantu à i media SDHC hè, in u mo scusa, u primu candidatu per fallimentu);

Nutate bè:

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

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

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

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

È un inconveniente principale:

"Deve esse fattu" i.e. Aghju bisognu di passà N numeru di serate
(di solitu dopu à u travagliu, è questu hè u tempu più inefficace, à questu tempu u cervellu ùn pensa più, di solitu dorme)

Eppuru, aghju scrittu u mo articulu precedente nantu à Habré nantu à u centru multimediale Kodi è Yocto prugettu
è l'uppurtunità di cuntinuà in a listessa vina hà soprappiutu u mo impulsu di ricerca. Più nantu à questu in u prossimu capitulu.

Trasformendu Kodi in un parlante di radio Internet

Per aghjunghje a funziunalità chì aghju bisognu, aghju aghjunghje un metudu più à a ricetta per custruisce a distribuzione descritta in u precedente. articulu vede u schedariu 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}
}

I metudi sò destinati à mudificà u sistema di schedarii radicali prima di furmà una maghjina di distribuzione in forma di un schedariu prima, chì hè scrittu à a carta di memoria cù u cumandimu. dd

Questu hè fattu cusì:
ROOTFS_POSTPROCESS_COMMAND += "add_radio_guisettings; off_kodi_welcome;"

In corta, in u schedariu di cunfigurazione principale di Kodi 17.6, "trè punti" cambianu

  • Configurazione per lancià l'ultimu canali TV sceltu;
  • Configurazione di output audio, solu l'output audio analogicu hè sempre cunnessu;
  • Disattivà l'aghjurnamenti automatichi;
  • Nutate bè:
        Единственное с чем у меня возникли сложности, 
        это то, что пришлось еще подтащить файл базы данных 
        в формате sqlite => TV29.db, в котором указывается 
        текущий проигрываемый ТВ канал 
        (так как по умолчанию никакой из каналов не выбран), 
        а через xml конфигурацию в Kodi этого не сделать.
        

una sequenza più dettagliata di l'azzioni per ogni articulu:

1) Cliccate nantu à l'icona di l'ingranaggio in l'angulu superiore manca di u screnu
è selezziunate "Configurazione PVR è TV" (imaghjini di una TV cù duie corne)
dopu à u latu manca di u menù, selezziunate "Playback", è in a sezione centrale "Generale"
selezziunà "Cuntinuà da l'ultimu canale à l'iniziu" in u listinu
scegliendu u paràmetru "Primu pianu".

o più chjaramente:

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

2) Cliccate nantu à l'icona "ingranaggio" in l'angulu superiore manca di u screnu è selezziunate l'elementu:

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

3) Cliccate nantu à l'icona "ingranaggio" in l'angulu superiore manca di u screnu è selezziunate l'elementu:

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

Cumu aghju vistu a TV in modu sbagliatu per dui anni.

Devu cunfessu à voi chì in dui anni ùn aghju micca amparatu à fighjà a TV currettamente.

Di solitu guardu a TV in cucina. Una scheda Raspberry Pi 2B hè cunnessa à a TV, è i connettori Ethernet è HDMI sò cunnessi à u bordu. U tavulinu hè alimentatu per via di un cable USB regulare, chì hè cunnessu à u portu USB di a TV, i.e. in fattu, accende a TV utilizendu u telecomando standard furnisce u putere à u Raspberry Pi board, è spegne a TV da u telecomando ancu immediatamente resetta a putenza da u Raspberry Pi board.

Iè, sò bè ​​cuscente chì questu ùn pò micca esse fattu, perchè u sistema di schedarii radicali di u centru media Kodi (ext3) funziona in modu normale di lettura / scrittura. Ma sò una persona pigra, è prima aghju decisu di verificà quantu tempu puderia disattivà u sistema cusì, finu à ch'ellu hà cessatu di carica completamente, ma sfurtunatamenti, dopu à dui anni ùn aghju mai riesciutu à fà questu (forse era solu furtunatu, Ùn a sò micca ).

È in u mo parè, se stu modu era adattatu per a mo TV, allora saria ancu adattatu per un "semplice parlante di Internet Radio", è postu chì aghju disattivatu per forza l'aghjurnamentu automaticu di i plugins Kodi, a probabilità di un fallimentu di u sistema di fugliale diventerà ancu. menu. Finu a ora ùn vecu micca un prublema cù questu

Nutate bè:

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

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

A distribuzione "parlanti di radio Internet" descritta in l'articulu hè una casa, è ciò chì hè più impurtante per una distribuzione di casa hè una bella GUI. In u mo parè, hè assai difficiule o quasi impussibile d'insignà à un utilizatore ordinariu à inserisce ogni cumanda magica incomprensibile in a cunsola, è ùn cunnosci mancu a parolla. Ma a GUI, per piacè.

È questu hè forse u mo argumentu principale in favore di una distribuzione non-console. L'interfaccia d'utilizatore grafica di lampa calda di Kodi, ùn hè micca veramente necessariu, ma ci hè.
(Aghju ancu scurdatu cumplettamente di mencionà chì Kodi pò esse cuntrullatu remotamente, per esempiu da un smartphone, installendu l'applicazione Yatse, è forsi per alcuni questu serà un plus)

Configurazione Kodi per u cuntrollu di u mouse

è avà 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>

A cunfigurazione annulla l'avvenimenti globale per i seguenti elementi:

  • scorri a rotella di u mouse in avanti
  • scorri a rota di u mouse in daretu
  • clicchendu u buttone medio di u mouse
  • processà clics longu di u mouse (3 seconde o più),
    0 ID di u buttone destra, 1 ID di u buttone di manca

Informazioni più dettagliate nantu à a configurazione di l'eventi di u mouse:

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

Cosa da fà se u sistema di cable ùn ghjunghje micca à voi

"Ma ùn aghju micca porti Ethernet gratuiti in casa (o mai avè)", alcuni di i felici pruprietarii di vechji schede Raspberry Pi 1 ponu esclamà (forse a tavula hè stata compru per a ricerca è hè stata stendu nantu à l'armadiu)

E postu chì u bordu ùn hà micca Wifi integratu, ùn hè micca assai funziunale senza una cunnessione Ethernet.

Di sicuru, hè pussibule di utilizà u Raspberry Pi 1 bordu senza Ethernet, ma hà bisognu di qualchì sforzu da a vostra parte. Di solitu, tali cose sò interessanti per fà solu cum'è parte di l'amparà qualcosa di novu, i.e. Questu ùn hè micca un travagliu persunalizatu.

Dunque, cunsideremu un casu d'usu ipoteticu per una scheda senza Ethernet:

Pudete cunnette un USB esternu - adattatore Wifi, guidatu da a considerazione
chì l'adattatore deve travaglià bè sottu Linux

Nutate bè:

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

Sè avete digià un adattatore USB Wifi, pudete verificà s'ellu funziona bè sottu Linux cum'è seguente:

  • Installa una distribuzione Linux largamente usata
    scopu generale, per esempiu "Ubuntu Desktop"
  • Boot u sistema
  • Cunnette u vostru adattatore USB Wifi
  • Lanciate u gestore di rete è pruvate à cunnette cù u vostru puntu d'accessu WiFi
  • Se tuttu funziona bè è a vostra cunnessione Internet hè stabile, allora u vostru adattatore hè ben supportatu è pudete cuntinuà u vostru travagliu per cunnette stu adattatore in una distribuzione specializata è possibbilmente cù altre versioni di u kernel.
    (se no, allora no, ahimè, hè megliu ùn pruvà ancu)

Supportu per l'adattatore Wifi esternu in Raspberry PI

Per chì l'adattatore WiFi funziona bè in Linux, avemu bisognu di duie cose:
1) Supportu di kernel Linux per adattatore Wifi specificu
2) A prisenza di un modulu di kernel in u sistema per un adattatore Wifi specificu

Pigliate per esempiu l'adattatore TP-Link TL-WN722N. Havi una antenna simpliciamente magnifica.
Truvemu u chipset nantu à quale u bordu travaglia - per mè hè "AR9271", nota:

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

Avà truvamu u nome di u paràmetru in a cunfigurazione di u kernel rispunsevuli di u driver di chipset AR9271, hè megliu cercà a cumminazzioni di e parolle "AR9271 catee.net"
     induve "cateee.net" hè un situ cool chì descrive cunfigurazioni di moduli di kernel Linux

Truvemu immediatamente u nome di a cunfigurazione di u kernel - CONFIG_ATH9K_HTC
è u nome di u modulu di u kernel avemu bisognu ath9k_htc

è dopu solu specificà u nome di u modulu desideratu in u schedariu di frammentu di cunfigurazione
Linux kernel => recipes-kernel/linux/files/rbpi.cfg, aghjunghje a linea:
CONFIG_ATH9K_HTC=m

Cusì, in u futuru pudete cunnette qualsiasi equipamentu supplementu à u vostru sistema (bene, sicuru, s'ellu hè digià supportatu in u kernel Linux)

Cosa da fà sè site un habra geek - designer

E crea e cose più cool, cum'è ccà o sì un studiente è sognu di creà qualcosa simili.

Appena, pudete piglià un tipu di schermu Touch Screen per RPI in aliexpress, cumanda una batteria adatta quì, cunnette tuttu à una scheda Raspberry Pi 1,2 o 3 (preferibilmente 3, postu chì hà Wifi integratu), selezziunate una interfaccia di tema di cuncepimentu graficu in Kodi, pensata per una schermu tattile è voilà => pudete uttene un lettore audio simplice. Di sicuru, serà abbastanza voluminosa, ma serà u vostru.

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

  Se a risposta GUI di Kodi 17.6
  per via di u core unicu processore in Zero penserete
  misteriosu, allora pudete finta cù l'arechje è coglie un vechju,
  ma una versione assai veloce, per esempiu Kodi 15.2, hè più
  "amichevule" (a volte l'eredità risolve tuttu)

Sfurtunatamente, ùn aghju micca u bordu, perchè ùn possu micca verificà, ma mi sentu chì deve travaglià.

Brevi Istruzzioni di Assemblea

    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
    

istruzioni di assemblaggio più dettagliate
è arregistramentu nantu à una carta microSDHC, vede in un articulu precedente

Postscript

Di sicuru, l'idea di un parlante di radio Internet hè tipica, ognunu a sà è nantu à Habré truverete assai articuli nantu à questu sughjettu, per esempiu ccà

È pudete ancu pensà chì aghju solu adattatu i bisogni à una suluzione pronta. À questu possu contru è dì chì no, onestamente.

A storia di u sgiò Ervey

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

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

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

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

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

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

Più assemblee boni è diverse per voi, è chì ancu l'anzianu brick canti per voi quist'annu.

Source: www.habr.com

Add a comment