OpenSuse 11.3 auf Gigabyte GA-G33-DS3R mit Core 2 Quad Core CPU Q6600

Im folgenden ist die Installation von OpenSuse 11.3 auf der hier genauer beschriebenen Hardware beschrieben. Da ich die Installation für 11.2 und 10.2 ausführlich beschrieben habe, hier nur kurze Ergänzungen.W

Installation

Die Installation erfolgte auf der hier erwähnten Hardware. Die HW-Konstellation des Rechners sieht wie folgt aus:

  • Onboard Audio (Intel HDA). Audiochip ist ein Realtek ALC889A.
  • Onboard LAN nutzt den Realtek RTL 8111B (Gigabit-fähig)
  • Dazu:
    • PCIExpess Grafikkarte MSI N520GT nVidia (GeForce GT520 GPU) an 2 x 1600×1200 TFT Monitoren.
    • älterer SCSI-Controller (PCI)
    • eine interne IDE-pLatte (300GB) fürs System, zwei interne eSATA-Platten (500GB /home und 1TB für Daten). Eine 1TB-Platte externe eSATA für Backups

Die Installation der Pakete erfolgte in ca. 30 Minuten. Eine Standard-Installation läuft sauber und ohne Ereignisse durch; Danach erfolgt ein Reboot. Als nächstes erfolgte die Hinzunahme der Community-Repositories (Packman und NVidia). Danach Installation vieler zusätzlichen Pakete:

  • evince und xpdf
  • thunderbird
  • mplayer
  • ffmpeg
  • avidemux2_gtk
  • grip
  • cdparanoia
  • lame
  • inkscape
  • mirror
  • audacity
  • timidity
  • xmms2 mit normalize-Plugin
  • audacious
  • mpg123
  • hugin
  • kompozer
  • zip
  • p7zip
  • subversion
  • ksdesvn
  • gcc und g++
  • make
  • avrdude
  • avrlibc (muß per Hand nachinstalliert werden, z.B. Version 1.6.7)
  • gcc-avr
  • termcap(für Nutzung der RS232 Schnittstellen durch kermit)
  • minicom (Alternative zu kermit ohne das /var/lock-Problem)
  • kermit (leider nicht mehr via YaST möglich, RPM von hier: http://fr2.rpmfind.net//linux/RPM/opensuse/11.1/x86_64/ckermit-8.0.211-95.58.x86_64.html)
  • libopenssl0_9_8: wird in 11.3 von kermit gebraucht
  • libvdpau (HD Video Ausgabe für NVidia)
  • libdvdcss
  • update-alternatives (für Java Wechsel zwischen OpenJDK und Sun Version)
  • Sun Java JRE und JDK
  • Microsoft Font RPM
  • Virtualbox
  • Maven
  • libpng12, pangomm
  • subversion-server
  • x11-video-nvidiaG02 für die Grafik-Karte

Zusammenfassung: Erfahrungen mit OpenSuse 11.3

Die Installation ist genauso simpel wie die von 11.2. Als Power User brauche ich halt einige zusätzliche Dinge, das ist OpenSuse nicht anzukreiden.

Schade ist, dass einige Dinge (xmms, kermit, avrlibc) nicht mehr einfach als RPM bei OpenSuse vorliegen sondern woanders beschafft oder gar kompiliert werden müssen.

OpenSuse 11.2 auf Gigabyte GA-G33-DS3R mit Core 2 Quad CoreCPU Q6600

Im folgenden ist die Installation von OpenSuse 11.2 auf der hier genauer beschriebenen Hardware beschrieben.

Beschaffung der Software

Die Installation kann als DVD vom OpenSuse Server heruntergeladen werden. Neben der Live-Variante ist meiner Meinung nach die DVD das interessanteste Medium, da praktisch alles relevante da schon drauf ist. Mittels Vuze/Azureus und einer 6MBit-Verbindung ist die DVD in ein paar Stunden da.

Installation

Die Installation erfolgte auf der erwähnten Hardware. Die HW-Konstellation des Rechners sieht wie folgt aus:

  • Onboard Audio (Intel HDA). Audiochip ist ein Realtek ALC889A.
  • Onboard LAN nutzt den Realtek RTL 8111B (Gigabit-fähig)
  • Dazu:
    • PCIExpess Grafikkarte nVidia FX7300GT von MSI mit 2 x 1600×1200 TFT Monitoren.
    • Eine zweite 1GBit-LAN-Karte (PCI)
    • SCSI-Controller (PCI)
    • Drei interne eSATA-Platten (1x75GB für System, 500GB /home und 1TB für Daten)

Die Installation der Pakete erfolgte in ca. 30 Minuten. Eine Standard-Installation läuft sauber und ohne Ereignisse durch; Danach erfolgt ein Reboot. Als nächstes erfolgte die Hinzunahme der Community-Repositories (Packman und NVidia). Danach Installation vieler zusätzlichen Pakete:

Bis hier wird das Bild nur auf einem Monitor vernünftig ausgegeben, auf dem anderen (analoger Ausgang) erscheinen nur seltsame Sachen. Für Multimonitorbetrieb braucht man noch den passenden Treiber, den gibts im NVidia-Repositiory. Diesen passend zum installierten Kernel auswählen und auch das Tool „nvdock“ installieren. Nach der Installation des Treibers neu booten, so daß der Treiber vom Kernel geladen werden kann. Mittels „nvdock“ (das als root gestartet werde muß, da es /etc/X11/xorg.conf neu schreibt) die beiden Monitore aktivieren und die Änderungen speichern. Danach nvdock nicht mehr als root laufen lassen, sondern mit normalen Nutzerrechten (man brauchts aber nur für Konfigurationsänderungen an den X Displays). Danach Reboot (oder X neu starten). Nachdem der Rechner nun am Netz hing, habe ich zunächst eine komplette Online-Aktualisierung gemacht, die völlig unproblematisch verlaufen ist.

Die Druckereinrichtung (für den Netzwerkdrucker HP LaserJet 2200) geht via Verbindungsassistent-Dialog. Der Drucker hat eine Duplexeinheit und >20 MByte Speicher, was man im Einrichtungsdialog vermerken kann.

Ich habe erstmalig die Default-Netzwerkeinstellungen von OpenSuse so gelassen (also auf DHCP). Mein Router vergibt für eine MAC die er kennt ohnehin immer dieselbe IP-Adresse, eine Fixierung im Rechner brauchts da nicht.

Als Fensteroberfläche wird KDE 4.3.1 installiert. Der Kernel ist ein 2.6.31.

OpenSuse 11.2 auf Gigabyte GA-G33-DS3RScreenshot meines 3200×1200 großen Desktops während der Installation

Diverse Kleinigkeiten in Ordnung bringen

amarok rennt durch die Playlisten und gibt keinen Ton von sich: Hier schlägt das Problem der reinen OSS-Version von OpenSuse durch. Man braucht einen nicht kastrierten amarok und alle erforderlichen Codecs. Wie man ganz einfach daran kommt, so dass die ganzen seltsamen Probleme gar nicht erst auftreten, ist hier beschrieben: http://opensuse-community.org/Restricted_Formats Direkt nach der Re-Installation von amarok und diverser Codecs funktioniert amarok so wie er soll. Und endlich geht auch die Verbindung zu lastfm wieder, die ja in der 2.0.* Version von amarok leider nicht ging…

k3b findet CSD / DVD Brenner nicht: Dies ist ein Rechteproblem. Checke wie das CD/DVD-Laufwerk heisst:

dennis@socraggio:~> dmesg|grep -i sr0
[25.443921] sr0: scsi3-mmc drive: 48x/48x writer cd/rw xa/form2 cdda tray[   25.444040] sr 8:0:0:0: Attached scsi CD-ROM sr0

Aha, es ist /dev/sr0. Wie stehts da mit den Rechten?

dennis@socraggio:~> ll /dev/sr0
brw-rw----+ 1 root cdrom 11, 0 28. Jan 16:14 /dev/sr0

Der k3b-Nutzer muß also in der Gruppe „cdrom“ sein. Dies erledigen mittels YaST > Sicherheit und Benutzer und dort für den Nutzer die Gruppe mit anhaken. Dann entweder aus- und einloggen oder in der shell mittels „newgrp“ explizit die neue Gruppe setzen. Von der Shell aus kann dann k3b erfolgreich gestartet werden.

dennis@socraggio:~> newgrp cdrom
dennis@socraggio:~> k3b

Einige Dienste möchte ich beim Booten mitgestartet haben, dies kann man mit Yast -> Runlevel Editor einstellen:

  • nfs server und client
  • apache2
  • svnserve
  • smb

Aus Faulheit kopiere ich mir auch den individuellen Teil meiner alten /etc/hosts wegen Host-Namen etc. in die neue Installation.

Apache2 „wie vorher“ in Betrieb nehmen: Zunächst das httpd-Modul in Yast installieren (system-config-httpd) und das Apache Subversion-Modul (subversion-server), mittels Yast. Ich kopiere dann die vorhandenen Apache2-Konfigdateien, vor allem die ganzen vhosts-Definitionen, an dieselbe Stelle im neuen Dateibaum (/etc/apache2).

Außerdem /etc/sysconfig/apache2 erweitern: In Textzeile mit APACHE_MODULES noch DAV und Subversion Module mit aufnehmen:

APACHE_MODULES="actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user autoindex cgi dir env expires include log_config mime negotiation setenvif ssl userdir php5 mod_dav mod_dav_svn"

Nach einem Apache-Restart sind die virtuellen Webserver alle wieder vorhanden.

Für meine Backups, die ich per rsync auf eine externe eSATA-Platte mache, muß noch der Mount-Point /backup1 eingerichtet werden. Ein Test des Backups ist danach erfolgreich.

Anzeige von Nutzer-Icons beim KDE Login-Screen: Hier muss die Konfiguration des KDMs verändert werden,

Die Benutzer-Icons des KDM Logins sind weg und werden wie folgt wiederhergestellt:
Alle Nutzericons liegen im Nutzerverzeichnis unter dem Namen $HOME/.face.icon im PNG-Format mit den Abmessungen von ca. 62×62 Pixeln. In /opt/kde3/share/config/kdm/kdmrc (KDE3) bzw. /usr/share/kde4/config/kdm/kdmrc (KDE4) muss die Zeile „FaceSource=“ angepasst werden wie folgt:

# „PreferUser“ – … and the other way round
# „UserOnly“ – from the user’s $HOME/.face[.icon]
# Default is AdminOnly
FaceSource=PreferUser

Danach tuts.

Für Scanner-Konfiguration komplettes altes sane.d Verzeichnis nach /etc kopieren.

NTP Client konfigurieren: Dieses Thema verwirrt mich bei Installationen von OpenSuse immer wieder aufs neue. Die Yast-Dialoge reden dauernd von „Server einrichten“ wenn es darum geht, den Client zu konfigurieren. YaST > NTP-Einrichtung > Hinzufügen > Server , im folgenden Dialog „Auswählen“ wählen und einen öffentlichen Server (den Default) auswählen. Danach ist der NTP-Client konfiguriert, ein Neustart des NTP-Services setzt dann die korrekte Zeit.

NFS Server inklusive YaST Modul muß nachinstalliert werden. Alte /etc/exports wiederverwenden.

avrdude darf nicht auf die serielle Schnittstelle schreiben: Ein Rechteproblem, ich bin nicht in der richtigen Gruppe. Welche Gruppe gehört die serielle Schnittstelle?

 socraggio:/home/gast # ll /dev/ttyS1
 crw-rw---- 1 root dialout 4, 65 28. Jan 16:14 /dev/ttyS1

Der Nutzer muss also in der Gruppe „dialout“ sein. Dies erledigen mittels YaST > Sicherheit und Benutzer und dort für den Nutzer die Gruppe mit anhaken. Dann entweder aus- und einloggen oder in der shell mittels „newgrp“ explizit die neue Gruppe setzen.

Zusammenfassung: Erfahrungen mit OpenSuse 11.2

Die Installation ist bisher die einfachste aller OpenSuse Installationen gewesen. Meinen Desktop-Rechner nutze ich schon als Power-User mit vielen Anforderungen, daher sind diverse Nacharbeiten notwendig. Ich habe OpenSuse 11.2 auch auf einem Acer-Notebook installiert, da war fast nichts nachzuarbeiten.

OpenSuse 10.2 auf  Gigabyte GA-G33-DS3R mit Core 2 Quad Core CPU Q6600

Hardware

Nach drei Jahren Leben mit einem laut rauschenden Prescott mit 3Ghz, der unter Last (als Komplett-PC) 220 Watt verbraucht hat, beschloss ich, im August 2007 die Hardware zu erneuern. Als CPU wählte ich den Einstiegs-Quad Core Q6600 mit 4×2,4 Ghz.

Core 2 Quad Q6600
Quad Core CPU von oben und von unten gesehen

 

Das Motherboard ist ein ziemlich neues Gigabyte GA-G33-DS3R, welches einen FSB von bis zu 1333Mhz unterstützt. Der G33 Express Chipset (Northbridge) ist in etwa ein P35 Chipset mit integrierter Graphik-Funktionalität die Intel GMA 3100 nennt. Der Chip ist Aero-fähig, für tolle 3D-Spiele aber nicht zu gebrauchen und soll 14 Watt verbrauchen. Da ich nicht spiele, für mich kein Problem. Ins Board passen bis zu 8GB, ich baue 2GB ein. Das Board besitzt eine ICH9R Southbridge, 8 RAID-fähige SATA2-Anschlüsse, 4 PCIe-Ports (davon einer 16x), 3 PCI-Ports. Audiochip ist ein Realtek ALC889A. LAN nutzt den Realtek RTL 8111B (Gigabit-fähig).

Dem Board fehlt ein serieller Anschluss (ein serieller Header ist vorhanden).

Das Gigabyte Motherboard. Links unten die Sata-Anschlüsse und der IDE-Anschluss.

Ich installiere zunächst RAM und CPU. Nach Installation des Motherboards im Gehäuse setze ich den Kühler auf die CPU. Wegen des hohen Einpressdrucks biegt sich das Board dabei ziemlich, ich hätte den Kühler entgegen der Anweisung des Handbuchs besser vor Einbau des Boards im Gehäuse aufgesetzt. Das Motherboard macht ansonsten einen guten und stabilen Eindruck. Ich installiere noch ein zugekauftes Slotblech für den seriellen Anschluss. Das mitgelieferte Slotblech zum Anschluss zweier externer SATA-Platten lasse ich erstmal weg.

Quad Core KühlerQ6600 in Fassung
Der CPU-Kühler und die im Board eingesetzte CPU

Als Platten kommen zwei SATA-Platten (80 und 500GB) ins Gehäuse. Ein NEC DVD-Brenner kommt hinzu. Floppy-Laufwerk lasse ich erstmals ganz weg.

Installation

Ich entscheide mich aus einem Bauchgefühl heraus dazu, die 32Bit-Version von Linux zu installieren. Auf der Website wird allerdings die 64Bit-Version empfohlen. Schon am Anfang der Installation wird nach Laden des Kernels das DVD-Laufwerk nicht mehr gefunden. Der Rechner wechselt in den Textmodus, man befindet sich im Programm linuxrc. Suche im Internet zeigt, dass das Problem bei neueren Motherboards auftritt. Das DVD-Laufwerk ist via IDE angeschlossen. Die Southbridge ICH9R besitzt keinen eigenen IDE-Support mehr. Diese Funktion wird dann von einem weiteren Chip, bei mir der Jmicron 368(xxx), erledigt. Davon weiß der IDE-Treiber jedoch nichts, daher ist plötzlich das DVD-Laufwerk weg. Ich habe das Problem lösen können, indem ich in linuxrc den Bereich Module laden -> IDE selektiert habe. Dort habe ich das Modul pata_jmicron geladen, als extra Kernel-Parameter module=ide-generic angegeben und die Installation fortgesetzt. Die DVD wurde nun erkannt. Die im Gerät eingebaute Graphikkarte wird leider nicht in voller Schönheit erkannt. Linux wählt einen VESA-konformen Framebuffer für den X Server in der Auflösung von 1280×1024. VESA ist sehr langsam und bei meiner TFT-Auflösung von 1600×1200 auch hässlich. Suche im Internet zeigt, dass der neue G33-Chip erst nach Kernel 2.6.20 ordentlich oder überhaupt erkannt wird, OpenSuse 10.2 hat aber nur 2.6.18. Ich laufe nochmal zum Computerhändler und kaufe eine Nvidia 7300GT von MSI. Mit dieser Karte gibt es erwartungsgemäß keine Probleme, sie wird sauber erkannt und eingebunden.

 

NVidia FX7300GT von MSI
Die Grafikkarte nVidia FX7300GT von MSI, passiv gekühlt.

 

Leider wird auch der interne Soundchip nicht erkannt. Das Board ist vom Frühjahr 2007, also doch etwas zu neu für OpenSuse 10.2, das, wenn ich mich recht erinnere von Ende 2006 ist.

Auch ein vollständiger Online-Update bringt nichts. Ich habe von einem anderen Rechner noch meine Soundblaster Live! 24Bit übrig, die ich ins Gerät stecke, auch hier gibt es dann keine Probleme mehr. Allerdings müssen alle Nutzer in die Gruppe audio aufgenommen werden, sonst können sie auf die Geräte in /dev nicht zugreifen (sie gehören User root, Gruppe audio und Lese/Schreibrechte sind nur für die Gruppe, nicht für die Welt definiert). Bei xmms funktioniert der Lautstärkeregler nicht.

Soundblaster Live 24 Bit
Die Soundkarte Soundbaster Live! 24Bit

Nach der Installation fehlen die üblichen Programme, die ich nachinstalliere.
Dies sind:

  • xmms mit mpg123 und mpg321 Codecs
  • mplayer – Videoplayer und Encoder
  • avidemux2 – Videoschnittprogramm
  • inkscape – Vektorbasiertes Zeichenprogramm
  • mirror – Skripte fürs mirroring von Dateien
  • lame – mp3 Encoder
  • kompozer – Web Editor
  • timidity – Midi Sequenzer
  • audacity – Audioeditor
  • vmware Server – Virtualisierungslösung
  • googleearth
  • gtk-gnutella – Download Programm
  • Azureus
  • ffmpeg

Open Office und Gimp sind defaultmäßig schon installiert. Desweiteren entferne ich die üblichen Pakete, die ich nicht haben will, von der Maschine:

  • Mono und alles was davon anhängt
  • beagle und Konsorten
  • Zenworks

Bis auf gtk-gnutella, vmware und googleearth kann alles per Yast bequem installiert werden. gtk-gnutella muss von den Sourcen compiliert werden, hier kann man mittels make -j 4 schon mal sehen, wie die 4 Kerne in der CPU rennen. Meine vorhandene Version des VMWare Servers lief nicht mehr, ein Update auf die neueste Version brachte dann aber den Erfolg.

Kpowersave zeigt den momentanen Zustand der CPU (Frequenzen) an.


4 CPUs bei stromsparenden 1,6Ghz

Ein Performancetest mit Videoencoding zeigt, dass der Rechner locker 2,5mal schneller ist als mein alter Prescott. Mir fällt dabei aber trotzdem unangenehm auf,  dass das Encoding alle 5-8 Sekunden kurz stehen bleibt für 1-2 Sekunden. Ein Test mit hdparm /dev/hda und /dev/hdc bringt es an den Tag: Der DMA-Modus ist bei den Platten nicht eingeschaltet, es könnte also noch deutlich schneller gehen! Und der DMA-Modus lässt sich auch nicht einschalten, beim Versuch gibt es Fehlermeldungen:

socraggio:/home/dennis # hdparm -c1d1 /dev/hda /dev/hda: setting 32-bit IO_support flag to 1 setting using_dma to 1 (on) HDIO_SET_DMA failed: Operation not permitted IO_support   =  1 (32-bit) using_dma    =  0 (off)

Effekt ist, dass die Platten, die sonst über 50 MB/s bzw. über 80MB/s bringen, jetzt bei 0,5-8 MB/s herumdümpeln.

socraggio:/home/dennis # hdparm -tT /dev/hda
/dev/hda: 
Timing cached reads:   8234 MB in  2.00 seconds = 4121.45 MB/sec 
Timing buffered disk reads:    2 MB in  3.83 seconds = 535.35 kB/sec 

socraggio:/home/dennis # hdparm -tT /dev/hdc 
/dev/hdc:  
Timing cached reads:   7614 MB in  2.00 seconds = 3810.42 MB/sec  
Timing buffered disk reads:   24 MB in  3.20 seconds =   7.50 MB/sec

Da ist die CPU flotter mit dem Komprimieren als die Platten mit dem Wegschreiben, daher die Pausen während der Kompression. Herumgooglen bringt einiges zu Tage, aber nichts brauchbares. Tiefgehende Experimente mit IDE-Treibern etc. kann ich mir zeitmässig dann doch nicht leisten.
Da der Kernel ab 2.6.20 aber angeblich mit den neuen Chipsätzen von Intel umgehen kann und OpenSuse 10.3 mindestens einen 2.6.22-Kernel haben wird, werde ich mit den lahmen Platten bis zum Oktober leben, dann kommt OpenSuse 10.3 heraus.

Die Benutzer-Icons des KDM Logins sind weg und werden wie folgt wiederhergestellt:
Alle Nutzericons liegen im Nutzerverzeichnis unter dem Namen $HOME/.face.icon im PNG-Format mit den Abmessungen von ca. 62×62 Pixeln. In /opt/kde3/share/config/kdm/kdmrc muss die Zeile „FaceSource=“ angepasst werden wie folgt:
# „PreferUser“ – … and the other way round
# „UserOnly“ – from the user’s $HOME/.face[.icon]
# Default is AdminOnly
FaceSource=PreferUser

Danach kommen die Icons wieder. Siehe auch hier.

Ich habe auf derselben Hardware auf einer freien Partition auch OpenSuse 10.3 Beta und RC installiert. Dort trat dann das DMA-Problem nicht mehr auf, auch das Problem mit der DVD-Erkennung während der Installation ist in 10.3 gelöst.

Stromverbrauch

Beim Stromverbrauch hält sich der Quad Core angenehm zurück. Ich messe mit einem ganz einfachen Strommesser den Gesamtverbrauch des Rechners ohne Monitor. Im Leerlauf werden 83 Watt verbraucht, bei normalen Arbeiten 90..105 Watt und unter Volllast (Videokompression mit 4 Threads, bei dem alle vier Cores am Arbeiten sind 123 Watt.
Im Vergleich dazu: mein alter Prescott Pentium 4 3Ghz hat mit demselben Netzteil (welches einen hohen Wirkungsgrad besitzt) im Leerlauf 117 Watt und unter Volllast 180 Watt verbraucht. Mit einem billigen Standardnetzteil hatte der Prescott sogar 134 Watt im Leerlauf und 224 Watt unter Volllast gebraucht.

Wacom Tablet UD-1212-R mit Linux (OpenSuse 13.1)

Durch einen Zufall kam ich an ein altes Wacom Tablet, Typenbezeichnung UD-1212-R. Dieses Tablet hat eine Zeichenfläche von 12×12 Zoll.  Es ist auch als „Digitizer II“ bekannt.

Das Funktionsprinzip beruht auf der Analyse elektrischer Felder. Ein solches Feld wird an der Tabletoberfläche erzeugt. Ein spezieller Stift, in dem ein Schaltkreis eingebaut ist, „stört“  das erzeugte Feld. Die Lokation der Störung wird vom Tablet sehr genau festgestellt. Der Schaltkreis im Stift kommt ohne Batterien aus, er bezieht seine Energie aus dem elektrischen Feld über dem Tablet.

Das UD-1212-R ist uralte Hardware, die Datecodes auf der Controllerplatine weisen bei meinem Exemplar auf das Baujahr 1994 hin.

Das Tablet kam ohne Stift und Kabel zu mir.

Das Tablet sollte also 20 Jahre nach seiner Herstellung wieder angeschlossen werden…

Anschluss der Hardware

Stift: Den Stift (PL900 bzw. UD817e) kann man heute noch bei Wacom kaufen.

Kabel und elektrischer Anschluss: Das Tablet hat einen seriellen Anschluss. Entweder man schließt es an einen PC mit seriellen Anschluss an oder man nimmt ein Adapter-Kabel Seriell<->USB. Ich habe noch serielle Anschlüsse, daher habe ich das Tablet direkt via RS232 angeschlossen.

Das Kabel ist speziell. Es führt sowohl die RS232 Steuersignale als auch die Betriebsspannung (9-12V DC). Ich habe mir das Kabel wie folgt selbst gelötet, Informationen zum Kabel kann man sich aus diversen Foren im Internet zusammensuchen.

DB9 Konnektor (9 Pins). N.C. heißt „Not Connected“.

Pin Tablet
UD-1212-R
„Digitizer II“
Pin PC Kommentar
1 N.C. 1 N.C.
2 TxD 2 RxD
3 RxD 3 TxD
4 RTS 8 CTS
5 CTS 7 RTS
6 DSR 4 DTR
7 GND 5 GND
8 + VCC 9-12V 100mA
9 DTR 6 DSR

An Pin 7/8 ist also die Versorgungsspannung anzuschließen. Ab 6,5 V leuchtet bei mir die Betriebs-LED des Tablets.

Softwaremäßige Einbindung in Linux

Im Internet gibt es viel Information zu diesem Thema, allerdings wenig klärendes. Ich habe mir in zwei Tagen alle Informationen zusammengesucht.

Theorie of Operation
Das meiste hierzu war mir neu und stellt sicher nur einen winzigen Ausschnitt aller Möglichkeiten dar. Eventuell ist was ich schreibe auch nicht ganz richtig.

Ein heute nicht mehr (?) verfolgter Ansatz war es, Geräte innerhalb des X Servers anzubinden, indem der X Server eigene Treiber für diese Geräte enthielt.

Heute verwendet der X Server  Eingabegeräte, die im /dev/input/-Baum eingehängt sind. Vermutlich gibt es dort eine einheitliche Schnittstelle für alle Eingabegeräte, was den X Server von Besonderheiten deutlich entlasten würde.

Das Einhängen von Geräten in den /dev/input-Baum erfolgt entweder über udev, das zum Gerät passende Kernel-Module nachlädt oder „manuell“.

Man braucht also zum Anbinden eines Geräts zwei Dinge:

  • Ein Kernel-Modul, welches das Gerät unterstützt
  • Einen Mechanismus, der das Kernel-Modul bei Bedarf einbindet

Kernel-Modul: Von Wacom gab und gibt es zahlreiche Tablets, die neueren alle mit USB Anschluss. In meinem OpenSuse 13.1 ist standardmäßig schon ein Kernel Modul enthalten, allerdings unterstützt dieses nur neuere (USB-?)Geräte. Das vorhandene Modul wacom_w8001 nutzt also nichts.

Ein Kernel Modul für ältere, seriell angeschlossene Tablets gibt es hier: http://www.cipht.net/2011/07/02/wacom_serial-initial-release.html

Das dortige tar-File, welches die Sourcen des Treibers enthält, lässt sich ganz einfach mittels gcc übersetzen.

Einbindung des Kernel-Moduls mit inputattach: inputattach ist ein Programm, dass das passende Kernel-Modul an eine physikalische Schnittstelle anbindet und die Schnittstelle des Geräts in den /dev/input-Baum einbindet.

Mein Gerät hängt an /dev/ttyS0. Der Aufruf für inputattach it daher:

./inputattach –wacom_iv /dev/ttyS0 &

„wacom_iv“ ist hierbei der Gerätetyp. Diesen nimmt  inputattach her, um  eine  Informationsstruktur  für das angehängte Gerät  anzulegen, die  von udev (?) benutzt wird, um das passende Kernel-Modul zu laden.

inputattach ist Teil des „linuxconsole“ Projekts. Dieses muss heruntergeladen und von Source installiert werden. Dabei entsteht inputattach im Unterverzeichnis „utils“.
Allerdings muss hier vorher noch etwas getan werden. Der Support für die älteren Tablets (einige wenige Zeilen Code) fehlt in inputattach.c. Es gibt zwar zwei patch-Dateien (eine für inputattach.c und eine für serio-ids.h) die sind aber nicht ganz korrekt. Ich habe daher per Hand folgendes gemacht:

inputattach.c: In der Struktur input_types input_types folgende Zeilen eingefügt:
{ „–wacom_iv“,         „-wacom_iv“,    „Wacom protocol 4 tablet“,
B9600, CS8,
SERIO_WACOM_IV,         0x00,   0x00,   0,      NULL },

serio-ids.h: folgende Zeilen eingefügt:
#ifndef SERIO_WACOM_IV
# define SERIO_WACOM_IV         0x3f
#endif

Es muss darauf geachtet werden, dass der Wert für SERIO_WACOM_IV eindeutig ist.  Am besten den höchsten Wert+1 aus der serio-ids.h nehmen. Auch gegen /usr/include/linux/serio.h checken, auch dort darf keine Überdeckung vorliegen (Hinweis: der Original-Patch definiert für SERIO_WACOM_IV 0x3d. Dies kollidiert aber mit dem Define SERIO_TSC40 in /usr/include/linux/serio.h. Daher wird bei sturer Übernahm des Patchs der falsche Treiber (nämlich für TSC40 Tablets) geladen. In dmesg steht das falsche Tablet drin, und funktionieren tut gar nichts).

Wenn man nun ein passendes inputattach und ein Kernel-Modul hat, kann man sehen ob die Anbindung klappt:

% insmod ./wacom_serial.ko

% ./inputattach –wacom_iv /dev/ttyS0 &

Mit dmesg sieht man wenn alles gut geht in etwa so was:

[ 3161.508413] serio: Serial port ttyS0
[ 3161.540516] input (null): Wacom tablet: Digitizer II, version 1.2

[ 3161.540520] input (null): Max pressure: 127.
[ 3161.578164] input (null): Configuration string: ~RE203C800,000,00,1270,1270
[ 3161.600884] input: Wacom protocol 4 serial tablet as /devices/pnp0/00:0a/tty/ttyS0/serio8/input/input17

xsetwacom listet dann das Gerät auch aus:
% xsetwacom –list devices
Wacom protocol 4 serial tablet          id: 12  type: STYLUS

Die Einbindung in den /dev/input-Baum sieht man auch hier:
% cat /proc/bus/input/devices
….
I: Bus=0013 Vendor=003f Product=0000 Version=5544
N: Name=“Wacom protocol 4 serial tablet“
P: Phys=ttyS0/serio0/input0
S: Sysfs=/devices/pnp0/00:0a/tty/ttyS0/serio9/input/input17
U: Uniq=
H: Handlers=mouse1 event14
B: PROP=0
B: EV=b
B: KEY=c43 0 0 0 0 0
B: ABS=1000003

Schließlich kennt nun auch X sebst das Gerät:
% xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech USB-PS/2 Optical Mouse           id=10   [slave  pointer  (2)]
⎜   ↳ Wacom protocol 4 serial tablet            id=12   [slave  pointer  (2)]

⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
↳ Power Button                              id=6    [slave  keyboard (3)]
↳ Power Button                              id=7    [slave  keyboard (3)]
↳ Logitech USB Keyboard                     id=8    [slave  keyboard (3)]
↳ Logitech USB Keyboard                     id=9    [slave  keyboard (3)]
↳ Eee PC WMI hotkeys                        id=11   [slave  keyboard (3)]

Wenn man soweit ist, muss man nur noch dem X Server sagen, dass er das Gerät auch verwenden soll. In /etc/X11/xorg.conf.d/ muss eine passende Datei abgelegt werden. Bei OpenSuse ist eine solche Datei (50-wacom.conf) schon da und muss nur noch angepasst werden:
Section „InputClass“
Identifier „Wacom serial class“
MatchProduct „Wacom protocol 4 serial tablet“
MatchDevicePath „/dev/input/event*“
Driver „wacom“
Option „Type“ „stylus“
Option „DebugLevel“ „12“
EndSection

andere, nicht benötigte Klassen kann man löschen. Wichtig ist, dass der Wert des Attributs MatchProduct übereinstimmt mit dem, was xinput list als Namen ausgibt. Über diesen Text matcht X das Gerät zu dieser InputClass.
Nach einem Neustart des Servers kann man nun den Cursor mit der Maus (wie vorher) und zusätzlich mit dem Tabletstift bewegen.

Ich habe auch folgende Datei nach /etc/udev/rules.d gespielt, weiss nicht ich mn die braucht:
cat /etc/udev/rules.d/70-serial-wacom.rules
ACTION==“add|change“, SUBSYSTEM==“pnp“, ENV{PRODUCT}==’13/3f/*‘, ENV{NAME}==“Wacom protocol IV serial tablet“,SYMLINK+=“input/wacom“,ENV{ID_INPUT}=“1″,ENV{ID_INPUT_TABLET}=“1″

Aspect Ratio einstellen
Mein Tablet hat ein Aspect Ratio von 1:1 (15240 x 15240 Pixel).
Meine beiden Bildschirme sind unter X mit 3200×1200 Pixeln verfügbar.
Wenn man nun einen sauberen Kreis auf dem Tablet zeichnet, kommt eine platte Ellipse auf dem Bildschirm heraus. Man muss das Seitenverhältnis passend umrechnen. X erlaubt dies auf unterschiedliche Weise.

Erst Infos sammeln:

dennis@dennis-pc:~> xsetwacom get „Wacom protocol 4 serial tablet“ all
Option „Area“ „0 0 15240 15240“
‚Button‘ requires exactly 1 value(s).
Option „ToolDebugLevel“ „12“
Option „TabletDebugLevel“ „0“
Option „Suppress“ „2“
Option „RawSample“ „4“
Option „PressureCurve“ „0 0 100 100“
Option „Mode“ „Absolute“
Option „TabletPCButton“ „off“
Option „Touch“ „off“
Option „Gesture“ „off“
Option „ZoomDistance“ „0“
Option „ScrollDistance“ „0“
Option „TapTime“ „250“
Property ‚Wacom Proximity Threshold‘ does not exist on device.
Option „Rotate“ „none“
Property ‚Wacom Wheel Buttons‘ does not exist on device.
Property ‚Wacom Wheel Buttons‘ does not exist on device.
Property ‚Wacom Wheel Buttons‘ does not exist on device.
Property ‚Wacom Wheel Buttons‘ does not exist on device.
Property ‚Wacom Wheel Buttons‘ does not exist on device.
Property ‚Wacom Wheel Buttons‘ does not exist on device.
Property ‚Wacom Strip Buttons‘ does not exist on device.
Property ‚Wacom Strip Buttons‘ does not exist on device.
Property ‚Wacom Strip Buttons‘ does not exist on device.
Property ‚Wacom Strip Buttons‘ does not exist on device.
Option „Threshold“ „27“
Option „ToolType“ „426“
Option „ToolSerial“ „1“
Option „ToolID“ „0“
Option „ToolSerialPrevious“ „0“
Option „BindToSerial“ „0“
Option „TabletID“ „0“

xinput  listet eine „Coordinate Transformation Matrix“ aus.Genau daas was ich suche 🙂

dennis@dennis-pc:~> xinput list-props „Wacom protocol 4 serial tablet“
Device ‚Wacom protocol 4 serial tablet‘:
Device Enabled (141):   1
Coordinate Transformation Matrix (143): 0.400000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000

Device Accel Profile (266):     0
Device Accel Constant Deceleration (267):       1.000000
Device Accel Adaptive Deceleration (268):       1.000000
Device Accel Velocity Scaling (269):    10.000000
Device Node (262):      „/dev/input/event14“
Wacom Tablet Area (600):        0, 0, 15240, 15240
Wacom Rotation (601):   0
Wacom Pressurecurve (602):      0, 0, 100, 100
Wacom Serial IDs (603): 0, 0, 2, 1, 0
Wacom Serial ID binding (604):  0
Wacom Pressure Threshold (605): 27
Wacom Sample and Suppress (606):        2, 4
Wacom Enable Touch (607):       0
Wacom Hover Click (608):        1
Wacom Enable Touch Gesture (609):       0
Wacom Touch Gesture Parameters (610):   0, 0, 250
Wacom Tool Type (611):  „STYLUS“ (426)
Wacom Button Actions (612):     „Wacom button action 0“ (613), „Wacom button action 1“ (614), „Wacom button action 2“ (615), „None“ (0), „None“ (0), „None“ (0), „None“ (0), „Wacom button action 3“ (616), „Wacom button action 4“ (617)
Wacom button action 0 (613):    1572865
Wacom button action 1 (614):    1572866
Wacom button action 2 (615):    1572867
Wacom button action 3 (616):    1572872
Wacom button action 4 (617):    1572873
Device Product ID (261):        63, 0
Wacom Debug Levels (618):       12, 0

Infos zum Screen:

dennis@dennis-pc:~>  xrandr
Screen 0: minimum 8 x 8, current 3200 x 1200, maximum 16384 x 16384
DVI-I-0 disconnected (normal left inverted right x axis y axis)
VGA-0 connected 1600×1200+1600+0 (normal left inverted right x axis y axis) 408mm x 306mm
1600×1200      60.0*+
1280×1024      75.0     60.0
1280×960       60.0
1152×864       75.0
1024×768       75.0     70.1     60.0
800×600        75.0     72.2     60.3     56.2
640×480        75.0     72.8     59.9
DVI-I-1 connected primary 1600×1200+0+0 (normal left inverted right x axis y axis) 518mm x 324mm
1600×1200      60.0*+
1280×1024      70.0     60.0
1024×768       85.0     75.0     60.0
800×600        85.1     75.0     60.3
640×480        85.0     75.0     60.0     59.9

Setzen einer Matrix, die den Tabletbereich auf  den Monitor-bereich 1200×1200 am linken Bildschirm setzt:

xinput set-prop „Wacom protocol 4 serial tablet“ –type=float „Coordinate Transformation Matrix“ 0.375 0 0 0 1 0 0 0 1

Erklärung: 1 0 0 0 1 0 0 0 1 ist die Matrix
100
010
001 . Dies ist die Identitätsmatrix. Damit wird der Tablet-Bereich auf den Gesamtbildschirm umgerechnet. Dies bringt eine starke Zerrung in horizontaler Richtung mit sich.

Ich möchte keinerlei Verzerrung beim Zeichnen. Dann darf der Tablet-Bereich nur auf einen Bereich gemappt werden, dessen Aspect Ratio auch 1:1 ist. Die maximale Ausdehung in Y-Richtung ist bedingt durch die Monitore 1200. Ich kann also einen Bereich 1200×1200 innerhalb meiner 3200×1200 definieren, in den das Tablet verzerrungsfrei gemappt wird. Der Skalierfaktor in X-Richtung ist 1200/3200 = 0.375.
Somit ergibt sich „meine“ Matrix zu:
0.375 0 0
0        1 0
0        0 1 .

und xinput wird so aufgerufen:
xinput set-prop „Wacom protocol 4 serial tablet“ –type=float „Coordinate Transformation Matrix“ 0.375 0 0 0 1 0 0 0 1

Wenn man wieder das volle Mapping haben will (mit Verzerrung):
xinput set-prop „Wacom protocol 4 serial tablet“ –type=float „Coordinate Transformation Matrix“ 1 0 0 0 1 0 0 0 1

Details und Diskussion siehe hier: http://ubuntuforums.org/archive/index.php/t-1656089.html

Nutzung mit Gimp

In Gimp kann man via Einstellungen weitere Eingabegeräte aktivieren. Als ich das für mein Tablet gemacht habe, konnte ich sofort zeichnen, auch mit unterschiedlicher Aufdruckstärke. Die Bedienung ist aber erstmal gewöhnungsbedürftig und vermutlich müssen zusätzliche InputClass-Optionen eingestellt werden, ich habe z.B-. zwei Bildschirme mit zusammen 3200×1200 Pixeln und ich kam mit dem Tablet zwar auf beide Bildschirme, aber nicht ganz bis in die rechte Ecke. Außerdem behinderten sich beide vorhandenen Cursoren gegenseitig, z.B. bei angedockten Dialogen.

Hier mein allererstes Bild, ca, 5 Minuten nachdem das Tablet erstmal lief hingezaubert :-)))

(Etwas infantil, ich gebs zu. Dem gingen allerdings drei Stunden Kernel-Modul Basteleien voran…)

Das Innenleben des Tablets

Chips on Board: W3007F, W5000F, W6001F


Riesige Abschirmung

 


Der Controller

 


Chips on Board: W3007F, W5000F, W6001F. Oben das EPROM 27C512 mit der Firmware. Neuester Datecode 29. Woche 1994.

 

 

 

Linux auf dem Mainboard ASRock N68-VS3 UCC

Ich habe dieses Micro ATX Mainboard als günstiges Bundle mit 4GB RAM und einer AMD AMD Athlon X2 3,3GHz Dual Core CPU gekauft. Es dient als Mainboard für meinen Wohnzimmer-PC, der in einem (relativ) schicken Gehäuse leise seinen Dienst tut – Filme abspielen, Fernsehen.
Vorteile des Boards für mich:

  • Ein PCI Slot für vorhandene ältere Karten (non PCI-Express)
  • EIn PATA-Header vorhanden für ältere Festplatten (Non SATA)
  • NVidia Grafik-Chip on Board
  • Sehr günstig

Ich habe das Bundle in ein vorhandenes Gerät eingebaut, vorher war ein ATX Board installiert. Die Bohrungen des Mainboards sind so verteilt, dass die Gewinde des ATX-Mainboards verwendet werden können.

Das N68-VS3 besitzt eine 24-poligen Netzteilbuchse. Mein altes Netzteil aber nur einen 20 poligen Stecker. Wenn man den Stecker linksbündig einsteckt, funktioniert das aber trotzdem.
Allerdings habe ich in einem Anfall geistiger Umnachtung den Stecker zunächst falschherum eingesteckt. Nach Einschalten des Geräts nahm ich leichten Geruch zu heisser Elektronikteile wahr, außerdem konnte man im Netzteil ein seltsames Sirren hören. Der Computer konnte ich nicht mehr einschalten. Nach Prüfung der Anschlüsse stellte ich meinen schrecklichen Fehler fest. Ich war geschockt, hatte ich das neue Board sofort selbst zerstört? Mit einem schnell herbeigeschafften zweiten Netzteil konnte ich den Rechner dann einschalten. Fazit: freundlicherweise war nur das Netzteil kaputtgegangen, nicht das Mainboard.

Auf der Platte des Geräts befand sich noch ein installiertes OpenSuse für das alte Board (OpenSuse 32Bit, Pentium 4, Nouveau Treiber für NVidia Karten). Dieses Linux lies sich ohne jede Änderung booten, nur die Netzwerkkarte musste korrigiert werden (alte löschen, neue automatisch konfigurieren lassen), fertig. Alles funktionierte, selbst die kritischen Youtube-Videos im Vollbildmodus.

Im folgenden ein paar Bilder des Boards.

Bei MicroATX ist das dominierende Bauteil die CPU+Kühler.

 


Board-Rückseite. Rechts der PCI-Slot

 

 


Im Vordergrund 4xSATA, 1xPATA Anschlüsse

 


Die 2 Slots für RAM, einer mit 4GB belegt

 

 

 

 

 

Installation von OpenSuse 12.1, 64 Bit

Die Installation eines wirklich passenden Linuxes musste noch nachgeholt werden.
-to be done-

Autofs einrichten (OpenSuse Leap)

Autofs erlaubt es beliebige Netzwerk (NFS-) Ressourcen dynamisch bei Bedarf einzubinden. Wenn die Verbindung einige Zeit nicht benutzt wird, wird diese dynamisch auch wieder gelöst. Die Ressource muss auch erst dann zur Verfügung stehen, wenn sie eingebunden wird (und nicht z.B. beim Booten). Wenn man „viele“ Ressourcen im LAN hat, die nicht immer eingeschaltet sind ist autofs daher ideal.

autofs ist defaultmäßig in OpenSuse Leap schon installiert. Daher sind nur die Konfigurationsdateien anzupassen.

Ich habe beispielsweise eine Synology Diskstation DS216j in meinem LAN. Diese exportiert per NFS verschiedene Verzeichnisse aus zwei Volumes (sehen wie NFS Exports aus). Die Diskstation hat den DNS-Namen diskstation. Exportiert werden von ihr folgende Verzeichnisse:

/volume1    
    /music    
    /video
    /photo
    /misc 
/volume2
     /misc2

Die nutzende Client-Maschine wird dann beispielhaft wie folgt konfiguriert.

Die Datei /etc/auto.master verweist auf Dateien, welche die Informationen zu den beiden Volumens enthalten. In auto.master steht nur:

/net/volume1 /etc/auto.diskstation.volume1
/net/volume2 /etc/auto.diskstation.volume2

auto.diskstation.volume1 sieht so aus:

music      -rw          diskstation:/volume1/music
video      -rw          diskstation:/volume1/video
photo      -rw          diskstation:/volume1/photo
misc       -rw          diskstation:/volume1/misc

auto.diskstation.volume2 sieht so aus:

misc       -rw          diskstation:/volume2/misc2

Im lokalen Dateisystem habe ich manuell folgende Verzeichnisse angelegt:

/net
     /volume1
                 /music
                 /video
                 /photo
                 /misc
     /volume2
                 /misc

Restarten von autofs:    service autofs restart

Damit ist alles vorbereitet. Wenn die Synology Diskstation die Verzeichnisse ordentlich exportiert (kann man durch manuelles NFS-Mounten vorher probieren), dann kann man nun ohne jedes manuelle Mounten direkt in ein Verzeichnis der Diskstation wechseln, z.B. so:
cd /net/volume1/photo

Linux zum Fernsehen und als Videorecorder

Linux zum Fernsehen und als Videorecorder

Es gibt mehrere Ansätze, um unter Linux Fernzusehen oder um Sendungen aufzuzeichnen. Ich habe mich mit den folgenden Ansätzen beschäftigt:

  • Zuerst mit MythTV (in der knoppmyth Distribution), das ich von 2006 bis 2009 verwendet habe
  • Dann VDR (Version 1.6 mit den Gen2VDR Distribution), das ich seit 2009 nutze
  • Dann ab 2013 VDR (Version 1.7 mit der easyVDR Distribution)

Um eine Basissoftware (MythTV, VDR, kodi) ranken sich diverse Tools, Dokus etc. Die kann man selbst auf z.B. einem OpenSuse installieren und alles zum Laufen bringen, oder man nimmt eine fertige Distribution, die speziell für MythTV oder VDR erstellt wurde und den Rechner mit wenig(er) Aufwand in ein Mediacenter verwandelt.

2006 war die Installation von MythTV auf der knoppmyth Distribution mit einer Kabeltunerkarte sehr komplex und ganz schlecht dokumentiert. Die Installation und Konfiguration war daher zeitaufwendig, frustrierend und zum Teil weiß ich gar nicht mehr, was ich alles getrickst habe, bis Fernsehempfang, EPG, ACPI Wakeup und damit vollautomatische Aufnahmen endlich liefen. Der ganze Vorgang war unwiederholbar ;-( Ich habe das weiter unten ausführlich beschrieben.

Als ich 2009 umzog und dort kein Kabelempfang, sondern Satellitenempfang vorhanden war, konnte ich mein völlig unverändertes MythTV von 2006 nicht mehr nehmen. Optimistisch habe zuerst ich die aktuellste Version von knoppmyth heruntergeladen, eine Sat-Karte statt der Kabeltuner-Karte in den Rechner gesteckt und die Installation gestartet. Die erste Karte (Technisat Skystar II Revision 2.8) wurde vom knoppmyth Kernel nicht unterstützt, es mag da Patches etc. geben aber dann gerät man in eine üble Update-Orgie und eventuell in eine Sackgasse. Also habe ich die Karte ersetzt durch eine garantiert unterstützte (Hauppauge WinTV Nova-SE2). Die wird vom knoppmyth-Kernel sauber erkannt und eingebunden. Dann der Schock: Die Kanalerkennung bei knoppmyth ist noch genauso schrottig wir vor 3 Jahren ich müsste alles per Hand machen und das ohne vernünftige Doku.
Ich gebe daher dem Konkurrenzprogramm VDR eine Chance. Und siehe da, die Karte wird erkannt und alle Sat-Sender (über 3000 🙂 sind sofort auswählbar. Daher beschließe ich, mit VDR weiterzumachen. Dies habe ich im folgenden beschrieben.

2013 installiere ich die alte VDR 1.6er Gen2VDR Distribution auf einer neuen Hardware. Danach ist leider kein Satellitenempfang möglich. Auch nach Update der channels.conf tut sich nichts. Ich prüfe, welche Distributionen aktuell „in“ und gepflegt werden, und entscheide mich für „easyVDR“.

2015: VDR mit easyVDR 2.0 und DVB-T : Ein Wohnungswechsel steht an, und dort gibt es kein DVB-S (Satellit). Ein Kabelanschluss ist vorhanden, da ich aber ohnehin nur öffentliche Sender sehe, wechsle ich zu DVB-T. Ein Installationsversuch mit easyVDR 2.5 geht schief, die DVB-T Karte wird nicht richtig eingebunden. Die Installation mit dem etwas älteren easyVDR 2.0 klappt dann aber.
Als Tuner-Karte kommt die DVB-T Dual Tuner Karte Hauppauge WINTV Nova-T 500 zum Einsatz.

2017 VDR mit easyVDR 3.0 und DVB-C (incl. HD Programme): Anlässlich der hirnrissigen politischen Entscheidung, DVB-T abzuschalten und durch ein ganz anderes Verfahren DVB-T2 zu ersetzen, dass die alte Hardware in Deutschland kurzerhand zu Elektronik-Schrott werden lässt, wechsle ich nicht zu DVB-T2, sondern beschließe, auf das bei mir ebenfalls vorhandene, aber bisher ungenutzte Kabelfernsehen zu gehen.

Die bis hier kurz erwähnten Konstellationen sind weiter unten ausführlicher beschrieben. Die zeitliche Reihenfolge ist umgekehrt, also die neueste Konstellation zuerst.

VDR mit easyVDR 3.0 (2017)

Umstellung auf DVB-C (Kabelempfang). Da ich auch erstmals HD-Programme sehen und aufnehmen will, gibt es diverse Hardware Änderungen:
Ersatz der DVB-T Dual Tuner Karte durch eine DVB-C Dual Tuner Karte DVBSky T892. (Die Karte hat neben den beiden DVB-C Tunern auch 2 DVB-T2 Tuner, die aber für das in Deutschland kommende H.265 nicht  geeignet sind). Preis 95 Euro.

Grafikkarte Gigabyte GV-N730D5 mit NVidia GeForce GT 730 Chip. Dieser Chip besitzt Hardware, um MPEG dekodieren zu können, was die CPU entlastet. Preis 80 Euro.

Ersatz des Mainboards, das leider zu wenige PCIe Anschlüsse besitzt durch ein Asus P8H61-M LE. Das Board hat eine CPU Intel i3-2100 mit 3,1 Ghz und 4GB RAM. Gebraucht gekauft für 65 Euro. Die i3-2100 hat einen Average CPU Mark von 3647 im Vergleich zum Athlon X2 270 mit 1989.
Da dieses Board keinen IDE-Connector mehr hat, muss auch die Harddisk gegen ein eSATA-Modell getauscht werden.
Das neue Board wurde so ausgesucht, dass es an einen Beamer mittels HDMI angeschlossen werden kann.

Damit kann die Installation starten. Mit einigen glücklichen Entscheidungen während der Installation bekomme ich sofort ein laufendes System. Als Ausgabemedien habe ich einen kleinen Bildschirm 1024×768 für Timerprogrammierung etc. ohne den Beamer einschalten zu müssen und den Beamer selbst, der leider auch nur 1024×768 schafft. Die Anschaffung eines HD-Beamers mit 1920×1080 ist geplant.

Die neue Oberfläche von VDR ist deutlich schicker und bietet mehr Informationen auf dem OSD-Display.

Der genutzte Kabelanschluss ist von Unitymedia. Eine korrekte Senderliste kann man sich mittels des Tools w_scan selbst erstellen. Dieses Tool bietet schöne Optionen, um z.B. in der Ergebnisliste nur TV-Programme (also ohne Radioprogramme) und nur unverschlüsselte Sendungen (also die öffentlich-rechtlichen Programme und ein paar andere) aufzunehmen. Die Kommandozeile dazu lautete:

w_scan -f c -R 0 -E 0 >mychannels.conf

Ich finde es super, dass mit der -E Option des Tools der komplette Privatsendermüll, deren Inhalte ich ohnehin nicht ertragen könnte ganz simpel herausgefiltert werden kann 🙂

Ergebnis sind so rund 125 empfangbare Sender. Aus denen lösche ich noch per Hand Dauerwerbe- und weitere Hirntot-Sender heraus. Mit dem Ergebnis bin ich sehr zufrieden.

Ich lerne nun nebenbei dass die öffentlich-rechtlichen Programme nur in 720p (also 1280×720 Pixeln) gesendet werden (stichprobenhaft geprüft), dachte eigentlich dass 1080p oder 1080i (also 1920×1080 Pixel) kommen. Aber sei’s drum, dass Bild ist allemal ganz erheblich besser als das DVB-T Bild (mit 576 Y-Pixeln).

Nebenbei bemerkt: Ein ganz kurzer Test von OpenElec ist übrigens nicht erfolgreich, weil das System-Wakeup für Timer-Aufnahmen nicht funktioniert.

VDR mit easyVDR Distribution (2013)

Diese Distribution wird auf einer neuen Hardware installiert: Asrock N68-VS3 UCC, mit einer AMD Athlon X2 270 mit 3,4GHz Dual Core CPU und 4G RAM ausgerüstet. Onboard ist ein NVidia Grafik-Chip verbaut.

easyVDR 1.0 wird von DVD installiert, aber danach habe ich zunächst keinen Empfang. Nach einigen Basteln stelle ich fest, dass meine DVB-S-Karte sehr wohl Sender bekommt, und ich kann auch aufnehmen und das EPG hat sinnvolle Inhalte. Diese einfach Prüfung kann mit dem Tool „w_scan“ erfolgen.

Nur Anzeigen tut mein Gerät erstmal nichts. Aber auch das kann ich mit Änderungen von Einstellungen der easyVDR Oberfläche in Ordnung bringen. Das Wakeup mittels ACPI funktioniert erfreulicherweise auf Anhieb. Bei easyVDR lassen sich VDR-Plugins ganz simpel nachinstallieren und so kann ich auch ohne Aufwand XBMC nutzen, eine tolle grafische Oberfläche zur Darstellung von Medieninhalten.

VDR mit Gen2VDR Distribution (2009)

Nach der Probeinstallation bin ich platt von der Funktionalität von VDR, das aus dem Rechner tatsächlich einen Fernseher und einen VDR macht. Ich installiere daher nochmal, aber nicht auf dem alten, leistungsschwachen Pentium III-Rechner, auf dem bisher MythTV lief, sondern auf einem leistungsstärkeren Rechner (AMD Athlon64 3400+ mit 2,4Ghz und 3GB RAM auf Motherboard GA-K8VM800M). Ich werde den neuen Rechner nicht mehr nur als VCR, sondern eben auch zum Fernsehen nehmen, da wäre der Pentium III zu langsam. Das Motherboard ist in einem wohnzimmertauglichen Gehäuse eingebaut. Es lässt sich über ACPI aus dem Ruhezustand aufwecken, ein wichtiger Punkt für die VDR-Funktion.


PC-Gehäuse fürs Wohnzimmer



Hauppauge Karte WinTV Nova-SE2 mit Conexant CX23883. Die Karte kann über den Anschluss rechts um einen CI-Slot erweitert werden. Die Karten haben unterschiedliche Ausstattung, ich habe einen Composite-Video sowie einen S-Video-Eingang und eine Anschlussmöglichkeit für einen Hauppauge IR-Sensor für Fernbedienungen (Der Sensor liegt nicht bei, ich habe aber einen passenden von der alten Karte).

In den Rechner kommt die Sat-Karte, dann wird die Installation von DVD gestartet. Das DVD-ISO-Image erzeugt man sich bei der Gen2VDR-Distribution vorher selbst, vieles wird dabei von Grund auf neucompiliert. Man muss aber nichts tun, alles läuft automatisch ab. Die Installation selbst läuft ohne besondere Vorkommnisse ab, ohne das ich etwas dazu tue funktioniert nach der Installation das ACPI-Wakeup sofort und auch die Sat-Sender werden alle sauber gefunden. Das EPG versorgt sich vom Satelliten und nicht wie bei MythTV aus dem Internet, das oft Stunden dauerte. Auch eine Fernbedienung funktioniert sofort.

Alle folgenden  Bilder wurden mit einer Digitalkamera vom Bildschirm gemacht, da ich kein Screen-Capturing-Programm für Gen2VDR zur Verfügung hatte.


Bild: VDR Hauptmenü

 


Bild: EPG (Electronic Programm Guide) Ansicht. Das EPG wird via Satellit bezogen. Mittels „Suche“ kann im EPG u.a. nach Suchpattern gesucht werden.

 


Bild: Aufnahmetimer Ansicht. Hier ist einer für den Film „Das Auge“ gesetzt. Die Aufnahme kann u.a. VPS-gesteuert erfolgen.

 


Bild: Ansicht des Menües „Aufzeichnungen“. Alle bisher aufgenommenen Sendungen werden dargestellt.

 


Bild: Detailinfo zu einer Aufzeichnung

 


Bild: Dialog zum Abspielen vorhandener Videos; Abspielen von DVD und CD ist ebenfalls möglich

 


Bild: Menü „Befehle“

 


Bild: Menü „Einstellungen“

Leider fehlt mir bisher das tolle tvwish,-Skript, das bei MythTV die eventuell interessanten Filme aus dem EPG für mich herausfischte, aber vielleicht finde ich da noch einen Ersatz… Es soll für VDR zahllose Plugins geben, die sich in die Menüstruktur integrieren lassen, und die viele nützliche Funktionen bieten.

MythTV (2006-2009, meine alte Installation)

MythTV Übersichtsdialog
MythTV Startseite

Hinweis 2009: Die beschriebene Installation wurde 2006 durchgeführt, 2009 habe ich mich nochmal mit MythTV beschäftigt. Es ist von der Installation her komplex und ich würde heute eher zur Nutzung von VDR raten, siehe weiter oben!

MythTV ist eine Media Center-Programm unter Linux. Auf einem extra dafür gekauften Siemens Scovery XS – Mini-PC, der mit 48 Watt im Betrieb sehr stromsparend und außerdem sehr leise ist(in 2m Abstand nicht mehr zu hören), beginne ich mit der Installation. Als Platte baue ich eine 320GB Platte ein, so dass man einiges aufnehmen kann, ohne Platzprobleme zu bekommen. Im Scovery ist wegen der geringen Größe des Geräts nicht viel Platz, man kann nur zwei PCI-Karten einbauen und eine zweite Platte wird ohne Entfernung von Floppy und CDROM (die bei mir ohnehin nicht vorhanden sind) nicht in das Gerät passen.

Fujitsu Siemems Scovery XS

Der Scovery XS

Es gibt eine spezialisierte Linux-Installation namens Knoppmyth, die ein Knoppix Linux und ein darauf installiertes MythTV enthält, so dass man mit der Installation nicht bei Null anfangen muss. Allerdings ist trotzdem vieles an Anpassungsarbeiten erforderlich. Ich brauche für die wichtigeren Sachen gut 2 Wochen bis alles wichtigere funktioniert. Für leistungsschwächere Geräte wie den Siemens Scovery (der nur 866 Mhz und einen Pentium 3 hat) muss man eine TV-Karte nehmen, die in Hardware die Videokompression vornehmen kann. Mit meiner Hauppauge WinTV PVR 150 kann ich PAL-Vollbild (768×576) in hoher Qualität als MPEG-2 digitalisieren. Die Kompression (im Sinne Kleinheit der Resultatdatei) von MPEG-2 ist allerdings nicht so großartig, für eine Stunde Film kommen etwa 2 GByte heraus, so dass ein längerer Film inklusive Werbung schon mal auf 6-8 GByte kommt.

Scovery, Blick auf CPU und Steckkarten

Scovery, Blick auf CPU (mit großem Kühlkörper, passiv gekühlt!) und Steckkarten für TV Tuner und eine zusätzliche Gigabit-Netzwerkkarte. In den Scovery kann man nur zwei PCI-Steckkarten einbauen.

Ich konvertiere daher die interessanteren Filme zum Aufheben nach XVID. Beim Konvertieren kann man auch überflüssige schwarze Streifen oben und unten wegschneiden (mittels mencoder aus dem mplayer-Paket, Infos hier). Dann kommt man auf etwa 1 GByte pro Stunde bei sehr guter Film- und Tonqualität (2000 KBit/s für Bild und 192KBit/s für Ton). Mittels avidemux2 kann dabei noch Überflüssiges (am Anfang, am Ende, Werbung) aus dem Film herausgeschnitten werden. Zur Digitalisierung von Video habe ich hier einiges geschrieben.

MythTV bietet sehr viel Funktionalität, z.B. ein EPG (Electronic Program Guide), mit dem man komfortabel Sendungen zum Aufnehmen selektieren kann und sehr sehr viel mehr Funktionen. Außerdem kann man auch Live fernsehen, es ist also nicht nur ein Rekorder.

MythTV Aufnahmeplan

Auswahl aufzunehmender Sendungen mit der Programmübersicht. Es ist auch eine alphabetische Auswahl oder eine Suche nach Stichworten und weiteres möglich.

MythTV Liste aufzunehmender Sendungen

Liste aufzunehmender Sendungen nach Auswahl.Die lila gefärbte Sendung wird gerade aufgenommen, die grün gefärbten werden noch aufgenommen und die weiß gefärbten werden nicht aufgenommen (weil vom Nutzer manuell aus der Auswahl entfernt)

MythTV Mediothek Übersicht

Mediathek-Dialog. Man kann erstellte Aufnahmen ansehen, aber auch sonstwie abgelegte Videos und Musik oder Bilder ansehen. MythTV bietet volle Media Center Funktionalität, ich nutze es nur für Fernsehaufnahme und Wiedergabe.

tvwish habe ich ebenfalls mitinstalliert. tvwish erlaubt die Definition von Suchbegriffen („Suggestions“) für Filmtitel, Schauspielernamen etc., nach denen es das vorhandene Programmmaterial (welches MythTV sich aus dem Internet beschafft) durchsucht. Wird eine Übereinstimmung gefunden, wird die Sendung als zum Aufnehmen vorgeschlagen oder direkt aufgenommen. Desweiteren macht tvwish Vorschläge, die auf bisher gemachten Aufnahmen beruhen. Eine tolle Sache. Man kann sich eine Liste aller interessanten Filme machen („goodmovies.txt“), die dann automatisch aufgenommen werden. Irgendwann kommt ja jeder Film mal im Fernsehen!

Ein wichtiger Punkt für die Automation des Aufnehmens ist, dass man den Rechner so konfiguriert, dass er sich zu bestimmten Uhrzeiten einschaltet und mit der Aufnahme selbstständig beginnt. Ich habe für meinen Rechner den Weg über den Standard ACPI (ACPI und mythtv hier) gewählt, das war aus meiner Sicht das einfachste. Es geht aber auch anders, z.B. mittels NVRAM (erfordert Frickelei).

Wenn der PC schon das Fernsehgerät ersetzt, dann braucht man auch eine ordentliche Fernbedienung. Mittels LIRC lässt sich das leicht lösen.

Midi per Software unter Linux

Midi-Dateien werden entweder via Hardware oder Software abgespielt. Eine Software hierfür ist timidity.

Installation eines Midi-Sequencers

timidity Paket mittels YasT installieren.

Installation eines Soundfonts

Man kann mit timidity direkt Midi-Dateien abspielen, die klingen aber eher langweilig. Daher sollte man sich einen umfangreichen Soundfont mit vielen Instrumenten installieren. Bei http://www.hammersound.net eine Soundbank herunterladen. Z.B. die von Fluid.

Sie kommt in einem seltsamen Format (FluidR3 GM.sfArk). Diese mittels sfarkxtc unter Linux entpacken (kann auch per Yast installiert werden).
Eine der resultierenden Dateien ist „FluidR3 GM.SF2“. Diese umbenennen nach „FluidR3GM.SF2“ und z.B. nach /usr/share/timidity/ kopieren.

In /etc/timidity.cfg wird auf /usr/share/timidity/timidity.cfg verwiesen. Dort folgendes eintragen:

dir /usr/share/timidity
soundfont FluidR3GM.SF2

timidity nutzen

Das folgende ist unter http://de.opensuse.org/SDB:Abspielen_von_MIDI_Dateien ausführlich beschrieben.

timidity im Alsa Server Modus starten.

/usr/bin/timidity -iA -B2,8 -Os &

timidity wird über ein midi port angesprochen. Dieses gibt er beim Start aus.


Opening sequencer port: 128:0 128:1 128:2 128:3

Mittels des virtuellen Midi Keyboards „vkeybd“ kann man nun probeweise einzelne Töne abspielen:

vkeybd -addr 128:0

Interface / GUI wählen.

timidity besitzt mehrere GUIs. Das GtK-Interface erhält man z.B. mit:

timidity -ig

Weitere siehe http://timidity.sourceforge.net/screenshots.html

Weiterführende Links:
http://www.justchords.de/reality/timidity.html

Webseiten aktuell halten mit dem mirror Skript und rsync

Das mirror-Skript ist ein mächtiges Perl Skipt, mit dem man lokale und entfernte Verzeichnisse miteinander abgleichen kann. Im Unterschied zu rsync beherrscht mirror das FTP Protokoll.

Installation

Das mirror-Skript kann bei OpenSuse mittels Yast einfach installiert werden.

Konfiguration

Bei OpenSuse legt die Installation die Dokumentation lokal unter /file:///usr/share/doc/packages/mirror/ ab. Dort steht die komplette Befehlsreferenz.
Obwohl das Mirror-Skript normalerweise verwendet wird, um entfernte Sites lokal zur Verfügung zu stellen, funktioniert es auch umgekehrt. Man muss sich ein passende mirror.defaults-File schrieben. Für das Synchronisieren einer Homepage aus den lokalen Dateien sieht das mirror.defaults-File in etwas wie folgt aus:

 package=meineWebSite
 get_file=false
 # Keep all local_dirs relative to here
 local_dir=/home/dennis/web/stage
 site=ftp.meinprovider.de
 remote_dir=/
 remote_user=...
 remote_password=...
 # create files with these access rights
 file_mode=0644
 local_ignore=(.svn$|tmpl_level|incubator)
 do_deletes=true
 delete_excl=(logs)

„local_ignore“ beschreibt Pattern von Dateien/Verzeichnissen, die nicht transferiert werden sollen. „do_deletes=true“ erlaubt das Löschen von Dateien auf dem entfernten Server, die lokal nicht vorhanden sind. „delete_excl“ erlaubt es, Pattern von Dateien/Verzeichnissen anzugeben, die nicht auf Löschung geprüft/nicht gelöscht werden dürfen. Ich möchte beispielsweise das auf dem Server vorhandene Verzeichnis „logs“ erhalten.

Aufruf

Mittels
mirror -n mirror.defaults
kann man sehen, was mirror tun würde. Wenn das passt, kann man mittels
mirror mirror.defaults
die Synchronisierung starten.

Mirror kann noch viel viel mehr, siehe dazu Referenzseiten.

Synchronisation mit rsync

Das mirror-Skript ist für remote Synchronisation gedacht. Lokal geht das noch einfacher mittels rsync. rsync ist ein sehr mächtiges Werkzeug zur INKREMENTELLEN Synchronisation ganzer Plattenkomplexe. Mittels
rsync  -Cavz /mnt/var/lib/vmware/Virtual Machines/* .
kann man beispielsweise alle seine virtuellen Maschinen von einer Platte auf eine andere sichern. Dabei werden nur die veränderten Dateien kopiert.

rsync beherrscht verschiedene Transfer-Protokolle, unter anderem auch ssh. Somit kann man eine Synchronisation auch über einen ssh-Kanal durchführen. Das kann soweit ich gesehen habe, mirror nicht.

    rsync --delete -avz -e ssh * user@host.somedomain.com:/var/web/files

synchronisiert so alle lokalen Verzeichnisse („*“) auf host.somedomain.com.

Interessante Optionen:
–delete: löscht im Ziel Dateien, die in der Quelle nicht mehr existieren. Ohne diese Option bleiben diese Dateien im Ziel erhalten.
–exclude=<pattern> : nimmt Dateien, die <pattern> entsprechen, aus Synchronisation aus. Kann mehrfach angegeben werden.
–delete-excluded: löscht im Ziel evtl. vorhandene Dateien, die einem der exclude-Pattern entsprechen. Ohne diese Option bleiben diese Dateien im Ziel erhalten.

Ein komplettes Beispiel:

 rsync --exclude="*/alt/*" --exclude="*orig" --delete --delete-excluded -avz -e ssh * user@somehost:/var/web/files

Den Scanner N-TEK SB 1200 (aka Microtek ScanMaker M3) unterLinux anschliessen

Beim Kauf eines Geräts hat mir ein freundlicher Verkäufer einen alten SCSI-fähigen Scanner quasi mitgeschenkt. Ich habe dann irgendwann versucht, den Scanner in Betrieb zu nehmen. Leider ist im Internet praktisch nichts zu diesem Scanner zu finden – wenn man ihn unter seinem aufgedruckten Namen sucht.

Des Rätsels Lösung ist, dass es sich um einen „Microtek ScanMaker M3“ handelt. Die Firma Mikrotek hat diesen Scanner Ende der 90iger Jahre unter diversen Handelsbezeichnungen verkauft. Die Herkunft ergibt sich, wenn man das Gerät öffnet. Auf der Hauptplatine steht dann als Hersteller Microtek. Ein Vergleich mit alten Produktbildern ergab dann, dass es sich um den ScanMaker M3 handelt.

Der Scanner von außen. Auch der Scanmaker hat die Griffmulde mittig vorne und die beiden Leds (grün/gelb) vorne rechts.

Hier die Hauptpatine, die den Hersteller offenbarte. Der Text „TR-952“ und sonstige weitere aufgedruckte Daten führten leider nirgendwo hin.

Installation mit sane

Das Programm, mit dem dem man unter Linux Scanner nutzt, heißt sane. Dieses wird über zwei Konfigurationsdateien gesteuert:
1) /etc/sane.d/dll.conf : Diese Datei verweist auf alle verfügbaren Scanner. Dort steht für einen Microtek-Scanner folgendes:

...
 #ma1509
 #matsushita
 microtek
 #microtek2
 #mustek
 #mustek_pp
 ...

D.h. alle Einträge für Scanner, die nicht vorhanden sind, werden auskommentiert.

2) Sane sucht dann im selben Verzeichnis nach der Datei „microtek.conf“, die ich wie folgt abgeändert habe:

socraggio:/etc/sane.d # cat /etc/sane.d/microtek.conf
 # Uncomment following line to disable "real calibration" routines...
 #norealcal
 # Uncomment following line to disable "clever precalibration" routines...
 #noprecal
 #   Using "norealcal" will revert backend to pre-0.11.0 calibration code.
 scsi * * Scanner
 #/dev/scanner

Damit sucht sane den Scanner unter allen Scsi-Devices. Der Scanner übermittelt einen Identifier, der hier als „Scanner“ eingetragen ist. Den übermittelten Text kann man wie folgt ermitteln:

dennis@socraggio:~>  grep -i scanner /var/log/boot.msg
<5>scsi 10:0:2:0: Scanner           CANON    IX-27015C        1.17 PQ: 0 ANSI: 2
<5>scsi 10:0:3:0: Scanner                    Scanner          1.50 PQ: 0 ANSI: 4 CCS

Ich habe zwei Scanner angeschlossen, daher ist der Check auf den richtigen Identifier wichtig.

Mit scanimage lässt sich die Verfügbarkeit des Scanners testen:

socraggio:/etc/sane.d # scanimage -L
device `microtek:/dev/sg4' is a Microtek ScanMaker E3 flatbed scanner
device `canon:/dev/sg3' is a CANON IX-27015C        film scanner

(Achtung: Der Scanner muss eingeschaltet sein, wenn der Rechner gestartet wird!!! Sonst wird er nicht erkannt)

Nun lässt sich mittels Gimp -> Datei -> Holen vom Scanner ein Bild einscannen.

Für den Scanner sind übrigens auch über Umwege Treiber bis Windows XP vorhanden (von Adaptec (SCSI-Treiber) und MicroTek (Scanner-Treiber)). Ich habe das aber nicht weiter getestet.

Nachtrag: Einbinden des Microtek ScanMaker X6

Dies ist ein etwas neuerer Scanner als der oben beschriebene. Er meldet sich beim booten wie folgt:

dennis@socraggio:~/02_fotos/2010_06_roedelheim> dmesg|grep -i scsi
...
[   20.849299] scsi 10:0:6:0: Scanner                    Scanner 636A4    1.30 PQ: 0 ANSI: 2
[   20.849312] scsi target10:0:6: Beginning Domain Validation
[   20.886924] scsi target10:0:6: Ending Domain Validation
...
[   25.536091] scsi 10:0:6:0: Attached scsi generic sg4 type 6
..

In /etc/sane.d/dll.conf ist der Treiber „mikrotrek2“ zu enablen (statt „mikrotec“ wie oben). Ein /etc/sane.d/microtek2.conf soll in etwa wie foigt aussehen:

socraggio:/home/dennis # cat /etc/sane.d/microtek2.conf
 # Uncomment following line to disable "real calibration" routines...
 #norealcal
 # Uncomment following line to disable "clever precalibration" routines...
 #noprecal
 #   Using "norealcal" will revert backend to pre-0.11.0 calibration code.
 scsi * * Scanner
 #/dev/scanner

Dann sollte scanimage folgendes bringen:

socraggio:/home/dennis # scanimage -L
device `microtek2:/dev/sg4' is a Microtek ScanMaker X6 / Phantom 636 flatbed scanner

Danach ist auch damit scannen möglich.