La plej simpla interreta radiokolumno "Kodi" aŭ la savo de la briko "Frambo".

La plej simpla interreta radiokolumno "Kodi" aŭ la savo de la briko "Frambo".

Bazaj antaŭkondiĉoj:

  1. Estas malnova neuzata unua generacio Raspberry Pi-tabulo;
  2. La tabulo kuŝas sur la kabineto kiel morta pezo kaj ne estas uzata - la tabulo "Brika";

Kion mi ŝatus ricevi:

  1. Je certa momento (ekzemple laŭ humoro)
    la tabulo ĉesas esti "Briko", kaj magia memorkarto estas enigita en ĝi;
  2. Ethernet-kablo kaj ŝtopilo de regula hejma laŭtparolilo aŭ aŭdiloj estas konektitaj al la tabulo;
  3. Post kiam potenco estas aplikata, la antaŭa "Briko" - kantas

Ĉefa ideo:

  1. La minimuma nombro da gestoj por ajna aranĝo, en la plej ideala kazo, ni konektas nur la "Ethernet" kablon, potencon kaj laŭtparolilojn, kaj faras nenion alian, de la vorto "entute";
  2. La antaŭa "Briko" el la skatolo subtenas, ekzemple, 20 Interretajn radiostaciojn, kiuj povas esti ŝanĝitaj ronde premante la musradon aŭ sur specifa GPIO-stifto (konektu du dratojn kaj mallongigu ilin (mia revo ekde infanaĝo) );
  3. Kontrolo estas farita per radiokanalo, kaj ĉi tiu radiokanalo povas esti regula radiomuso;
  4. Prenu pretan sistemon kaj kunigu la distribuon en la "Projekto Yocto"
    tiuj. kiel kutime, ni nenion faros al vi, ĉar ĉio jam estas farita.
    (Sufiĉas nur meti eksteran observanton ĉe la alia flanko "televido");

Priskribo

La plej simpla Interreta Radio-kolumno "KODI"
La aro estas desegnita por pli malnovaj Raspberry Pi 1-tabuloj
(kolektante polvon ie sur la ŝranko, sed kiuj pretas fari iom da laboro)

Defaŭlte, la m3u8 listo de 12 Interretaj radiostacioj estas uzata.

Oni supozas, ke la tabulo funkcias sen HDMI-eligo, kaj por malŝalti ĝin, vi nur bezonas malkonekti la elektran adaptilon de la ellasejo. Kaj kiel ultramoderna sendrata kontrolpanelo, vi povas uzi vian superradian muson (aŭ konekti ordinaran grizan per vosto).

Kiam ĝi estas ŝaltita, la defaŭlta retinterfaco estas agordita per la DHCP-protokolo kaj la lasta parkerigita radiostacio de la listo estas ludata, la reprodukta volumo estas regata per regula muso:
(Fine nomumu vian muson kiel "ĉefo de administrado", kaj gratulu ĝin, ĝi meritas ĝin)

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

Por aldoni vian propran liston de interretaj radiostacioj
vi ĉiam povas konekti HDMI-kablon de via televidilo
kaj uzu la norman grafikan interfacon de Kodi 17.6
(malŝaltu la tabulon, konektu HDMI kaj ŝaltu la elektran adaptilon)

Kodi ĉefa menuo => "Aldonaĵoj" => "Miaj aldonaĵoj"
          => "PVR Klientoj" => "PVR IPTV Simpla Kliento"

Komenca efektivigo

(ebla)
Komence, kiam mi decidis fari "Kolumnon de Interreta Radio", mi planis la jenon:

  • Minimuma konzola distribuo en la Projekto Yocto;
  • La aŭda fluo estas ludata per GStreamer;
  • La reto-interfaco estas agordita per DHCP;

