DockstarDebianSqueeze

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Der Artikel beschreibt die Installation eines debian Betriebssystems in der Version: squeeze auf einem seagate Dockstar.


Debian Squeeze installieren

Internet abklemmen

Ganz wichtig: Am Router die Verbindung zum Internet trennen (am besten manuell, d.h. Kabel zum Splitter/Telefon-/Kabelnetz ziehen). Die Dockstar ist werksseitig so eingestellt, dass sie sich online mit dem Pogoplug-Dienst verbindet und von da an für unsere Zwecke nicht mehr ohne weiteres zu erreichen ist.

IP herausfinden

Korrektur, Original unten.

Das Wesentliche vorab:

Wichtig ist einzig, das keine Internetverbindung besteht, bis der Dienst hbwd beendet ist.

DHCP darf im Netz weiterhin aktiv sein und die Dockstar darf direkt an den Router oder Switch angeschlossen werden. Viele Router bieten eine Übersicht, welche Clients per DHCP konfiguriert wurden. Das erleichtert ggf. das Auffinden der Dockstar.


Die Dockstar direkt mit einem PC verbinden OHNE DHCP! Ganz einfach per

 host     $ ifconfig eth0 169.254.1.0 
 host     $ nmap -e eth0 -sP $(printf "169.254.%d.%d" 0xbe 0xef) 

wobei 0xbe 0xef die letzten beiden stellen der MAC (siehe Aufkleber Gehaeuseunterseite) sind.

Alternativ das ganze Subnetz scannen:

 host     $ nmap -e eth0 -sP 169.254.1.0/24

Login

Auf der Dockstar mittels SSH einloggen.

 $ ssh root@169.254.x.y
 User:    root
 Password:stxadmin

Sollte die Dockstar nicht per SSH erreichbar sein, kann man Telnet versuchen oder man muss mittels RS232 eine Verbindung aufbauen.

Firmware sichern

Einen formatierten USB-Stick einstecken. Dieser wird unter /tmp/.cemnt gemountet. Falls nicht, muss man den Stick manuell mounten, also z.B. ein Verzeichnis /tmp/bak anlegen, dorthin mounten und die erste Zeile im folgenden Script anpassen.

 dockstar $ cd /tmp/.cemnt/mnt_sda1
 dockstar $ dd if=/dev/mtd0 of=mtd0.img
 dockstar $ sha1sum mtd0.img > mtd0.img.sha
 dockstar $ dd if=/dev/mtd1 of=mtd1.img
 dockstar $ sha1sum mtd1.img > mtd1.img.sha
 dockstar $ dd if=/dev/mtd2 of=mtd2.img
 dockstar $ sha1sum mtd2.img > mtd2.img.sha
 dockstar $ dd if=/dev/mtd3 of=mtd3.img
 dockstar $ sha1sum mtd3.img > mtd3.img.sha
 dockstar $ cd /tmp
 dockstar $ sync

obiges bitte dringend überarbeiten:

Quelle: http://jeff.doozan.com/debian/uboot/build_uboot.htm

"Backup /dev/mtd0

To create an image of mtd0, you need to dump the nand without ecc. using "dd if=/dev/mtd0 of=mtd0.DOESNOTWORK" will automatically do ecc for you and will result in a corrupt image. To successfully dump the nand, you need to do the following:

cd /tmp wget http://jeff.doozan.com/debian/uboot/nanddump
chmod +x nanddump
./nanddump -nof mtd0.backup /dev/mtd0
./nanddump -nf mtd0.backup.oob
./nanddump -nof uboot-original -s 0 -l 0x80000 /dev/mtd0"

dazu eine Korrektur: "./nanddump -nf mtd0.backup.oob" sollte wohl "./nanddump -nf mtd0.backup.oob /dev/mtd0" heißen, sonst erhält man eine Fehlermeldung

Verwendbar für das Zurückschreiben ist auf folgende Weise zb. die mtd1.backup

flash_eraseall /dev/mtd1
nandwrite /dev/mtd1 mtd1.backup

(selbst soeben erfolgreich getestet mit _neuer_ Dockstar, deren Kernel-Image auf mtd1 einen crc-Fehler aufwies, Backup wurde auf anderer Dockstar erstellt)

