Uživatelské nástroje

Nástroje pro tento web


raspberrypi

Toto je starší verze dokumentu!


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
  • Podporovane systemy: OpenELEC, Raspbmc, XBian, Raspbian, Debian GNU/Linux, Fedora, Arch Linux, RISC OS
    • openELEC is a Linux that is optimized for XBMC (may have trouble with wifi/dvbt drivers)
    • Raspbmc is sitting upon Debian/Raspbian and is stripped down for XBMC

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

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)

Raspbian

  • po dlouhé době to tedy zase zkusím :)
  • chci zkusit tam dát lightttpd a tvheadend, abych porovnal výkon proti routeru
  • možná bych pak mohl nechat obojí, jako load balancing :) myslím, že tvheadend umí číst z jiného tvheadend :)
The following NEW packages will be installed:
  libarchive-zip-perl libavahi-client3 libavahi-common-data libavahi-common3 libclass-factory-util-perl libclass-inspector-perl libclass-load-perl
  libclass-methodmaker-perl libclass-singleton-perl libcommon-sense-perl libconvert-binhex-perl libcrypt-ssleay-perl libcurl3-gnutls libdata-dump-perl
  libdata-optlist-perl libdate-manip-perl libdatetime-format-builder-perl libdatetime-format-iso8601-perl libdatetime-format-strptime-perl libdatetime-locale-perl
  libdatetime-perl libdatetime-timezone-perl libdigest-hmac-perl libemail-address-perl libemail-find-perl libemail-valid-perl libencode-locale-perl
  libexporter-lite-perl libfcgi-perl libfile-listing-perl libfile-slurp-perl libfont-afm-perl libfribidi0 libhtml-form-perl libhtml-format-perl libhtml-fromtext-perl
  libhtml-parser-perl libhtml-tableextract-perl libhtml-tagset-perl libhtml-tree-perl libhttp-cache-transparent-perl libhttp-cookies-perl libhttp-daemon-perl
  libhttp-date-perl libhttp-message-perl libhttp-negotiate-perl libhttp-server-simple-perl libio-socket-ip-perl libio-socket-ssl-perl libio-stringy-perl libjson-perl
  libjson-xs-perl liblingua-preferred-perl liblist-moreutils-perl liblog-tracemessages-perl liblwp-mediatypes-perl liblwp-protocol-https-perl libmailtools-perl
  libmath-round-perl libmime-tools-perl libmodule-implementation-perl libmodule-runtime-perl libnet-dns-perl libnet-domain-tld-perl libnet-http-perl libnet-ip-perl
  libnet-ssleay-perl libossp-uuid-perl libossp-uuid16 libpackage-deprecationmanager-perl libpackage-stash-perl libpackage-stash-xs-perl libparams-classify-perl
  libparams-util-perl libparams-validate-perl libparse-recdescent-perl libregexp-common-perl libsoap-lite-perl libsocket-perl libsub-install-perl libtask-weaken-perl
  libterm-progressbar-perl libterm-readkey-perl libtext-bidi-perl libtie-ixhash-perl libtimedate-perl libtry-tiny-perl libunicode-string-perl liburi-perl
  libwww-mechanize-perl libwww-perl libwww-robotrules-perl libxml-dom-perl libxml-libxml-perl libxml-libxslt-perl libxml-namespacesupport-perl libxml-parser-perl
  libxml-perl libxml-regexp-perl libxml-sax-base-perl libxml-sax-expat-perl libxml-sax-perl libxml-twig-perl libxml-writer-perl libxml-xpathengine-perl libxmltv-perl
  libxslt1.1 libyaml-syck-perl tvheadend xmltv-util
0 upgraded, 110 newly installed, 0 to remove and 2 not upgraded.

Stretch

  • stáhl jsem si nový image RASPBIAN STRETCH LITE
  • a nahrál na kartu přes multiplatformní Etcher (linuxová verze využívá AppImage)
  • při prvním bootování se img roztáhl přes celou kartu. Systém byl připraven, žádný instalátor.
  • systém dostal IP z DHCP, ale měl zakázanou službu SSH, takže jsem si stejně musel připojit monitor a klávesnici

tvheadned

$ 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 :)
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

  • 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

Testy

Co vyzkouset

  • kolik zvladne zapisovat/cist RAM↔USBdisk
  • nezere to tolik cpu kvuli 1680×1050? 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%
    • 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

  • 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ě

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
### 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 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
  • 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.

    • 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í
    • 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
    • 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)
    • 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

Jack

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é).

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í?
  • 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
raspberrypi.1534083058.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki