Sonntag, 8. September 2013

TVHeadend auf der dockstar installieren

TVHeadend auf der dockstar installieren

Ein fertiges TVHeadend-Paket für die dockstar (mit ARM-CPU) gibt es leider nicht, daher muss man kompilieren, was in diesem Fall aber nicht besonders schwer ist, da u.a. keine Patches erforderlich sind.

Eigentlich steht alles hier:

Da die Quellen (sources) auf git-Servern liegen, muss man git installieren.
apt-get install git libssl-dev pkg-config
(libssl-dev und pkg-config benötigen wir später zum kompilieren)
Der Link oben verrät uns die genaue Adresse des Servers wo die Sourcen liegen. in unserem Fall: 
https://github.com/tvheadend/tvheadend.git

und mit
cd /usr/src
git clone https://github.com/tvheadend/tvheadend.git
spiegelt git uns die Quellen auf unsere Festplatte oder unseren USB-Stick.

Sollte es die Fehlermeldung
error: Problem with the SSL CA cert (path? access rights?) while accessing https://github.com/tvheadend/tvheadend.git/info/refs
fatal: HTTP request failed
geben, einfach die Prüfung deaktivieren mit
git config --global http.sslVerify false

Nun machen wir uns ans kompilieren, was nur funktioniert, wenn wir die folgenden Pakete installieren/installiert haben:
apt-get install build-essential linux-headers
Anmerkung:
In meinem Fall habe ich Kernel und Headers (3.9.5) manuell installiert
-> siehe http://lowbudget-modding.blogspot.com/2013/07/linuxtreiber-fur-dvb-t-stick-msi-digi.html

Nun wird ganz unkompliziert kompiliert und installiert:

cd tvheadend
./configure

das sollte dann in etwa so aussehen:

root@debian:/usr/src/tvheadend# ./configure
Checking support/features
  checking for cc execinfo.h ...                    ok
  checking for cc -mmmx ...                         fail
  checking for cc -msse2 ...                        fail
  checking for cc getloadavg ...                    ok
  checking for cc atomic64 ...                      fail
WARN: no python binary found
  checking for py module gzip ...                   fail
  checking for bzip2 ...                            ok
  checking for pkg openssl  ...                     ok
  checking for pkg zlib  ...                        ok
  checking for pkg avahi-client  ...                fail
  checking for pkg libavcodec <=55.0.0 ...          fail
  checking for cc sys/inotify.h ...                 ok
  checking for pkg libcurl  ...                     fail
  fetching dvb-scan files ...                       ok
Compiler:
  Using C compiler:                        cc
  Build for arch:                          armv5tel
Binaries:
  Using PYTHON:                            python
Options:
  cwc                                      yes
  v4l                                      yes
  linuxdvb                                 yes
  dvbscan                                  yes
  timeshift                                yes
  trace                                    yes
  imagecache                               no
  avahi                                    no
  zlib                                     yes
  libav                                    no
  inotify                                  yes
  bundle                                   no
  dvbcsa                                   no
  epoll                                    yes
  kqueue                                   no
  execinfo                                 yes
  getloadavg                               yes
  bin_bzip2                                yes
  ssl                                      yes
  inotify_h                                yes
Packages:
  openssl                                  0.9.8o
  zlib                                     1.2.3.4
Installation paths:
  Prefix:                                  /usr/local
  Binaries:                                ${prefix}/bin
  Libraries:                               ${prefix}/lib
  Data files:                              ${prefix}/share
  Man pages:                               ${datadir}/man
Final Binary:
  /usr/src/tvheadend/build.linux/tvheadend
Tvheadend Data Directory:
  /usr/local/share/tvheadend
root@debian:/usr/src/tvheadend#

dann
make
und am Ende ein
make install
eingeben.

Die kompilierte bin-Datei liegt in
usr/local/bin
und muss nach
/usr/bin
verschoben werden (oder man passt das folgende script an):

