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