Kaj ĉi tiu solvo havas kelkajn avantaĝojn:

  1. Sufiĉe rapide (necesas 30-40 sekundoj por atingi operacian reĝimon de nutrado);
  2. Sufiĉe fidinda (malpli da programoj, malpli da punktoj de fiasko);
  3. Konzola distribuo estas multe pli facile ŝanĝi al nurlegebla reĝimo
    tiuj. programoj skribas nenion al la radika dosiersistemo
    (kaj la dosiersistemo sur SDHC-komunikiloj estas, laŭ mi, la unua kandidato por fiasko);

Notu:

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

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

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

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

Kaj unu ĉefa malavantaĝo:

"Ĝi devas esti farita" t.e. Mi bezonas pasigi N nombron da vesperoj
(kutime post laboro, kaj ĉi tiu estas la plej neefika tempo, ĉi-tempe la cerbo ne plu pensas, ĝi kutime dormas)

Kaj tamen, mi verkis mian antaŭan artikolon pri Habré pri la plurmedia centro Kodi kaj Yocto projekto
kaj la ŝanco daŭrigi en la sama vejno superfortis mian esplorimpulson. Pli pri tio en la sekva ĉapitro.

Transformante Kodi en interreta radio-laŭtparolilo

Por aldoni la funkciojn, kiujn mi bezonas, mi aldonos unu plian metodon al la recepto por konstrui la distribuon priskribitan en la antaŭa artikolo vidu dosieron 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}
}

La metodoj estas celitaj por modifi la radikan dosiersistemon antaŭ formi distribuan bildon en la formo de unu kruda dosiero, kiu estas skribita al la memorkarto per la komando. dd

Ĉi tio estas farita jene:
ROOTFS_POSTPROCESS_COMMAND += "aldoni_radio_guisettings; off_kodi_bonvenon;"

Resume, en la ĉefa agorda dosiero de Kodi 17.6, "tri poentoj" ŝanĝiĝas

  • Agordo por lanĉo de la lasta elektita televidkanalo;
  • Agordo de aŭda eligo, nur analoga aŭda eligo ĉiam estas konektita;
  • Malebligu aŭtomatajn ĝisdatigojn;
  • Notu:
        Единственное с чем у меня возникли сложности, 
        это то, что пришлось еще подтащить файл базы данных 
        в формате sqlite => TV29.db, в котором указывается 
        текущий проигрываемый ТВ канал 
        (так как по умолчанию никакой из каналов не выбран), 
        а через xml конфигурацию в Kodi этого не сделать.
        

pli detala sekvenco de agoj por ĉiu objekto:

1) Alklaku la ilan-ikonon en la supra maldekstra angulo de la ekrano
kaj elektu "PVR kaj TV-Agordoj" (bildo de televidilo kun du kornoj)
tiam sur la maldekstra flanko de la menuo, elektu "Reproduktado", kaj en la centra sekcio "Ĝenerale"
elektu "Daŭrigu de la lasta kanalo ĉe ekfunkciigo" en la fallisto
elektante la agordon "Malfono".

aŭ pli klare:

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

2) Alklaku la ikonon "ilaron" en la supra maldekstra angulo de la ekrano kaj elektu la eron:

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

3) Alklaku la ikonon "ilaron" en la supra maldekstra angulo de la ekrano kaj elektu la eron:

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

Kiel mi malĝuste spektis televidon dum du jaroj.

Mi devas konfesi al vi, ke en du jaroj mi ankoraŭ ne lernis kiel ĝuste spekti televidon.

Mi kutime rigardas televidon en la kuirejo. Raspberry Pi 2B-tabulo estas konektita al la televidilo, kaj Ethernet- kaj HDMI-konektiloj estas konektitaj al la tabulo. La tabulo estas funkciigita per regula USB-kablo, kiu estas ŝtopita en la USB-havenon de la televidilo, t.e. fakte, ŝalti la televidilon per la norma teleregilo provizas potencon al la Raspberry Pi-tabulo, kaj malŝalti la televidilon de la teleregilo ankaŭ tuj restarigas la potencon de la Raspberry Pi-tabulo.