Das Schreiben eines mit nanddump -nf erstelltes Images wurde von nandwrite wegen falscher Größe abgelehnt.

ein vollständiges Backup sollte also eher mit

nanddump -nof mtd0.backup /dev/mtd0
nanddump -nof mtd1.backup /dev/mtd1
nanddump -nof mtd2.backup /dev/mtd2
nanddump -nof mtd3.backup /dev/mtd3

erstellt werden.

"Heimtelefonieren" abstellen

Zum "Heimtelefonieren" zum PogoPlug-Service benutzt die Dockstar von Haus aus den Dienst hbwd. Der muss beendet und aus dem Startskript entfernt werden:

 killall hbwd
 mount -o remount,rw /
 chmod go+w /dev/null
 vi /etc/init.d/rcS

Jetzt befinden wir uns im Editor-Urgestein VI. Mit den Pfeiltasten bis zu folgender Zeile herunterscrollen: "/etc/init.d/hbmgr.sh start". Mit "i" in den Editiermodus gehen und an den Zeilenanfang "#" (ohne Anführungszeichen) einfügen. Mit ESC den Editiermodus verlassen. Editor beenden mit ":wq!" und RETURN-Taste. Anschließend Dateisystem auf Nur-Lesen setzen:

 mount -o remount,ro /

Internet wieder anstellen

Der erste Teil der Operation ist überstanden. Der Router muss jetzt wieder ans Internet, damit wir die Zutaten für das neue Softwareherz der Dockstar holen können.

Debian installieren

Es gibt verschiedene Wege ein Debian zu installieren:

  • mit Installer von Jeff Doozan (macht im Grunde ein debootstrap)
  • manuelles debootstrap
  • vorgefertigtes rootfs archiv nutzten

Die ersten beiden Varianten dauern wesentlich länger als ein fertiges rootfs archiv zu nehmen.

mit Installer von Jeff Doozan

Wir benutzen den automatischen Installer von Jeff Doozan für Debian Squeeze, der das neue Betriebssystem auf den USB-Stick schreiben soll.

Daher erst mal einen USB-Stick formatieren, hier sdx (also sda oder sdb, je nachdem, wieviel USB-Geräte eingesteckt sind)

 host     $ fdisk /dev/sdx
   Partition 1, primaer, Typ Linux, min. 280MB, Typisch 512MB 
   Partition 2, primaer, Typ Swap,  ~100-500MB (je groesser, desto besser fuer das Wear Leveling des Sticks) 
 host     $ mkfs.ext2 /dev/sdx1
 host     $ mkswap /dev/sdx2

dann das Skript von jeff.doozan.com ausfuehren.

 dockstar $ cd /tmp 
 dockstar $ wget http://jeff.doozan.com/debian/dockstar.debian-squeeze.sh 
 dockstar $ chmod +x dockstar.debian-squeeze.sh 
 dockstar $ export PATH=$PATH:/usr/sbin:/sbin 
 dockstar $ ./dockstar.debian-squeeze.sh

<note>

Dauert ein wenig 8-).

</note>

Die Dockstar startet nun neu.

Manuelle Installation

