En basit İnternet radyo sütunu "Kodi" veya "Ahududu" tuğlasının kurtuluşu

En basit İnternet radyo sütunu "Kodi" veya "Ahududu" tuğlasının kurtuluşu

Temel önkoşullar:

  1. Kullanılmayan eski bir birinci nesil Raspberry Pi kartı var;
  2. Tahta, kabinin üzerinde ölü ağırlık olarak bulunur ve kullanılmaz - “Tuğla” tahtası;

Almak istediklerim:

  1. Zamanın belirli bir noktasında (örneğin ruh halinize göre)
    tahta bir "Tuğla" olmaktan çıkar ve içine sihirli bir hafıza kartı takılır;
  2. Karta bir Ethernet kablosu ve normal bir ev hoparlöründen veya kulaklıktan gelen bir fiş bağlanır;
  3. Güç uygulandıktan sonra eski “Tuğla” - поет

Ana fikir:

  1. Herhangi bir kurulum için minimum hareket sayısı, en ideal durumda, yalnızca “Ethernet” kablosunu, gücü ve hoparlörleri bağlarız ve kelimeden başka hiçbir şey yapmayız. "hiç";
  2. Kutudan çıkan eski "Brick", örneğin fare tekerleğine basılarak veya belirli bir GPIO pinine basılarak bir daire içinde değiştirilebilen 20 İnternet radyo istasyonunu destekler (iki kabloyu bağlayın ve bunları kısaltın (çocukluğumdan beri hayalim) );
  3. Kontrol bir radyo kanalı aracılığıyla gerçekleştirilir ve bu radyo kanalı normal bir radyo faresi olabilir;
  4. Hazır bir sistemi alın ve dağıtımı “Yocto Projesi”ne monte edin
    onlar. her zamanki gibi, her şey zaten yapıldığı için size hiçbir şey yapmayacağız.
    (Diğer tarafa dışarıdan bir gözlemci yerleştirmek yeterlidir "TELEVİZYON");

Açıklama

En basit İnternet Radyosu sütunu “KODI”
Montaj eski Raspberry Pi 1 kartları için tasarlanmıştır
(Dolabın bir yerinde toz toplanıyor ama biraz daha iş yapmaya hazırlar)

Varsayılan olarak 3 İnternet radyo istasyonundan oluşan m8u12 listesi kullanılır.

Anakartın HDMI çıkışı olmadan çalıştığı varsayılmaktadır ve onu kapatmak için güç adaptörünü prizden çıkarmanız yeterlidir. Ultra modern bir kablosuz kontrol paneli olarak süper radyo farenizi kullanabilir (veya kuyruklu normal gri bir fare bağlayabilirsiniz).

Açıldığında, varsayılan ağ arayüzü DHCP protokolü aracılığıyla yapılandırılır ve listeden hafızaya alınan son radyo istasyonu çalınır, oynatma ses seviyesi normal bir fare ile kontrol edilir:
(son olarak farenizi “yönetim şefi” olarak atayın ve tebrik edin, bunu hak ediyor)

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