Jes, mi bone scias, ke tio ne povas esti farita, ĉar la radika dosiersistemo de la Kodi amaskomunikilaro (ext3) funkcias en normala legado/skriba reĝimo. Sed mi estas maldiligenta homo, kaj unue mi decidis kontroli kiom longe mi povus malŝalti la sistemon tiel, ĝis ĝi ĉesis plene ŝargi, sed bedaŭrinde, post du jaroj mi neniam sukcesis fari tion (eble mi estis nur bonŝanca, mi ne scias).

Kaj laŭ mi, se ĉi tiu reĝimo taŭgus por mia televidilo, tiam ĝi taŭgus ankaŭ por "simpla Interreta Radio-parolilo", kaj ĉar mi perforte malŝaltis aŭtomatan ĝisdatigon de Kodi-aldonaĵoj, la verŝajneco de fiasko de dosiersistemo fariĝos eĉ malpli. Ĝis nun mi ne vidas problemon pri ĉi tio

Notu:

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

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

La distribuo pri "Interreta radio-parolantoj" priskribita en la artikolo estas hejma, kaj kio plej gravas por hejma distribuo estas bela GUI. Laŭ mi, estas tre malfacile aŭ preskaŭ neeble instrui al ordinara uzanto enigi nekompreneblajn magiajn komandojn en la konzolon, kaj li eĉ ne konas la vorton. Sed la GUI, mi petas.

Kaj ĉi tio eble estas mia ĉefa argumento favore al nekonzola distribuo. La varma lampo grafika uzantinterfaco de Kodi, ĝi ne vere bezonas, sed ĝi estas tie.
(Mi ankaŭ tute forgesis mencii, ke Kodi povas esti regata malproksime, ekzemple de inteligenta telefono, instalante la aplikaĵon Yatse, kaj eble por iuj tio estos pluso)

Kodi-agordo por muskontrolo

kaj nun Raketo

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

La agordo superregas tutmondajn eventojn por la sekvaj elementoj:

  • rulumu musradon antaŭen
  • rulumi musradon reen
  • klakante la mezan musbutonon
  • prilaborado de longaj musklakoj (3 sekundoj aŭ pli),
    0 dekstra butono ID, 1 maldekstra butono ID

Pli detalaj informoj pri agordo de musaj eventoj:

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

Kion fari se la kablosistemo ne alvenas al vi

"Sed mi ne havas senpagajn Ethernet-havenojn hejme (aŭ neniam havas)," eble ekkrias iuj el la feliĉaj posedantoj de malnovaj tabuloj Raspberry Pi 1 (eble la tabulo estis aĉetita por esploro kaj restis kuŝanta sur la kabineto)

Kaj ĉar la tabulo ne havas enkonstruitan Wifi, ĝi ne estas tre funkcia sen Ethernet-konekto.

Kompreneble, eblas uzi la tabulon Raspberry Pi 1 sen Ethernet, sed ĝi postulos iom da peno viaflanke. Kutime tiaj aferoj estas interese fari nur kadre de lernado de io nova, t.e. Ĉi tio ne estas kutima laboro.

Do, ni konsideru hipotezan uzkazon por tabulo sen Eterreto:

Vi povas konekti eksteran USB - Wifi-adaptilon, gvidita de la konsidero
ke la adaptilo devus funkcii bone sub Linukso

Notu:

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

Se vi jam havas USBan Wifi-adaptilon, vi povas kontroli ĉu ĝi funkcias bone sub Linukso jene:

  • Instalu iun vaste uzatan Linuksan distribuon
    ĝenerala celo, ekzemple "Ubuntu Desktop"
  • Lanĉu la sistemon
  • Konektu vian Wifi-usb-adaptilon
  • Lanĉu retan administranton kaj provu konekti al via WiFi-alirpunkto
  • Se ĉio funkcias bone kaj via interreta konekto estas stabila, tiam via adaptilo estas bone subtenata kaj vi povas daŭrigi vian laboron pri konekti ĉi tiun adaptilon en speciala distribuo kaj eble kun aliaj versioj de la kerno.
    (se ne, tiam ne, ve, estas pli bone eĉ ne provi)