Dieses Vorgehen benötigt den Zugriff auf die serielle Schnittstelle der Dockstar

  • Zunächst muss der Bootloader in mtd0 aktualisiert werden, um später von einem USB-Medium booten zu können. Hierfür kann der Bootloader und das Skript von Jeff Doozan verwendet werden. Das Vorgehen ist unter http://jeff.doozan.com/debian/uboot/ beschrieben, alternativ finden sich unter http://jeff.doozan.com/debian/uboot/build_uboot.htm auch Informationen um den Bootloader uBoot neu zu übersetzen sowie weiteres Hintergrundwissen.
  • Nach dem Update des Bootloaders kann Debian (armel) unter Verwendung des normalen Debian-Installers für diese Architektur installiert werden. Eine entsprechende Anleitung findet sich unter http://www.plugcomputer.org/plugwiki/index.php/Installing_Debian_To_Flash . Die Installation des Bootloader entfällt natürlich. Folgende Anpassungen waren für meine Installation notwendig:
  • Schritt 'Burn a New Kernel' übersprungen.
  • Schritt 'Run the Debian Installer' angepasst (beim Laden des uImage an Speicheradresse 0x0400000 kam es reproduzierbar zu einem Absturz):
  setenv ipaddr 169.254.1.1
  setenv serverip 169.254.78.185
  tftpboot 0x2000000 uImage
  tftpboot 0x0800000 uInitrd
  setenv bootargs console=ttyS0,115200 base-installer/initramfs-tools/driver-policy=most
  bootm 0x2000000 0x0800000
  • Nach dem Reboot fehlt der Kernel zum Booten, abhilfe schafft der Download eines fertig kompilierten Kernels von http://sheeva.with-linux.com/sheeva/ . Es wird nur das uImage benötigt. Im Uboot genügt folgende Anweisung im Uboot um in die neue Installation zu booten:
  setenv ipaddr 169.254.1.1
  setenv serverip 169.254.78.185
  tftpboot 0x0800000 uImage
  setenv bootargs console=ttyS0,115200 root=/dev/sda2 rootwait rw
  bootm 0x0800000
  • Jetzt muss der Kernel installiert weden. Hierfür kann wie unter 'Updating the Kernel' in [1] beschrieben vorgegangen werden. Zuvor sind noch die mtd-utils zu installieren (apt-get install mtd-utils). Das README-Skript des jeweiligen Kernels lädt nur die Module und das uImage des Kernels von [2] herunter, und installiert diese durch kopieren der Module bzw. schreibt den Kernel in den Flash durch Aufruf von nandwrite -pm /dev/mtd1 uImage.
  • Anpassung uBoot für den Boot von dem USB-Stick:
 setenv bootargs 'console=ttyS0,115200 mtdparts=nand_mtd:0xa0000@0x0(u-boot),0x400000@0x10000(uImage),0x1fb00000@0x500000(rootfs) root=/dev/sda2 rootwait rw'
 setenv bootcmd 'nand read 0x800000 uImage; bootm 0x800000'
 saveenv

Anmerkung: Installation in den Flash der DockStar habe ich nicht getestet, da mein Image zu groß ist.

vorgefertigtes rootfs archiv nutzten

Leider gibt es keine offizienen footfs images von debian, so wie es welche von ArchLinuxARM gibt. Allerdings gibt es von verschiedenen Usern ein archiv:

Linux einrichten

Erste Anmeldung

Warten bis Debian gestartet ist. Dann per SSH einloggen (User: root Passwort: root).

 host     $ ssh root@debian
 dockstar $ passwd

Sollte kein DHCP-Server im Netz laufen bzw. die Dockstar schon Verbindung ins Internet hatte, muss man via RS232 zugreifen und die Konfiguration per Hand einrichten (nur temporär. ):

ifconfig eth0 <ipadresse>
route add default gw <adresse des routers>
echo "nameserver <adresse des routers/nameservers>" > /etc/resolv.conf

Dauerhafte einstellung (Beispieladressen) : /etc/network/interfaces

iface eth0 inet static
address 192.168.0.111
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1


Einen einfachen kleinen Texteditor installieren:

dockstar $ apt-get install nano

Nur für USB-Sticks: Nun die Verzeichnisse /tmp, /var/log, /var/lock & /var/run als tmpfs' einrichten.

 dockstar $ nano /etc/fstab

/etc/fstab:

 /dev/root / ext2 noatime 0 1
 /dev/sda5 none swap sw 0 0
 none /tmp tmpfs rw,nosuid,nodev,size=26M 0 0
 none /var/log tmpfs rw,nosuid,nodev,noexec,size=4M 0 0
 none /var/lock tmpfs rw,nosuid,nodev,noexec,size=1M 0 0
 none /var/run tmpfs rw,nosuid,nodev,noexec,size=1M 0 0

Zeitzone einstellen

 dockstar $ dpkg-reconfigure tzdata

... und der Benutzerführung folgen.

syslog

Debian Squeeze minimal installiert keinen syslog Dienst. Es ist nur dmesg vorhanden.

Normalerweise könnte man rsyslogd installieren. Aber um einen USB-Stick zu schonen, kann man besser busybox-syslogd nutzten. Dieser schreibt die syslog Ausgaben ins RAM (Genutzt wird ein Buffer von: 128KB).

