Vienkāršākā interneta radio rubrika "Kodi" jeb "Aveņu" ķieģeļa glābiņš

Vienkāršākā interneta radio rubrika "Kodi" jeb "Aveņu" ķieģeļa glābiņš

Pamatnosacījumi:

  1. Ir vecs neizmantots pirmās paaudzes Raspberry Pi dēlis;
  2. Dēlis guļ uz skapja kā pašsvars un netiek izmantots - dēlis “Ķieģelis”;

Ko es vēlētos saņemt:

  1. Noteiktā laika brīdī (piemēram, pēc garastāvokļa)
    dēlis pārstāj būt “ķieģelis”, un tajā tiek ievietota maģiska atmiņas karte;
  2. Pie tāfeles ir pievienots Ethernet kabelis un parastā mājsaimniecības skaļruņa vai austiņu spraudnis;
  3. Pēc strāvas padeves bijušais “ķieģelis” - dzied

Galvenā doma:

  1. Minimālais žestu skaits jebkurai iestatīšanai, ideālākā gadījumā mēs pievienojam tikai “Ethernet” kabeli, strāvu un skaļruņus un nedarām neko citu, sākot no vārda. "pavisam";
  2. Bijusī “Brick” no kastes atbalsta, piemēram, 20 interneta radiostacijas, kuras var pārslēgt pa apli, nospiežot peles ritenīti vai uz konkrētas GPIO tapas (savienojiet divus vadus un saīsiniet tos (mans sapnis kopš bērnības) );
  3. Vadība tiek veikta, izmantojot radio kanālu, un šis radio kanāls var būt parasta radio pele;
  4. Paņemiet gatavu sistēmu un salieciet izplatīšanu "Yocto Project"
    tie. kā parasti, mēs jums neko nedarīsim, jo ​​viss jau ir izdarīts.
    (pietiek tikai novietot ārēju novērotāju otrā pusē "TV");

Apraksts

Vienkāršākā interneta radio rubrika “KODI”
Montāža ir paredzēta vecākiem Raspberry Pi 1 dēļiem
(vāc putekļus kaut kur uz skapja, bet kuri ir gatavi darīt vēl kādu darbu)

Pēc noklusējuma tiek izmantots 3 interneta radio staciju saraksts m8u12.

Tiek pieņemts, ka plate darbojas bez HDMI izejas, un, lai to izslēgtu, jums vienkārši jāatvieno strāvas adapteris no kontaktligzdas. Un kā īpaši modernu bezvadu vadības paneli varat izmantot savu super radio peli (vai pievienot parasto pelēko peli ar asti).

Kad tas ir ieslēgts, noklusējuma tīkla interfeiss tiek konfigurēts, izmantojot DHCP protokolu, un tiek atskaņota pēdējā iegaumētā radiostacija no saraksta, atskaņošanas skaļums tiek kontrolēts ar parasto peli:
(beidzot ieceliet peli par "vadības vadītāju" un apsveiciet to, tas ir to pelnījis)

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

Lai pievienotu savu interneta radio staciju sarakstu
vienmēr varat pievienot televizoram HDMI kabeli
un izmantojiet Kodi 17.6 standarta grafisko interfeisu
(izslēdziet plati, pievienojiet HDMI un ieslēdziet strāvas adapteri)

Kodi galvenā izvēlne => “Papildinājumi” => “Mani papildinājumi”
          => “PVR klienti” => “PVR IPTV vienkāršais klients”

Sākotnējā ieviešana

(iespējams)
Sākotnēji, kad nolēmu izveidot “Interneta radio kolonnu”, es plānoju sekojošo:

  • Minimālisma konsoļu izplatīšana Yocto projektā;
  • Audio straume tiek atskaņota, izmantojot GStreamer;
  • Tīkla interfeiss ir konfigurēts, izmantojot DHCP;

