T-Online Vision S100 als MythTV Frontend mit zenslack-RC1-p11, WLAN und wpa supplicant
Aus MythDeWiki
Inhaltsverzeichnis |
[Bearbeiten] Vorwort
Dieser Artikel dient dazu, die speziell auf die T-Online S100 angepasste und sehr gut funktionierenden Distribution zenslack-RC1-p11 um folgende Funktionen zu erweitern:
- WLAN-unterstützung der XG-603-Karte
- Verschlüsselung der WLAN-Verbindung mit wpa_supplicant
Ich beziehe mich dabei auf bereits vorhandene Artikel, im Wesentlichen aus folgenden Quellen:
http://wiki.zenega-user.de/index.php?title=Linux_allgemein_(Intel-Board)[1]
http://forum.zenega-user.de/viewtopic.php?f=36&t=5160[2]
http://forum.zenega-user.de/[3]
http://ingeninge.homelinux.net/ingmar/mms-joomla/[4]
... und hunderte andere Seiten und Foren. Die wenigsten Inhalte sind tatsächlich von mir.
[Bearbeiten] Hinweis
Ich schreibe hier alles aus dem Gedächtnis auf. Ggf. sind manche Angaben hier nicht komplett oder wurden versehentlich falsch wiedergegeben. Es besteht die Gefahr, das die S100 nicht mehr wie gewünscht arbeitet bzw.gar nicht mehr bootet. Wer nach meiner Anleitung vorgeht handelt auf eigene Gefahr.
[Bearbeiten] Ausgangssituation
Ich gehe davon aus, das zenslack-RC1-p11 bereits auf der S100 installiert und konfiguriert ist. Hier [5] findet ihr eine Anleitung zur Installation.
- In der S100 ist das WLAN Modell XG-603 verbaut.
- Ich greife mit ssh als root auf die S100 zu.
- Die S100 hat bei mir die IP 192.168.1.10. Diese Adresse muss durch die IP von eurer S100 ersetzt werden.
- Als editor nutze ich mcedit
- Ich habe zenslack auf /dev/hda bzw. /dev/hda1 installiert. Dies muss (speziell bei Installation auf USB-Sticks) angepasst werden (z.B. in /dev/sda bzw. /dev/sda1).
[Bearbeiten] Problem
Unter zenslack-RC1-p11 wird die verbaute Wlankarte nicht unterstützt. Daher kann die S100 nur in einem kabelgebundenem Netzwerk eingesetzt werden.
Ich habe auch keine Möglichkeit gefunden, mit zusätzlichen Paketen (wie ndiswrapper) die Karte zum Laufen zu bringen.
[Bearbeiten] Lösung
Der Treiber p54 unterstützt die XG-603. Der Einsatz von ndiswrapper ist daher nicht mehr nötig. Im verwendeten Kernel (2.6.17) wird dieser Treiber jedoch noch nicht unterstützt. Daher muss ein neuer Kernel her. Da zenslack nicht darauf ausgelegt ist, Programme zu kompilieren habe ich in einer Virtuellen Maschine (VW) Slackware 10.2 installiert und alle Kompilieraufgaben in dieser Umgebung durchgeführt. Dies ist jedoch nicht wirklich nötig aber somit konnte ich mich auch gleich mal mit Slackware beschäftigen und hatte eine passende Testumgebung. zenslack-RC1-p11 basiert auf Slackware 10.2.
[Bearbeiten] wget
Auf einem Linuxrechner wget runterladen und auf die S100 kopieren.
wget ftp://mirror.pacific.net.au/linux/slackware/slackware-10.2/slackware/n/wget-1.10.1-i486-3.tgz scp wget-1.10.1-i486-3.tgz 192.168.1.10:/tmp/wget-1.10.1-i486-3.tgz
192.168.1.10 ist die IP meiner S100, die muss natürlich ersetzt werden.
Mittels ssh auf der S100 einloggen und wget installieren
cd /tmp tar xvfz wget-1.10.1-i486-3.tgz -C /
das wars.
[Bearbeiten] Kernel 2.6.26
[Bearbeiten] Die S100 vorbereiten
Auf der S100 einloggen und erstmal die lilo.conf sichern
cp /etc/lilo.conf /etc/lilo.conf.old
dann den vorhanden Kernel sichern
cp /boot/System.map /boot/System.old cp /boot/vmlinuz /boot/vmlinuz-2.6.17.6
Nun die lilo.conf folgendermaßen anpassen (mcedit lilo.conf). VORSICHT /dev/hda bzw. /dev/hda1 muss ggf. angepasst werden (z.B /dev/sda wenn vom USB-Stick gebootet wird).
# LILO configuration file # generated by 'liloconfig' # # Start LILO global section boot = /dev/hda prompt compact timeout = 2 # Override dangerous defaults that rewrite the partition table: change-rules reset # Normal VGA console vga = normal # Linux bootable partition config begins image = /boot/vmlinuz root = /dev/hda1 label = kernel-2.6.26 append = "pmtmr_good" read-only image = /boot/vmlinuz-2.6.17.6 root = /dev/hda1 label = zenslack-1.0 append = "pmtmr_good" read-only # Linux bootable partition config ends
Wer von einem USB Stick bootet sollte append = "rootdelay=10" statt append = "pmtmr_good" eintragen.
anschliessend
lilo
ausführen.
Noch ein paar vorbereitende Arbeiten:
- Ein Verzeichnis für die neuen Module anlegen
mkdir /lib/modules/2.6.26/
- Das Modul prism54 "blacklisten". Dieses Modul wird sonst per default geladen, funktioniert aber nicht.
echo "prism54" >> /etc/hotplug/blacklist
- Die passende Firmware für den p54-Treiber laden
cd /lib/firmware wget http://daemonizer.de/prism54/prism54-fw/fw-softmac/lmac_2.7.0.0.arm
und umbenennen
mv lmac_2.7.0.0.arm /lib/firmware/isl3886
[Bearbeiten] Den fertigen Kernel 2.6.26 downloaden
hier die schnelle Variante:
Das fertige Image runterladen
cd /tmp wget http://www.aitsch.bplaced.net/zenslack/zenslack-2.6.26.tar.bz2
Kernel enpacken und in das Verzeichnis /boot verschieben
tar xvjf zenslack-2.6.26.tar.bz2 mv vmlinuz System.map /boot
Nun die Module
wget http://www.aitsch.bplaced.net/zenslack/modules-2.6.26.tar.bz2
und gleich entpacken
tar xvjf modules-2.6.26.tar.bz2 -C /
Ganz wichtig, lilo ausführen
lilo
folgende Ausgabe sollte erscheinen:
Warning: COMPACT may conflict with LBA32 on some systems Added kernel-2.6.26 * Added zenslack-1.0
nun einen Reboot der S100 durchführen und den Abschnitt "Kernel 2.6.26 selbst kompilieren" überspringen.
Bootet der 2.6.26er Kernel nicht, kann man im Bootmenü auf den Originalkernel zurückgreifen.
[Bearbeiten] Kernel 2.6.26 selbst kompilieren
WER KEINEN FERTIGEN KERNEL NEHMEN MÖCHTE ODER KANN DER KOMPILIERT HALT SELBST
Nun zum neuen Kernel. Die nächsten Schritte auf einem anderen Linuxrechner durchführen.
In meinem Fall ist das die VM.
Ins src Verzeichnis wechseln und die Kernel Sourcen laden
cd /usr/src wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.tar.bz2
Kernel Sourcen entpacken
tar xvjf linux-2.6.26.tar.bz2 cd linux-2.6.26
Kernel Config runterladen
wget http://www.aitsch.bplaced.net/zenslack/config-2.6.26 rename config-2.6.26 .config
Nun zum Kernel
make oldconfig make menuconfig
Keine Ahnung, ob das überhaupt noch nötig war. Den neuen Kernel bauen
make make modules_install
Nun müssen die erzeugten Module auf die S100 kopiert werden. Dazu packe ich sie mittels tar.
tar -czf modules-2.6.26.tar /lib/modules/2.6.26
Ich habe scp genutzt um modules-2.6.26.tar auf die S100 zu kopieren. 192.168.1.10 ist die IP meiner S100, die muss natürlich ersetzt werden.
scp /lib/modules/2.6.26/modules-2.6.26.tar 192.168.1.10:/lib/modules/2.6.26/
Der nächste Befehl ist gefährlich, weil er auf dem aktuellen Rechner den Kernel installiert!!!!! Danach bootet er wahrscheinlich nicht mehr. Bei meiner VM ist das unkritisch bei jedem anderen Rechner nicht. Man kann sich das Image auch irgendwo aus dem Sourcedirectory rauskopieren. Ich weiss aber momentan nicht so genau wie und wo.
make install
Jetzt wird es kritisch. Die neuen Kerneldateien auf die S100 kopieren.
scp /boot/System.map 192.168.1.10:/boot/System.map scp /boot/vmlinuz 192.168.1.10:/boot/vmlinuz
Jetzt wieder auf der S100 einloggen
Module entpacken, anschliessend tar-Archiv löschen
cd /lib/modules/2.6.26 tar xvf modules-2.6.26.tar -C / rm modules-2.6.26.tar
Lilo aktualisieren
lilo
folgende Ausgabe sollte erscheinen:
Warning: COMPACT may conflict with LBA32 on some systems Added kernel-2.6.26 * Added zenslack-1.0
nun einen Reboot der S100 durchführen.
[Bearbeiten] wpa_supplicant
Erstmal openssl installieren
cd /tmp wget ftp://mirror.pacific.net.au/linux/slackware/slackware-10.2/slackware/n/openssl-0.9.7g-i486-1.tgz tar xvfz openssl-0.9.7g-i486-1.tgz -C /
mein kompiliertes WPA-Paket runterladen
cd /tmp wget http://www.aitsch.bplaced.net/zenslack/wpa_supplicant-0.6.3.tgz
und installieren (oder selbst kompilieren).
tar xvfz wpa_supplicant-0.6.3.tgz -C /
nun eine Konfigurationsdatei anlegen
mcedit /etc/wpa_supplicant.conf
und folgendes eintragen: (wenns nicht läuft nochmal google anschmeißen)
##### Example wpa_supplicant configuration file ###############################
ctrl_interface=/var/run/wpa_supplicant
eapol_version=1
ap_scan=1
fast_reauth=1
blob-base64-exampleblob={
SGVsbG8gV29ybGQhCg==
network={
psk="DEINEN_KEY_EINTRAGEN"
priority=1
scan_ssid=0
ssid="DEINE_SSID_EINTRAGEN"
}
und speichern.
Jetzt sollte
wpa_supplicant -B -c/etc/wpa_supplicant.conf -iwlan0 -Dwext dhcpcd wlan0
eine Verbindung Wlanverbindung herstellen (hoffen ich !! xD )
HINWEIS: Hier kann es nützlich sein, auch die wireless-tools zu installieren (siehe unten).
[Bearbeiten] Konfiguration anpassen
erstmal sichern
cp /etc/zenslack/zen-config/etc/zenslack/zen-config.old
dann anpassen
mcedit /etc/zenslack/zen-config
folgende Einträge habe ich angepaßt:
... #WLAN: Set up wlan WLAN="yes" ... #TVOUT: TV output type ( SCART / VGA / HDVGA ) TVOUT="SCART" ... #MODEL: Type of set top box ( S100 / S101 ) MODEL=S100 ... #ETH_IP: IP address to use ETH_IP="192.168.1.1" <--ANPASSEN!!!!! #ETH_NM: Netmask to use ETH_NM="255.255.0.0" <--ANPASSEN!!!!! # ---------------------------------------------------------------------------- # # WLAN NETWORK CONFIGURATION #WLA_USE_DHCP: Configure using DHCP ( yes/no ) WLA_USE_DHCP="yes" <-- OPTIONAL!!! #WLA_ESSID: ESSID to use WLA_ESSID="DEINE_ESSID" <--ANPASSEN!!!!! ... #MYTHTV_USE: Enable MythTV function ( yes/no ) MYTHTV_USE="yes" #MYTHTV_IP: IP adress (Attention: If the Backend ist not running localy, set # the IP-Adress not to localhost (127.0.0.1)) MYTHTV_CLIENT_IP="192.168.1.10" <--ANPASSEN!!!!!
#MYTHTV_BACKEND_IP: IP adress of the MythTV-Backend MYTHTV_BACKEND_IP="192.168.1.6" <--ANPASSEN!!!!!
#MYTHTV_DATABASE_IP: IP adress of the MySQL server MYTHTV_DATABASE_IP="192.168.1.6" <--ANPASSEN!!!!! ...
[Bearbeiten] Wlan beim Start aktivieren
BITTE ERST DEN ABSCHNITT "KONFIGURATION ANPASSEN" ABARBEITEN
... hierzu die Datei rc.local editieren. Hier die ersten Zeilen folgendermaßen anpassen:
mcedit /etc/rc.d/rc.local
#!/bin/sh
#
# /etc/rc.d/rc.local: Local system initialization script.
#
# Put any local setup commands in here:
# Zenslack functions startup
. /etc/zenslack/zen-config
#Set ownership for /video dir
#chown -R nobody:nogroup /video
#if [ ${ZS_SWAP} == yes ]; then
# if [ ! -f ${ZS_SWAP_FILE} ]; then
# dd if=/dev/zero of=${ZS_SWAP_FILE} bs=1024 count=65535
# /sbin/mkswap ${ZS_SWAP_FILE}
# fi
# /sbin/swapon ${ZS_SWAP_FILE}
#fi
if [ ${WLAN} == yes ]; then
/sbin/iwconfig wlan0 essid ${WLA_ESSID} mode managed enc ${WLA_KS}
/sbin/ifconfig wlan0 up
wpa_supplicant -B -c/etc/wpa_supplicant.conf -iwlan0 -Dwext
if [ ${WLA_USE_DHCP} == yes ]; then
/sbin/dhcpcd -h zenslack-wl -t 20 wlan0
else
/sbin/ifconfig wlan0 ${WLA_IP} netmask ${WLA_NM}
fi
fi
... (Rest kann bleiben wie er ist)
Dann wird WLAN bei jedem Start aktiviert.
[Bearbeiten] Tips und Infos
fertige Pakete werden unter Slackware mit
tar xvfz <Paket> -C /
installiert.
Der Parameter
#TVOUT: TV output type ( SCART / VGA / HDVGA ) TVOUT="SCART"
hat bei mir nicht funktioniert. Das Bild wurde nicht über den SCART-Ausgang ausgegeben. Daher habe ich die passenden X11 Konfigurationsdateien manuell kopiert.
cp /etc/zenslack/configuration/X11/SCART/EDID-1.bin /etc/X11/ cp /etc/zenslack/configuration/X11/SCART/xorg.conf /etc/X11/
Folgende Pakete habe ich bei mir zusätzlich installiert (teilw. um auf der S100 kompilieren zu können):
coreutils-5.2.1-i486-1.tgz gcc-3.3.6-i486-1.tgz gcc-g++-3.4.4-i486-1.tgz less-382-i486-1.tgz make-3.80-i386-1.tgz openssl-0.9.7g-i486-1.tgz pkgtools-10.2.0-i486-5.tgz wget-1.10.2-i486-1.tgz wireless-tools-27-i486-2.tgz
[Bearbeiten] nützliche Links
Slackwarepakete selbst erstellen
http://wiki.slackforum.de/SlackwarePaketeErstellen
Fertige Slackware Pakete
Grundwissen zur Installation von Slackware
http://www.linuxforen.de/forums/showthread.php?t=161181&highlight=slackware
[Bearbeiten] Nachtrag
letzte Änderung 14.01.2009.
--Henner 14:49, 14. Jan. 2009 (UTC)