Einrichtung:

 dockstar $ apt-get install busybox-syslogd

Natürlich hat man nun keine Datei /var/log/syslog die man sich ansehen kann. Stattdessen erhält man den Inhalt mit:

 dockstar $ logread

Kontinuierlich die Ausgaben ansehen, kann man mit:

 dockstar $ logread -f 

siehe auch: http://www.rudiswiki.de/wiki/DockStarDebian#Adding_syslog_support

"Automounter" einrichten

Autofs/Automount einrichten

Zunaechst autofs installieren

 dockstar $ apt-get install autofs

Zur Datei /etc/auto.master folgendes hinzufuegen.

 dockstar $ nano /etc/auto.master

/etc/auto.master:

 /media	/etc/auto.media --timeout=60 --ghost

Nun die Datei /etc/auto.media erstellen und darin die UUID der USB-Devices eintragen.

 dockstar $ blkid
 /dev/sda1: UUID="99a0bf9c-2310-4167-a4e3-e6e571aeb91d" TYPE="ext2" 
 /dev/sda2: TYPE="swap"
 /dev/sdb1: UUID="99a0bf9c-2310-4167-a4e3-e6e571aeb91e" TYPE="ext4" 
 dockstar $ nano /etc/auto.media

/etc/auto.media:

 disk	-fstype=ext4,users	UUID="99a0bf9c-2310-4167-a4e3-e6e571aeb91e"

Das Geraet sollte nun automatisch beim Betreten des im Beispiel verwendeten Verzeichnisses /media/disk gemoutet werden.

 dockstar $ cd /media/disk
 dockstar $ mount
 ...
 /dev/sdb1 /media/disk ext4 ...
 ...

usbmount

Alternativ macht sich auch usbmount ganz gut. Hier wird das USB-Medium automatisch beim Einstecken in das Dateisystem eingebunden.

usbmount installieren:

 apt-get install usbmount

Die Einstellungen in der Konfigurationsdatei /etc/usbmount/usbmount.conf können soweit übernommen werden. Die Option FS_MOUNTOPTIONS sollte etwas erweitert werden:

 FS_MOUNTOPTIONS="-fstype=vfat,gid=floppy,dmask=0007,fmask=0117"

Damit stellt man ein, dass alle User der Gruppe floppy Lese- und Schreibzugriff auf das Wechselmedium haben, wenn das Dateisystem vom Typ vfat ist. Also müssen noch die entsprechenden User in diese Gruppe integriert werden:

 usermod -a -G floppy ein_user

Die Wechselmedien werden unter dem Verzeichnis /media eingebunden:

 root@dockstar:/# ls -l /media
 total 72
 lrwxrwxrwx  1 root root       4 Sep 10 18:49 usb -> usb0
 drwxrwx--- 70 root floppy 32768 Jan  1  1970 usb0
 drwxrwx---  3 root floppy 16384 Sep 10 19:16 usb1
 drwxr-xr-x  2 root root    4096 Sep 10 18:49 usb2
 drwxr-xr-x  2 root root    4096 Sep 10 18:49 usb3
 drwxr-xr-x  2 root root    4096 Sep 10 18:49 usb4
 drwxr-xr-x  2 root root    4096 Sep 10 18:49 usb5
 drwxr-xr-x  2 root root    4096 Sep 10 18:49 usb6
 drwxr-xr-x  2 root root    4096 Sep 10 18:49 usb7

(Hier sind gerade 2 USB-Sticks im System; usb/ verweist auf usb0/.)

apt-get: Pakete können nicht authentifiziert werden

Wenn die Fehlermeldung "The following packages cannot be authenticated!" erscheint hilft ein:

apt-get update; apt-key update

Samba einrichten

 dockstar $ apt-get install samba samba-common-bin

Hinweis: Ohne das Paket **samba-common-bin** fehlt smbpasswd :-O.

TODO: anlegen eines Shares & Users

User anlegen:

- adduser username #User im normalen System anlegen
- smbpasswd -a username #User in Samba anlegen
- vi /etc/samba/smb.conf # Im Abschnitt [homes]: read "only = yes" zu "read only = no" ändern.