#! /bin/sh
### BEGIN INIT INFO
# Provides:          tvheadend
# Required-Start:    $local_fs $remote_fs udev
# Required-Stop:     $local_fs $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
### END INIT INFO
 
# Author: Andreas Öman
 
# Do NOT "set -e"
 
# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/usr/sbin:/usr/bin:/sbin:/bin
DESC="HTS Tvheadend"
NAME=tvheadend
DAEMON=/usr/bin/$NAME
DAEMON_ARGS="-f -u hts -g video"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
 
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
 
# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
 
# Load the VERBOSE setting and other rcS variables
[ -f /etc/default/rcS ] && . /etc/default/rcS
 
# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions
 
#
# Function that starts the daemon/service
#
do_start()
{
 # Return
 #   0 if daemon has been started
 #   1 if daemon was already running
 #   2 if daemon could not be started
        udevadm settle
 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
  || return 1
 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
  $DAEMON_ARGS \
  || return 2
}
 
#
# Function that stops the daemon/service
#
do_stop()
{
 # Return
 #   0 if daemon has been stopped
 #   1 if daemon was already stopped
 #   2 if daemon could not be stopped
 #   other if a failure occurred
 start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
 RETVAL="$?"
 [ "$RETVAL" = 2 ] && return 2
 # Many daemons don't delete their pidfiles when they exit.
 rm -f $PIDFILE
 return "$RETVAL"
}
 
 
case "$1" in
  start)
 [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
 do_start
 case "$?" in
  0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
  2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
 esac
 ;;
  stop)
 [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
 do_stop
 case "$?" in
  0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
  2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
 esac
 ;;
  restart|force-reload)
 #
 # If the "reload" option is implemented then remove the
 # 'force-reload' alias
 #
 log_daemon_msg "Restarting $DESC" "$NAME"
 do_stop
 case "$?" in
   0|1)
  do_start
  case "$?" in
   0) log_end_msg 0 ;;
   1) log_end_msg 1 ;; # Old process is still running
   *) log_end_msg 1 ;; # Failed to start
  esac
  ;;
   *)
    # Failed to stop
  log_end_msg 1
  ;;
 esac
 ;;
  *)
 echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
 exit 3
 ;;
esac
 
:
Das Script in die neu erstellte Datei etc/init.d/ tvheadend kopieren.

Beim ersten Satrt müsst ihr hinter "DAEMON_ARGS="-f -u hts -g video" noch ein "-C" (ohne "") setzen.
Erst wenn ihr den access konfiguriert habt, könnt ih as wieder rausnehmen. 
chmod +x /etc/init.d/tvheadend
update-rc.d tvheadend defaults
Bevor ihr jetzt tvheadend per script startet oder den PC/dockstar neustartet, müsst ihr den user hts anlegen und zwar mit 
adduser –system –group –shell /bin/bash –home /home/hts hts
Das war's...








Donnerstag, 25. Juli 2013


[dockstar] upgrade auf wheezy 

Da das wheezy-installationsskript vom fantastischen Jeff Doozan leider nicht funktioniert - zumindest wenn ich es direkt von der dockstar ausführe - habe ich mich entschlossen einen kleinen Umweg zu gehen.


