
Põhitingimused:
- On olemas vana kasutamata Raspberry Pi esimese põlvkonna plaat;
- Plaat seisab kapis kasutult — plaat on nagu «Telliskivi»;
Mida soovitakse saada:
- Teatud hetkel (näiteks tuju järgi)
plaat lakab olemast «Telliskivi» ja sellega sisestatakse maagiline mälukaart; - Plaadile on ühendatud Ethernet kaabel ja pistik tavalise kodumajapidamise kõlarist või kõrvaklappidest;
- Pärast toite andmist on endine «Telliskivi» — laulab
Peamine idee:
- Minimaalne liikumiste arv mis tahes seadistamiseks, ideaaljuhul ühendame ainult «Ethernet» kaabli, toite ja kõlarid, ja rohkem mitte midagi, sõna otseses mõttes «üldse»;
- Endine «Telliskivi» pakub näiteks 20 interneti raadiokanali tuge, nende vahel vahetamine toimub näiteks hiire ratast keerates või teatud GPIO pinni kaudu (ühendades kaks juhet ja sulgedes need (minu lapsepõlve unistus));
- Juhtimine toimub raadiokanali kaudu, milleks võib olla tavaline raadiomähi;
- Võtta valmis süsteem, distributsioon koguda «Yocto Project»
seega, nagu tavaliselt, me ei tee midagi, kuna kõik on juba tehtud.
(piisab vaid asetada kolmas jälgija teisele poole «Teler»);
Kirjeldus
Lihtsaim Interneti raadiokõlar «KODI»
Kogumik on mõeldud vanadele Raspberry Pi 1 plaatidele
(mis tolmu koguvad kuskil kapis, kuid on endiselt töötamiseks valmis)
Vaikimisi kasutatakse nimekirja m3u8, mis sisaldab 12 Interneti raadiokanalit.
Eeldatakse, et plaat töötab ilma HDMI väljundita, ja selle väljalülitamiseks piisab toiteadapteri seinast välja tõmbamisest. Ja ultra kaasaegse juhtmevaba puldina võite kasutada oma super raadiomüüki (või ühendada tavaline hall kaabliga).
Seadmise ajal konfigureeritakse võrgu liides vaikimisi läbi DHCP protokolli ja mängitakse ette viimane salvestatud raadiojaam nimekirjast; helitugevuse reguleerimine toimub tavalise hiirega:
(nimetage lõpuks oma hiir „halduriks“ ja õnnitlege teda, ta on seda väärt)
rattaske ettepoole - helitugevuse suurendamine
rattaske tagasi - helitugevuse vähendamine
pikaajaline vajutus (3 sek ja rohkem) hiire paremal nupul
- järgmise raadiojaama valimine
pikaajaline vajutus (3 sek ja rohkem) hiire vasakul nupul
- eelmise raadiojaama valimine
Oma Interneti raadiojaamade nimekirja lisamiseks
võite alati ühendada HDMI-kaabli telerist
ja kasutada Kodi 17.6 tavapärast graafilist liidest
(välja lülitada plaat, ühendada HDMI ja sisse lülitada toiteadapter)Peamenüü Kodi => „Täiendused” => „Minu täiendused”
=> „PVR-klientide” => „PVR IPTV Simple Client”
Esialgne teostus
(võimalik)
Alguses, kui otsustasin teha „Interneti Raadio kõlarit”, kavatsesin järgmist:
- Minimalistlik konsoolidistributsioon Yocto Projectis;
- Heli edastus toimub GStreamer'i kaudu;
- Võrguühendus seadistatakse DHCP kaudu;
Ja sellisel lahendusel on mitmeid eeliseid:
- Piisavalt kiire (töörežiimi jõudmine toite andmisest 30-40 sekundi jooksul);
- Piisavalt usaldusväärne (vähem programme, vähem rikkepunkte);
- Konsoliversioon on tunduvalt lihtsam seadistada ainult lugemisrežiimi
st. programmid ei salvesta midagi juurefailisüsteemi
(ja SDHC mälukaardi failisüsteem on minu arvates esimene, mis rikkeid kogeb);
Märkus:
Yocto-s on võimalik juurfailisüsteemi (rootfs)
seadistada ainult lugemise režiim üsna lihtsalt,
muutes vaid ühe parameetri koostamise ajal.
Yocto pakub välja kaks võimalust:
1) Failisüsteemi töö tavalises lugemise/kirjutamise režiimis
(nii toimivad kõik universaalsed distributsioonid, näiteks Ubuntu)
2) Failisüsteemi töö ainult lugemise režiimis
(nii toimivad spetsialiseeritud distributsioonid, näiteks ruuteri tarkvaras)
Ainult lugemise režiimis mountitakse kõik kaustad, kuhu tavaliselt
rakenduste ja teenuste andmed kirjutatakse,
mällu (näiteks kaust /var/log ja sarnased)
Andmed kehtivad ainult praeguse tööperioodi jooksul ja pärast toitekatkestust
andmed kaovad.
Kui Yocto Project'is määrate koostamise ajal "only read"
kasutama, siis pärast koostamist on teie distributsioon seadistatud ainult lugemiseks,
kuid saate alati lisada võimaluse dünaamiliseks muutmiseks
"only read" režiimist "read/write" režiimi, kuid see on juba hoopis teine lugu ...
Ja üks peamine puudus:
«Seda tuleb teha», st mul on vaja kulutada N õhtut.
(tavaliselt pärast tööd, ja see on kõige ebaefektiivsem aeg, sel ajal mõistus ei mõtle, ta tavaliselt magab)
Ja veel, oma eelmist artiklit Habr´is kirjutasin ma multimeedia keskuse kohta project
ja võimalus jätkata samas vaimus ületas minu uurimishimu. Selle kohta järgmises peatükis.
Kodi muutmine internetiraadioks
Vajalikku funktsionaalsust lisamiseks lisan ma retsepti kogumise meetodi, millest on juttu eelnevas vt fail berserk-image.bb
GUI_SETTINGS = "home/root/.kodi/userdata/guisettings.xml"
# viimati valitud TV kanali käivitamise konfiguratsioon (1-taust 2-esiplaan)
F1_LINE = "<startlast default="true">0</startlast>"
R1_LINE = "<startlast>1</startlast>"
# heli väljundi konfiguratsioon, alati on ühendatud ainult analoogne audio väljund
F2_LINE = "<audiodevice default="true">PI:HDMI</audiodevice>"
R2_LINE = "<audiodevice>PI:Analogue</audiodevice>"
# kuna HDMI vaikimisi ei kasutata, lülitan välja automaatse uuendamise
# muidu võib juhtuda, et toide on ära läinud, aga andmed on salvestamata
F3_LINE = "<addonupdates default="true">0</addonupdates>"
R3_LINE = "<addonupdates>2</addonupdates>"
# meetod vastutab konfiguratsiooni lisamise eest:
# mis muutab "Nutitelevisiooni" "lihtsaks Interneti raadiokõlariks"
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"
# kuna HDMI väljundit ei pruugita kasutada,
# tuleb välja lülitada "teretulemast"
off_kodi_welcome() {
sed -i "s|${FIND_STR}|#&|" ${IMAGE_ROOTFS}/${SCRIPT_FIRST_RUN}
}
Meetodid on mõeldud juurfailisüsteemi muutmiseks enne jaotuse pildi loomist, mis salvestatakse ühe raw-failina, mis kirjutatakse mälukaardile käsuga dd
See toimub järgmiselt:
ROOTFS_POSTPROCESS_COMMAND += «add_radio_guisettings; off_kodi_welcome;»
Lühidalt öeldes muudetakse Kodi 17.6 konfiguratsiooni põhifailis „kolme punkti“
- Viimati valitud TV kanali käivitamise konfiguratsioon;
- Heli väljundi konfiguratsioon, kus on alati ühendatud ainult analoogaudio väljund;
- Automaatse värskendamise keelamine;
- Märkus:
Ainus, millega mul oli raskusi, oli see, et pidin veel ka andmebaasifaili formaadis sqlite => TV29.db tõmbama, kus on märgitud praegu predseeritav TV kanal (kuna vaikimisi ei ole ükski kanal valitud), ja läbi xml konfiguratsiooni Kodi seda teha ei saa.
Iga punkti jaoks üksikasjalik tegevusjärjestus:
1) Klõpsake ekraani vasakus ülanurgas hammasratta ikoonil
ja valige „PVR ja TV seaded“ (televisiooni ikoon kahe sarvega)
siis vasakus menüüs valige „Taasesitus“ ja keskel sektsioonis „Üldine“
valige rippmenüüst „Jätka viimase kanaliga käivitamisel“
valides seadistuse „Eesmine plaan“
või veelgi selgemalt:
"PVR ja TV seadistused"
=> "Esitamine"
=> "Jätka viimase kanaliga käivitamisel" => "Eesmine plaan"
2) Klõpsake ekraani vasakus ülanurgas nuppu „hammasratta“ ja valige punkt:
"Süsteemi seadistused"
=> "Lisandmoodulid" => "Uuendused" => "Ärge kontrollige uuendusi kunagi"
3) Klõpsake ekraani vasakus ülanurgas nuppu „hammasratta“ ja valige punkt:
"Süsteemi seadistused"
=> "Heli" => "Heli väljundseade" => "PI: Analoog"
Kuidas ma kaks aastat vale televiisorit vaatan.
Pean teile tunnistama, et ma ei ole kahe aasta jooksul õigesti televiisorit vaatama õppinud.
Mina vaatan tavaliselt telekat köögis. Teleka külge on ühendatud Raspberry Pi 2B plaat, ning plaadil on Ethernet ja HDMI pistikud. Plaadi toide tuleb tavalisest USB-kaablist, mis on ühendatud teleka USB-porti, st, et teleka sisse lülitamine tavalise puldiga toidab ka Raspberry Pi plaati, ning teleka väljalülitamine puldiga lõpetab samuti otse toite Raspberry Pi plaadi pealt.
Jah, ma olen täiesti teadlik, et nii teha ei tohiks, kuna Kodi meediakeskuse juurefailisüsteem (ext3) töötab mul tavapärases lugemise/kirjutamise režiimis. Kuid ma olen laisk inimene ning alguses otsustasin kontrollida, kui kaua saan süsteemi välja lülitada, kuni ta täielikult enam ei käivitu, kuid kahjuks ei ole ma kahe aasta jooksul seda suutnud teha (võimalik, et ma lihtsalt paar palju, ei tea).
Ja arvan, et kui selline režiim sobib minu televiisori jaoks, siis sobib see ka "tavalisele Interneti raadiokõlarile", ja kuna olen sundinud Kodi pluginad automaatset värskendust välja lülitama, siis väheneb ka failisüsteemi tõrke tõenäosus. Praegu ma sellega probleeme ei näe.
Märkus:
Kuid alati saate, kui soovite, ühe yocto käsklusega
IMAGE_FEATURES += "read-only-rootfs"
ja teatud maagia abil viia oma distributsioon "read only" režiimi.
Artiklis kirjeldatud „interneti raadiokõlari“ distributsioon on kodumaine, ja mis on kodumaise distributsiooni jaoks kõige olulisem — see on kaunis GUI. Minu arvamus on, et on väga raske või peaaegu võimatu õpetada tavalist kasutajat sisestama mingeid arusaamatut maagilist käsku konsooli, tal ei ole isegi selle sõna tähendust. Aga GUI, see palun.
Ja see on tõenäoliselt minu peamine argument mitte-konsolil põhineva distributsiooni kasuks. Soe, hubane graafiline kasutajaliides Kodi, jah, see pole eriti vajalik, aga see on olemas.
(Lisaks unustasin ma täiesti mainida, et Kodi-d saab juhtida ka kaugelt, näiteks nutitelefoni kaudu, paigaldades rakenduse "Yatse", ja võib-olla on see kellegi jaoks pluss.)
Kodi konfiguratsioon hiire juhtimiseks
aga nüüd Rakett
HeliTõus
HeliLangem
KanaliLangemine
KanaliLangemine
KanaliTõus
Konfiguratsioon asendab üldised (global) sündmused järgmiste elementide jaoks:
- hiire ratta kerimine edasi
- hiire ratta kerimine tagasi
- hiire keskmise nupu vajutamine
- hiire pika vajutamise (3 sek ja rohkem) käsitlemine,
0 parema nupu identifikaator, 1 vasaku nupu identifikaator
detaile hiire sündmuste seadistamise kohta:
Mida teha, kui kaabeldusüsteem ei ole kohale jõudnud
«Aga mul ei ole kodus vabu Etherneti porte (või pole neid kunagi olnud)» — võib hüüda osa vanade Raspberry Pi 1 omanike õnnelikest, (võib-olla plaati osteti uurimiseks ja see jäi kapis vedelema)
Ja kuna plaadil ei ole sisseehitatud Wifi, siis ilma Etherneti ühenduseta ei ole see väga funktsionaalne.
Muidugi on võimalik kasutada Raspberry Pi 1 plaati ilma Ethernetita, kuid see nõuab teilt teatud pingutusi. Selliseid asju on huvitav teha tavaliselt uue õppimise kontekstis, st see ei ole kasutajapoolne töö.
Niisiis, vaatame hüpoteetilist võimalust kasutada plaati ilma Ethernetita:
Võib-olla saate ühendada välist USB — Wifi adapti, arvestades seda,
et adapter peaks töötama Linuxiga
Märkus:
Kahjuks ei tööta osa WiFi adapteritest,
see ei ole selle artikli esitatud distributsiooni omapära,
vaid pigem konkreetsete WiFi adapterite draiverite probleem Linuxi tuumas.
Võime konstateerida, et sel hetkel ei saa te lihtsalt
minna poodi ja osta ükskõik millist WiFi adapterit. Pigem peate valima WiFi
adapti vähem probleemsetest ja hästi töötavatest Linuxis.
Olen testinud ainult järgmisi mudeleid:
- WiFi adapter Atheros D-Link DWA-126 802.11n (AR9271) instruktsiooniga
- WiFi adapter NetGear WNDA3200
- WiFi adapter NetGear WNA1100
- WiFi adapter TP-Link TL-WN722N (AR9271)
- WiFi adapter TL-WN322G v3
- WiFi adapter TL-WN422G
- Wifi adapter Asus USB-N53 Ralink RT3572 kiibistiku
Kui teil on juba USB Wifi adapter, saate kontrollida, kas see töötab Linuxis järgmiselt:
- Installige mõni laialdaselt levinud Linuxi distributsioon
üldotstarbeline, näiteks 'Ubuntu Desktop' - Laadige süsteem alla
- Ühendage oma Wifi USB adapter
- Käivitage võrguhaldur ja proovige ühendada oma WiFi ligipääsupunktiga
- Kui kõik toimib hästi ja teie internetiühendus on stabiilne, siis tähendab, et teie adapterit toetatakse hästi ning võite jätkata selle adapteri ühendamisega spetsialiseeritud distributsioonis ja ehk ka teiste kerniversioonidega
(kui ei, siis ei — parem isegi mitte proovida)
Välist Wifi adapteri tugi 'Raspberry PI'-s
WiFi adapteri korrektseks tööks Linuxis: meil on vaja kahte asja:
1) Linuxi tuum toetust teatud Wifi adapterile
2) Teatud Wifi adapteri jaoks tuumamooduli olemasolu süsteemis
Võtame näiteks adapteri TP-Link TL-WN722N. Sellel on lihtsalt suurepärane antenn.
Leiame kiibistikud, mille põhjal plaat töötab — mul on see 'AR9271', märkus:
huvitav on see, et ühe ja sama mudeli puhul
sama tootja, Wifi-kiibistik võib erineda.
Näiteks olen silmitsi seisnud sellega, et TL-WN722N versioon 2
kasutab juba teistsugust Realtek RTL8188 kiibistikku, mis
toona töötas Linuxi all halvasti, kahjuks nii see on,
st mõnikord tuleb tähelepanu pöörata ka väikestele numbritele
versioonil adapteri tagaküljel (tumeda poole peal).
Nüüd leidke parameetri nimi tuumas, mis vastutab AR9271 kiibistikule mõeldud draiveri eest, parim on otsida sõnaühendit "AR9271 cateee.net"
kus "cateee.net" on lahe sait Linuxi tuumamoodulite konfiguratsioonide kirjeldamise kohta
Kohe leiame tuuma konfiguratsiooni nime — CONFIG_ATH9K_HTC
ja nime meie vajaliku mooduli tuuma ath9k_htc
ja seejärel piisab lihtsalt vajaliku mooduli nime märkimisest konfiguratsiooni fragmentide failis
Linuxi tuum => recipes-kernel/linux/files/rbpi.cfg, lisage rida:
CONFIG_ATH9K_HTC=m
Nii saate tulevikus ühendada igasuguseid täiendavaid seadmeid oma süsteemi (kui need on muidugi Linuxi tuumas juba toetatud)
Mida teha, kui oled Habr geek — ehitaja
Ja loote ägedaid asju, näiteks selliseid nagu või oled üliõpilane ja unistad luua midagi sarnast.
Esialgu võiks osta mingi Touch Screen ekraani RPI jaoks aliexpressist, seal tellida sobiv akut, ühendada kõik see Raspberry Pi 1, 2 või 3 (parem on 3, kuna tal on sisse ehitatud Wifi), valida graafilise liidese teema Kodies, mis on mõeldud puuteekraanile, ja voila => sul võib saada lihtne audio mängija. Muidugi on see piisavalt mahukas, kuid see on sinu.
Märkus:
A jaoks, et üles ehitada Kodi meediumikeskus kõige odavamale platvormile
Raspberry Pi Zero Wifi yocto-s, piisab, kui muuta kahte rida:
konfiguratsioonifail => build/conf/local.conf
MACHINE = 'raspberrypi0-wifi'
Kodi koostamisretsept => recipes-mediacentre/kodi/kodi_17.bbappend
EXTRA_OECONF_append = "${@bb.utils.contains('MACHINE',
'raspberrypi0-wifi', '${BS_RPI}', '', d)}"
Kui Kodi 17.6 kasutajaliidese reageerimisvõime ühe protsessorituuma tõttu Zero-s tundub mõistatusena, siis saad teha nipi ja koostada vanema, kuid väga kiire versiooni, näiteks Kodi 15.2, mis selles osas on "sõbralikum" (mõnikord lahendab legacy kõik).
Kahjuks ei ole mul makset, seega ei saa ma seda kontrollida, kuid minu arvates peaks see toimima.
Lühike kokkuvõte kokkupanekuks
1) Installige Yocto projekti sõltuvused (näiteks Uubuntus):
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) Laadige ja installige Repo:
mkdir ~/bin
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
3) Laadige projekt githubist:
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) Koguge projekt:
./shell.sh
bitbake berserk-image
sama saab teha ka Raspberry Pi 3B Plus, 3B ja 2B plaatide jaoks:
repo init -u https://github.com/berserktv/bs-manifest
-m raspberry/rocko/radio-0.2.8.xml
täiendav juhend kokkupanekuks
ja salvestamiseks microSDHC kaardile cm.
Postskriptum
Loomulikult on internetiraadio kõlarite mõte tuttav, seda tunneb kõik ning hubis leiate selle kohta hulganisti artikleid, näiteks
Ja võite arvata, et ma lihtsalt kohandasin nõuded valmislahendusele. Sellele vastan, et ei, ausalt.
Härra Ervi lugu
Usuge, et usuge mitte, aga asi oli nii:
Meie töökontor piirneb erinevate heliseadmete tootmisega tegelevate ettevõtetega, ja kord läks selle ettevõtte direktor, nimetu härra "Ervi", meie filiaali asedirektori härra "Arseni" juurde ja küsis temalt, kui keeruline on panna Raspberry Pi plaadile mängima helivooge, st plaat on ühendatud võrguga ja kõlaritega, ning "kõlab iseloomulik heli".
Pärast seda läks härra Arseni minu ülemuse asetäitja härra "Borise" juurde ja edastas küsimuse talle, ning mina, kui pealtnägija, juhuslikult mäletasin seda ideed ja nimetasime seda "Kolme ülemuse ülesandeks".
Üldiselt tahtsime parimat, kuid välja tuli, tsitaat: "Aga härra Ervi, nagu alati, aitas."
Mõne aja pärast küsisin härra "Borise" käest, mida ta arvab väikese märkme kirjutamisest selle teema kohta "Habrasse", millele "Borise" vastas, et "kolme menüüpunkti" muutmine Koidis ei too erilist uut teavet ja ei vääri eraldi mainimist. Loomulikult olen ma temaga täielikult nõus ja seetõttu ei räägi ma talle, et olen selle kohta midagi kirjutanud.
Artikkel on kirjutatud eksklusiivselt "Raspberry Pi 1" plaadi jaoks, mis on saadud härra "Borise" käest eksperimendi ajaks, ning kõik muud "Raspberry Pi 1" jaotused on juhuslikud.
Soovime teile häid ja mitmekesiseid kompositsioone, ning las isegi vana telliskivi sellel aastal teie jaoks laulma hakkab.
Allikas: habr.com
