Најједноставнија интернет радио рубрика "Коди" или спас цигле "Малина".

Најједноставнија интернет радио рубрика "Коди" или спас цигле "Малина".

Основни предуслови:

  1. Постоји стара некоришћена плоча прве генерације Распберри Пи;
  2. Плоча лежи на ормарићу као терет и не користи се - „Брицк“ плоча;

Шта бих желео да добијем:

  1. У одређеном тренутку (на пример, према расположењу)
    плоча престаје да буде „цигла“, а у њу се убацује магична меморијска картица;
  2. Етернет кабл и утикач из обичног кућног звучника или слушалица су повезани на плочу;
  3. Након примене струје, бивша „цигла“ - пева

Главна идеја:

  1. Минимални број покрета за било које подешавање, у најидеалнијем случају, повезујемо само „Етернет“ кабл, напајање и звучнике, и ништа друго, од речи "уопште";
  2. Бивша „цигла“ из кутије подржава, на пример, 20 интернет радио станица, које се могу пребацивати у круг притиском на точкић миша или на одређени ГПИО пин (споји две жице и кратко их (мој сан од детињства) );
  3. Контрола се врши преко радио канала, а овај радио канал може бити обичан радио миш;
  4. Узмите готов систем и саставите дистрибуцију у „Пројекат Иоцто“
    оне. као и обично, нећемо вам ништа, пошто је све већ урађено.
    (довољно је само поставити спољног посматрача на другу страну "ТВ");

Опис

Најједноставнија рубрика Интернет радија “КОДИ”
Склоп је дизајниран за старије Распберри Пи 1 плоче
(скупљају прашину негде на орману, али који су спремни да ураде још неки посао)

Подразумевано се користи м3у8 листа од 12 Интернет радио станица.

Претпоставља се да плоча ради без ХДМИ излаза, а да бисте је искључили потребно је само да искључите адаптер за напајање из утичнице. И као ултра модеран бежични контролни панел, можете да користите свој супер радио миш (или да повежете обичан сиви са репом).

Када је укључен, подразумевани мрежни интерфејс се конфигурише преко ДХЦП протокола и пушта се последња меморисана радио станица са листе, јачина репродукције се контролише обичним мишем:
(коначно поставите свог миша за „шефа управе“, и честитајте му, заслужује то)

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

Да додате своју листу интернет радио станица
увек можете да повежете ХДМИ кабл са ТВ-а
и користите стандардни графички интерфејс Коди 17.6
(искључите плочу, повежите ХДМИ и укључите адаптер за напајање)

Главни мени Коди => “Додаци” => “Моји додаци”
          => “ПВР клијенти” => “ПВР ИПТВ једноставан клијент”

Почетна имплементација

(могуће)
У почетку, када сам одлучио да направим „Колону за Интернет радио“, планирао сам следеће:

  • Минималистичка дистрибуција конзола у Иоцто пројекту;
  • Аудио ток се репродукује преко ГСтреамер-а;
  • Мрежни интерфејс је конфигурисан преко ДХЦП-а;

И ово решење има низ предности:

  1. Прилично брзо (потребно је 30-40 секунди да се дође до режима рада из напајања);
  2. Прилично поуздан (мање програма, мање тачака квара);
  3. Дистрибуцију конзоле је много лакше пребацити у режим само за читање
    оне. програми не уписују ништа у основни систем датотека
    (а систем датотека на СДХЦ медију је, по мом мишљењу, први кандидат за неуспех);

Напомена:

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

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

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

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

И један главни недостатак:

„То мора да се уради“, тј. Морам да проведем Н број вечери
(обично после посла, а ово је најнеефикасније време, у то време мозак више не размишља, обично спава)

Па ипак, написао сам свој претходни чланак на Хабреу о мултимедијалном центру Коди и Иоцто пројекат
а прилика да наставим у истом тону надјачала је мој истраживачки импулс. Више о томе у следећем поглављу.

Претварање Кодија у звучник за интернет радио

Да бих додао функционалност која ми је потребна, додаћу још један метод у рецепт за изградњу дистрибуције описан у претходном Чланак погледајте датотеку берсерк-имаге.бб

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

Методе су намењене за модификацију основног система датотека пре формирања дистрибутивне слике у облику једне необрађене датотеке, која се уписује на меморијску картицу командом dd