Un šim risinājumam ir vairākas priekšrocības:

  1. Diezgan ātri (no barošanas avota darbības režīma sasniegšanai nepieciešamas 30-40 sekundes);
  2. Diezgan uzticams (mazāk programmu, mazāk atteices punktu);
  3. Konsoles izplatīšanu ir daudz vieglāk pārslēgt uz tikai lasīšanas režīmu
    tie. programmas saknes failu sistēmā neko neieraksta
    (un failu sistēma SDHC datu nesējā, manuprāt, ir pirmais neveiksmes kandidāts);

Piezīme:

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

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

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

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

Un viens galvenais trūkums:

“Tas ir jādara”, t.i. Man jāpavada N skaits vakaru
(parasti pēc darba, un šis ir visneefektīvākais laiks, šajā laikā smadzenes vairs nedomā, parasti guļ)

Un tomēr es uzrakstīju savu iepriekšējo rakstu vietnē Habré par multivides centru Kodi un Yocto projekts
un iespēja turpināt tādā pašā veidā pārspēja manu pētniecības impulsu. Vairāk par to nākamajā nodaļā.

Kodi pārvēršana par interneta radio skaļruni

Lai pievienotu man nepieciešamo funkcionalitāti, iepriekšējā aprakstītajai izplatīšanas veidošanas receptei pievienošu vēl vienu metodi raksts skatiet failu 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}
}

Metodes ir paredzētas saknes failu sistēmas modificēšanai pirms izplatīšanas attēla izveidošanas viena neapstrādāta faila veidā, kas tiek ierakstīts atmiņas kartē ar komandu dd

Tas tiek darīts šādā veidā:
ROOTFS_POSTPROCESS_COMMAND += "add_radio_guisettings; off_kodi_welcome;"

Īsāk sakot, Kodi 17.6 galvenajā konfigurācijas failā mainās “trīs punkti”.

  • Konfigurācija pēdējā atlasītā TV kanāla palaišanai;
  • Audio izvades konfigurācija, vienmēr ir pievienota tikai analogā audio izeja;
  • Atspējot automātiskos atjauninājumus;
  • Piezīme:
        Единственное с чем у меня возникли сложности, 
        это то, что пришлось еще подтащить файл базы данных 
        в формате sqlite => TV29.db, в котором указывается 
        текущий проигрываемый ТВ канал 
        (так как по умолчанию никакой из каналов не выбран), 
        а через xml конфигурацию в Kodi этого не сделать.
        

detalizētāka darbību secība katram vienumam:

1) Noklikšķiniet uz zobrata ikonas ekrāna augšējā kreisajā stūrī
un atlasiet “PVR un TV iestatījumi” (televizora attēls ar diviem ragiem)
pēc tam izvēlnes kreisajā pusē atlasiet “Atskaņošana” un centrālajā sadaļā “Vispārīgi”
nolaižamajā sarakstā atlasiet “Turpināt no pēdējā kanāla startēšanas laikā”.
izvēloties iestatījumu "Priekšplāns".

vai skaidrāk:

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

2) Noklikšķiniet uz zobrata ikonas ekrāna augšējā kreisajā stūrī un atlasiet vienumu:

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

3) Noklikšķiniet uz zobrata ikonas ekrāna augšējā kreisajā stūrī un atlasiet vienumu:

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

Kā es divus gadus skatos televizoru nepareizi.

Man jums jāatzīst, ka divu gadu laikā es joprojām neesmu iemācījies pareizi skatīties TV.

Es parasti skatos televizoru virtuvē. Televizoram ir pievienota Raspberry Pi 2B plate, un platei ir pievienoti Ethernet un HDMI savienotāji. Plāksne tiek barota ar parastu USB kabeli, kas tiek pievienots televizora USB portam, t.i. patiesībā, ieslēdzot televizoru, izmantojot standarta tālvadības pulti, tiek nodrošināta strāva Raspberry Pi platei, un, izslēdzot televizoru no tālvadības pults, tiek nekavējoties atiestatīta barošana no Raspberry Pi plates.

