Eng oddiy Internet-radio ustuni "Kodi" yoki "Raspberry" g'ishtining najoti

Eng oddiy Internet-radio ustuni "Kodi" yoki "Raspberry" g'ishtining najoti

Asosiy shartlar:

  1. Eski foydalanilmagan birinchi avlod Raspberry Pi taxtasi mavjud;
  2. Doska shkafda o'lik vazn sifatida yotadi va ishlatilmaydi - "G'isht" taxtasi;

Men nimani olishni xohlayman:

  1. Vaqtning ma'lum bir nuqtasida (masalan, kayfiyat bo'yicha)
    doska "G'isht" bo'lishni to'xtatadi va unga sehrli xotira kartasi o'rnatiladi;
  2. Ethernet kabeli va oddiy maishiy karnay yoki minigarnituraning vilkasi taxtaga ulangan;
  3. Quvvat berilgandan so'ng, sobiq "G'isht" - qo'shiq aytadi

Asosiy fikr; asosiy g'oya:

  1. Har qanday sozlash uchun minimal imo-ishoralar soni, eng ideal holatda, biz faqat "Ethernet" kabelini, quvvatni va dinamiklarni ulaymiz va so'zdan boshqa hech narsa qilmaymiz. "umuman";
  2. Sobiq "G'isht" qutidan tashqarida, masalan, sichqonchaning g'ildiragini yoki ma'lum bir GPIO pinini bosish orqali aylana bo'ylab almashtirilishi mumkin bo'lgan 20 ta Internet radiostantsiyasini qo'llab-quvvatlaydi (ikkita simni ulang va ularni qisqartiring (bolalikdagi orzuim) );
  3. Boshqarish radiokanal orqali amalga oshiriladi va bu radiokanal oddiy radio sichqonchasi bo'lishi mumkin;
  4. Tayyor tizimni oling va tarqatishni "Yokto loyihasi" ga yig'ing.
    bular. odatdagidek, biz sizga hech narsa qilmaymiz, chunki hamma narsa allaqachon qilingan.
    (boshqa tarafga tashqi kuzatuvchini qo'yish kifoya "TV");

tavsifi

Eng oddiy Internet-radio ustuni "KODI"
Yig'ma eski Raspberry Pi 1 platalari uchun mo'ljallangan
(shkafning biron bir joyida chang to'plash, lekin ular ko'proq ish qilishga tayyor)

Odatiy bo'lib, 3 ta Internet radiostantsiyalarining m8u12 ro'yxati ishlatiladi.

Taxminlarga ko'ra, plata HDMI chiqishisiz ishlaydi va uni o'chirish uchun quvvat adapterini rozetkadan ajratib qo'yish kifoya. Va ultra zamonaviy simsiz boshqaruv paneli sifatida siz o'zingizning super radio sichqonchangizdan foydalanishingiz mumkin (yoki oddiy kulrangni quyruq bilan ulashingiz mumkin).

Yoqilganda, standart tarmoq interfeysi DHCP protokoli orqali sozlanadi va ro'yxatdagi oxirgi yodlangan radiostantsiya o'ynaladi, ijro etish ovozi oddiy sichqoncha bilan boshqariladi:
(nihoyat, sichqonchangizni β€œboshqaruv rahbari” etib tayinlang va tabriklang, u bunga loyiq)

  колСсико Π²ΠΏΠ΅Ρ€Π΅Π΄  - ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ громкости Π·Π²ΡƒΠΊΠ°
  колСсико Π½Π°Π·Π°Π΄   - ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ громкости Π·Π²ΡƒΠΊΠ°
  Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ (3сСк ΠΈ Π±ΠΎΠ»Π΅Π΅) Π½Π° ΠΏΡ€Π°Π²ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΌΡ‹ΡˆΠΈ
                   - Π²Ρ‹Π±ΠΎΡ€ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ радиостанции
  Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ (3сСк ΠΈ Π±ΠΎΠ»Π΅Π΅) Π½Π° Π»Π΅Π²ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΌΡ‹ΡˆΠΈ
                   - Π²Ρ‹Π±ΠΎΡ€ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ радиостанции

Internet radiostantsiyalaringiz ro'yxatini qo'shish uchun
har doim televizoringizdan HDMI kabelini ulashingiz mumkin
va Kodi 17.6 standart grafik interfeysidan foydalaning
(taxtani o'chiring, HDMI-ni ulang va quvvat adapterini yoqing)

Kodi asosiy menyusi => "Qo'shimchalar" => "Mening qo'shimchalarim"
          => β€œPVR Clients” => β€œPVR IPTV Simple Client”

Dastlabki amalga oshirish

(mumkin)
Dastlab, men "Internet radio ustuni" ni yaratishga qaror qilganimda, men quyidagilarni rejalashtirdim:

  • Yocto loyihasida minimalist konsol taqsimoti;
  • Ovoz oqimi GStreamer orqali ijro etiladi;
  • Tarmoq interfeysi DHCP orqali sozlangan;

Va bu yechim bir qator afzalliklarga ega:

  1. Juda tez (elektr ta'minotidan ish rejimiga o'tish uchun 30-40 soniya kerak bo'ladi);
  2. Etarlicha ishonchli (dasturlar kamroq, muvaffaqiyatsizlik nuqtalari kamroq);
  3. Konsol tarqatish faqat o'qish rejimiga o'tishni osonlashtiradi
    bular. dasturlar ildiz fayl tizimiga hech narsa yozmaydi
    (va SDHC muhitidagi fayl tizimi, mening fikrimcha, muvaffaqiyatsizlikka birinchi nomzod);

Eslatma:

    Π’ Yocto пСрСвСсти ΠΊΠΎΡ€Π½Π΅Π²ΡƒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму (rootfs) 
    Π² Ρ€Π΅ΠΆΠΈΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ достаточно просто, 
    ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² ΠΎΠ΄ΠΈΠ½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π²ΠΎ врСмя сборки 

    Из ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ Yocto ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°:
    1) Π Π°Π±ΠΎΡ‚Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅/запись 
    (Ρ‚Π°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ всС дистрибутивы ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ubuntu)
    2) Π Π°Π±ΠΎΡ‚Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅
    (Ρ‚Π°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ спСциализированныС дистрибутивы, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°Ρ…)

    Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ всС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ 
    Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ сСрвисов Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ 
    Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /var/log ΠΈ Ρ‚.ΠΏ.)
    Π”Π°Π½Π½Ρ‹Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ сСанса Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ послС сброса питания
    Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ.

    Если Π² Yocto Project Π²Ρ‹ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈ сборкС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ "read only", 
    Ρ‚ΠΎ послС сборки ваш дистрибутив Π±ΡƒΠ΄Π΅Ρ‚ настроСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, 
    Π½ΠΎ Π²Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ динамичСского ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° 
    ΠΈΠ· "read only"  Π² "read/write", Π½ΠΎ это ΡƒΠΆΠ΅ совсСм другая история ...
    