Ово се ради на овај начин:
РООТФС_ПОСТПРОЦЕСС_ЦОММАНД += "адд_радио_гуисеттингс; офф_коди_велцоме;"

Укратко, у главној конфигурационој датотеци Коди 17.6 мењају се „три тачке“.

  • Конфигурација за покретање последњег изабраног ТВ канала;
  • Конфигурација аудио излаза, увек је повезан само аналогни аудио излаз;
  • Онемогућите аутоматска ажурирања;
  • Напомена:
        Единственное с чем у меня возникли сложности, 
        это то, что пришлось еще подтащить файл базы данных 
        в формате sqlite => TV29.db, в котором указывается 
        текущий проигрываемый ТВ канал 
        (так как по умолчанию никакой из каналов не выбран), 
        а через xml конфигурацию в Kodi этого не сделать.
        

детаљнији редослед радњи за сваку ставку:

1) Кликните на икону зупчаника у горњем левом углу екрана
и изаберите „ПВР и ТВ подешавања“ (слика телевизора са два сирена)
затим на левој страни менија изаберите „Репродукција“, а у централном делу „Опште“
изаберите „Настави са последњег канала при покретању“ у падајућој листи
одабиром поставке „Предњи план“.

или јасније:

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

2) Кликните на икону „зупчаника“ у горњем левом углу екрана и изаберите ставку:

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

3) Кликните на икону „зупчаника“ у горњем левом углу екрана и изаберите ставку:

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

Како сам две године на погрешан начин гледао ТВ.

Морам да вам признам да за две године још увек нисам научио како да правилно гледам ТВ.

Обично гледам ТВ у кухињи. Распберри Пи 2Б плоча је повезана са телевизором, а Етхернет и ХДМИ конектори су повезани на плочу. Плоча се напаја преко обичног УСБ кабла, који се прикључује на УСБ порт телевизора, тј. у ствари, укључивање телевизора помоћу стандардног даљинског управљача напаја Распберри Пи плочу, а искључивање телевизора са даљинског управљача такође одмах ресетује напајање са Распберри Пи плоче.

Да, добро сам свестан да то не може да се уради, јер основни систем датотека Коди медија центра (ект3) функционише у нормалном режиму читања/писања. Али ја сам лењ и прво сам одлучио да проверим колико дуго могу овако да гасим систем, док потпуно не престане да се учитава, али нажалост, после две године никада нисам успео да урадим ово (можда сам само имао среће, Не знам ).

И по мом мишљењу, ако би овај режим био прикладан за мој ТВ, онда би био прикладан и за „једноставан интернет радио звучник“, а пошто сам насилно онемогућио аутоматско ажурирање Коди додатака, вероватноћа квара система датотека ће се изједначити мање. За сада не видим проблем у овоме

Напомена:

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

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

Дистрибуција „Интернет радио звучници“ описана у чланку је дистрибуција за домаћинство, а оно што је најважније за дистрибуцију у домаћинству је прелеп ГУИ. По мом мишљењу, веома је тешко или готово немогуће научити обичног корисника да унесе било какве неразумљиве магичне команде у конзолу, а он ни реч не зна. Али ГУИ, молим.

И ово је можда мој главни аргумент у корист дистрибуције без конзоле. Графички кориснички интерфејс Коди-ја са топлом лампом, није баш потребан, али је ту.
(Такође сам потпуно заборавио да напоменем да се Коди може контролисати даљински, на пример са паметног телефона, инсталирањем Иатсе апликације, а можда ће за неке ово бити плус)

Коди конфигурација за контролу миша

а сада и Ракета

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

Конфигурација замењује глобалне догађаје за следеће елементе:

  • померите точкић миша напред
  • точкић миша за померање уназад
  • кликом на средњи тастер миша
  • обрада дугих кликова мишем (3 секунде или више),
    0 ИД десног дугмета, 1 ИД левог дугмета

Детаљније информације о подешавању догађаја миша:

коди.вики/виев/Алтернативе_кеимапс_фор_мице
коди.вики/виев/Ацтион_ИДс
коди.вики/виев/Виндов_ИДс

Шта учинити ако вам кабловски систем не стигне

„Али ја немам слободне Етхернет портове код куће (или их никад немам)“, можда ће узвикнути неки од срећних власника старих Распберри Пи 1 плоча (можда је плоча купљена за истраживање и остала да лежи на ормарићу)

