Tyvärr ser jag att ett wget-kommando inte kommer att fungera som det är tänkt.
Det här kommandot:
wget http://vtuner.googlecode.com/files/v...-r2_mipsel.ipk
Ska se ut så här:
wget http://vtuner.googlecode.com/files/vtuner-client_0.2-20120104-r2_mipsel.ipk
Men jag förstår inte hur man får bort funktionen som automatiskt gör om URL:er till länkar i en guide, hittar inte den bocken som går att kryssa bort när man skriver ett foruminlägg.. Någon som vet??
*********
Den här guiden beskriver hur man skickar en hel digital-tv-ström från en box till en annan över internet med hjälp av vtuner. Jag är själv nybörjare på Linux och jag kan säkert ha fel/missat något, guiden är skriven efter mitt eget test. Hojta till i kommentarsfältet om det är något!
Ett användningsområde är t.ex. om man har tillgång till parabol på ett ställe, men saknar det på ett annat och har internetanslutning på båda ställena. I guiden är det två stycken DM800HD-boxar som används tillsammans med OpenPLi 2.1, men det går med största sannolikhet precis lika bra med andra MIPS-boxar och andra images.
Att skicka en hel ström på detta vis kräver stor mängd bandbredd. Det är på platsen som tv-signalen hämtas som vi ställer det vi kallar för serverboxen. Boxen som används för att ta emot signalen kallar vi för klientboxen. På serversidan är det hastigheten uppströms som blir belastad och på klientsidan nedströms. Jag har själv testat med 10 mbit/s åt båda håll och då fungerar det väldigt stabilt med SD-kanaler, men inte med HD-kanaler (med vissa enstaka undantag). För att få HD-kanaler att fungera på ett lika stabilt sätt är 20 mbit/s åt båda håll en trolig minimumgräns, men det är inget jag ens testat.
Serverboxens tuner kommer att vara dedikerad för detta användningsområde och går således inte att använda för vanligt tv-tittande (i teorin bör samma transponder som klientens fungera att titta på, men jag tror inte att det fungerar i praktiken).
Vi kommer som sagt att använda vtuner som fungerar så att själva tv-signalen skickas från serverboxen till klientboxen. Signalen avkodas alltså sedan på klientboxen. Det finns ett OpenPLi-plugin som heter RemoteChannelStreamConverter där man använder en helt vanlig installation med fungerande tv-tittande på serverboxen. På klientboxen installerar man plugin:et, får upp kanallistan från serverboxen och strömmar den färdiga "dekrypterade" bilden till klienten. Väldigt enkelt, och många har rapporterat om mycket goda resultat med RemoteChannelStreamConverter. Så har du inte testat den setupen tycker jag absolut att du ska göra det först. Då slipper du egentligen alla problem som följer med vtuner. Jag upplever dock en större stabilitet med vtuner och problem är ju som bekant till för att lösas.
En nackdel med vtuner är att alla portar måste vara öppna mot internet på serverboxen eftersom vtuners serverprogramvara slumpvis sätter de inkommande portarna. Det kommer alltså endast att fungera med en publik IP-adress, inom ett LAN eller via t.ex. DMZ. Därför ska man vara införstådd med säkerhetsrisken som följer med en helt oskyddad internetanslutning kopplad mot boxen. I guiden stänger vi ner de tjänster/portar som används för diverse servermjukvara som kommer förinstallerade med boxen/OpenPLi. Trots detta är boxen med all sannolikhet inte helt säkrad på något sätt, så ha det i åtanke.
I guiden beskrivs hur man:
- Installerar server- och klientdelen i vtuner på DM800HD
- Får vtuner (server- och klient) att starta automatiskt
- Stänger ner serverboxens öppna portar/tjänster
- Installerar en FreeDNS-klient (skript) på serverboxen
- Startar serverboxen till standbyläge automatiskt vid start
Konfigurering av serverboxen
1. Flasha in önskad OpenPLi-image för aktuell box. Avsluta guiden vid start.
2. Välj Meny -> Viloläge/Omstart -> Stäng av. Gör boxen strömlös och starta den igen.
3. Byt lösenordet på root-användaren via Telnet med följande kommando:
passwd
Välj ett lösenord på minst 15 tecken.
4. Jag tycker att nano är en betydligt trevligare texteditor än vi, men det är en smaksak. Installera nano via SSH med följande kommandon:
opkg update
opkg install libncurses5
opkg install nano
Olikt de nano-versioner jag använt tidigare verkar denna lägga in nya radbrytningar automatiskt om texten inte får plats på en rad, vilket kommer förstöra våra kommande inklistrade skript. Kör därför:
nano -w /etc/nanorc
Lägg till följande och spara filen:
5. Vi tar bort NFS och Samba (observera att första kommandot är ett enda jättelångt kommando):
opkg remove cifs --force-depends && opkg remove kernel-module-cifs --force-depends && opkg remove kernel-module-smbfs --force-depends && opkg remove nfs-utils-client --force-depends && opkg remove samba --force-depends && opkg remove task-base-nfs --force-depends && opkg remove task-base-smbfs --force-depends
rm -rf /etc/samba
6. Inaktivera FTP och Telnet. Börja med att editera /etc/inetd.conf (givetvis kör du vi här om så önskas):
nano /etc/inetd.conf
Se till att sätta ett #-tecken framför alla rader som börjar med ftp och telnet och spara sedan filen. Exempel:
Kod:
#ftp stream tcp nowait root /usr/sbin/vsftpd vsftpd
#ftp stream tcp nowait root ftpd ftpd -w /
#telnet stream tcp nowait root /usr/sbin/telnetd telnetd
7. Välj Meny -> Plugins -> OpenWebif och ändra OpenWebInterface Enabled till nej.
8. Nu kan vi starta om boxen genom att välja Meny -> Viloläge/Omstart -> Omstart.
9. Nu ska NFS, Samba, FTP, Telnet och HTTP vara inaktiverat vilket du bör testa/bekräfta. Du ska endast kunna nå boxen via SSH (och TV/fjärr).
10. Om du har en dynamisk IP-adress, och använder DynDNS-tjänsten FreeDNS, kan du installera ett uppdateringsskript som kontrollerar om din IP-adress har ändrats och uppdaterar den mot FreeDNS vid behov:
cd /usr/bin/
mkdir freedns
cd freedns
nano freedns.sh
Klistra in hela skriptet i filen och byt ut xxxxx... mot din personliga kod från FreeDNS-tjänsten:
Kod:
#!/bin/sh
###########################################################################
#
# Files:
# freedns.conf Keeps the last updated IP
# freedns.log Register date & time of the actualization
#
###########################################################################
if test -f /usr/bin/freedns/freedns.conf
then
CacheIP=$(cat /usr/bin/freedns/freedns.conf)
fi
# CurreIP=$(wget -qO- http://ipecho.net/plain ; echo)
CurreIP=$(ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')
if [ "$CurreIP" = "$CacheIP" ]
then
echo "Update not required."
else
echo "Updating http://free.afraid.org with IP:" $CurreIP
wget http://freedns.afraid.org/dynamic/update.php?xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -O /dev/stdout
echo `date` "- Updating log with IP:" $CurreIP >> /usr/bin/freedns/freedns.log
fi
rm -f /usr/bin/freedns/freedns.conf
echo $CurreIP > /usr/bin/freedns/freedns.conf
Nu gör vi skriptet körbart och testar det:
chmod +x freedns.sh
./freedns.sh
11. Vi vill att skriptet körs var 10:e minut genom crontab:
opkg install busybox-cron
env VISUAL=nano crontab -e
Skriv in följande rad i filen och avsluta med en ny tom rad i slutet på filen. Utan den tomma raden kan skriptet ev. bli obrukbart så den detaljen är viktig:
Kod:
*/10 * * * * /usr/bin/freedns/freedns.sh
12. Med den senaste tidens skriverier angående om DreamBox är en laglig maskin eller inte väljer jag att byta MAC-adress och hostname för att dölja vilken typ av maskin som egentligen sitter bakom operatörens modem. Det här steget rekommenderar jag ingen att följa eftersom jag misstänker att boxen kan sluta fungera helt. Du bör veta vad du gör med dessa kommandon! Observera även att du troligtvis får en ny IP-adress från din operatör när du byter MAC-adress eftersom operatören (DHCP-servern) tror att du kopplat in en helt ny utrustning i deras modem och problematiken i att kontrollera vilken IP-adress boxen fått, nu när vi begränsat åtkomsten till boxen. Om du tidigare installerat FreeDNS-skriptet och allt fungerar som det är tänkt, så bör du ju kunna vänta ca 30 min för att sedan använda DNS-adressen. Vi börjar med MAC-adressen:
rm /etc/network/interfaces
nano /etc/network/interfaces
Klistra in följande i filen, byt ut 00:00:00:00:00:00 mot önskad MAC-adress och spara:
Kod:
# automatically generated by enigma2
# do NOT change manually!
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
pre-up ifconfig eth0 hw ether 00:00:00:00:00:00
Sedan byter vi hostname:
nano /etc/hostname
Editera till önskat hostname och spara filen.
13. Vi lägger till första skriptet som får vtuner-servern att starta automatiskt när boxen startar:
cd /etc/rc3.d/
nano S00vTunerPrepare.sh
Klistra in hela skriptet i filen:
Kod:
#!/bin/sh
# MartiniB #
BinPATH=/usr/bin/
EnigmaSH="$BinPATH"enigma2.sh
VTunerStartScripts=""$BinPATH"vTunerServer.sh "$BinPATH"vTunerClient.sh"
t="\t"
n="\n"
AND="\&"
test -f $EnigmaSH || exit 0
for VTuner in $VTunerStartScripts; do
if [ -e "$VTuner" ];then
chmod 755 "$VTuner"
Check=`grep "$VTuner start" $EnigmaSH| awk {'print $1'}`
if [ ! $Check ]; then
sed s#cd\ /home/root#if\ [\ \-"e $VTuner ]; then$n$t$VTuner start $AND$n"fi"$n$n"\&# "$EnigmaSH">"$EnigmaSH".tmp
mv "$EnigmaSH".tmp "$EnigmaSH"
fi
Check=`grep "$VTuner start" $EnigmaSH| awk {'print $1'}`
if [ ! $Check ]; then
sed s#^.*Enigma#if\ [\ \-"e $VTuner ]; then$n$t$VTuner start $AND$n"fi"$n$n"\&# "$EnigmaSH">"$EnigmaSH".tmp
mv "$EnigmaSH".tmp "$EnigmaSH"
fi
Check=`grep "$VTuner start" $EnigmaSH| awk {'print $1'}`
if [ ! $Check ]; then
sed s#.*\ /usr/bin/enigma2#if\ [\ \-"e $VTuner ]; then$n$t$VTuner start $AND$n"fi"$n$n"\&# "$EnigmaSH">"$EnigmaSH".tmp
mv "$EnigmaSH".tmp "$EnigmaSH"
fi
Check=`grep "$VTuner stop" $EnigmaSH| awk {'print $1'}`
if [ ! $Check ]; then
sed s#ret=.*#\&"$n$n"if\ [\ \-"e $VTuner ]; then$n$t$VTuner stop$n"fi$n# "$EnigmaSH">"$EnigmaSH".tmp
mv "$EnigmaSH".tmp "$EnigmaSH"
fi
fi
done
chmod 755 "$EnigmaSH"
exit 0
Nu gör vi skriptet körbart:
chmod +x S00vTunerPrepare.sh
14. Dags för själva serverfilen och andra skriptet som får vtuner-servern att starta automatiskt:
Klistra in hela skriptet i filen:
Kod:
#!/bin/sh
# MartiniB #
#lnOF="vtunerd-2009-12-05-mipsel"
BinPATH="/usr/bin/"
DAEMON="vtunerd"
#OPTIONS="1 0 1 2 0"
#OPTIONS="1 0 3 3 3"
OPTIONS=""
if [ ! "$lnOF" = "" ]; then
rm -f "$BinPATH$DAEMON"
ln -s "$BinPATH$lnOF" "$BinPATH$DAEMON"
fi
test -f $BinPATH$DAEMON || exit 0
WaitEnigma2CompletlyStarted () {
while [ ! `pidof enigma2` ]
do
sleep 5
done
sleep 100
}
case "$1" in
start)
WaitEnigma2CompletlyStarted
chmod 755 "$BinPATH$DAEMON"
start-stop-daemon -S -b -m -p /var/run/$DAEMON -x $BinPATH$DAEMON $OPTIONS
;;
stop)
start-stop-daemon -K -p /var/run/$DAEMON
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit 0
Nu gör vi server och skript körbart:
chmod +x vtunerd
chmod +x vTunerServer.sh
15. Ladda ner ett plugin i OpenPLi:s Plugins-feed som heter startuptostandby (under kategorin extensions). Efter en aktivering av det installerade pluginet i Plugins-menyn startar boxen direkt till standbyläge, vilket bör passa oss bra.
16. Efter en omstart är servern färdig att användas: Meny -> Viloläge/Omstart -> Omstart!
Konfigurering av klientboxen
1. Flasha in önskad OpenPLi-image för aktuell box. Avsluta guiden vid start.
2. Välj Meny -> Viloläge/Omstart -> Stäng av. Gör boxen strömlös och starta den igen.
3. Byt lösenordet på root-användaren via Telnet med följande kommando:
passwd
4. Även på klienten installerar vi nano via SSH med följande kommandon:
opkg update
opkg install libncurses5
opkg install nano
Vi förhindrar automatiska radbrytningar igen:
nano -w /etc/nanorc
Lägg till följande och spara filen:
5. Installera själva vtuner-klienten (jag har skrivit det andra kommandot i en textruta för att inte forumet ska förstöra länktexten):
cd /tmp/
Kod:
wget http://vtuner.googlecode.com/files/vtuner-client_0.2-20120104-r2_mipsel.ipk
opkg install /tmp/vtuner-client_0.2-20120104-r2_mipsel.ipk
Skriptet konfigureras via Meny -> Plugins -> vTuner. Dock kan man endast skriva in IP-adresser där, vill du använda en DynDNS-adress så får du ange den i konfigurationsfilen:
nano /etc/vtunerc.conf
Byt ut IP-adressen i filen mot din DynDNS-adress till servern och spara filen.
6. Efter en omstart via Meny -> Viloläge/Omstart -> Omstart så bör allt fungera!