Share für alle User ohne Anmeldung anlegen (Vorsicht wg. Datensicherheit)

- mkdir /home/public #passenden Ordner erstellen
- chmod 777 /home/public #passende Rechte vergeben

In der Datei /etc/samba/smb.conf folgenen Eintrag hinzufügen:

[public]
comment = Public Folder
path = /home/public
available = yes
browsable = yes
public = yes
writable = yes
create mask = 0777
directory mask = 0777
force user = nobody
force group = nogroup

Lighttpd, Php, Webdav

Folgende Pakete sind zu installieren.

 dockstar $ apt-get install lighttpd lighttpd-mod-webdav php5-cgi
 dockstar $ cd /var
 dockstar $ chown -R www-data:www-data www

BUG: In /etc/lighttpd/lighttpd.conf die Zeile include_shell "/usr/share/lighttpd/use-ipv6.pl" auskommentieren und apt-get install -f ausfuehren.

Aenderungen an /etc/lighttpd/lighttpd.conf:

 server.modules = (
           "mod_alias",
           "mod_compress",
 #         "mod_rewrite",
           "mod_webdav",
           "mod_fastcgi",
 #         "mod_redirect",
 #         "mod_usertrack",
 #         "mod_expire",
 #         "mod_flv_streaming",
 #         "mod_evasive"
 )

&

 fastcgi.server		   =    ( ".php" =>
 				  ( "localhost" =>
 				    (
 				      "socket" => "/var/run/php-fastcgi.socket",
 				      "bin-path" => "/usr/bin/php-cgi"
 				    )
 				  )
 				)

- Alternativer Eintrag für fastcgi/php. (Der Obrige geht bei mir nicht.)

fastcgi.server = ( ".php" => ((
                    "bin-path" => "/usr/bin/php-cgi",
                    "socket" => "/tmp/php.socket"
                )))


Todo: Subversion ;)

Zeitsynchronisation einrichten

Die Ganggenauigkeit der Uhr im Dockstar ist nicht besonders gut. Aus diesem Grund empfiehlt es sich, diese zyklisch mit einem Zeitnormal abzugleichen. Wenn der Minirechner im Netzwerk hängt, macht man das am besten mittels eines NTP-Servers. Das gängige Kommando dazu ist z.B. (als root):

ntpdate ntp1.ptb.de

Als Rückmeldung erhält man:

13 Sep 17:10:10 ntpdate[13387]: adjust time server 192.53.103.108 offset 0.133584 sec

... und gleichzeitig wird die Systemzeit entsprechend gesetzt.

Um das Ganze zu automatisieren und z.B. jede 1/2 Stunde die Systemzeit abzugleichen, richtet man sich einen zyklisch startenden Job via Cron ein (den man sicherlich noch für weitere Dinge gut gebrauchen kann):

Cron installieren:

apt-get install cron

Cronjob eintragen:

crontab -e

und folgende Zeile hinzufügen:

*/30 * * * * /usr/sbin/ntpdate ntp1.ptb.de >> /var/log/ntpdate.log 2>&1

Es wird also jede 30 min das Kommando /usr/sbin/ntpdate ntp1.ptb.de ausgeführt und die Ausgaben landen in der Log-Datei /var/log/ntpdate.log.

Es sei anzumerken, dass es weitere Alternativen für Job-Scheduler gibt, man muss nicht unbedingt Cron nehmen. Ausführliche Listen mit öffentlichen NTP-Servern findet man im Internet. Hat man mehrere Clients in seinem Netzwerk zu versorgen, macht es sich auch ganz gut, wenn man selbst einen NTP-Server betreibt, der sich seinerseits wiederum über das Internet synchronisiert.

Alternativ kann man auch openntpd verwenden. Dazu muss man eine Backports Quelle in der sources.list angeben.

vim /etc/apt/sources.list

und diese Zeile ergänzen:

deb http://backports.debian.org/debian-backports squeeze-backports main

Nun kann man openntpd installieren.

apt-get update
apt-get install openntpd
openntpd -s

Der Deamon verändert die Systemzeit nur sehr langsam. Daher muss man beim Neustart des Dockstars openntpd mit der Option -s syncronisieren.

crontab -e

und hier folgendes eintragen:

@reboot /usr/sbin/openntpd -s

Nun kann man auch die übrigen ntp-Programm (außer openntpd) deinstallieren. Eine Übersicht welche installiert sind erhält man mittels:

dpkg --list | grep ntp 
rc = lediglich die Konfigurationsdateien sind vorhanden
ii = das Programm ist installiert

Bunte Fenster

Ob es nun sinnvoll ist X (plus einem Windows-Manager) auf der Dockstar laufen zu lassen, muss jeder für sich selbst entscheiden. Möglich ist es und sieht auch ganz lustig aus:

Dockstar x.png

Hier wurde sich für den Windowsmanager IceWM entschieden (weil ressourcenschonend), LXDE oder XFCE sind natürlich auch denkbar, aber nicht ganz so schlank.

Die einzelnen Schritte:

apt-get install xvfb icewm x11vnc
  • xvfb - X-Server (wenn man keine Grafikkarte hat)
  • icewm - der Windows-Manager
  • x11vnc - VNC-Server, um sich remote mit dem X auf dem Dockstar verbinden zu können


xvfb, IceWM und VNC-Server starten (am besten in jeweils eigenen screen-Sessions; screen eventuell ebenfalls installieren):

screen -R xvfb
Xvfb :0 -screen 0 1024x768x16

Als der "normale" User:

screen -R icewm
export DISPLAY=:0
icewm
screen -R vnc
x11vnc --forever -noxdamage

Screen-Sessions jeweils mit STRG+A+D verlassen.

Die Verbindung zum X-Server erfolgt über jeden beliebigen PC im Netzwerk mittels VNC. Auf dem Dockstar sollte man natürlich auch ein paar X-Programme installieren (z.B. xterm).

USB-Sound

wget 193.16.217.9/files/dockstarheavy.deb #Kernel mit Soundtreibern laden
dpkg -i --force-overwrite dockstarheavy.deb #Kernel mit Soundtreibern installieren
apt-get install alsa-base alsa-oss alsa-utils; #Pakete installieren
vi /etc/asound.conf; #Konfigurieren. Folgenden Inhalt eintragen
pcm.!default {
   type hw
   card 1
}
ctl.!default {
   type hw
   card 1
}

Zum Testen eine MP3-Datei (z.b. test.mp3) hochladen

Test: mplayer test.mp3

Einige billige USB-Soundkarten können nur 48000Hz Stream wiedergeben (Wie meine 5€ Digitus USB-Soundkarte (Kopfhörerausgang und Mikrofoneingang))

Test: mplayer resample=48000 test.mp3

mpd als Audio-Server

apt-get install mpd mpc
adduser mpd audio;      #User mpd der Gruppe Audio hinzufügen
vi /etc/mpd.conf;       #Audiodevice setzen, hierfür folgendes eintragen:
audio_output {
       type            "alsa"
       name            "Default"
}

Wenn die Soundkarte nur 48000Hz unterstützt:

vi /etc/mpd.conf; # Folgende Zeilen entsprechent anpassen:
audio_output_format             "48000:16:2"
samplerate_converter            "Linear Interpolator"


Erster Test. Eine Datei (z.B: test.mp3) in das Verzeichnis /var/lib/mpd/music kopieren.

mpc update       #Musik-Verzeichnis aktualisieren
mpc save play0   #Playlist erstellen
mpc load play0   #Playlist verwenden
mpc add test.mp3 #Eine MP3 der Playlist hinzufügen
mpc play         #Playlist abspielen

Verschlüsselte Partition mit dm crypt

Testen ob die Module geladen werden:

modprobe dm-crypt
modprobe dm_mod
lsmod

Erster Durchlauf. Erstellen,einbinden und formatieren:

fdisk # ... Partition erstellen.
dd if=/dev/urandom of=/dev/sda3 bs=1M #Partition mit zufallsdaten füllen, dauert etwas
apt-get install cryptsetup hashalot #Packete holen 
cryptsetup luksFormat /dev/sda3 #Crypt Partition Formatieren
cryptsetup luksOpen /dev/sda3 data #Crypt Partition mappen
mkfs -t ext2 /dev/mapper/data #Dateisystem erstellen
mkdir /mnt/data #locales Verzeichnis einrichten
mount /dev/mapper/data /mnt/data #Einbinden