Kendi İnternet radyo istasyonları listenizi eklemek için
TV'nizden her zaman bir HDMI kablosu bağlayabilirsiniz
ve Kodi 17.6'nın standart grafik arayüzünü kullanın
(kartı kapatın, HDMI'yi bağlayın ve güç adaptörünü açın)

Kodi ana menüsü => “Eklentiler” => “Eklentilerim”
          => “PVR İstemcileri” => “PVR IPTV Basit İstemci”

İlk uygulama

(olası)
Başlangıçta bir “İnternet Radyosu Köşesi” yapmaya karar verdiğimde şunları planladım:

  • Yocto Projesi'nde minimalist konsol dağıtımı;
  • Ses akışı GStreamer aracılığıyla oynatılır;
  • Ağ arayüzü DHCP aracılığıyla yapılandırılır;

Ve bu çözümün birçok avantajı var:

  1. Oldukça hızlı (güç kaynağından çalışma moduna ulaşmak 30-40 saniye sürer);
  2. Oldukça güvenilir (daha az program, daha az arıza noktası);
  3. Bir konsol dağıtımının salt okunur moda geçmesi çok daha kolaydır
    onlar. programlar kök dosya sistemine hiçbir şey yazmaz
    (ve SDHC ortamındaki dosya sistemi bence başarısızlığın ilk adayıdır);

Not:

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

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

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

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

Ve bir ana dezavantaj:

“Yapılmalıdır” yani. N sayıda akşam geçirmem gerekiyor
(genellikle işten sonra ve bu en etkisiz zamandır, bu zamanda beyin artık düşünmez, genellikle uyur)

Ve yine de Habré hakkında multimedya merkezi hakkında önceki makalemi yazmıştım. Kodi ve Yocto proje
ve aynı doğrultuda devam etme fırsatı araştırma dürtümü bastırdı. Bir sonraki bölümde bu konuda daha fazla bilgi vereceğiz.

Kodi'yi İnternet radyo hoparlörüne dönüştürme

İhtiyacım olan işlevselliği eklemek için, öncekinde anlatılan dağıtımı oluşturma tarifine bir yöntem daha ekleyeceğim. Makale berserk-image.bb dosyasına bakın

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

Yöntemler, komutla hafıza kartına yazılan bir ham dosya biçiminde bir dağıtım görüntüsü oluşturmadan önce kök dosya sistemini değiştirmek için tasarlanmıştır. dd

Bu şu şekilde yapılır:
ROOTFS_POSTPROCESS_COMMAND += "add_radio_guisettings; off_kodi_welcome;"

Kısaca Kodi 17.6'nın ana konfigürasyon dosyasında “üç nokta” değişikliği var

  • Son seçilen TV kanalını başlatmak için yapılandırma;
  • Ses çıkışı yapılandırması; her zaman yalnızca analog ses çıkışı bağlanır;
  • Otomatik güncellemeleri devre dışı bırakın;
  • Not:
        Единственное с чем у меня возникли сложности, 
        это то, что пришлось еще подтащить файл базы данных 
        в формате sqlite => TV29.db, в котором указывается 
        текущий проигрываемый ТВ канал 
        (так как по умолчанию никакой из каналов не выбран), 
        а через xml конфигурацию в Kodi этого не сделать.
        

her öğe için daha ayrıntılı bir eylem dizisi:

1) Ekranın sol üst köşesindeki dişli simgesine tıklayın
ve “PVR ve TV Ayarları”nı seçin (iki boynuzlu TV görüntüsü)
daha sonra menünün sol tarafında “Oynatma”yı ve orta bölümde “Genel”i seçin
açılır listeden "Başlangıçta son kanaldan devam et"i seçin
"Ön plan" ayarını seçme

veya daha açık bir şekilde:

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

2) Ekranın sol üst köşesindeki "dişli" simgesine tıklayın ve öğeyi seçin:

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

3) Ekranın sol üst köşesindeki "dişli" simgesine tıklayın ve öğeyi seçin:

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

İki yıldır televizyonu nasıl da yanlış yoldan izliyorum.

İtiraf etmeliyim ki iki yıldır hâlâ doğru şekilde televizyon izlemeyi öğrenemedim.

Genellikle mutfakta televizyon izlerim. TV'ye bir Raspberry Pi 2B kartı bağlanır ve panele Ethernet ve HDMI konektörleri bağlanır. Kart, TV'nin USB bağlantı noktasına takılan normal bir USB kablosuyla çalıştırılır; Aslında, standart uzaktan kumandayı kullanarak TV'yi açmak Raspberry Pi kartına güç sağlar ve TV'yi uzaktan kumandadan kapatmak da Raspberry Pi kartından gelen gücü anında sıfırlar.