Jā, es labi apzinos, ka to nevar izdarīt, jo Kodi multivides centra saknes failu sistēma (ext3) darbojas parastā lasīšanas/rakstīšanas režīmā. Bet es esmu slinks cilvēks, un vispirms nolēmu pārbaudīt, cik ilgi es varu šādi izslēgt sistēmu, līdz tā pilnībā pārtrauca ielādi, bet diemžēl pēc diviem gadiem man tas nekad neizdevās (varbūt man vienkārši paveicās, Es nezinu).

Un, manuprāt, ja šis režīms būtu piemērots manam televizoram, tad tas būtu piemērots arī “vienkāršam interneta radio skaļrunim”, un, tā kā es piespiedu kārtā atspējoju Kodi spraudņu automātisko atjaunināšanu, failu sistēmas kļūmes iespējamība kļūs vienmērīga. mazāk. Pagaidām es neredzu šajā jautājumā problēmu

Piezīme:

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

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

Rakstā aprakstītais “Interneta radio skaļruņu” sadalījums ir mājsaimniecības izplatīšana, un vissvarīgākais mājsaimniecības izplatīšanai ir skaists GUI. Manuprāt, ir ļoti grūti vai gandrīz neiespējami iemācīt parastam lietotājam ievadīt konsolē nesaprotamas burvju komandas, un viņš pat nezina vārdu. Bet GUI, lūdzu.

Un tas, iespējams, ir mans galvenais arguments par labu izplatīšanai, kas nav konsoles. Kodi siltās lampas grafiskais lietotāja interfeiss, tas nav īsti vajadzīgs, bet tas ir.
(Es arī pilnībā aizmirsu pieminēt, ka Kodi var vadīt attālināti, piemēram, no viedtālruņa, instalējot Yatse aplikāciju, un, iespējams, kādam tas būs pluss)

Kodi konfigurācija peles vadībai

un tagad Raķete

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

Konfigurācija ignorē globālos notikumus šādiem elementiem:

  • ritiniet peles ritenīti uz priekšu
  • ritiniet peles ritenīti atpakaļ
  • noklikšķinot uz peles vidējās pogas
  • apstrādājot ilgus peles klikšķus (3 sekundes vai vairāk),
    0 labās pogas ID, 1 kreisās pogas ID

Sīkāka informācija par peles notikumu iestatīšanu:

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

Ko darīt, ja kabeļu sistēma pie jums nenonāk

"Bet man mājās nav neviena bezmaksas Ethernet pieslēgvieta (vai arī nekad nav)," daži no laimīgajiem veco Raspberry Pi 1 dēļu īpašniekiem var iesaukties (iespējams, plate tika nopirkta izpētei un palika guļot uz skapja).

Un tā kā platei nav iebūvēta Wifi, tad bez Ethernet savienojuma tas nav īpaši funkcionāls.

Protams, ir iespējams izmantot Raspberry Pi 1 plati bez Ethernet, taču tas prasīs zināmas pūles no jūsu puses. Parasti šādas lietas ir interesanti darīt tikai kaut kā jauna apguves ietvaros, t.i. Tas nav pasūtījuma darbs.

Tātad, aplūkosim hipotētisku paneļa bez Ethernet lietošanas gadījumu:

Varat pievienot ārējo USB - Wifi adapteri, vadoties pēc apsvērumiem
ka adapterim vajadzētu labi darboties operētājsistēmā Linux

Piezīme:

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

Ja jums jau ir USB Wifi adapteris, varat pārbaudīt, vai tas labi darbojas operētājsistēmā Linux, kā norādīts tālāk.

  • Instalējiet kādu plaši izmantotu Linux izplatīšanu
    vispārējs mērķis, piemēram, "Ubuntu Desktop"
  • Sāknējiet sistēmu
  • Pievienojiet Wi-Fi usb adapteri
  • Palaidiet tīkla pārvaldnieku un mēģiniet izveidot savienojumu ar savu WiFi piekļuves punktu
  • Ja viss darbojas labi un jūsu interneta savienojums ir stabils, tad jūsu adapteris ir labi atbalstīts un jūs varat turpināt darbu pie šī adaptera pievienošanas specializētā izplatīšanā un, iespējams, ar citām kodola versijām.
    (ja nē, tad nē, diemžēl, labāk pat nemēģināt)