Danach nur noch kennworteingabe und einbinden:

cryptsetup luksOpen /dev/sda3 data
mount /dev/mapper/data /mnt/data

Fernbedienung (am Beispiel X10 / Medion,Pollin)

apt-get install lirc usbutils dialog libusb-dev
/etc/init.d/lirc stop

vi /etc/lirc/lircd.conf #Config Datei einfügen, es gibt für fast alle welche im Internet, z.b. hier: http://lirc.sourceforge.net/remotes/atiusb/lircd.conf.atiusb

vi /etc/lirc/hardware.conf #folgendes eintragen: 

DRIVER="atilibusb" und START_IREXEC="true"

/etc/init.d/lirc start #Starten
irw #testen

Beispielhaft Konfiguration von lirc für eine Steuerung des mpd's über mpc. vi /etc/lirc/lircrc #erstellen mit folgendem Inhalt:

## irexec
begin
    prog = irexec
    button = PLAY_PAUSE
    config = mpc toggle
    repeat = 0
end
begin
    prog = irexec
    button = STOP
    config = mpc stop
    repeat = 0
end
begin
    prog = irexec
    button = PREV
    config = mpc prev
    repeat = 0
end
begin
    prog = irexec
    button = NEXT
    config = mpc next
    repeat = 0
end
begin
    prog = irexec
    button = VOL+
    config = mpc volume +2
    repeat = 1
end
begin
    prog = irexec
    button = VOL-
    config = mpc volume -2
    repeat = 1
end
begin
    prog = irexec
    button = RECORD
    config = mpc random
    repeat = 0
end
begin
    prog = irexec
    button = RC
    config = mpc update
    repeat = 0
end
begin
    prog = irexec
    button = FFWD
    config = mpc seek +00:00:05
    repeat = 0
end
begin
    prog = irexec
    button = FRWND
    config = mpc seek -00:00:05
    repeat = 0
end

lirc wieder neustarten /etc/init.d/lirc restart


vdr installieren

vdr installieren und Einrichten:

Es ist soweit, der VDR kann installiert werden. Das geht dank der Debian-Paketverwaltung sehr einfach.

    apt-get install vdr vdradmin-am vdr-plugin-live vdr-plugin-streamdev-server vdr-plugin-epgsearch w-scan

Hierbei installiert man eine Konfigurationsoberfläche und die einfache Benutzeroberfläche VDR-Live mit. w-scan wird benutzt, um automatisch die Sender zu suchen. Bevor es richtig los geht, sind noch ein paar wenige Dinge zu erledigen. Der VDR erwartet einen Ordner unter

    /var/lib/video.00

zum Speichern der Aufnahme. Da der Mountpoint vom NAS ganz wo anders liegt, muss ein symbolischer Link gesetzt werden und gegebenenfalls müssen noch die Zugriffsrechte angepasst werden:

    ln -s /tank/Video/tvrecordings/ /var/lib/video.00
    chown vdr:vdr /tank/Video/tvrecordings

Nun zu den Konfigurationsdateien. Im Folgenden die Dateien mit den entsprechend zu setzenden Optionen:

    /etc/default/vdr
         ENABLED=1 #VDR wird beim Booten mitgestartet
    /etc/default/vdradmin-am
         ENABLED=1
    /var/lib/vdradmin-am/vdradmind.conf
         PASSWORD = passwort #entsprechend anpassen
         USERNAME = benutzer #Login-Name für die Konfigurationsoberfläche
    /var/lib/vdr/plugins/streamdev/streamdevhosts.conf
         192.168.0.0/24        # any host on the local net (Hier muss das eigene Subnetz angepasst werden)

Jetzt ist es fast geschafft! Es fehlt nur noch ein Sendersuchlauf.

    w_scan -ft -c DE > /var/lib/vdr/channels.conf

Hierbei ist zu beachten, dass mit DE Voreinstellungen für Deutschland benutzt werden. Dieser Sendersuchlauf kann etwas dauern. Dann kann es losgehen. Daumen drücken und:

    /etc/init.d/vdr start

