Kolom radio Internet paling sederhana "Kodi" atau penyelamatan bata "Raspberry"


Tempat utama:

  1. Ada papan Raspberry Pi generasi pertama yang tidak digunakan;
  2. Papan terletak bobot mati di kabinet dan tidak digunakan - papan Bata;

Apa yang ingin saya terima:

  1. Pada titik waktu tertentu (misalnya, dengan suasana hati)
    papan berhenti menjadi "Bata", dan kartu memori ajaib dimasukkan ke dalamnya;
  2. Kabel Ethernet dan colokan dari speaker atau headphone rumah tangga biasa terhubung ke papan;
  3. Setelah catu daya, mantan "Brick" bernyanyi

Gagasan utama:

  1. Jumlah gerakan minimum untuk pengaturan apa pun, dalam kasus paling ideal, kami hanya menyambungkan kabel, daya, dan speaker "Ethernet", dan tidak melakukan hal lain, dari kata "sepenuhnya";
  2. Mantan "Brick" di luar kotak mendukung, misalnya, 20 stasiun radio Internet, yang beralih yang dalam lingkaran dapat digantung dengan menekan roda mouse atau pada pin GPIO tertentu (hubungkan dua kabel dan tutup mereka (impian saya sejak kecil));
  3. Manajemen dilakukan pada saluran radio, dan saluran radio ini dapat menjadi mouse radio biasa;
  4. Ambil sistem yang sudah jadi, rakit distribusi di "Proyek Yocto"
    yaitu seperti biasa, kita tidak akan melakukan apa-apa, karena semuanya sudah dilakukan.
    (letakkan saja pengamat luar di sisi lain "TV" );

Deskripsi

Kolom Radio Internet paling sederhana "KODI"
Perakitan untuk papan Raspberry Pi 1 yang lebih lama
(Mengumpulkan debu di suatu tempat di lemari, tetapi yang masih siap untuk bekerja)

Secara default, daftar m3u8 dari 12 stasiun radio Internet digunakan.

Diasumsikan bahwa papan bekerja tanpa output HDMI, dan untuk mematikannya, cabut saja adaptor daya dari stopkontak. Dan sebagai remote control nirkabel ultra modern, Anda dapat menggunakan mouse radio super (baik, atau menghubungkan yang abu-abu biasa dengan ekor).

Ketika Anda mengaktifkan antarmuka jaringan secara default, itu dikonfigurasi melalui protokol DHCP dan stasiun radio yang disimpan terakhir dari daftar diputar, volume pemutaran dikendalikan oleh mouse konvensional:
(akhirnya tunjuk mouse Anda "kepala departemen", dan ucapkan selamat kepadanya, ia pantas mendapatkannya)

  -      -      (3  )     -      (3  )     -    

Untuk menambahkan daftar stasiun radio Internet Anda sendiri
Anda selalu dapat menghubungkan kabel HDMI dari TV
dan gunakan KUI 17.6 GUI standar
(matikan papan, sambungkan HDMI dan hidupkan adaptor daya)

Menu Utama Kodi => “Pengaya” => “Pengaya Saya”
=> “Klien PVR” => “PVR IPTV Simple Client”

Implementasi awal
(mungkin)
Awalnya, ketika saya memutuskan untuk membuat "kolom Radio Internet", saya merencanakan yang berikut:

  • Distribusi konsol minimalis di Proyek Yocto;
  • Aliran audio diputar melalui GStreamer;
  • Antarmuka jaringan dikonfigurasi melalui DHCP;

Dan solusi ini memiliki beberapa keunggulan:

  1. Cukup cepat (output ke mode operasi dari catu daya 30-40 detik);
  2. Cukup andal (lebih sedikit program, lebih sedikit poin kegagalan);
  3. Distribusi konsol jauh lebih mudah diatur menjadi hanya-baca
    yaitu program tidak menulis apa pun ke root di sistem file
    (sistem file pada media SDHC, menurut pendapat saya, adalah kandidat pertama yang gagal);