Erst installiert man debian squeeze nach der folgenden Anleitung von shyd (http://dev.shyd.de/2011/01/seagate-dockstar-debian-squeeze/)
(ich gehe davon aus, dass die dockstar vorab schon für eine debian-Installation modifiziert wurde, ansonsten kann man das bei shyd nachlesen):
cd /tmp
wget http://dev.shyd.de/dockstar/dockstar.debian-squeeze.sh #old debootstrap will work
chmod +x dockstar.debian-squeeze.sh
export PATH=$PATH:/usr/sbin:/sbin
./dockstar.debian-squeeze.sh

Nach einer Weile und einem reboot sollte dann debian squeeze laufen. 


Nun kommt das upgrade:

Erstmal squeeze auf den aktuellen Stand bringen: 


apt-get update
apt-get upgrade
apt-get dist-upgrade


Nun die sources.list (in /etc/apt/) anpassen und alle squeeze durch ein wheezy ersetzt

und danach gleich nochmal
apt-get update
apt-get upgrade
apt-get install udev
apt-get dist-upgrade
reboot 

Nun kann man testen, ob es geklappt hat: 
root@tvserver:~# cat /etc/debian_version
7.1
root@tvserver:~# uname -a
Linux tvserver 3.2.0-4-kirkwood#1 Debian 3.2.46-1 armv5tel





Linuxtreiber für DVB-T Stick MSI Digi Vox Ultimate Pro

DVB-T Stick MSI Digi Vox Ultimate Pro unter Linux

Grundsätzlich sollte man bei "schwieriger" Hardware diese eindeutig identifizieren.
Im falle eines USB-Gerätes macht man das mit: lsusb (im Paket usb-utils enthalten) und erhält die Hardware-ID:
  • Bus 001 Device 005: ID 1f4d:b803 G-Tek Electronics Group Lifeview LV5TDLX DVB-T [RTL2832U]
So lässt es sich "zielorientiert" googlen und man erfährt, dass ab Kernel 3.7 der o.g. Stick unterstützt wird.

Also einfach uboot auf der dockstar updaten:

cd /tmp
wget http://projects.doozan.com/uboot/install_uboot_mtd0.sh
chmod +x install_uboot_mtd0.sh
./install_uboot_mtd0.sh

und dann shyd's Kernel 3.9.5 nutzen:
http://dev.shyd.de/2013/06/kernel-3-9-5-ready-to-use/

apt-get install initramfs-tools
cd /tmp
wget http://dev.shyd.de/dockstar/linux-image-3.9.5-dockstar-goflex-shyd_1.1_armel.deb
dpkg -i linux-image-3.9.5-dockstar-goflex-shyd_1.1_armel.deb

cd /boot

/usr/bin/mkimage -A arm -O linux -T kernel  -C none -a 0x00008000 -e 0x00008000 -n Linux-3.9.5 -d /boot/vmlinuz-3.9.5-dockstar-goflex-shyd /boot/uImage

/usr/bin/mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initramfs -d /boot/initrd.img-3.9.5-dockstar-goflex-shyd /boot/uInitrd

Nach einem reboot wird der Stick dann erkannt:
[   18.509454] usb 1-1.3: dvb_usb_v2: found a 'G-Tek Electronics Group Lifeview LV5TDLX DVB-T' in warm state
[   18.522233] usbcore: registered new interface driver dvb_usb_rtl28xxu
[   18.568552] usb 1-1.3: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
[   18.590586] DVB: registering new adapter (G-Tek Electronics Group Lifeview LV5TDLX DVB-T)
[   18.659590] usb 1-1.3: DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T))...
[   18.752436] i2c i2c-1: fc0012: Fitipower FC0012 successfully identified
[   18.773071] Registered IR keymap rc-empty
[   18.782981] input: G-Tek Electronics Group Lifeview LV5TDLX DVB-T as /devices/platform/orion-ehci.0/usb1/1-1/1-1.3/rc/rc0/input0
[   18.802984] rc0: G-Tek Electronics Group Lifeview LV5TDLX DVB-T as /devices/platform/orion-ehci.0/usb1/1-1/1-1.3/rc/rc0
[   18.813884] usb 1-1.3: dvb_usb_v2: schedule remote query interval to 400 msecs
[   18.832938] usb 1-1.3: dvb_usb_v2: 'G-Tek Electronics Group Lifeview LV5TDLX DVB-T' successfully initialized and connected
Bei der Gelegenheit sollte man gleich noch die Headers installieren:

cd /tmp
wget http://dev.shyd.de/dockstar/linux-headers-3.9.5-dockstar-goflex-shyd_1.1_armel.deb
dpkg -i linux-headers-3.9.5-dockstar-goflex-shyd_1.1_armel.deb

und dann noch zwei symbolische Links (build und source) in dem Ordner /lib/modules setzen, die zu den Headers nach /usr/src/ zeigen. Ich mach das meistens mit mc.