Geschafft! Nun steht unter http://SERVER-IP:8001 die Konfigurationsoberfläche und unter http://SERVER-IP:8008 die Oberfläche des Live-Plugins bereit.

Anmerkungen:

  • Teil 1 der Blog-Reihe beschreibt nur das installieren von Debian.
  • Teil 2 klärt wie man eine NFS Freigabe einbindet.

Ich installiere, anders als im Blog, lieber das "offizielle" Firmware Paket: Dazu muß "non-free" Sektion in /etc/apt/sources.list eingetragen sein, z.B.:

 deb http://ftp.de.debian.org/debian squeeze main non-free

Installieren der firmware Daten:

 dockstar $ apt-get install firmware-linux-nonfree

(Nach einem reboot kann in dmesg gesehen werden, ob der Stick richtig eingerichtet ist.)

Beim Sender-Suchlauf mußte ich mit -a /dev/dvb/adapter0/ explizit den Pfad zum DVB-T Adapter angeben, bsp:

 dockstar $ w_scan -a /dev/dvb/adapter0/ -c DE > /var/lib/vdr/channels.conf

btw. Beim Streamen dreht die Dockstar CPU mit ca. 7% Däumchen ;)

Kernel (2.6.35.6) laden, einbinden, bauen, installieren

Benötigte Pakete installieren apt-get install ncurses-base ncurses-bin libncurses5-dev #ncurses für menuconfig Kernel Quellen holen

cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.35.6.tar.bz2
tar -xjvf linux-2.6.35.6.tar.bz2

Symlink setzen

rm linux
ln -s linux-2.6.35.6 linux
cd linux

Config-Datei holen (vorher den Multimedia - Kernel installieren)

cp /boot/config-2.6.35.6-dockstar .config

Dockstar Patch laden und einpflegen

wget http://jeff.doozan.com/debian/dockstar-kernel.patch
patch -p1 < dockstar-kernel.patch

Setzen der Konfiguration

make oldconfig

Kernel bauen (dauert sehr lange, mehr als 4 Stunden)

make all

Kernel installieren

make all install

Anmerkung: Mittlerweile gibt es den 3.3.2 Kernel fertig zum installieren, siehe: http://forum.doozan.com/read.php?2,7676

Backup des Systems mit tar

Natürlich kann man den das System auch per dd sichern. Allerdings hat man dabei unnötige Daten mit gespeichert. Hier ein Skript um per tar ein Archiv vom System zu erstellen:

#!/bin/sh

DEST="/home/FooBar/Backups/$(date +%Y-%m-%d)DockStarBackup.tar.lzma"

EXCLUDE="
    --exclude=*.pyc
    --exclude=./mnt/*
    --exclude=./proc/*
    --exclude=./sys/*
    --exclude=./lost+found/*
    --exclude=./tmp/*
    --exclude=./dev/*
    --exclude=./home/root/*
    --exclude=./var/cache/apt/apt-file/*
    --exclude=./var/cache/apt/archives/*
    --exclude=./var/lib/apt/lists/*dists*
    --exclude=./var/run/*
    --exclude=./var/tmp/*
    --exclude=./var/log/*
    --exclude=./root/*
    --exclude=./.Trash*
"

set -x
sudo tar cvpfa ${DEST} ${EXCLUDE} ${EXCLUDE2} .

Man kopiert das Skript in das rootfs des Dockstar systems. z.B. /backup.sh und so kann man es benutzten, wenn der USB-Stick/-Platte am PC hängt:

$ sudo mount /dev/sdXY /mnt
$ cd /mnt
/mnt$ ./backup.sh

Ein Backup zurückspielen geht so:

$ sudo mount /dev/sdXY /mnt
$ sudo tar xvpfa /home/FooBar/Backups/2012-XX-YYDockStarBackup.tar.lzma -C /mnt/


Links

 * http://jeff.doozan.com/debian/
 * http://ahsoftware.de/dockstar/
 * http://www.howtoforge.de/howto/wie-man-webdav-mit-lighttpd-auf-debian-etch-konfiguriert/
 * https://wiki.ubuntu.com/Lighttpd%2BPHP
 * http://www.howtoforge.de/howto/installation-von-lighttpd-mit-php5-und-mysql-unterstutzung-auf-mandriva-20080/