====== Raspberry Pi ====== * aktuálně existuje několik verzí :) * zajímavé je, že výrobce se snaží držet stejné ceny, takže například Raspberry Pi stojí podobně jako Raspberry Pi 3 * u Raspberry Pi 3 to už trochu přehnali, snažili se z toho dostat co nejvyšší výkon a dost se kvůli tomu pry hřeje. Spotřeba už taky není úplně malá. * docela zajímavá verze je Raspberry Pi Zero, která má hardware ještě výkonnější než Raspberry Pi B a přitom stojí jen 160 kč originál * já zatím vlastním jen Rapsbery Pi B a nově Raspberry Pi Zero W ===== Rapsbery Pi B ===== * SoC: Broadcom BCM2835 (CPU + GPU + DSP + SDRAM) * CPU: 700 MHz ARM1176JZF-S core (ARM11 family) * GPU: Broadcom VideoCore IV, OpenGL ES 2.0, 1080p30 h.264/MPEG-4 AVC high-profile decode * Model B ma 512 MB, model A jen 256 MB, pamet je sdilena s GPU * sitova karta je pripojena pres USB rozhrani, lze rozsirit o další externi sitovku do usb * zvuk pres hdmi, analog stereo jack * hw podpora mpeg2 (DVBT) se musi dokoupit (cca 60kc, podle S/N, klic se zapisuje do /boot/config.txt) * spotreba by mela byt cca 3.5W max, nameril jsem 5W i s externim USB hubem ===== Rapsbery Pi zero W ===== * SoC: Broadcom BCM2835 (CPU, GPU, DSP, SDRAM, jeden USB port) * CPU: 1GHz jednojádrový ARM1176JZF-S * GPU: Broadcom VideoCore IV @ 250 MHz, OpenGL ES 2.0 (24 GFLOPS), MPEG-2 a VC-1 (s licencí), 1080p30 H.264/MPEG-4 AVC dekodér a kodér s vysokým profilem * Paměť (SDRAM): 512 MB (sdílená s GPU) * USB 2.0 porty: Micro-USB (přímo z čipu BCM2835) * Video výstup: Mini-HDMI, 1080p60, RCA kompozitní video via GPIO * Video vstup: 1 x MIPI kamerové rozhraní (CSI) (revize 1.3) * Zvukový výstup: Mini-HDMI, stereo audio přes PWM na GPIO * Zvukový vstup: Prostřednictvím I2C rozhraní GPIO * Integrovaná síť: 802.11n wireless, Bluetooth 4.1 * Nízkoúrovňové periferie: 40 x GPIO (bez nástavce, který je ale možno dodatečně připájet) * Jmenovitý výkon: 100 mA (0.5 W) v průměru na volnoběh * Interní paměť: MicroSDHC slot ====== Distribuce ====== ===== Raspbian (Stretch) ===== * stáhl jsem si image [[https://downloads.raspberrypi.org/raspbian_lite_latest|RASPBIAN STRETCH LITE]] * nahrát lze přes dd if=/home/djbuldog/Downloads/2018-06-27-raspbian-stretch-lite.img of=/dev/sde bs=4M conv=fsync * alternativně multiplatformní [[https://etcher.io|Etcher]] (linuxová verze využívá [[http://appimage.org|AppImage]]) * při prvním bootování se img roztáhl přes celou kartu. Systém byl připraven, žádný instalátor. * Raspbery PI B dostane IP z DHCP po připojení kabelu k síťovému rozhraní * Raspberry Pi zero W má pouze wifi, síť je potřeba nadefinovat v cfg souboru wpa_supplicant.conf * doporučuje se vytvořit soubor v /boot * při startu se přesune do /etc/wpa_supplicant/ * v souboru stačí mít ssid a psk * já jsem tam musel přidat i ctrl_interface, jinak se to [[https://www.raspberrypi.org/forums/viewtopic.php?t=191061|nepřipojilo po startu]] ctrl_interface=/var/run/wpa_supplicant network={ ssid="**********" psk="***********" } * systém měl zakázané SSH, povoluje se vytvořením souboru ''/boot/ssh'' ==== Tvheadned ==== * nejprve jsem zkoušel http://www.simpsoncomputers.co.uk/blog/?p=1455&page=5 * ale pak jsem se rozhodl udělat vlastní build * https://tvheadend.org/projects/tvheadend/wiki/Building $ sudo aptitude install build-essential git pkg-config libssl-dev bzip2 wget * v systému chyběl jen libssl a git cd /usr/local/src/ git clone https://github.com/tvheadend/tvheadend.git cd tvheadend ./Autobuild.sh * balíčku chybělo ale víc dpkg-checkbuilddeps: error: Unmet build dependencies: debhelper (>= 7.0.50) gettext libavahi-client-dev liburiparser-dev cmake dvb-apps libpcre2-dev | libpcre3-dev * řešní apt-get install debhelper libavahi-client-dev liburiparser-dev cmake libpcre3-dev dvb-apps * první problém při kompilaci root@raspberrypi:/home/pi# screen -r Makefile.ffmpeg:310: recipe for target '/usr/local/src/tvheadend/build.linux/ffmpeg/libvpx-1.6.1/.tvh_build' failed make[3]: *** [/usr/local/src/tvheadend/build.linux/ffmpeg/libvpx-1.6.1/.tvh_build] Error 2 make[3]: Leaving directory '/usr/local/src/tvheadend' Makefile:822: recipe for target '/usr/local/src/tvheadend/build.linux/ffmpeg/build/ffmpeg/lib/libavcodec.a' failed make[2]: *** [/usr/local/src/tvheadend/build.linux/ffmpeg/build/ffmpeg/lib/libavcodec.a] Error 2 make[2]: Leaving directory '/usr/local/src/tvheadend' debian/rules:11: recipe for target 'override_dh_auto_build' failed make[1]: *** [override_dh_auto_build] Error 2 make[1]: Leaving directory '/usr/local/src/tvheadend' debian/rules:5: recipe for target 'build' failed make: *** [build] Error 2 dpkg-buildpackage: error: debian/rules build gave error exit status 2 * zkusil jsem přepsat target v Autobuild.sh z debian na raspbianstretch-armhf, ale tím to nebylo :) * https://tvheadend.org/issues/4059 * druhý pokus jsem spustil jako AUTOBUILD_CONFIGURE_EXTRA="--disable-bintray_cache --disable-libvpx" ./Autobuild.sh * je dobré toho ořezat více: AUTOBUILD_CONFIGURE_EXTRA="--disable-cardclient --disable-cwc --disable-cccam --disable-satip_server --disable-satip_client --disable-timeshift --disable-libav --disable-ffmpeg_static --disable-libx264 --disable-libx264_static --disable-libx265 --disable-libx265_static --disable-libvpx --disable-libvpx_static --disable-libtheora --disable-libtheora_static --disable-libvorbis --disable-libvorbis_static --disable-libfdkaac_static --disable-libopus --disable-libopus_static --disable-bintray_cache --disable-pie" ./Autobuild.sh ==== Kompilace kernel ==== * zjistil jsem, že v jádře chybí ovladač na rtl-sdr * postupoval jsem podle [[https://www.raspberrypi.org/documentation/linux/kernel/building.md|oficiálního návodu]] * stáhnutí tools a vlastního jádra git clone https://github.com/raspberrypi/tools git clone --depth=1 https://github.com/raspberrypi/linux * vytvoření základního .config souboru cd linux PATH="$PATH:/home/djbuldog/Projekty/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin" KERNEL=kernel make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcmrpi_defconfig * přes menuconfig jsem vybral podporu SDR make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig * kompilace modulů a jádra make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs * instalace modulů do připraveného adresáře make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=/home/djbuldog/Projekty/raspi/modules/ modules_install * zkopírování modulů na raspberry rm modules/lib/modules/4.9.52+/build rm modules/lib/modules/4.9.52+/source scp -r modules pi@pi:/tmp/ * nahrání do správného umístění mv /tmp/modules/lib/modules/4.9.52+ /lib/modules/ cp -vr /tmp/modules/lib/firmware/* /lib/firmware/ # if exists * příprava adresářů na raspberry mkdir -p /tmp/fat32/overlays chown -R pi:pi /tmp/fat32 * zkopírování jádra na raspberry scp linux/arch/arm/boot/zImage pi@pi:/tmp/fat32/kernel-4.9.52+sdr.img scp linux/arch/arm/boot/dts/*rpi*dtb pi@pi:/tmp/fat32/ scp linux/arch/arm/boot/dts/overlays/*.dtb* pi@pi:/tmp/fat32/overlays scp linux/arch/arm/boot/dts/overlays/README pi@pi:/tmp/fat32/overlays * nahrání do správného umístění cp -v /tmp/fat32/overlays/* /boot/overlays/ rm -rf /tmp/fat32/overlays cp /tmp/fat32/* /boot/ * nastavení správného názvu kernel obrazu vim /boot/config.txt kernel=kernel-4.9.52+sdr.img ===== Raspbmc ===== * pouzil jsem nejaky prosincovy build - myslim, ze beta2 * tvheadend backend - velke zklamani!! * sice funguje, ale prepinani bylo priiiiserne pomale - zjistil jsem, ze subscribe je mnohem driv nez unsubscribe stareho kanalu * webui priserne pomale - musel jsem cekat pokazde minimalne 10 sekund (na routeru cca 1s) * prepinani programu pomoci 2 tuneru byla tragedie, obcas nesel multiplex vubec naladit, obcas to uplne nejak vytuhlo! * prehravani MPEG2 licence (decode_MPG2=0x3450cd36) - zklamani * DVB-T skutecne prehravat lze, ale jsou s tim potize * vetsinou to po nejake dobe prehravani zdechlo, zaseklo se, bylo potreba restartovat cele raspberry * dost cast nesly nejake programy vubec prehrat, cerna obrazovka a cas bezel, jakoby to prehravalo * myslim si, ze to mozna dela horsi tv signal, ze ma problemy s dekodovanim poskozenych streamu, na druhou stranu tam byly vypadky uplne minimalne * prekvapilo me, ze naopak mpeg4 fungoval mnohem lepe nez u testu drive, kadopadne to stejne dycky ve finale vytuhlo * zdesil jsem se, ze cpuinfo hlasil nejak malo u BogoMIPS * hlasilo to okolo 535, normalne totiz byva kolem 679 - melo by to signalizovat vykon * pri pretaktovani to slo dokonce jeste niz, na 4xx, 3xx..... velice podivne * beta3 * tak, mam zaply tvheadend backend, ale nenastaveny, tv mpeg2 se zatim nekousla :) kdyz nepocitam prepinani audio vystupu behem prehravani :) to se mu fakt nelibilo :0 * bez tvheadend backendu... zatim to hraje * prepinat programy musim tak, ze dam vzdy stop, vyberu jiny a dam play * obcas to ma posunuty zvuk od obrazu * kdyz zkousim prepinat programy bez stop, tak se prehravani zastavi... okamzite zacne hrat a pak se stopne * kdyz to prepinam se stop, tak to vzdycky po play bufferuje tak 5s a pak hraje ok * kdyz se nekdo diva na nejaky program, tak nejde vetsinou naladit na raspberry... vubec nespusti buffering ==== První test ==== * test finalniho buildu raspbmc 12.0 * znatelne zlepseni: * snizen CPU load (uz se to da pouzivat) * audio vystup se uz neodpojuje od zvukovky, takze to nedela rany do repraku (bezi tam pulseaudio) * nastaveni pomeru stran u DVB-T uz funguje * sledovani MPEG2/MPEG4 DVB-TV * zridka se posune zvuk od obrazu, nekdy nepomuze ani stop-start * obcas se zacne obraz hrozne trhat (pravdepodobne nestiha buffer), nekdy prestane po case samo, stop-start pomuze vzdy - minimalne kratkodobe (spatny signal?) * prepinani programu byva porod, ale kdyz se to prepne "dobre" tak to vetsinou uz bezi :) * je lepsi pouzivat sekci "video" a klient TVHEADEND nez sekci "televize" - vetsi pravdepodobnost, ze se to prepne * rozpoznal jsem dva stavy * bud se zobrazi "pracuji"/"nacitani do buff" a po chvili zacne hrat * nebo je cerna obrazovka a po nejake dobe (20s+) to zacne hrat... kdyz to trva moc dlouho, tak se pak vetsinou obraz trha * kdyz se to nechce prepnout, tak stop-start vetsinou pomuze * vytuhavani raspberry * kdyz jsem to mel uplne bez site, tak mi to za 48 hodin ani jednou nevytuhlo * kdyz jsem tam mel lan kabel, tak mi to vytuhlo jen 1x za takovych 24h * kdyz jsem tam mel USB wifi, tak to zdechalo snad kazdou hodinu * dost mozna to ma spojitost s napajenim... mel jsem to napajeno jen z usb hubu * tvheadend server * jelikoz je cpu uz vic v klidu, tak je to opet pouzitelny * 2 tunery nebyly moc pouzitelne. Zkousel jsem 2x vlc a vetsinou se neslo prepnout na nejaky multiplex * pri testovani 1 tuneru jsem si vsiml, ze vlc pri prepnuti asi nejak neukoncuje streamovani serveru * mel jsem pripojen jen Siano adapter na pozici 0 * mel jsem tam multiplex CT, chtel jsem multiplex Region 10 * nejprve zjistoval, ktery adapter je volny (without stealing for service) bře 25 00:49:58 Service: Subscription "HTTP": Adding adapter "_dev_dvb_adapter0_Siano_Mobile_Digital_MDTV_Receiver674000000" for service "Siano Mobile Digital MDTV Receiver/Region 10: 674,000 kHz" bře 25 00:49:58 Service: Subscription "HTTP": Adding adapter "_dev_dvb_adapter1_Siano_Mobile_Digital_MDTV_Receiver674000000" for service "Siano Mobile Digital MDTV Receiver/Region 10: 674,000 kHz/FANDA" bře 25 00:49:58 Service: Subscription "HTTP": Adding adapter "_dev_dvb_adapter0_Afatech_AF9013674000000" for service "Afatech AF9013/Region 10: 674,000 kHz/FANDA" bře 25 00:49:58 Service: Subscription "HTTP": Probing adapter "_dev_dvb_adapter1_Siano_Mobile_Digital_MDTV_Receiver674000000" without stealing for service "Siano Mobile Digital MDTV Receiver/Region 10: 674,000 kHz/FANDA" bře 25 00:49:58 Service: Subscription "HTTP": Unable to use "Siano Mobile Digital MDTV Receiver/Region 10: 674,000 kHz/FANDA" -- No hardware present bře 25 00:49:58 Service: Subscription "HTTP": Probing adapter "_dev_dvb_adapter0_Afatech_AF9013674000000" without stealing for service "Afatech AF9013/Region 10: 674,000 kHz/FANDA" bře 25 00:49:58 Service: Subscription "HTTP": Unable to use "Afatech AF9013/Region 10: 674,000 kHz/FANDA" -- No hardware present bře 25 00:49:58 Service: Subscription "HTTP": Probing adapter "_dev_dvb_adapter0_Siano_Mobile_Digital_MDTV_Receiver674000000" without stealing for service "Siano Mobile Digital MDTV Receiver/Region 10: 674,000 kHz" bře 25 00:49:58 Service: Subscription "HTTP": Unable to use "Siano Mobile Digital MDTV Receiver/Region 10: 674,000 kHz" -- Adapter in use by other subscription * spravne zjistil, ze 2 adaptery chybi a ten jeden se pouziva pro jiny multiplex * pak to asi zkusil znovu, ale tentokrat drsneji se stealing? moc nechapu, co ten druhy probing dela bře 25 00:49:58 Service: Subscription "HTTP": Probing adapter "_dev_dvb_adapter1_Siano_Mobile_Digital_MDTV_Receiver674000000" with weight 100 for service "Siano Mobile Digital MDTV Receiver/Region 10: 674,000 kHz/FANDA" bře 25 00:49:58 Service: Subscription "HTTP": Probing adapter "_dev_dvb_adapter0_Afatech_AF9013674000000" with weight 100 for service "Afatech AF9013/Region 10: 674,000 kHz/FANDA" bře 25 00:49:58 Service: Subscription "HTTP": Probing adapter "_dev_dvb_adapter0_Siano_Mobile_Digital_MDTV_Receiver674000000" with weight 100 for service "Siano Mobile Digital MDTV Receiver/Region 10: 674,000 kHz" * kazdopadne bez toho, aby cekal na nejakou odpoved rovnou vypsal, ze transponder neni k dispozici.. ze by se nestihl treba preladit? bře 25 00:49:58 subscription: No transponder available for subscription "HTTP" to channel "FANDA" bře 25 00:49:58 webui: Couldn't start streaming /stream/channelid/11, Adapter in use by other subscription bře 25 00:49:58 subscription: "HTTP" unsubscribing from "FANDA" * vlc na to reagoval tak, ze vzal dalsi z playlistu.. CT multiplex * ten uz naladeny byl, takze subscription probehlo.. bře 25 00:49:58 Service: Subscription "HTTP": Adding adapter "_dev_dvb_adapter0_Siano_Mobile_Digital_MDTV_Receiver538000000" for service "Siano Mobile Digital MDTV Receiver/SIT 1 CESKA TELEVIZE: 538,000 kHz" bře 25 00:49:58 Service: Subscription "HTTP": Adding adapter "_dev_dvb_adapter1_Siano_Mobile_Digital_MDTV_Receiver538000000" for service "Siano Mobile Digital MDTV Receiver/SIT 1 CESKA TELEVIZE: 538,000 kHz/CT 2" bře 25 00:49:58 Service: Subscription "HTTP": Adding adapter "_dev_dvb_adapter0_Afatech_AF9013538000000" for service "Afatech AF9013/SIT 1 CESKA TELEVIZE: 538,000 kHz/CT 2" bře 25 00:49:58 Service: Subscription "HTTP": Probing adapter "_dev_dvb_adapter1_Siano_Mobile_Digital_MDTV_Receiver538000000" without stealing for service "Siano Mobile Digital MDTV Receiver/SIT 1 CESKA TELEVIZE: 538,000 kHz/CT 2" bře 25 00:49:58 Service: Subscription "HTTP": Unable to use "Siano Mobile Digital MDTV Receiver/SIT 1 CESKA TELEVIZE: 538,000 kHz/CT 2" -- No hardware present bře 25 00:49:58 Service: Subscription "HTTP": Probing adapter "_dev_dvb_adapter0_Afatech_AF9013538000000" without stealing for service "Afatech AF9013/SIT 1 CESKA TELEVIZE: 538,000 kHz/CT 2" bře 25 00:49:58 Service: Subscription "HTTP": Unable to use "Afatech AF9013/SIT 1 CESKA TELEVIZE: 538,000 kHz/CT 2" -- No hardware present bře 25 00:49:58 subscription: "HTTP" subscribing on "CT 2", weight: 100, adapter: "Siano Mobile Digital MDTV Receiver", network: "SIT 1 CESKA TELEVIZE", mux: "SIT 1 CESKA TELEVIZE: 538,000 kHz", provider: "Ceska televize", service: "CT 2", quality: 100 * jenomze ten stream CT2 uz byl nejaky rozdrbany - asi bud proto, ze to nikdo neodebiral nebo kvuli tomu, jak zkousel ten probing se stealing * provedl tedy unsubscribing a zase subscribing a stream se zase rozjel bře 25 00:49:59 mkv: Live stream: Write failed -- Roura přerušena (SIGPIPE) bře 25 00:49:59 webui: Stop streaming /stream/channelid/15, muxer reported errors bře 25 00:49:59 subscription: "HTTP" unsubscribing from "CT 2" bře 25 00:49:59 webui: Start streaming /stream/channelid/15 * zaver z toho je, ze on se snazi spustit multiplex bez zastaveneho stareho streaming, takze to prepnuti selze * vlc asi neposila "stop" pri prepnuti a samo se to nestihne vcas ukoncit. Mozna by stacilo do tvheadend pridat jen nejake cekani.. na ten chcip. ===== OpenElec ===== * testovana verze OpenELEC 3.0 Beta 3 released (pak jsem chtel zkusit i beta4, ale dycky se mi stahla beta 3, tak nevim) * pocitove rychlejsi nez raspbmc * BogoMIPS mel spravnou hodnotu 679 * tvheadend backend nebyl v teto verzi podporovan, takze jsem ho vubec nevyzkousel * mpeg4 dvb-t to vubec neprehralo * mpeg2 vytuhavlo podle me casteji, nezaseklo se ale cele raspberry, pouze prehravani videa - pomohla az zmena kanalu (na chvili) ===== Testy ===== ==== Co vyzkouset ==== * kolik zvladne zapisovat/cist RAM<->USBdisk * nezere to tolik cpu kvuli 1680x1050? nemusi on to nejak zmensovat? * srovnani vykonu hw raspbian vs router station - bylo by lepsi provozovat wiki/trac na raspberry? ==== Vykon ==== * raspbmc * zkousel jsem posledni stable i nightbuild, v menu to melo porad tak 85-90% * [[http://wiki.xbmc.org/index.php?title=Dirty_regions|dirty regions]] zrychli xbmc, cpu load mam ted v idle 50% misto 90%. * webovy prohlizec nejde vubec pouzit :) * openelec * ma to trosku jine addons, neceho je tam vic, neco tam chybi (ve srovnani s raspbmc) * ohledne vytizeni cpu jsem nepoznal vyraznjesi rozdil od raspbmc * webovy prohlizec je hodne pomaly, ale mozna o chlup sviznejsi nez v raspbmc * raspbian * vlc player pro DVB-T je nepouzitelny, uplne se zakousl (pomohla by mpeg2 licence?) * webovy prohlizec je pouzitelny, akorat scrollovani je docela pomale * desktopove prostredi pusobi docela svizne, ale v default neobsahuje moc programu * wifi do usb TL-WN721N bezi naprosto v pohode, nastaveni pomoci wpa_gui, drv ath9k ==== TV tunner ==== * testovano na raspbmc nighty build z 11.11.2012 * je tam jak tvheadend klient tak i server (default vypnute) * MSI digivox III tunner se chytil hned, jakmile jsem do /lib/firmware nahral fw * ENVOLVE Mars tuner potreboval taky nahrat firmware a navic zavest modul smsdvb (smsdtv a smsusb byl automaticky) sudo insmod /lib/modules/3.2.27/kernel/drivers/media/dvb/siano/smsdvb.ko * tunery je potreba inicializat pred spustenim tvheadend, proto je treba sudo echo "smsdvb" >> /etc/modules * super, tak tvheadend zvlada poustet 2 multiplexy soucasne :) * akorat teda se mi pri inicializaci druheho tuneru nejak vymazaly sluzby u prvniho. * je to zpusobeny tim, ze se mi zmenilo poradi adapteru. Po vygenerovani vsech profilu to bylo pak uz ok $ ls -la .hts/tvheadend/dvbmuxes/_dev_dvb_adapter _dev_dvb_adapter0_Afatech_AF9013_DVB_T/ _dev_dvb_adapter0_Siano_Mobile_Digital_MDTV_Receiver/ _dev_dvb_adapter1_Afatech_AF9013_DVB_T/ _dev_dvb_adapter1_Siano_Mobile_Digital_MDTV_Receiver/ $ ls -la .hts/tvheadend/dvbtransports/ drwx------ 2 pi pi 4096 Nov 11 13:04 _dev_dvb_adapter0_Afatech_AF9013_DVB_T538000000 drwx------ 2 pi pi 4096 Nov 11 12:37 _dev_dvb_adapter0_Afatech_AF9013_DVB_T626000000 drwx------ 2 pi pi 4096 Nov 11 12:59 _dev_dvb_adapter0_Afatech_AF9013_DVB_T674000000 drwx------ 2 pi pi 4096 Nov 11 12:54 _dev_dvb_adapter0_Afatech_AF9013_DVB_T778000000 drwx------ 2 pi pi 4096 Nov 11 14:28 _dev_dvb_adapter0_Siano_Mobile_Digital_MDTV_Receiver538000000 drwx------ 2 pi pi 4096 Nov 11 14:28 _dev_dvb_adapter0_Siano_Mobile_Digital_MDTV_Receiver626000000 drwx------ 2 pi pi 4096 Nov 11 14:48 _dev_dvb_adapter0_Siano_Mobile_Digital_MDTV_Receiver674000000 drwx------ 2 pi pi 4096 Nov 11 14:28 _dev_dvb_adapter0_Siano_Mobile_Digital_MDTV_Receiver778000000 drwx------ 2 pi pi 4096 Nov 11 14:47 _dev_dvb_adapter1_Afatech_AF9013_DVB_T538000000 drwx------ 2 pi pi 4096 Nov 11 14:47 _dev_dvb_adapter1_Afatech_AF9013_DVB_T626000000 drwx------ 2 pi pi 4096 Nov 11 14:52 _dev_dvb_adapter1_Afatech_AF9013_DVB_T674000000 drwx------ 2 pi pi 4096 Nov 11 14:49 _dev_dvb_adapter1_Afatech_AF9013_DVB_T778000000 drwx------ 2 pi pi 4096 Nov 11 15:23 _dev_dvb_adapter1_Siano_Mobile_Digital_MDTV_Receiver538000000 drwx------ 2 pi pi 4096 Nov 11 15:20 _dev_dvb_adapter1_Siano_Mobile_Digital_MDTV_Receiver626000000 drwx------ 2 pi pi 4096 Nov 11 15:20 _dev_dvb_adapter1_Siano_Mobile_Digital_MDTV_Receiver674000000 drwx------ 2 pi pi 4096 Nov 11 15:15 _dev_dvb_adapter1_Siano_Mobile_Digital_MDTV_Receiver778000000 * prehravat radia a televize v mpeg 2 aktualne v xbmc nejde, asi kvuli chybejici licenci k hw mpeg2 (stream je ok) * prehravat mpeg4 TV ale taky nejde :( stream jede, ale kostickuje * zjistil jsem, ze za to signal ani tak nemuze, spis CPU load :( * dalkove ovladani k MSI tuneru funguje, ENVOLVE asi vubec hw nefunguje ==== Raspbmc ==== * verze myslim 12.10 alpha * vytuhnuti kvuli napajeni: * kdyz jsem to napajel primo adapterem 5V/1A, tak se to kousalo (usb wireless klavesnice/mys) * kdyz jsem to napamejl adapterem 5V/1A + USB hub s napajenim, tak se to taky kousalo * az pri napajeni pouze pres HUB, tak to bylo OK * pri spustenem jen xbmc menu to zere 85% CPU * obcas se to v UI hryze, hlavne kdyz se neco nacita z webu - uplne zastaveny UI * pri velkem load se seka zvuk - u analogoveho vystupu to dava rany do reprobeden :) * WebUI bylo desne pomale, casto se ani nenacetlo * SSH bylo pomale, vsechno zere proces xbmc.bin * funkce * pekne UI :) hodne ruznych rozsireni * rozsireni webovy prohlizec - vubec neslo pouzivat, desne pomale * rozsireni gmail checker - neprisel jsem na to, jak tam zadat parametry uctu :) * radia funguji v pohode, ale prepinani je dost pomale * prima podpora prehravani hudby, videa, obrazku z ruznych ulozist.. napriklad tvheadend klient, samba, nfs... ==== PulseAudio server ==== * [[https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Network|pulseaudio network]] * vzdáleně se lze k pulse audio připojit 3 způsoby * direct connection * připojuje se rovnou k pulse audio serveru * globálně v konfiguračním souboru * nebo nastavením systémové proměnné ''$PULSE_SERVER'' před spuštěním klientské aplikace * tunnel * u klienta se vytvoří nový sink, na serveru nový source a propojí se tunelem. * navázaní tunelu lze provést ručně nebo pomoci zeroconf/avahi * RTP * všechny tři varianty vyžadují modul ''module-native-protocol-tcp'' === tunel ručně === * [[http://serendipity.ruwenzori.net/index.php/2015/06/01/sending-an-audio-stream-across-the-network-to-a-remote-raspberry-pi-with-pulseaudio-the-easy-way|sending an audio stream across the network to a remote raspberry pi with pulseaudio the easy way]] apt-get install pulseaudio * na rozdíl od článku, po instalaci jsem už nějaký init skript pro pulseaudio měl vim /etc/default/pulseaudio PULSEAUDIO_SYSTEM_START=1 * na pi vim /etc/pulse/system.pa load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;10.10.11.2 load-module module-tunnel-source server=10.10.11.8 /etc/init.d/pulseaudio stop /etc/init.d/pulseaudio start * na pharaon vim /etc/pulse/default.pa load-module module-tunnel-sink server=10.10.11.8 sink_name=MyRemoteRaspberry pulseaudio -k * oprava sekání zvuku * https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=17275 * samplovací metoda nastavena na ''resampe-method = ffmpeg'' * https://dbader.org/blog/crackle-free-audio-on-the-raspberry-pi-with-mpd-and-pulseaudio * někde radí ještě tsched=0 * http://raspberrypi.stackexchange.com/questions/9795/pulseaudio-sink-stuttering * tady pán zkoušel asi všechno :D ### Automatically load driver modules depending on the hardware available .ifexists module-udev-detect.so load-module module-udev-detect tsched=0 === tunel auto === * nevýhoda ručního tunelu je, že když vzdálené pulse audio vypadne, sink se znovu neobjeví, dokud se pulse audio na klientovi nerestartuje * automatická konfigurace sink automaticky přidává, jakmile se na síti objeví * vyhledávání zařízení lze pomocí GUI klikacího nástroje [[https://apps.ubuntu.com/cat/applications/paprefs|paprefs]] * doinstalovat na oba stroje apt-get install pulseaudio-module-zeroconf * na pharaon přidat do conf default.pa nebo jednorázově pacmd load-module module-zeroconf-discover * na pi přidat do conf system.pa nebo jednorázově pacmd load-module module-zeroconf-publish === USB zvukovka Sweex 7.1 SC016 === * chipset C-Media CM6206 * detekováno bez problémů jako Bus 001 Device 005: ID 0d8c:0102 C-Media Electronics, Inc. CM106 Like Sound Device * alsamixer ale nefungoval, musel jsem upravit index z -2 na 0 vim /etc/modprobe.d/alsa-base.conf # Keep snd-usb-audio from beeing loaded as first soundcard options snd-usb-audio index=0 * kvalita zvuku je určitě lepší než integrovaná (menší zkreslení, o dost méně šumí - skoro vůbec) * x-fi audio mi ale přijde pořád lepší :) * pulseaudio jsem měl spuštěno se vzorkováním 32bit, 48Khz (jako na Pharaon) * zátěž CPU byla překvapivě kolem 20% * přepínání sink na pi bylo svižné s dobrou odezvou, supr * stejně jako u integrované zvukovky se zde objevuje problém s trháním zvuku po přepnutí sink * pokud jsem přehrávač připojil přímo (přes proměnou ''PULSE_SERVER'') bylo vše ok * pokud jsem přehrávač spustil nad určitým sinkem, vše bylo ok * když jsem sink přepnul až po spuštění, tak ve zvuku byly výpadky, lupání, trhání, .. * opravit lze * znovu spuštěním přehrávače nebo přepnutím písničky na jinou (vhodné pro totem) * pozastavení na dostatečně dlouhou dobu, aby došlo k odpojení klienta (idle timeout) * odpojení klienta přes pulse audio manager a znovu připojení (vhodné pro chrome) * ovlivňuje to i klient * v totem byly výpadky minimální * v chrome byly obří, zvuk skoro nehrál * ovlivňuje to konfigurace pulse audio * zapnutý ''tsched=0'' * integrované zvukovce to dost pomohlo, * ale USB to naopak dost zhoršilo * vypnout ''module-suspend-on-idle'' * cpu narostlo na 53% * ale sekání se o dost zlepšilo (v totem už nepozorovatelné, v chrome téměř bez sekání) === ostatní === * kvalita integrované zvukovky * CPU load na pi skoro 100% .. co zkusit 44.1Khz nebo jinou metodu samplování? * po pár minutách se přehrávání úplně zasekne.. možná tím CPU? -- teď už se to moc nezasekává * kvalita zvuku je fakt horší.. zkusit nějakou USB zvukovku? * ale bacha, prý ty USB zvukovky na PI nic moc.. že to může způsobovat paket loss zvukovky atd * pulseaudio tunel z Windows * snažil jsem se, něco to dělalo, ale vůbec jsem nepřišel na to, jak poslat zvuk na pulse server * https://github.com/duncanthrax/scream * FIXME * zasílat stream do shairport přes modul ''module-raop-sink'' * už jsem zkoušel, nevím proč to ale nehrálo * zkoušel jsem ''load-module module-raop-discover'' a krásně to detekovalo raspi * když tam ale pošlu stream, tak nehraje.. možná to není kompatibilní se shareport? * existuje i nějaký raop2 modul ===== AirPlay ===== Technologie od Apple pro proudové vysílání audio/video obsahu. Skládá se ze senders a receivers. AirTunes část AirPlay protokolu je založena na UDP RTSP protokolu. Používá prý bezztrátový přenos dat ALAC (Apple Lossless Audio Codec) s vzorkovací frekvencí 44.1Khz. AirPort Express používá RAOP (Remote Audio Output Protocol), což je varianta RTSP/RTP protokolu. * [[http://rogueamoeba.com/airfoil|Airfoil]] * komerční software * posílá zvuk z Windows nebo MacOS do kompatibilních přijímačů * například do: Airfoil speakers, Airport Express, Apple TV, dalších AirPlay zařízení * [[http://rogueamoeba.com/airfoil/speakers.php|Airfoil speakers]] * přijímají zvuk z Airfoil nebo kompatibilních * existuje i verze pro Linux (včetně raspberry pi), vyžaduje ale mono - nezkoušel jsem * vypadá free * [[http://tuneblade.com|TuneBlade]] * free/komerční software * zasílá zvuk z Windows do kompatibilních AirPlay přijímačů * do ShairPort lze zasílat bez omezení, jinak limit max 10 minut (free verze) * [[https://github.com/mikebrady/shairport-sync|ShairPort-sync]] * aktuálně nejaktivnější fork ShairPort * přijímá zvuk z AirPlay zařízení ==== ShairPort ==== * nejprve jsem zkoušel rozjet na Pharaon * stačilo ''apt-get install shairport-sync'' * spustil se démon, ale pod rootem, který nemá přístup k pulseaudio spuštěného přihlášeným uživatelem * spustil jsem ručně v terminálu hairport-sync -vv -o pulse * na raspberry se muselo kompilovat ze zdrojáků * nejprve doinstalovat zavislosti apt-get install libshairport1 avahi-daemon autoconf libtool libdaemon-dev libasound2-dev libpopt-dev libconfig-dev libavahi-client-dev libssl-dev * pro podporu pulseaudio ještě navíc apt-get install libpulse-dev * vlastní kompilace a instalace (včetně podpory pulseaudio) git clone https://github.com/mikebrady/shairport-sync.git cd shairport-sync autoreconf -i -f ./configure --with-alsa --with-avahi --with-ssl=openssl --with-pulseaudi make make install * spouštění bylo naprosto stejné jako u pharaon * akorát to pod pulseaudio stejně nechtělo jet kvůli oprávnění FIXME * spustil jsem přímo pod alsa sync -vv -a "raspi" -- -d hw:0 -c "PCM" * stream jsem pouštěl z Windows z TuneBlade * zvuk byl dobrý, ale občas jsem měl pocit, že to má nižší kvalitu (možná se mi jen zdálo) * bitrate byl cca 130-160 kbps, takže to je asi hodně komprimované * avahi fungovalo super, TuneBlade zařízení sám detektoval ===== UPnP ===== * XBMC's UPnP client (aka UPnP renderer) allows Kodi to instantly playback and control videos and music sent to it from a UPnP server and control point. This is similar to the AirPlay protocol, but more flexible and open. * Several applications exist for nearly all major OSes that can send Kodi media through UPnP. This is different from using UPnP as a media source, where Kodi browses a UPnP server, rather than being controlled by one. * UPnP AV komponenty * **UPnP MediaServer DCP** – UPnP server (zařízení typu master), který sdílí/přehrává data (audio/video/obrázky/soubory) UPnP klientům na síti. * **UPnP MediaServer ControlPoint** – UPnP klient (zařízení typu slave), který umí automaticky detekovat UPnP servery na síti a přehrát/stáhnout mediální/datové soubory umístěné na nalezených serverech. * **UPnP MediaRenderer DCP** – zařízení typu slave, sloužící k prezentaci obsahu UPnP serverů. * **UPnP RenderingControl DCP** – ovládá nastavení MediaRendereru (hlasitost, nastavení obrazu a další). * **UPnP Remote User Interface (RUI) klient/server** – posílá/přijímá příkazy mezi UPnP klientem a UPnP serverem (např. přehrát, zastavit, nahrávat a jiné). * [[http://blog.scphillips.com/posts/2013/01/a-upnp-renderer-for-the-raspberry-pi/|A UPnP renderer for the Raspberry Pi]] * [[https://github.com/hzeller/gmrender-resurrect|Headless UPnP Renderer]] * [[https://en.wikipedia.org/wiki/List_of_UPnP_AV_media_servers_and_clients|List of UPnP AV media servers and clients]] ===== Další ===== * Jack * https://blogs.gentoo.org/mgorny/2015/01/16/surround-sound-over-network-with-windows-8/ * SoundWire * podporuje multiplatoformové streamování * je pouze pro stereo, ale lze prý spustit víc serverů a poslat více kanálů :D * http://georgielabs.net/ ===== Mozna nasazeni ===== * Inteligentni zesilovac * přehrávání internetových rádií a DVB rádií bez zapnutého PC * PulseAudio server pro příjem zvukového proudu po síti (z Linuxu) * AirPlay receiver pro příjem zvukového proudu z Windows/MacOS a dalších Apple zařízení * možnost ovládání přes WebUI * hardware * vyvest konektor na ethernet * napajeni primo ze zesilovace * modul pro digitální přepínaní vstupu (analog pc in, vnitřní raspberry pi) * tlacitka pro prepnuti vstupu, mute, prepinani radia/tv * zkusit USB zvukovku pro zkvalitnění výstupu nebo nějaké rozšíření? * [[http://www.aliexpress.com/store/product/PCM2704-USB-DAC-USB-Power-fiber-optic-coaxial-analog-output-sz-11/813037_654055749.html?tracelog=back_to_detail_a|PCM2704 USB DAC USB]] * TV-center * prahravani tv na monitoru (MPEG2 licence) * stream tv po siti (tvheadend) * dva dvb-t tunery * bacha, chce to pořádně silný zdroj (nad 2A) a dvě antény (spliter kazí signál) * nahravani tv na usb flash disk * hardware * krabicka na raspberry * kabel hdmi -> dvi * usb hub .. napriklad konig s napajecim zdrojem (bude napajet i raspberry) * sd karta, flash disk