Va bitta asosiy kamchilik:

"Buni qilish kerak", ya'ni. Men N oqshomni o'tkazishim kerak
(odatda ishdan keyin va bu eng samarasiz vaqt, bu vaqtda miya endi o'ylamaydi, odatda uxlaydi)

Va shunga qaramay, men HabrΓ©-da multimedia markazi haqida oldingi maqolamni yozgan edim Kodi va Yocto loyiha
va xuddi shu yo'nalishda davom etish imkoniyati mening tadqiqot ishtiyoqimdan ustun keldi. Bu haqda keyingi bobda batafsil.

Kodi-ni Internet-radio dinamikiga aylantirish

Menga kerak bo'lgan funksionallikni qo'shish uchun men avvalgisida tasvirlangan tarqatishni yaratish retseptiga yana bir usul qo'shaman maqola berserk-image.bb fayliga qarang

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

Usullar buyruq bilan xotira kartasiga yozilgan bitta xom fayl shaklida tarqatish tasvirini shakllantirishdan oldin ildiz fayl tizimini o'zgartirish uchun mo'ljallangan. dd

Bu shunday amalga oshiriladi:
ROOTFS_POSTPROCESS_COMMAND += "add_radio_guisettings; off_kodi_welcome;"

Muxtasar qilib aytganda, Kodi 17.6 ning asosiy konfiguratsiya faylida "uch nuqta" o'zgaradi

  • Oxirgi tanlangan telekanalni ishga tushirish uchun konfiguratsiya;
  • Ovoz chiqishi konfiguratsiyasi, faqat analog audio chiqishi doimo ulanadi;
  • Avtomatik yangilanishlarni o'chiring;
  • Eslatma:
        ЕдинствСнноС с Ρ‡Π΅ΠΌ Ρƒ мСня Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ слоТности, 
        это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π΅Ρ‰Π΅ ΠΏΠΎΠ΄Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… 
        Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ sqlite => TV29.db, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ указываСтся 
        Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Π’Π’ ΠΊΠ°Π½Π°Π» 
        (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· ΠΊΠ°Π½Π°Π»ΠΎΠ² Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π½), 
        Π° Ρ‡Π΅Ρ€Π΅Π· xml ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π² Kodi этого Π½Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.
        

Har bir element uchun batafsilroq harakatlar ketma-ketligi:

1) Ekranning yuqori chap burchagidagi tishli belgini bosing
va "PVR va televizor sozlamalari" ni tanlang (ikki shoxli televizor tasviri)
keyin menyuning chap tomonida "Ijro etish" ni va markaziy bo'limda "Umumiy" ni tanlang.
ochiladigan ro'yxatda "Ishga tushganda oxirgi kanaldan davom etish" ni tanlang
"Old fon" sozlamasini tanlash

