La colonne radio Internet la plus simple "Kodi" ou le salut de la brique "Raspberry"

La colonne radio Internet la plus simple "Kodi" ou le salut de la brique "Raspberry"

Pré-requis de base :

  1. Il existe une ancienne carte Raspberry Pi de première génération inutilisée ;
  2. La planche repose sur le meuble comme un poids mort et n'est pas utilisée - la planche « Brique » ;

Ce que j'aimerais recevoir :

  1. À un moment donné (par exemple, selon l'humeur)
    le tableau cesse d'être une « brique », et une carte mémoire magique y est insérée ;
  2. Un câble Ethernet et une fiche d'un haut-parleur ou d'un casque domestique ordinaire sont connectés à la carte ;
  3. Après la mise sous tension, l'ancienne « Brique » - chante

L'idée principale:

  1. Le nombre minimum de gestes pour toute configuration, dans le cas le plus idéal, nous connectons uniquement le câble « Ethernet », l'alimentation et les haut-parleurs, et ne faisons rien d'autre, du mot "du tout";
  2. L'ancien "Brick" prêt à l'emploi prend en charge, par exemple, 20 stations de radio Internet, qui peuvent être commutées en cercle en appuyant sur la molette de la souris ou sur une broche GPIO spécifique (connectez deux fils et court-circuitez-les (mon rêve depuis l'enfance) );
  3. Le contrôle s'effectue via un canal radio, et ce canal radio peut être une souris radio classique ;
  4. Prenez un système prêt à l'emploi et assemblez la distribution dans le « Projet Yocto »
    ceux. comme d'habitude, nous ne vous ferons rien, puisque tout a déjà été fait.
    (il suffit juste de placer un observateur extérieur de l'autre côté "LA TÉLÉ");

description

La colonne Radio Internet la plus simple « KODI »
L'assemblage est conçu pour les anciennes cartes Raspberry Pi 1
(ramassant la poussière quelque part dans le placard, mais qui sont prêts à faire encore du travail)

Par défaut, la liste m3u8 de 12 stations de radio Internet est utilisée.

On suppose que la carte fonctionne sans sortie HDMI et pour l'éteindre, il vous suffit de débrancher l'adaptateur secteur de la prise. Et en tant que panneau de commande sans fil ultramoderne, vous pouvez utiliser votre super souris radio (ou en connecter une grise ordinaire avec une queue).

Lorsqu'elle est allumée, l'interface réseau par défaut est configurée via le protocole DHCP et la dernière station de radio mémorisée de la liste est diffusée, le volume de lecture est contrôlé avec une souris ordinaire :
(désignez enfin votre souris comme « chef de la direction », et félicitez-la, elle le mérite)

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

Pour ajouter votre propre liste de stations de radio Internet
vous pouvez toujours connecter un câble HDMI à votre téléviseur
et utilisez l'interface graphique standard de Kodi 17.6
(éteignez la carte, connectez HDMI et allumez l'adaptateur secteur)

Menu principal Kodi => « Modules complémentaires » => « Mes modules complémentaires »
          => « Clients PVR » => « Client simple PVR IPTV »

Mise en œuvre initiale

(possible)
Au départ, lorsque j’ai décidé de créer une « Chronique Radio Internet », j’avais prévu ce qui suit :

  • Distribution de console minimaliste dans le Projet Yocto;
  • Le flux audio est lu via GStreamer ;
  • L'interface réseau est configurée via DHCP ;

Et cette solution présente de nombreux avantages :

  1. Assez rapide (il faut 30 à 40 secondes pour atteindre le mode de fonctionnement à partir de l'alimentation) ;
  2. Assez fiable (moins de programmes, moins de points de défaillance) ;
  3. Une distribution console est beaucoup plus simple à passer en mode lecture seule
    ceux. les programmes n'écrivent rien dans le système de fichiers racine
    (et le système de fichiers sur support SDHC est, à mon avis, le premier candidat à l'échec) ;

Note:

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

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

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

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

Et un inconvénient majeur :

« Il faut le faire », c'est-à-dire Je dois passer N nombre de soirées
(généralement après le travail, et c'est le moment le plus inefficace, à ce moment le cerveau ne pense plus, il dort généralement)

Et pourtant, j'ai écrit mon précédent article sur Habré sur le centre multimédia Kodi et Yocto Projet
et l’opportunité de continuer dans la même veine a dominé mon élan de recherche. Plus d’informations à ce sujet dans le prochain chapitre.

Transformer Kodi en haut-parleur de radio Internet

Pour ajouter les fonctionnalités dont j'ai besoin, j'ajouterai une méthode supplémentaire à la recette de construction de la distribution décrite dans la précédente article voir le fichier 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}
}

Les méthodes sont destinées à modifier le système de fichiers racine avant de former une image de distribution sous la forme d'un fichier brut, qui est écrit sur la carte mémoire avec la commande dd

Cela se fait de cette façon :
ROOTFS_POSTPROCESS_COMMAND += "add_radio_guisettings; off_kodi_welcome;"

Bref, dans le fichier de configuration principal de Kodi 17.6, changement « trois points »

  • Configuration du lancement de la dernière chaîne TV sélectionnée ;
  • Configuration de la sortie audio, seule la sortie audio analogique est toujours connectée ;
  • Désactivez les mises à jour automatiques ;
  • Note:
        Единственное с чем у меня возникли сложности, 
        это то, что пришлось еще подтащить файл базы данных 
        в формате sqlite => TV29.db, в котором указывается 
        текущий проигрываемый ТВ канал 
        (так как по умолчанию никакой из каналов не выбран), 
        а через xml конфигурацию в Kodi этого не сделать.
        

une séquence d'actions plus détaillée pour chaque élément :

1) Cliquez sur l'icône d'engrenage dans le coin supérieur gauche de l'écran
et sélectionnez « Paramètres PVR et TV » (image d'un téléviseur avec deux klaxons)
puis sur le côté gauche du menu, sélectionnez « Lecture », et dans la section centrale « Général »
sélectionnez «Continuer depuis la dernière chaîne au démarrage» dans la liste déroulante
en sélectionnant le paramètre "Premier plan"

ou plus clairement :

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

2) Cliquez sur l'icône « engrenage » dans le coin supérieur gauche de l'écran et sélectionnez l'élément :

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

3) Cliquez sur l'icône « engrenage » dans le coin supérieur gauche de l'écran et sélectionnez l'élément :

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

Comment je regarde la télévision dans le mauvais sens depuis deux ans.

Je dois vous avouer qu’en deux ans je n’ai toujours pas appris à regarder correctement la télévision.

Je regarde habituellement la télévision dans la cuisine. Une carte Raspberry Pi 2B est connectée au téléviseur et des connecteurs Ethernet et HDMI sont connectés à la carte. La carte est alimentée via un câble USB ordinaire, qui est branché sur le port USB du téléviseur, c'est-à-dire en fait, allumer le téléviseur à l'aide de la télécommande standard alimente la carte Raspberry Pi, et éteindre le téléviseur à l'aide de la télécommande réinitialise également immédiatement l'alimentation de la carte Raspberry Pi.

Oui, je suis bien conscient que cela ne peut pas être fait, car le système de fichiers racine du Kodi Media Center (ext3) fonctionne en mode lecture/écriture normal. Mais je suis une personne paresseuse, et j'ai d'abord décidé de vérifier combien de temps je pouvais éteindre le système comme ça, jusqu'à ce qu'il cesse complètement de se charger, mais malheureusement, après deux ans, je n'ai jamais réussi à le faire (peut-être ai-je juste eu de la chance, je ne sais pas).

Et à mon avis, si ce mode convenait à mon téléviseur, alors il conviendrait également à un « simple haut-parleur de radio Internet », et comme j'ai désactivé de force la mise à jour automatique des plugins Kodi, la probabilité d'une panne du système de fichiers deviendra même moins. Jusqu'à présent, je ne vois pas de problème avec ça

Note:

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

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

La distribution des « haut-parleurs de radio Internet » décrite dans l'article est une distribution domestique, et ce qui est le plus important pour une distribution domestique est une belle interface graphique. À mon avis, il est très difficile, voire presque impossible, d'apprendre à un utilisateur ordinaire à saisir des commandes magiques incompréhensibles dans la console, et il ne connaît même pas le mot. Mais l'interface graphique, s'il vous plaît.

Et c’est peut-être mon principal argument en faveur d’une distribution hors console. L’interface utilisateur graphique de la lampe chaude de Kodi n’est pas vraiment nécessaire, mais elle est là.
(J'ai aussi complètement oublié de mentionner que Kodi peut être contrôlé à distance, par exemple depuis un smartphone, en installant l'application Yatse, et peut-être que pour certains cela sera un plus)

Configuration Kodi pour le contrôle de la souris

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

La configuration remplace les événements globaux pour les éléments suivants :

  • faire défiler la molette de la souris vers l'avant
  • faire défiler la molette de la souris vers l'arrière
  • en cliquant sur le bouton central de la souris
  • traiter les clics de souris longs (3 secondes ou plus),
    0 ID de bouton droit, 1 ID de bouton gauche

Informations plus détaillées sur la configuration des événements de souris :

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

Que faire si le système de câble ne vous parvient pas

"Mais je n'ai pas de ports Ethernet libres à la maison (ou je n'en ai jamais eu)", peuvent s'exclamer certains des heureux propriétaires d'anciennes cartes Raspberry Pi 1 (peut-être que la carte a été achetée pour la recherche et est restée posée sur le meuble).

Et comme la carte ne dispose pas de Wifi intégré, elle n'est pas très fonctionnelle sans connexion Ethernet.

Bien entendu, il est possible d'utiliser la carte Raspberry Pi 1 sans Ethernet, mais cela demandera quelques efforts de votre part. Habituellement, de telles choses ne sont intéressantes à faire que dans le cadre de l’apprentissage de quelque chose de nouveau, c’est-à-dire Ce n’est pas un travail personnalisé.

Considérons donc un cas d'utilisation hypothétique pour une carte sans Ethernet :

Vous pouvez connecter un adaptateur USB - Wifi externe, guidé par la considération
que l'adaptateur devrait bien fonctionner sous Linux

Note:

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

Si vous disposez déjà d'un adaptateur Wifi USB, vous pouvez vérifier s'il fonctionne bien sous Linux comme suit :

  • Installez une distribution Linux largement utilisée
    usage général, par exemple "Ubuntu Desktop"
  • Démarrez le système
  • Connectez votre adaptateur Wifi USB
  • Lancez le gestionnaire de réseau et essayez de vous connecter à votre point d'accès WiFi
  • Si tout fonctionne bien et que votre connexion Internet est stable, alors votre adaptateur est bien supporté et vous pouvez continuer votre travail de connexion de cet adaptateur dans une distribution spécialisée et éventuellement avec d'autres versions du noyau
    (sinon, alors non, hélas, il vaut mieux ne même pas essayer)

Prise en charge de l'adaptateur Wifi externe dans Raspberry PI

Pour que l'adaptateur WiFi fonctionne correctement sous Linux, nous avons besoin de deux choses :
1) Prise en charge du noyau Linux pour un adaptateur Wifi spécifique
2) La présence d'un module noyau dans le système pour un adaptateur Wifi spécifique

Prenons par exemple l'adaptateur TP-Link TL-WN722N. Il possède une antenne tout simplement magnifique.
Trouvons le chipset sur lequel fonctionne la carte - pour moi c'est "AR9271", note:

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

Trouvons maintenant le nom du paramètre dans la configuration du noyau responsable du pilote du chipset AR9271, il est préférable de rechercher la combinaison de mots « AR9271 catee.net »
     où "cateee.net" est un site sympa décrivant les configurations des modules du noyau Linux

On retrouve immédiatement le nom de la configuration du noyau - CONFIG_ATH9K_HTC
et le nom du module noyau dont nous avons besoin ath9k_htc

puis spécifiez simplement le nom du module requis dans le fichier de fragment de configuration
Noyau Linux => recettes-kernel/linux/files/rbpi.cfg, ajoutez la ligne :
CONFIG_ATH9K_HTC=m

Ainsi, à l'avenir, vous pourrez connecter n'importe quel équipement supplémentaire à votre système (enfin, bien sûr, s'il est déjà pris en charge dans le noyau Linux)

Que faire si vous êtes un geek habra - designer

Et vous créez les choses les plus cool, comme ici ou vous êtes étudiant et rêvez de créer quelque chose de similaire.

De manière spontanée, vous pouvez prendre une sorte d'écran tactile pour RPI sur aliexpress, y commander une batterie adaptée, connecter le tout à une carte Raspberry Pi 1,2 ou 3 (de préférence 3, car elle a le Wifi intégré), sélectionner une interface de thème de conception graphique dans Kodi, conçue pour un écran tactile et voilà => vous pouvez obtenir un simple lecteur audio. Bien sûr, ce sera assez volumineux, mais ce sera le vôtre.

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

  Si la réactivité de l'interface graphique Kodi 17.6 en raison du cœur de processeur unique de Zero vous semble mystérieuse, alors vous pouvez tromper vos oreilles et créer une version plus ancienne, mais très rapide, par exemple Kodi 15.2, elle est plus « conviviale » à cet égard. (parfois l'héritage résout tout)

Malheureusement, je n'ai pas le tableau, donc je ne peux pas vérifier, mais j'ai l'impression que cela devrait fonctionner.

Brèves instructions de montage

    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
    

instructions de montage plus détaillées
et enregistrement sur une carte microSDHC, voir dans l'article précédent

Post-scriptum

Bien sûr, l'idée d'une enceinte radio Internet est typique, tout le monde la connaît et sur Habré vous trouverez de nombreux articles sur ce sujet, par exemple ici

Et vous pensez peut-être aussi que j’ai simplement adapté les exigences à une solution toute faite. À cela, je peux contrer et dire que non, honnêtement.

L'histoire de M. Ervey

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

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

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

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

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

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

Encore des assemblées bonnes et différentes pour vous, et laissez même l'ancienne brique chanter pour vous cette année.

Source: habr.com

Ajouter un commentaire