А пошто плоча нема уграђен Ви-Фи, није баш функционална без Етхернет везе.

Наравно, могуће је користити Распберри Пи 1 плочу без Етхернета, али то ће захтевати одређени напор са ваше стране. Обично је такве ствари занимљиво радити само у склопу учења нечег новог, тј. Ово није рад по наруџби.

Дакле, хајде да размотримо хипотетички случај употребе за плочу без Етхернета:

Можете да повежете екстерни УСБ - Вифи адаптер, водећи се разматрањем
да адаптер треба добро да ради под Линуком

Напомена:

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

Ако већ имате УСБ Вифи адаптер, можете проверити да ли добро ради под Линуком на следећи начин:

  • Инсталирајте неку широко коришћену дистрибуцију Линука
    опште намене, на пример „Убунту Десктоп“
  • Покрените систем
  • Повежите свој Ви-Фи УСБ адаптер
  • Покрените менаџер мреже и покушајте да се повежете на своју ВиФи приступну тачку
  • Ако све ради добро и ваша интернет веза је стабилна, онда је ваш адаптер добро подржан и можете да наставите са радом на повезивању овог адаптера у специјализованој дистрибуцији и евентуално са другим верзијама кернела
    (ако не, онда не, авај, боље је ни не покушавати)

Подршка за екстерни Ви-Фи адаптер у Распберри ПИ

Да би ВиФи адаптер исправно радио у Линуку, потребне су нам две ствари:
1) Подршка за Линук кернел за одређени Вифи адаптер
2) Присуство модула кернела у систему за одређени Вифи адаптер

Узмимо на пример адаптер ТП-Линк ТЛ-ВН722Н. Има једноставно величанствену антену.
Хајде да пронађемо чипсет на којем плоча ради - за мене је то "АР9271", Белешка:

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

Хајде сада да пронађемо име параметра у конфигурацији кернела одговорног за АР9271 драјвер чипсета, најбоље је потражити комбинацију речи „АР9271 цатее.нет“
     где је "цатеее.нет" кул сајт који описује конфигурације модула Линук кернела

Одмах налазимо назив конфигурације кернела - ЦОНФИГ_АТХ9К_ХТЦ
и назив модула кернела који нам је потребан атх9к_хтц

а затим само наведите име жељеног модула у датотеци фрагмента конфигурације
Линук кернел => реципес-кернел/линук/филес/рбпи.цфг, додајте ред:
ЦОНФИГ_АТХ9К_ХТЦ=м

Дакле, у будућности можете да повежете било коју додатну опрему на свој систем (па, наравно, ако је већ подржана у Линук кернелу)

Шта да радите ако сте хабра штребер - дизајнер

И стварате најслађе ствари, као нпр овде или сте студент и сањате да створите нешто слично.

Напросто, можете узети неку врсту екрана осетљивог на додир за РПИ на алиекпресс-у, наручити одговарајућу батерију тамо, повезати све то на Распберри Пи 1,2 или 3 плочу (пожељно 3, пошто има уграђен Ви-Фи), изаберите интерфејс теме графичког дизајна у Кодију, дизајниран за екран осетљив на додир и воила => можете добити једноставан аудио плејер. Наравно да ће бити прилично гломазан, али ће бити ваш.

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

  Ако вам се одзив ГУИ Коди 17.6 због једног процесорског језгра у Зеро чини мистериозан, онда можете преварити своје уши и направити старију, али веома брзу верзију, на пример Коди 15.2, у том погледу је „пријатељскији“ (понекад наслеђе решава све)

Нажалост, немам плочу, па не могу да проверим, али осећам да би требало да функционише.

Кратка упутства за монтажу

    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
    

детаљније упутство за монтажу
и снимање на мицроСДХЦ картицу, види у претходном чланку

пс.

Наравно, идеја о звучнику за интернет радио је типична, сви то знају и на Хабреу ћете наћи много чланака о овој теми, нпр. овде

И можда мислите да сам једноставно прилагодио захтеве готовом решењу. На ово могу да се супротставим и кажем да не, искрено.

Прича господина Ервија

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

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

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

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

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

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

Још вам добрих и другачијих сабора, и нека вам ове године пева и бивша цигла.

Извор: ввв.хабр.цом

Додај коментар