yoki aniqroq:

      "Настройки PVR ΠΈ Π’Π’" 
       => "ВоспроизвСдСниС" 
       => "ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ с послСднСго ΠΊΠ°Π½Π°Π»Π° ΠΏΡ€ΠΈ запускС" => "ΠŸΠ΅Ρ€Π΅Π΄Π½ΠΈΠΉ ΠΏΠ»Π°Π½"

2) Ekranning yuqori chap burchagidagi β€œtishli” belgisini bosing va elementni tanlang:

       "БистСмныС настройки"  
       => "ДополнСния" => "ОбновлСния" => "Никогда Π½Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ обновлСния"

3) Ekranning yuqori chap burchagidagi β€œtishli” belgisini bosing va elementni tanlang:

       "БистСмныС настройки" 
       => "Аудио" => "Устройство Π²Ρ‹Π²ΠΎΠ΄Π° Π·Π²ΡƒΠΊΠ°" => "PI: Analogue"

Qanday qilib men ikki yil davomida noto'g'ri televizor ko'rdim.

Sizga tan olishim kerakki, ikki yil davomida men hali ham televizorni to'g'ri ko'rishni o'rganmaganman.

Men odatda oshxonada televizor ko'raman. Raspberry Pi 2B platasi televizorga, Ethernet va HDMI ulagichlari esa plataga ulangan. Kengash oddiy USB kabeli orqali quvvatlanadi, u televizorning USB portiga ulangan, ya'ni. Aslida, televizorni standart masofadan boshqarish pulti yordamida yoqish Raspberry Pi platasini quvvat bilan ta'minlaydi va masofadan boshqarish pultidan televizorni o'chirish ham darhol Raspberry Pi platasining quvvatini tiklaydi.

Ha, buni amalga oshirish mumkin emasligini yaxshi bilaman, chunki Kodi media markazining ildiz fayl tizimi (ext3) oddiy o'qish/yozish rejimida ishlaydi. Ammo men dangasa odamman va birinchi navbatda tizimni yuklashni to'liq to'xtatmaguncha qancha vaqt o'chirib qo'yishim mumkinligini tekshirishga qaror qildim, lekin afsuski, ikki yildan keyin men buni uddalay olmadim (ehtimol, men shunchaki omadli edim, Bilmadim ).

Va mening fikrimcha, agar bu rejim mening televizorim uchun mos bo'lsa, u "oddiy Internet-radio dinamik" uchun ham mos bo'lar edi va men Kodi plaginlarini avtomatik yangilashni majburan o'chirib qo'yganim sababli, fayl tizimining ishlamay qolish ehtimoli tenglashadi. Ozroq. Hozircha men bu borada muammo ko'rmayapman

Eslatma:

    Но Π²Ρ‹ всСгда ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠΉ yocto ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ 
    IMAGE_FEATURES += "read-only-rootfs"

    ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΌΠ°Π³ΠΈΠΈ пСрСвСсти ваш дистрибутив Π² Ρ€Π΅ΠΆΠΈΠΌ "read only"
    