Catatan:
   Yocto     (rootfs)        ,         Yocto   : 1)       / (     ,  Ubuntu) 2)        (   ,   )      ,                (  /var/log  ..)             .   Yocto Project      "read only",          ,          "read only"  "read/write",       ... 



Dan satu kelemahan utama:

"Itu harus dilakukan" yaitu Saya harus menghabiskan N malam hari
(biasanya setelah bekerja, dan ini adalah waktu yang paling tidak efisien, pada saat ini otak tidak lagi berpikir, biasanya tidur)

Namun, saya menulis artikel saya sebelumnya tentang Habré tentang pusat multimedia proyek Kodi dan Yocto
dan kemampuan untuk melanjutkan dalam nada yang sama mengalahkan dorongan penelitian saya. Tentang ini di bab selanjutnya.

Mengubah Kodi Menjadi Kolom Radio Internet

Untuk menambahkan fungsionalitas yang saya butuhkan, saya akan menambahkan metode lain ke resep build distribusi yang dijelaskan dalam artikel sebelumnya , lihat berserk-image.bb

 GUI_SETTINGS = "home/root/.kodi/userdata/guisettings.xml" #       (1- 2- ) F1_LINE = "<startlast default=\"true\"^_^gt&#0;lt^_^/startlast>" R1_LINE = "<startlast^_^gt lt^_^/startlast>" #   ,       F2_LINE = "<audiodevice default=\"true\">PI:HDMI</audiodevice>" R2_LINE = "<audiodevice>PI:Analogue</audiodevice>" #   HDMI        #       ,      F3_LINE = "<addonupdates default=\"true\"^_^gt&#0;lt^_^/addonupdates>" R3_LINE = "<addonupdates^_^gt lt^_^/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} } 

Metode ini dimaksudkan untuk memodifikasi sistem file root sebelum membentuk gambar distribusi dalam bentuk file mentah tunggal, yang ditulis ke kartu memori dengan perintah dd

Ini dilakukan dengan cara ini:
ROOTFS_POSTPROCESS_COMMAND + = "add_radio_guisettings; off_kodi_welcome; "

Singkatnya, dalam file konfigurasi Kodi 17.6 utama, "tiga poin" berubah

  • Luncurkan konfigurasi saluran TV yang terakhir dipilih;
  • Konfigurasi output suara, hanya output audio analog yang selalu terhubung;
  • Menonaktifkan pembaruan otomatis;
  • Catatan:
            ,  ,          sqlite => TV29.db,        (        ),   xml   Kodi   . 



urutan tindakan yang lebih rinci untuk setiap item:

1) Klik ikon roda gigi di sudut kiri atas layar
dan pilih "PVR dan pengaturan TV" (gambar TV dengan dua klakson)
lebih jauh di sisi kiri menu, pilih item "Putar", dan di bagian tengah "Umum"
tentukan dalam daftar drop-down "Lanjutkan dari saluran terakhir saat startup"
memilih pengaturan "Foreground"

atau lebih jelas:

  " PVR  " => "" => "     " => " " 

2) Klik ikon roda gigi di sudut kiri atas layar dan pilih item:

  " " => "" => "" => "   " 

3) Klik ikon "roda gigi" di sudut kiri atas layar dan pilih:

  " " => "" => "  " => "PI: Analogue" 

Saya salah menonton TV selama dua tahun.

Saya harus mengakui kepada Anda bahwa selama dua tahun saya belum belajar cara menonton TV dengan benar.

Saya biasanya menonton TV di dapur. Papan Raspberry Pi 2B terhubung ke TV, dan konektor Ethernet dan HDMI terhubung ke papan. Papan ini ditenagai melalui kabel USB biasa, yang dicolokkan ke port USB TV yaitu. nyatanya, menyalakan TV menggunakan remote control standar juga memasok daya ke papan Raspberry Pi, dan mematikan TV dari remote control juga segera mengatur ulang daya dari papan Raspberry Pi.

