1.111. Samsung SMT-7020S
Bemerkung
In diesem Artikel möchte ich im Laufe der Zeit Informationen zusammenschreiben, die den Aufbau eines FreeBSD-Systems auf einem Samsung SMT 7020s Satelittenreceiver beinhaltet. Erstmal werde ich diesen Artikel nicht im Wiki verlinken, vorerst schreibe ich nur zusammen, um am Ende ein vollständiges Howto zu haben, welches man auch anderen Nutzern zur Verfügung stellen kann.
1.111.1. Voraussetzungen
Ein Fernseher sollte vorhanden sein, denn der einfachste Anschluss an einen Bildschirm ist wohl der über das mitgelieferte SCART-Kabel an ein TV.
Um die Box steuern zu können, ist eine USB-Tastatur notwendig. Das BIOS erreicht man bei geschwindem drücken auf <F2> während des Willkommens-Bildschirms (nur für den Fall der Fälle, aber reinschauen will da wohl jeder mal).
Eine Festplatte, möglichst 2,5“
Ein IDE-Kabel 40-Pin
Ein Lötkolben
Ein Molex-Stecker mit etwas Kabel (z.B. aus einem ausgeschlachtetem Netzteil)
Bemerkung
Durch die Öffnung und Veränderung des Gerätes verfällt der Gewährleistungsanspruch!
Es ist zu beachten, daß im Gehäuse offen 230V Wechselspannung anliegen und somit die Gefahr eines Stromschlages - auch bei vermeintlich abgeschaltetem Gerät - besteht!
Der ATX-Stromanschluß auf dem Mainboard entspricht nicht der Norm! (er ist gespiegelt angebracht). Daher NIEMALS ein Standard ATX-Netzteil am Mainboard anschließen!
Alle Angaben erfolgen ohne Gewähr!
1.111.2. Erste Schritte
1.111.2.1. Festplatte
Aufgund der Platzverhältnisse bietet sich der Einbau von 2,5“-PATA-Festplatten an. 3,5“-Festplatten bekommt man nur mit einigen Schwierigkeiten ins Gehäuse.
In diesem Fall wird eine 2,5“-Festplatte verbaut. Die Verkabelung mit dem Mainboard wird mit einem 40-adrigen DMA-Kabel realisiert. Dabei wird die 2,5“-Platte mittels eines Adapter von ATA40 (3,5“) auf ATA44 (2,5“) am Kabel angeschlossen. Dieser Adapter dient neben dem Anschluß der Datenleitungen auch zur Stromversorgung der Platte. Ein Standard-Festplattenanschluß (Molex) kann am Netzteil, am besten an der Unterseite, angelötet werden und mit dem Anschluß des Adapters verbunden werden.
1.111.2.2. Installation
Bei der Installation sollte darauf geachtet werden, dass ein User angelegt wird, der auch noch Mitglied der Gruppe „wheel“ sein sollte, damit späteres einloggen per ssh sofort problemfrei funktioniert.
FIXME vielleicht auch ändern in gescheite ssh-config von Anfang an. ach ich weiß auch nicht, sicherheitsgedanken nicht vergessen, du heini! ma kuckn…
TODO
1.111.2.3. Probleme beim Booten
Beim Booten gab das schlechte Ergebnisse, die in einem Bootabbruch gipfelten. Zunächste wurde der MBR verdammt langsam gelesen, dann brach der Bootvorgang am Ende des Kernelladens ab. Die Meldung beinhaltete Information der folgenden Art:
read_dma status=51 error=84
Erst ein Umstellen der Festplatteneinstellungen im BIOS der Box auf „User“ mit den Werten „Transfer Mode“ „Standard“ und „UDMA-Mode“ „Disabled“ überredeten die Box zum booten.
Wenn danach noch Probleme mit dem Zugriff auf die Festplatte bestehen (beispielsweise durch eine Systeminstallation per USB), dann steht man an einer Meldung mit dem Inhalt:
mountroot
Hier soll man einen anderen Eintrag, als den bei USB-Installation
gesetzten ufs:da0s1a
angeben. Das ist auch klar, denn da die
Festplatte nun in der Box verbaut ist und direkt am IDE-Port hängt, ist
der Zugriff nicht mehr über USB zu bewältigen. Der Zugriff ändert sich
also zu
mountroot> ufs:ad0s1a
Endlich am login-Prompt angelangt, loggen wir uns ein und ändern eben
diese Informationen hinsichtlich der Festplatte in der /etc/fstab
ab. Diese Datei sollte dann etwa wie folgt aussehen (natürlich
variierend je nach der beim Installationsvorgang gewählten
Partitionstabelle):
# Device Mountpoint FStype Options Dump Pass
/dev/ad0s2b none swap sw 0 0
/dev/ad0s1a / ufs rw 1 1
/dev/acd0 /cdrom cd9660 ro,noauto 0 0
1.111.3. Netzwerk
Da beim Anschluss an einen Fernseher über das Scart-Kabel an der Rückseite der Box das Bild leicht nach links verschoben ist, sieht man die ersten 5 Zeichen nicht. So kann es Probleme geben, das Netzwerkinterface zu konfigurieren, da man dessen Namen ja nicht kennt. So sei hier gesagt, dass sich ein Intel DA82562ET-Netzwerkcontroller auf dem Board befindet, der auf das Kürzel fxp0 reagiert. Ist ein DHCP-Server angeschlossen, so bekommt man mit
# dhclient fxp0
einen Netzwerklink. Um das ganze Spiel schon beim Booten automatisiert
zur Verfügung zu haben, sollte man sich die Datei /etc/rc.conf
zur
Brust nehmen. Hier gehört der Eintrag
ifconfig_fxp0="DHCP"
rein. Wer lieber eine statische Konfiguration der Box wünscht, der trägt anstelle dessen etwas dieser Art ein:
ifconfig_fxp0="inet 192.168.1.2 netmask 255.255.255.0"
defaultrouter="192.168.1.1"
1.111.3.1. sshd(8)
Von nun an kann man sich NICHT per ssh(2) verbinden. Dafür muss erst der defaultmäßig deaktivierte sshd(8) gestartet werden.
Das geschieht fürs nächste Booten mit folgendem Eintrag in der
/etc/rc.conf
sshd_enable="YES"
Für das aktuell gestartete System eignet sich der Befehl
# /etc/rc.d/sshd start
Jetzt ist kein root-login möglich, das ist per default verboten. Wer aber clever war, hat beim Installieren des Systems direkt einen User angelegt, mit dem man sich nun einloggen kann. Wurde dieser auch noch als Member der Gruppe „wheel“ vermerkt, kann man nach einem Login als dieser User mit einem
# su
root-Rechte verleihen, die in diesem Anfangsstadium der Konfiguration sicher wichtig sind…
1.111.4. Infrarot
Der nächste Schritt muss MythTV und vor allem Infrarot heißen. Zunächst
wird mal der lirc
installiert, weil es außer diesem nur noch einen
uird
gibt, der aber wohl nur mit einem ganz bestimmten
Infrarot-Gerät zusammenarbeitet. Also los:
# pkg_add -r lirc
Eine wichtige Info zu diesem Zeitpunkt ist wohl diese hier:
**********************************************************************
This port does not contain any FreeBSD device drivers for infrared
devices. This port installs the LIRC daemons and tools for interacting
with drivers that support the LIRC device interface.
You will need to obtain third party device drivers or port the Linux
drivers in ${WRKSRC}/drivers to use the LIRC port.
**********************************************************************
1.111.5. MythTV
Ein pkg_add
geht bei MythTV zum Zeitpunkt der Erstellung dieses
Artikel nicht, weil der Port als „broken“ markiert ist und deshalb nicht
als Package zu Verfügung gestellt wird. Dummerweise funktionierte der
Port zum genannten Zeitpunkt nicht (nicht nur, weil er „broken“ war,
sondern auch weil die Quellen nicht verfügbar waren), weshalb nun alles
aus den Quellen kompiliert wird.
Damit aber nicht alle Abhängigkeiten auch noch als Port installiert
werden, nehmen wir diese Dinge selbst in die Hand und installieren
möglichst viel per pkg_add
:
# pkg_add -r qt
(NICHT qt4!! laut mythtv.org läuft mythtv nur mit qt3)
Leider gibt es Lizenzprobleme hinsichtlich 'lame
‘, weshalb kein
Package zur Verfügung gestellt wird. Das ist uns natürlich egal, wir
installieren einfach den Port… Dafür wird zuerstmal der Portstree mit
Hilfe von portsnap
geholt. Wer FreeBSD vor Version 6.0-RELEASE
benutzt, ist selbst schuld. Der muss portsnap
nämlich erstmal
installieren. Das würde dann so gehen:
# pkg_add -r portsnap
Das eigentliche Installieren des Portstrees geschieht dann mit folgendem Befehl:
# portsnap fetch extract
Wer wirklich ausführliche Informationen zu diesem Thema sucht, der ist wohl bei den paketsystemen und artverwandten Artikeln richtig aufgehoben!
Jetzt ist endlich 'lame
‘ dran.
# cd /usr/ports/audio/lame
# make install clean
Und die übrigen Abhängigkeiten:
# pkg_add -r wget
# pkg_add -r qt-mysql-plugin
# pkg_add -r p5-xmltv
# pkg_add -r freetype2
# pkg_add -r mysql50-client
1.111.6. mySQL
Wir benötigen auf diesem Gerät auch noch einen mySQL-Server, so denn kein andere im Netzwerk verfügbar ist. Der einfachheit halber gehe ich aber davon, dass sowas nicht da ist und wir betreiben sowohl den Server, als auch den Client direkt auf der Samsung-Box:
# pkg_add -r mysql50-server
mySQL muss noch kurz konfiguriert werden:
# echo 'mysql_enable="YES"' >> /etc/rc.conf
Zum einmaligen Starten von mySQL ist das hier notwendig:
# /usr/local/etc/rc.d/mysql-server start
Dann muss noch das initiale Passwort für den Nutzer „root“ gesetzt werden:
# mysql --user=root
Welcome to the MySQL monitor. Commands end with ; or \\g. Your MySQL
connection id is 12 to server version: 5.0.27
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> update mysql.user set
Password=PASSWORD('**hier_das_neue_passwort**') where User='root';
mysql> flush privileges; mysql> quit;
Jetzt ist das Passwort für root
gesetzt und man kann die
MythTV-Datenbank einpflegen. Hierbei ist darauf aufzupassen, dass der
benutzte Pfad auch dem Pfad zur Datei mc.sql
entspricht. Auf meinem
System hab ich die Datei nur ein einziges Mal gefunden:
# mysql -uroot -p < /root/mythtv-0.20.2/database/mc.sql
1.111.7. Sound
Wer Interesse hat, kann zunächst mal testen, welche Karte überhaupt in
der Box steckt, das geht am einfachsten mit dem bei FreeBSD
mitgelieferten Meta-Treiber snd_driver
. Danach guckt man sich den
Inhalt von /dev/sndstat
an und weiß, welche Karte eingebaut ist:
videoonkel# kldload snd_driver
videoonkel# cat /dev/sndstat
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <Intel ICH2 (82801BA)> at io 0x1c00, 0x1880 irq 5 bufsz 16384 kld snd_ich (1p/1r/0v channels duplex default)
Wir haben also eine Intel ICH2 an Board. Damit die immer beim Booten verfügbar ist, fügen wir den Aufruf des Treibers in das System ein:
# echo snd_ich_load="NO" # Intel ICH >> /boot/loader.conf
Um sofort die Soundkarte zu testen, machen wir einfach das hier:
# kldload snd_ich
# cd
# cat mythtv-0.20.2.tar.bz2 > /dev/dsp
Jetzt sollte ein eifriges Rauschen aus dem Fernseher zu hören sein. Die Soundkarte funktioniert.
1.111.8. Windowmanager
Da stolper ich doch gerade noch darüber, dass man einen Windowmanager braucht. Es wird wohl ein „Leichtgewicht“ genügen, also machen wir mal schnell das hier:
# pkg_add -r ratpoison
Jetzt kommt also MythTV an die Reihe:
Um also nun MythTV SELBST ZU KOMPILIEREN (ARGH!, es ist ne 700MHz CPU, dankeschön, FreeBSD!), benötigen wir erstmal das Quellpaket von MythTV. Dasfür benötigen wir wget.
Das wird sich fein von der MythTV-Seite runtergeladen und dann per scp auf die Box kopiert.
Ich muss es selbst bauen, aber es fehlen ja noch Dependencies fürs Bauen:
# pkg_add -r qmake
# pkg_add -r p5-XML-SAX-Expat
Entpacken des Pakets:
# tar -xvjf mythtv-0.20.tar.bz2
So, jetzt kann also endlich das Kompilieren von MythTV beginnen. Also hinein in das Verzeichnis, in das das mythtv-Paket entpackt wurde und ab geht die Luzie, allerdings ist zuvor noch eine kleine Variable zu setzen, und zwar die, in der die spezifikationen für qmake drin stehen. Soweit ich das mit meinem kleinen Hirn nachvollziehen kann, stehen in dieser Datei viele Informationen drin, wo qmake plattformabhängig verschiedene Dine findet, Da wir hier ein FreeBSD vor der Nase haben, müssen wir in dem „mkspecs“-Verzeichnis ein FreeBSD-Unterverzeichnis auswählen. Es gibt derer drei, eines ist freebsd-g++, welchen ein kompilieren mit dem GNU-C Compiler durchführt, dann gibt es noch freebsd-g++34 für version 3.4 selbigen Compilers und es gibt noch freebsd-icc für den Intel Compiler. Wir wollen ersteren. Also los:
# setenv QMAKESPEC /usr/local/share/qt/mkspecs/freebsd-g++
# setenv QTDIR /usr/X11R6/
Komischerweise wird trotz der abgeschlossenen qt-Installation die entsprechende Bibliothek nicht verlinkt. Wieso das so ist, kann ich nicht sagen. Es kotzt mich mal wieder nur an. Eine Stunde mit Suchen verbracht. Naja, dafür ist die Musik aus den Boxen gut. Also weiter, legen wir den link von Hand an (und neben diesem noch eine Reihe andere…):
# /sbin/ldconfig
# ln -s /usr/X11R6/lib/libqt-mt.so /usr/lib/libqt-mt.so
# ln -s /usr/X11R6/lib/libXext.so /usr/lib/libXext.so
# ln -s /usr/X11R6/lib/libX11.so /usr/lib/libX11.so
Dann muss malloc.c in der Datei /root/mythtv-0.20.2/libs/libmythtv/videoout_xv.cpp geändert werden in <stdlib.h>
Beim Kompilieren will Onkel Dittmeier dann auch noch nach /src/moc
suchen, dabei ist moc
lange kompilierterweise installiert
(pkg_add -r qt
hatten wir ja durchgeführt). Also auskommentiert den
Dreck:
# vi $mythtv-Entpackverzeichnis/libs/libmyth/Makefile
Die Zeile mit /src/moc
und dem anschließenden make
gehört
auskommentiert (mit einer # am Zeilenanfang!). Möglicherweise muss auch
noch ein symbolischer Link namens /bin/moc auf /usr/X11R6/bin/moc
erstellt werden.
Dann gibt es bestimmt noch Meckereien wegen LONG_LONG_MAX. In der entsprechenden Datei umändern in LLONG_MAX. Puh!
Jetzt endlich können wir ein make im Entpackverzeichnis von mythtv anschieben. Meine Fräse, ey!
# make
# make install
# make clean
1.111.9. Xorg
Zunächst mal war man sicher clever genug, in der Startinstallation des Betreibssystems, Xorg in die Installation einzuschließen. Nun wollen wir diesen X-Server aber endlich auch mal starten, dafür brauchen wir aber eine default-Konfiguration, mit der wir dann mal starten können.
# Xorg -configure
Das erstellt uns eine xorg.conf.new in /root, die flugs ausprobiert wird mit
# Xorg -config /root/xorg.conf.new
Weil das so gut funktioniert, nehmen wir die Datei gleich als default:
# mv /root/xorg.conf.new /etc/X11/xorg.conf
Naja, jetzt wollen wir auch noch den Mode des X-Servers auf den Fernseher einstellen. Dafür muss die Sektion Monitor in der xorg.conf durch diese hier ersetzt werden:
Section "Monitor"
Identifier "Glotze"
ModeLine "768x576" 50.00 768 832 846 1000 576 590 595 630
EndSection
Die gesamte Datei sieht bei mir so aus:
Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
ModulePath "/usr/X11R6/lib/modules"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/TTF/"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/CID/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
EndSection
Section "Module"
Load "dbe"
Load "dri"
Load "extmod"
Load "glx"
Load "record"
Load "xtrap"
# Load "freetype"
Load "type1"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/sysmouse"
Option "ZAxisMapping" "4 5 6 7"
EndSection
Section "Monitor"
Identifier "Glotze"
VertRefresh 48-61
HorizSync 27-96
# ModeLine "768x576" 50.00 768 832 846 1000 576 590 595 630
ModeLine "720x576" 27.5 720 744 800 880 576 581 583 625
DisplaySize 300 225
EndSection
Section "Device"
### Available Driver options are:-
### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
### [arg]: arg optional
#Option "NoAccel" # [<bool>]
#Option "SWcursor" # [<bool>]
#Option "ColorKey" # <i>
#Option "CacheLines" # <i>
#Option "Dac6Bit" # [<bool>]
#Option "DRI" # [<bool>]
#Option "NoDDC" # [<bool>]
#Option "ShowCache" # [<bool>]
#Option "XvMCSurfaces" # <i>
#Option "PageFlip" # [<bool>]
Identifier "Card0"
Driver "i810"
VendorName "Intel Corporation"
BoardName "82815 CGC [Chipset Graphics Controller]"
# BusID "PCI:0:2:0"
BusID "0000:02:00"
Screen 0
VideoRam 4096
Option "DCC" "off"
Option "ColorKey" "0"
Option "BlankTime" "0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Glotze"
DefaultDepth 24
SubSection "Display"
Modes "640x480"
Viewport 0 0
Depth 24
EndSubSection
# SubSection "Display"
# Depth 24
# Modes "768x576"
# EndSubSection
EndSection
Section "DRI"
Mode 0666
EndSection
Schwups - schon läuft der Onkel. Jetzt fehlt ja noch die Einbindung von unserem „ratpoison“:
# echo /usr/X11R6/bin/ratpoison > ~/.xinitrc
1.111.10. Weblinks
Zuletzt geändert: 2023-07-22