Maqolada tasvirlangan "Internet radio dinamiklari" tarqatish uy xo'jaligidir va uy tarqatish uchun eng muhimi - bu chiroyli GUI. Menimcha, oddiy foydalanuvchini konsolga har qanday tushunarsiz sehrli buyruqlarni kiritishga o'rgatish juda qiyin yoki deyarli imkonsiz va u bu so'zni ham bilmaydi. Lekin GUI, iltimos.

Va bu, ehtimol, konsol bo'lmagan tarqatish foydasiga mening asosiy dalil. Kodi-ning iliq chiroqli grafik foydalanuvchi interfeysi, bu haqiqatan ham kerak emas, lekin u erda.
(Shuningdek, men Kodi-ni masofadan turib, masalan, smartfondan, Yatse ilovasini o'rnatish orqali boshqarish mumkinligini eslatib o'tishni butunlay unutganman va bu ba'zilar uchun ortiqcha bo'lishi mumkin)

Sichqonchani boshqarish uchun Kodi konfiguratsiyasi

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

Konfiguratsiya quyidagi elementlar uchun global hodisalarni bekor qiladi:

  • sichqonchaning g'ildiragini oldinga aylantiring
  • sichqonchaning g'ildiragini orqaga aylantiring
  • sichqonchaning o'rta tugmachasini bosing
  • uzoq sichqonchani bosish bilan ishlov berish (3 soniya yoki undan ko'proq),
    0 o'ng tugma identifikatori, 1 chap tugma identifikatori

Sichqoncha hodisalarini sozlash bo'yicha batafsil ma'lumot:

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

Kabel tizimi sizga etib kelmasa, nima qilish kerak

"Ammo mening uyda hech qanday bepul Ethernet portlari yo'q (yoki hech qachon yo'q)," deb hayqirishi mumkin eski Raspberry Pi 1 platalarining ba'zi baxtli egalari (ehtimol, taxta tadqiqot uchun sotib olingan va kabinetda yotgan bo'lishi mumkin).

Va platada o'rnatilgan Wi-Fi mavjud emasligi sababli, u Ethernet ulanishisiz unchalik ishlamaydi.

Albatta, Raspberry Pi 1 platasidan Ethernetsiz foydalanish mumkin, ammo buning uchun sizdan biroz harakat talab etiladi. Odatda, bunday narsalarni faqat yangi narsalarni o'rganishning bir qismi sifatida qilish qiziqarli, ya'ni. Bu odatiy ish emas.

Shunday qilib, Ethernetsiz plata uchun gipotetik foydalanish holatini ko'rib chiqaylik:

Ko'rib chiqishga asoslanib, tashqi USB - Wi-Fi adapterini ulashingiz mumkin
adapter Linux ostida yaxshi ishlashi kerak

Eslatma:

    К соТалСнию Ρ‡Π°ΡΡ‚ΡŒ 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 
    

Agar sizda USB Wi-Fi adapteringiz bo'lsa, uning Linuxda yaxshi ishlashini quyidagicha tekshirishingiz mumkin:

  • Ba'zi keng tarqalgan Linux distributivlarini o'rnating
    umumiy maqsad, masalan, "Ubuntu Desktop"
  • Tizimni ishga tushiring
  • Wi-Fi USB adapteringizni ulang
  • Tarmoq menejerini ishga tushiring va Wi-Fi kirish nuqtasiga ulanishga harakat qiling
  • Agar hamma narsa yaxshi ishlayotgan bo'lsa va Internetga ulanishingiz barqaror bo'lsa, unda sizning adapteringiz yaxshi qo'llab-quvvatlanadi va siz ushbu adapterni maxsus tarqatishda va ehtimol yadroning boshqa versiyalari bilan ulash bo'yicha ishingizni davom ettirishingiz mumkin.
    (agar bo'lmasa, unda yo'q, afsuski, sinab ko'rmaslik yaxshiroqdir)

Raspberry PI-da tashqi Wi-Fi adapterini qo'llab-quvvatlash

Linuxda WiFi adapteri to'g'ri ishlashi uchun bizga ikkita narsa kerak bo'ladi:
1) Muayyan Wi-Fi adapteri uchun Linux yadrosini qo'llab-quvvatlash
2) Muayyan Wi-Fi adapteri uchun tizimda yadro modulining mavjudligi