Evet, Kodi medya merkezinin (ext3) kök dosya sistemi normal okuma/yazma modunda çalıştığı için bunun yapılamayacağının farkındayım. Ama ben tembel bir insanım ve önce yükleme tamamen durana kadar sistemi bu şekilde ne kadar süreyle kapatabileceğimi kontrol etmeye karar verdim, ancak ne yazık ki iki yıl sonra bunu asla yapmayı başaramadım (belki de sadece şanslıydım, Bilmiyorum ).

Ve bence, bu mod TV'm için uygun olsaydı, o zaman "basit bir İnternet Radyo hoparlörü" için de uygun olurdu ve Kodi eklentilerinin otomatik güncellenmesini zorla devre dışı bıraktığım için, dosya sistemi arızası olasılığı eşit olacak az. Şu ana kadar bunda bir sorun görmüyorum

Not:

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

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

Makalede açıklanan "İnternet radyo hoparlörleri" dağıtımı ev dağıtımıdır ve ev dağıtımı için en önemli şey güzel bir GUI'dir. Bana göre sıradan bir kullanıcıya konsola anlaşılmaz sihirli komutlar girmeyi öğretmek çok zor veya neredeyse imkansız ve o kelimeyi bile bilmiyor. Ama GUI lütfen.

Ve bu belki de konsol dışı dağıtım lehine ana argümanımdır. Kodi'nin sıcak lambalı grafik kullanıcı arayüzü gerçekten gerekli değil, ama orada.
(Ayrıca Kodi'nin, örneğin bir akıllı telefondan, Yatse uygulamasını yükleyerek uzaktan kontrol edilebileceğini ve belki bazıları için bunun bir artı olacağını söylemeyi tamamen unuttum)

Fare kontrolü için Kodi yapılandırması

ve şimdi Roket

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

Yapılandırma, aşağıdaki öğeler için genel olayları geçersiz kılar:

  • fare tekerleğini ileri kaydır
  • fare tekerleğini geriye kaydır
  • farenin orta tuşuna tıklamak
  • uzun fare tıklamalarını işlemek (3 saniye veya daha fazla),
    0 sağ düğme kimliği, 1 sol düğme kimliği

Fare olaylarını ayarlama hakkında daha ayrıntılı bilgi:

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

Kablolu sistem tarafınıza ulaşmazsa ne yapmalısınız?

Eski Raspberry Pi 1 anakartlarının mutlu sahiplerinden bazıları, "Ama evde ücretsiz Ethernet bağlantı noktalarım yok (veya hiç sahip olmadım)," diye haykırabilir (belki de kart araştırma için satın alınmış ve kabinin üzerinde bırakılmıştır)

Anakartta dahili Wi-Fi bulunmadığından Ethernet bağlantısı olmadan pek işlevsel değildir.

Elbette Raspberry Pi 1 kartını Ethernet olmadan kullanmak mümkündür, ancak sizin tarafınızdan biraz çaba sarf edilmesi gerekecektir. Genellikle bu tür şeyleri yalnızca yeni bir şey öğrenmenin bir parçası olarak yapmak ilginçtir; Bu özel bir çalışma değil.

Öyleyse, Ethernet'siz bir anakart için varsayımsal bir kullanım durumunu ele alalım:

Dikkate alınarak harici bir USB - Wifi adaptörü bağlayabilirsiniz.
bağdaştırıcının Linux altında iyi çalışması gerektiğini

Not:

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

Zaten bir USB Wifi adaptörünüz varsa, Linux altında iyi çalışıp çalışmadığını aşağıdaki şekilde kontrol edebilirsiniz:

  • Yaygın olarak kullanılan bazı Linux dağıtımlarını yükleyin
    genel amaçlı, örneğin "Ubuntu Masaüstü"
  • Sistemi önyükleme
  • Wifi USB adaptörünüzü bağlayın
  • Ağ yöneticisini başlatın ve WiFi erişim noktanıza bağlanmayı deneyin
  • Her şey yolunda giderse ve İnternet bağlantınız istikrarlıysa, bağdaştırıcınız iyi destekleniyor demektir ve bu bağdaştırıcıyı özel bir dağıtıma ve muhtemelen çekirdeğin diğer sürümlerine bağlama çalışmanıza devam edebilirsiniz.
    (değilse, o zaman hayır, ne yazık ki denememek bile daha iyi)

Raspberry PI'da harici Wifi adaptörü desteği

WiFi bağdaştırıcısının Linux'ta düzgün çalışması için iki şeye ihtiyacımız var:
1) Belirli Wifi bağdaştırıcısı için Linux çekirdeği desteği
2) Belirli bir Wifi bağdaştırıcısı için sistemde bir çekirdek modülünün varlığı