Ya, saya sangat menyadari bahwa ini tidak dapat dilakukan, karena sistem file root dari pusat multimedia Kodi (ext3), saya memiliki fungsi baca / tulis yang normal. Tapi saya orang yang malas, dan untuk awalnya saya memutuskan untuk memeriksa berapa lama sistem bisa dimatikan seperti itu sampai benar-benar berhenti memuat, tetapi sayangnya selama dua tahun saya tidak berhasil melakukan ini (mungkin saya beruntung, saya tidak tahu )

Dan menurut saya, jika mode seperti itu cocok untuk TV saya, maka itu juga akan cocok untuk "pembicara Radio Internet sederhana", dan karena saya secara paksa mematikan pembaruan otomatis dari plugin Kodi, maka kemungkinan kegagalan sistem file akan menjadi semakin berkurang. Sementara saya tidak melihat masalah dengan ini

Catatan:
           yocto  IMAGE_FEATURES += "read-only-rootfs"         "read only" 


Distribusi "speaker radio Internet" yang dijelaskan dalam artikel ini adalah rumah tangga, dan yang paling penting untuk distribusi rumah tangga adalah GUI yang indah. Menurut pendapat saya, sangat sulit atau hampir mustahil untuk mengajar pengguna biasa untuk mengendarai perintah sihir aneh apa pun di konsol, dan dia bahkan tidak tahu kata seperti itu. Dan ini GUI, ini dia.

Dan ini mungkin argumen utama saya yang mendukung distribusi non-konsol. Antarmuka pengguna grafis tabung hangat Kodi, ya, itu tidak terlalu diperlukan, tetapi itu.
(Saya juga benar-benar lupa menyebutkan bahwa Kodi dapat dikendalikan dari jarak jauh, misalnya dari smartphone, dengan menginstal aplikasi Yatse, dan mungkin bagi seseorang itu akan menjadi nilai tambah)

Konfigurasi Kodi untuk kontrol mouse


dan sekarang Rocket
 <keymap> <global> <mouse> <wheelup>VolumeUp</wheelup> <wheeldown>VolumeDown</wheeldown> <middleclick>ChannelDown</middleclick> <longclick id=^_^quot&#0;quot^_^>ChannelDown</longclick> <longclick id=^_^quot quot^_^>ChannelUp</longclick> <!--  rocket --> </mouse> </global> </keymap> 


Konfigurasi mengesampingkan peristiwa global untuk elemen-elemen berikut:

  • roda mouse ke depan
  • roda mouse gulir kembali
  • mengklik tombol tengah mouse
  • pemrosesan klik mouse yang panjang (3dtk atau lebih),
    0 pengidentifikasi tombol kanan, 1 pengidentifikasi tombol kiri


informasi lebih lanjut tentang pengaturan acara mouse:

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

Apa yang harus dilakukan jika sistem kabel tidak datang kepada Anda

"Tapi saya tidak punya port Ethernet gratis di rumah (atau saya tidak pernah punya)" - beberapa pemilik beruntung papan Raspberry Pi 1 tua mungkin berseru (mungkin papan dibeli untuk penelitian dan tetap di kabinet)

Dan karena tidak ada Wifi bawaan di papan, maka tanpa koneksi Ethernet, itu tidak terlalu fungsional.

Tentu saja, kemungkinan menggunakan papan Raspberry Pi 1 tanpa Ethernet ada, tetapi akan membutuhkan upaya dari Anda. Biasanya hal-hal seperti itu menarik untuk dilakukan hanya sebagai bagian dari studi tentang sesuatu yang baru yaitu. ini bukan pekerjaan pengguna.

Jadi, pertimbangkan opsi hipotetis untuk menggunakan papan tanpa Ethernet:

Anda dapat menghubungkan USB eksternal - adaptor Wifi, dipandu oleh pertimbangan itu,
bahwa adaptor harus bekerja dengan baik di Linux

Catatan:

     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 