Masalan, TP-Link TL-WN722N adapterini olaylik. U shunchaki ajoyib antennaga ega.
Keling, plata ishlaydigan chipsetni topamiz - men uchun bu "AR9271", Eslatma:

    Ρ‡Ρ‚ΠΎ самоС интСрСсноС, это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ для ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ
    ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ производитСля, чипсСт Wifi ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ.
    Π― Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ сталкивался с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ для TL-WN722N вСрсии 2, 
    ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡƒΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ чипсСт Realtek RTL8188, Π° ΠΎΠ½ ΡƒΠΆΠ΅ 
    ΠΏΠ»ΠΎΡ…ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π» ΠΏΠΎΠ΄ Linux (Π½Π° Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚), ΡƒΠ²Ρ‹ Ρ‚Π°ΠΊΠΈΠ΅ Π²ΠΎΡ‚ Π΄Π΅Π»Π°, 
    Ρ‚.Π΅. ΠΈΠ½ΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π΅Ρ‰Π΅ ΠΏΡ€ΠΈΠ³Π»ΡΠ΄Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊ малСньким Ρ†ΠΈΡ„Ρ€Π°ΠΌ 
    вСрсии Π½Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ (Ρ‚Π΅ΠΌΠ½ΠΎΠΉ) сторонС Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°.    
    

Endi AR9271 chipset drayveri uchun mas'ul bo'lgan yadro konfiguratsiyasidagi parametr nomini topamiz, "AR9271 catee.net" so'zlarining kombinatsiyasini izlash yaxshidir.
     bu erda "cateee.net" - bu Linux yadro modullarining konfiguratsiyasini tavsiflovchi ajoyib sayt

Biz darhol yadro konfiguratsiyasi nomini topamiz - CONFIG_ATH9K_HTC
va bizga kerak bo'lgan yadro modulining nomi ath9k_htc

va keyin faqat konfiguratsiya fragment faylida kerakli modul nomini belgilang
Linux yadrosi => retseptlar-kernel/linux/files/rbpi.cfg, qatorni qo'shing:
CONFIG_ATH9K_HTC=m

Shunday qilib, kelajakda siz tizimingizga har qanday qo'shimcha uskunani ulashingiz mumkin (yaxshi, albatta, agar u allaqachon Linux yadrosida qo'llab-quvvatlansa)

Agar siz xabra geek - dizayner bo'lsangiz, nima qilish kerak

Va siz eng zo'r narsalarni yaratasiz, masalan shu yerda yoki siz talabasiz va shunga o'xshash narsalarni yaratishni orzu qilasiz.