Örneğin TP-Link TL-WN722N adaptörünü ele alalım. Tek kelimeyle muhteşem bir anteni var.
Anakartın üzerinde çalıştığı yonga setini bulalım - benim için bu "AR9271", Not:

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

Şimdi çekirdek konfigürasyonunda AR9271 yonga seti sürücüsünden sorumlu parametrenin adını bulalım, en iyisi "AR9271 catee.net" kelimelerinin kombinasyonunu aramaktır.
     burada "cateee.net" Linux çekirdek modüllerinin konfigürasyonlarını açıklayan harika bir sitedir

Çekirdek konfigürasyonunun adını hemen buluyoruz - CONFIG_ATH9K_HTC
ve ihtiyacımız olan çekirdek modülünün adı ath9k_htc

ve ardından konfigürasyon parça dosyasında gerekli modülün adını belirtmeniz yeterlidir.
Linux çekirdeği => tarifler-kernel/linux/files/rbpi.cfg, şu satırı ekleyin:
CONFIG_ATH9K_HTC=m

Böylece gelecekte sisteminize herhangi bir ek ekipmanı bağlayabilirsiniz (tabii ki, Linux çekirdeğinde zaten destekleniyorsa)

Habra geek - tasarımcısı iseniz ne yapmalısınız?

Ve en harika şeyleri yaratıyorsunuz, örneğin burada ya da öğrencisiniz ve benzer bir şey yaratmayı hayal ediyorsunuz.

Hemen hazırlıksız olarak, aliexpress'te RPI için bir tür Dokunmatik Ekran alabilir, oradan uygun bir pil sipariş edebilir, hepsini bir Raspberry Pi 1,2 veya 3 kartına bağlayabilirsiniz (dahili Wifi'ye sahip olduğundan tercihen 3), Kodi'de dokunmatik ekran için tasarlanmış bir grafik tasarım teması arayüzü ve işte => basit bir ses oynatıcısı alabilirsiniz. Elbette oldukça hantal olacak ama sizin olacak.

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

  GUI Kodi 17.6'nın Zero'daki tek işlemci çekirdeği nedeniyle yanıt verme hızı size gizemli geliyorsa, o zaman kulaklarınızı kandırabilir ve daha eski ama çok hızlı bir sürüm (örneğin Kodi 15.2) oluşturabilirsiniz, bu bakımdan daha "dostça" (bazen miras her şeyi çözer)

Maalesef panom olmadığı için kontrol edemiyorum ama çalışması gerektiğini düşünüyorum.

Kısa Montaj Talimatları

    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
    

daha ayrıntılı montaj talimatları
ve microSDHC karta kayıt yapma, bkz. önceki makalede

dipnot

Elbette bir İnternet radyosu konuşmacısı fikri tipiktir, bunu herkes bilir ve Habré'de bu konuyla ilgili birçok makale bulacaksınız, örneğin burada

Ayrıca gereksinimleri hazır bir çözüme göre uyarladığımı da düşünebilirsiniz. Buna karşı çıkıp dürüstçe hayır diyebilirim.

Bay Ervey'in hikayesi

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

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

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

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

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

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

Sizin için daha güzel ve farklı meclisler olsun, bu yıl eski tuğlalar bile sizin için şarkı söylesin.

Kaynak: habr.com

Yorum ekle