Subteno por ekstera Wifi-adaptilo en Raspberry PI

Por ke la WiFi-adaptilo funkciu ĝuste en Linukso, ni bezonas du aferojn:
1) Linukso-kerna subteno por specifa Wifi-adaptilo
2) La ĉeesto de kernomodulo en la sistemo por specifa Wifi-adaptilo

Prenu ekzemple la adaptilon TP-Link TL-WN722N. Ĝi havas simple grandiozan antenon.
Ni trovu la pecetaron sur kiu funkcias la tabulo - por mi ĝi estas "AR9271", notu:

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

Nun ni trovu la nomon de la parametro en la agordo de la kerno respondeca por la ŝoforo de chipset AR9271, plej bone estas serĉi la kombinaĵon de vortoj "AR9271 catee.net"
     kie "cateee.net" estas bonega retejo priskribanta agordojn de Linuksaj kernaj moduloj

Ni tuj trovas la nomon de la agordo de la kerno - CONFIG_ATH9K_HTC
kaj la nomo de la kernomodulo, kiun ni bezonas ath9k_htc

kaj poste simple specifu la nomon de la bezonata modulo en la agorda fragmenta dosiero
Linukso-kerno => recipes-kernel/linux/files/rbpi.cfg, aldonu la linion:
CONFIG_ATH9K_HTC=m

Tiel, estonte vi povas konekti ajnan kroman ekipaĵon al via sistemo (nu, kompreneble, se ĝi jam estas subtenata en la Linukso-kerno)

Kion fari se vi estas habra geek - dezajnisto

Kaj vi kreas la plej bonegajn aferojn, kiel ekzemple tie aŭ vi estas studento kaj revas krei ion similan.

Ĝuste, vi povas preni ian Tuŝekranan ekranon por RPI ĉe aliexpress, mendi taŭgan kuirilaron tie, konekti ĉion al Raspberry Pi 1,2 aŭ 3-tabulo (prefere 3, ĉar ĝi havas enkonstruitan Wifi), elektu. grafika desegna temo interfaco en Kodi, desegnita por tuŝekrano kaj voila => vi povas akiri simplan sonludilon. Kompreneble ĝi estos sufiĉe dika, sed ĝi estos via.

  Примечание:
  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 la respondeco de GUI Kodi 17.6 pro la ununura procesora kerno en Zero ŝajnas al vi mistera, tiam vi povas trompi viajn orelojn kaj konstrui pli malnovan, sed tre rapidan version, ekzemple Kodi 15.2, ĝi estas pli "amika" ĉi-rilate. (foje heredaĵo solvas ĉion)

Bedaŭrinde, mi ne havas la tabulon, do mi ne povas kontroli, sed mi sentas, ke ĝi devus funkcii.

Mallongaj Asembleaj Instrukcioj

    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
    

pli detalaj muntaj instrukcioj
kaj registrado sur mikroSDHC-karto, vidu en la antaŭa artikolo

Postskribo

Kompreneble, la ideo de interreta radio-parolilo estas tipa, ĉiuj scias ĝin kaj ĉe Habré vi trovos multajn artikolojn pri ĉi tiu temo, ekzemple tie

Kaj vi ankaŭ povas pensi, ke mi simple adaptis la postulojn al preta solvo. Al tio mi povas kontraŭstari kaj diri ke ne, honeste.

La rakonto de sinjoro Ervey

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

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

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

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

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

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

Pli bonaj kaj diversaj asembleoj por vi, kaj eĉ la iama briko kanti por vi ĉi-jare.

fonto: www.habr.com

Aldoni komenton