Jika Anda sudah memiliki adaptor usb Wifi, Anda dapat memeriksa apakah itu berfungsi dengan baik di Linux sebagai berikut:

  • Instal beberapa distribusi Linux yang tersebar luas
    tujuan umum, misalnya, "Ubuntu Desktop"
  • Sistem boot
  • Hubungkan adaptor usb wifi Anda
  • Luncurkan manajer jaringan, dan coba sambungkan ke titik akses WiFi Anda
  • Jika semuanya bekerja dengan baik dan koneksi internet Anda stabil, maka adaptor Anda didukung dengan baik dan Anda dapat melanjutkan pekerjaan Anda untuk menghubungkan adaptor ini dalam kit distribusi khusus dan mungkin dengan versi kernel lainnya.
    (jika tidak, maka tidak, sayangnya - lebih baik tidak mencoba)

Dukungan untuk adaptor Wifi eksternal di "Raspberry PI"

Agar adaptor WiFi berfungsi dengan benar di Linux: kami membutuhkan dua hal:
1) Dukungan kernel Linux untuk adaptor Wifi tertentu
2) Kehadiran dalam sistem modul kernel untuk adaptor Wifi tertentu

Ambil adaptor TP-Link TL-WN722N misalnya. Dia hanya memiliki antena yang bagus.
Kami akan menemukan chipset tempat papan itu bekerja - saya memilikinya "AR9271",
catatan:

    ,  ,            ,  Wifi  .     ,   TL-WN722N  2,     Realtek RTL8188,       Linux (  ),    , ..           ()  . 

Sekarang kita akan menemukan nama parameter dalam konfigurasi kernel yang bertanggung jawab untuk driver chipset AR9271, yang terbaik adalah mencari kombinasi kata "AR9271 cateee.net"
di mana "cateee.net" adalah situs keren yang menggambarkan konfigurasi modul kernel Linux

Segera temukan nama konfigurasi kernel - CONFIG_ATH9K_HTC
dan nama modul kernel ath9k_htc yang kita butuhkan

dan kemudian cukup tentukan nama modul yang diinginkan dalam file fragmen konfigurasi
Kernel Linux => resep-kernel / linux / file / rbpi.cfg, tambahkan baris:
CONFIG_ATH9K_HTC = m

Dengan demikian, di masa depan Anda dapat menghubungkan peralatan tambahan ke sistem Anda (yah, tentu saja, jika sudah didukung di kernel Linux)

Apa yang harus dilakukan jika Anda seorang desainer geek

Dan Anda menciptakan hal-hal paling keren, misalnya, seperti di sini atau Anda adalah seorang siswa dan impian untuk menciptakan sesuatu yang serupa.

Jadi, begitu saja Anda dapat mengambil beberapa jenis layar Layar Sentuh untuk RPI di aliexpress, pesan baterai yang cocok di sana, hubungkan semuanya ke papan Raspberry Pi 1.2 atau 3 (lebih baik ke 3, karena memiliki built-in Wifi), pilih tema desain grafis antarmuka di Kodi, dirancang untuk layar sentuh dan voila => Anda bisa mendapatkan pemutar audio sederhana. Tentu saja itu akan cukup besar, tetapi itu akan menjadi milik Anda.

  : 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)}" 

   Jika responsif dari Kodi GUI 17.6 
   karena satu inti prosesor di Zero Anda akan terlihat 
   misterius, Anda dapat membuat tipuan dengan telinga Anda dan mengumpulkan yang lebih tua, 
   tetapi versi yang sangat cepat, misalnya Kodi 15.2, itu lebih 
   "ramah" (terkadang warisan menentukan segalanya)

Sayangnya, saya tidak punya biaya, jadi saya tidak bisa memeriksa, tetapi menurut perasaan saya, ini harus bekerja.

Instruksi Perakitan Singkat
  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 

instruksi perakitan lebih rinci
dan merekam ke kartu microSDHC, lihat artikel sebelumnya


Catatan tambahan

Tentu saja, gagasan kolom radio Internet adalah tipikal, diketahui oleh semua orang dan pada hub Anda akan menemukan banyak artikel tentang hal ini, misalnya di sini

Dan Anda mungkin juga berpikir bahwa saya hanya cocok dengan persyaratan untuk solusi turnkey. Saya bisa mengatasi ini dan mengatakan tidak, jujur, jujur.

Lebih banyak build untuk Anda bagus dan berbeda.

Source: https://habr.com/ru/post/id482714/


All Articles