O'z-o'zidan, siz aliexpress-da RPI uchun qandaydir sensorli ekranni olishingiz mumkin, u erda mos batareyaga buyurtma berishingiz, barchasini Raspberry Pi 1,2 yoki 3 platasiga ulashingiz mumkin (afzal 3, chunki u o'rnatilgan Wi-Fi), tanlang. Sensorli ekran va voila uchun mo'ljallangan Kodi-dagi grafik dizayn mavzusi interfeysi => siz oddiy audio pleerni olishingiz mumkin. Albatta, bu juda katta bo'ladi, lekin u sizniki bo'ladi.

  ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:
  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)}"

  Agar Noldagi yagona protsessor yadrosi tufayli GUI Kodi 17.6 ning sezgirligi sizga sirli bo'lib tuyulsa, siz quloqlaringizni aldab, eski, ammo juda tez versiyani yaratishingiz mumkin, masalan, Kodi 15.2, bu borada u ko'proq "do'stona". (ba'zida meros hamma narsani hal qiladi)

Afsuski, menda kengash yo'q, shuning uchun men tekshira olmayman, lekin u ishlashi kerak deb o'ylayman.

Yig'ish bo'yicha qisqacha ko'rsatmalar

    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
    

batafsil montaj ko'rsatmalari
va microSDHC kartasiga yozib olish, qarang oldingi maqolada

Postscript

Albatta, Internet-radio karnayining g'oyasi odatiy holdir, buni hamma biladi va HabrΓ©-da siz ushbu mavzu bo'yicha ko'plab maqolalarni topasiz, masalan shu yerda

Va siz men shunchaki talablarni tayyor yechimga moslashtirgan deb o'ylashingiz mumkin. Men bunga qarshi chiqa olaman va rostini aytsam, yo'q.

Janob Erveyning hikoyasi

    Π₯ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π΅Ρ€ΡŒΡ‚Π΅, Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π΅Ρ‚, Π° Π΄Π΅Π»ΠΎ Π±Ρ‹Π»ΠΎ Ρ‚Π°ΠΊ:

    Наш Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ офис Π³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ с Ρ„ΠΈΡ€ΠΌΠΎΠΉ ΠΏΠΎ производству Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠ³ΠΎ
    оборудования, ΠΈ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ‹ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ этой Ρ„ΠΈΡ€ΠΌΡ‹, Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π³ΠΎ мистСр "Π­Ρ€Π²ΠΈ"
    подошСл ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ Π·Π°ΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅Π»ΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€Π° Ρ„ΠΈΠ»ΠΈΠ°Π»Π° мистСру "ΠΡ€ΡΠ΅Π½ΠΈΡŽ"
    ΠΈ спросил Ρƒ Π½Π΅Π³ΠΎ, насколько слоТно ΠΏΠΎΠ²Π΅ΡΠΈΡ‚ΡŒ Π½Π° ΠΏΠ»Π°Ρ‚Ρƒ Raspberry Pi 
    ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° Ρ‚.Π΅. ΠΏΠ»Π°Ρ‚Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ сСти 
    ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌ, ΠΈ "ΡΠ»Ρ‹ΡˆΠ΅Π½ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ΠΉ Π·Π²ΡƒΠΊ".

    ПослС этого мистСр АрсСний подошСл ΠΊ Π·Π°ΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅Π»ΡŽ ΠΌΠΎΠ΅Π³ΠΎ 
    Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΈΠΊΠ° - мистСру "Борису" ΠΈ пСрСадрСсовал вопрос Π΅ΠΌΡƒ, 
    Π½Ρƒ Π° я, ΠΊΠ°ΠΊ сторонний Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»ΡŒ случайно эту идСю Π·Π°ΠΏΠΎΠΌΠ½ΠΈΠ»
    ΠΈ Π½Π°Π·Π²Π°Π» Π΅Π΅ "Π—Π°Π΄Π°Ρ‡Π° Ρ‚Ρ€Π΅Ρ… Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΈΠΊΠΎΠ²".

    Π’ ΠΎΠ±Ρ‰Π΅ΠΌ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΊΠ°ΠΊ Π»ΡƒΡ‡ΡˆΠ΅, 
    Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ, Ρ†ΠΈΡ‚Π°Ρ‚Π° - "Но мистСр Π­Ρ€Π²ΠΈ, ΠΊΠ°ΠΊ всСгда, ΠΏΠΎΠΌΠΎΠ³."

    Π§Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя я поинтСрСсовался Ρƒ мистСра "Бориса" 
    Π΅Π³ΠΎ ΠΌΠ½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ написания нСбольшой Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ Π½Π° эту Ρ‚Π΅ΠΌΡƒ 
    Π½Π° "Π₯Π°Π±Ρ€Π΅", Π½Π° Ρ‡Ρ‚ΠΎ "Борис" ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ», Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ 
    "Ρ‚Ρ€Π΅Ρ… ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню" Π² Kodi, особо Π½Π΅ привносит Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ 
    Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ Π½Π΅ заслуТиваСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ упоминания. 
    ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ я с Π½ΠΈΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ согласСн ΠΈ поэтому, я Π½Π΅ расскаТу Π΅ΠΌΡƒ, 
    Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ написал ΠΏΠΎ этому ΠΏΠΎΠ²ΠΎΠ΄Ρƒ.

    Π‘Ρ‚Π°Ρ‚ΡŒΡ написана ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ для ΠΏΠ»Π°Ρ‚Ρ‹ "Raspberry Pi 1" 
    взятой Ρƒ мистСра "Бориса" Π½Π° врСмя экспСримСнта, 
    совпадСния со всСми Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΠ»Π°Ρ‚Π°ΠΌΠΈ "Raspberry Pi 1" случайны.
    

Siz uchun ko'proq yaxshi va turli yig'ilishlar, va hatto sobiq g'isht ham bu yil siz uchun kuylasin.

Manba: www.habr.com

a Izoh qo'shish