Atbalsts ārējam Wifi adapterim Raspberry PI

Lai WiFi adapteris pareizi darbotos operētājsistēmā Linux, mums ir nepieciešamas divas lietas:
1) Linux kodola atbalsts noteiktam Wifi adapterim
2) Kodola moduļa klātbūtne sistēmā konkrētam Wifi adapterim

Ņemiet, piemēram, TP-Link TL-WN722N adapteri. Tam ir vienkārši lieliska antena.
Atradīsim mikroshēmu, uz kuras darbojas plate - man tas ir "AR9271", Piezīme:

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

Tagad atradīsim parametra nosaukumu kodola konfigurācijā, kas atbild par AR9271 mikroshēmojuma draiveri, vislabāk ir meklēt vārdu kombināciju “AR9271 catee.net”.
     kur "cateee.net" ir lieliska vietne, kurā aprakstītas Linux kodola moduļu konfigurācijas

Mēs nekavējoties atrodam kodola konfigurācijas nosaukumu - CONFIG_ATH9K_HTC
un mums nepieciešamā kodola moduļa nosaukums ath9k_htc

un pēc tam vienkārši norādiet vajadzīgā moduļa nosaukumu konfigurācijas fragmenta failā
Linux kodols => receptes-kernel/linux/files/rbpi.cfg, pievienojiet rindu:
CONFIG_ATH9K_HTC=m

Tādējādi nākotnē jūs varat pievienot savai sistēmai jebkuru papildu aprīkojumu (nu, protams, ja tas jau tiek atbalstīts Linux kodolā)

Ko darīt, ja esat habra geek - dizainers

Un jūs veidojat stilīgākās lietas, piemēram, šeit vai arī esat students un sapņojat izveidot ko līdzīgu.

Vienkārši varat paņemt kādu skārienekrāna ekrānu RPI aliexpress, pasūtīt tur piemērotu akumulatoru, savienot to visu ar Raspberry Pi 1,2, 3 vai 3 plati (vēlams XNUMX, jo tajā ir iebūvēts Wifi), atlasiet grafiskā dizaina motīva saskarne Kodi, kas paredzēta skārienekrānam, un voila => jūs varat iegūt vienkāršu audio atskaņotāju. Protams, tas būs diezgan apjomīgs, bet tas būs jūsu.

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

  Ja GUI Kodi 17.6 atsaucība nulles viena procesora kodola dēļ jums šķiet noslēpumaina, tad varat apmānīt ausis un izveidot vecāku, bet ļoti ātru versiju, piemēram, Kodi 15.2, tā šajā ziņā ir “draudzīgāka”. (dažreiz mantojums atrisina visu)

Diemžēl man nav tāfeles, tāpēc es nevaru pārbaudīt, bet man šķiet, ka tam vajadzētu darboties.

Īsas montāžas instrukcijas

    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
    

detalizētākas montāžas instrukcijas
un ierakstīšanu microSDHC kartē, sk iepriekšējā rakstā

Postskripts

Protams, interneta radio skaļruņa ideja ir raksturīga, visi to zina, un vietnē Habré jūs atradīsit daudzus rakstus par šo tēmu, piemēram, šeit

Un jūs varat arī domāt, ka es vienkārši pielāgoju prasības gatavam risinājumam. Tam es varu pretoties un teikt, ka nē, godīgi.

Erveja kunga stāsts

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

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

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

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

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

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

Vairāk jums labu un dažādu komplektāciju, un lai jums šogad dzied pat bijušais ķieģelis.

Avots: www.habr.com

Pievieno komentāru