Das Einrichten von XFree86 ist in den meisten Fällen unproblematisch. Bei der Verwendung von Hardware, deren Treiber sich noch in der Entwicklung befinden oder beim Wunsch, die beste Leistung bzw. Auflösung mit einer beschleunigten Grafikkarte zu erzielen, kann sich die Konfiguration von XFree86 als sehr zeitaufwendig erweisen.
Dieses Kapitel beschreibt die Erstellung und Bearbeitung der
Datei XF86Config
, die den XFree86-Server
konfiguriert. In den meisten Fällen hat es sich bewährt, mit
einer Basiskonfiguration für XFree86 zu starten, die eine
Standardauflösung von 640x480 Bildpunkten einstellt und von
fast allen Grafikkarten und Monitoren unterstützt wird.
Arbeitet XFree86 erst einmal mit einer Standardauflösung, so
kann die Konfiguration jederzeit erweitert werden, um sämtliche
Fähigkeiten der Videohardware auszunutzen. Dahinter verbirgt
sich die Idee, zu überprüfen, ob XFree86 überhaupt auf dem
System funktioniert und ob die Installation auch nicht
fehlerhaft ist.
Zusätzlich zu dieser HOWTO sollten die folgenden Dokumente gelesen werden:
X332doc.tgz
und
liegt in dem Verzeichnis /usr/X11R6/lib/X11/doc
.
README.Config
.
README
-Dateien, wie z.B.: README.Cirrus
und README.S3
, die sich in dem oben genannten
Verzeichnis befinden.
XFree86
.
XF86Config
,
XF86Setup
und xvidtune
.
XF86_SVGA
oder XF86_S3
.
Die Haupt-Konfigurationsdatei ist
/usr/X11R6/lib/X11/XF86Config
. Sie enthält
Informationen über die Maus, die Grafikkarte, den Monitor
usw. Die mit der XFree86-Distribution bereitgestellte Datei
XF86Config.eg
enthält eine Beispielkonfiguration,
die als Ausgangspunkt für die eigene Konfiguration benutzt
werden kann. Dazu wird sie nach XF86Config
kopiert.
Die XF86Config
-Manual-Seite erläutert das Format
dieser Datei im Detail. Bevor mit diesem Dokument
fortgefahren wird, sollte die Manual-Seite gelesen werden.
Nachfolgend wird eine Muster-XF86Config
-Datei
schrittweise vorgestellt. Diese Datei kann sich von der
Beispieldatei, die in der XFree86-Distribution enthalten
ist, unterscheiden, aber ihre Struktur ist dieselbe.
Man beachte, daß das Dateiformat von XF86Config
mit
jeder Version von XFree86 wechseln kann. Diese Angaben
beziehen sich auf die XFree86-Version 3.3.2.
Ferner sollte auch der Versuch unterbleiben, die hier
aufgelistete Konfigurationsdatei auf das eigene System zu
kopieren und anschließend zu benutzen. Eine
Konfigurationsdatei, die nicht mit der verwendeten Hardware
korrespondiert, kann Schaden an ihr anrichten. Berichten
zufolge sind Monitore (besonders Festfrequenz-Monitore)
bei der Benutzung einer unkorrekt konfigurierten
XF86Config-Datei beschädigt bzw. zerstört worden. Der
Grundsatz lautet also: »Vor der Benutzung einer
XF86Config
-Datei sicherstellen, daß sie
mit der verwendeten Hardware korrespondiert«.
Jeder Abschnitt einer XF86Config
-Datei wird von dem
folgenden Zeilenpaar umgeben:
Section "section-name"
...
EndSection
Der erste Abschnitt der XF86Config
-Datei ist
Files
, der wie folgt aussieht:
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "/usr/X11R6/lib/X11/fonts/misc:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
EndSection
Die RgbPath
-Zeile setzt den Pfad zu der
X11R6-RGB-Farbdatenbank. Jede FontPath
-Zeile
zeigt auf das jeweilige Verzeichnis mit den entsprechenden
X11-Schriftarten. Im allgemeinen besteht kein Grund, diese
Zeilen zu ändern, falls man nicht gerade ein neues Verzeichnis
für weitere Schriftarten anlegen möchte. Für jedes Verzeichnis in
/usr/X11R6/lib/X11/fonts
sollte ein Eintrag in der Sektion
Files
zu finden sein.
Der nächste Abschnitt lautet ServerFlags
, der
verschiedene globale Flags des Servers spezifiziert. Er
enthält im allgemeinen keinen Eintrag.
Section "ServerFlags"
# Diese Option erzeugt genau an der Stelle einen core
# dump, an der das entsprechende Signal empfangen wurde.
# Dieses läßt die Konsole eventuell in einem unbenutz-
# baren Zustand zurück, kann jedoch das Debuggen mit
# diesem core dump erleichtern.
# NoTrapSignals
# Diese Option schaltet die Möglichkeit ab, den X11-
# Server mit <Strg><Alt><Backspace> abzubrechen.
# DontZap
EndSection
Alle Zeilen innerhalb der Sektion sind daher mit Hilfe des Nummernzeichens # auskommentiert.
Der folgende Abschnitt Keyboard
beschreibt die
Standardeinstellungen für die Tastatur.
Section "Keyboard"
Protocol "Standard"
XkbRules "xfree86"
XkbModel "pc102"
XkbLayout "de"
XkbVariant "nodeadkeys"
EndSection
Für eine Modifizierung der Tastatureinstellungen mit Hilfe
zusätzlicher Optionen wird auf die Datei XF86Config
hingewiesen. Die oben angegebenen Werte funktionieren auf
den meisten Systemen.
Die Parameter für die Maus werden im nächsten Abschnitt spezifiziert.
Section "Pointer"
Protocol "MouseSystems"
Device "/dev/mouse"
# Baudrate und SampleRate werden nur für einige Mäuse
# von Logitech verwendet.
# BaudRate 9600
# SampleRate 150
# Emulate3Buttons ist eine Option für Microsoft Mäuse
# mit nur 2 Tasten
# Emulate3Buttons
# ChordMiddle ist eine Option für einige 3-Tasten Mäuse
# von Logitech
# ChordMiddle
EndSection
Von anfänglicher Bedeutung sind hier die beiden Optionen:
Protocol
und Device
. Protocol
spezifiziert das von der Maus verwendete Protokoll, nicht
aber die Marke der Maus. Gültige Protokolltypen sind:
BusMouse
Logitech
Microsoft
MMSeries
Mouseman
MouseSystems
PS/2
MMHitTab
Man beachte, daß unter Linux zusätzliche Typangaben für
andere Betriebssysteme verfügbar sind.
Die Auswahl BusMouse
sollte bei einer
Logitech-Busmaus verwendet werden. Ferner sollte
man beachten, daß ältere Logitech-Mäuse das
Logitech
-, dagegen neuere Modelle entweder das
Microsoft
- oder das Mouseman
-Protokoll
benutzen. Dies ist ein Grund, warum das Protokoll nichts mit
der Mausmarke zu tun hat.
Die Auswahl Device
beschreibt die Schnittstelle, an
der die Maus angeschlossen ist. Bei den meisten
Linux-Systemen ist dies /dev/mouse
. Gewöhnlich ist
/dev/mouse
ein Link auf die passende serielle
Schnittstelle (z.B. /dev/ttyS0
) für serielle Mäuse bzw. die
passende Schnittstelle für Busmäuse. Auf jeden Fall sollte
man sich überzeugen, daß die im Device
-Abschnitt
angegebene Gerätedatei existiert.
Der nächste Abschnitt lautet Monitor
und beschreibt
die Kenndaten des Monitors. Er kann, wie andere Sektionen in
der XF86Config
-Datei auch, mehrmals auftreten. Dies
ist nützlich, falls mehrere Monitore an ein System
angeschlossen sind oder die gleiche
XF86Config
-Datei unter verschiedenen
Hardware-Konfigurationen benutzt werden soll. Gewöhnlich
wird nur ein einzelner Monitor
-Abschnitt verwendet.
Section "Monitor"
Identifier "CTX 5468 NI"
# Diese Werte sind nur für einen CTX 5468NI Monitor!
# Versuchen sie nicht, diese Werte für ihren Monitor
# zu verwenden, wenn sie nicht wirklich dieses
# Modell haben sollten.
Bandwidth 60
HorizSync 30-38,47-50
VertRefresh 50-90
# Modes: Name dotclock horiz vert
ModeLine "640x480" 25 640 664 760 800 480 491 493 525
ModeLine "800x600" 36 800 824 896 1024 600 601 603 625
ModeLine "1024x768" 65 1024 1088 1200 1328 768 783 789 818
EndSection
Der Identifier
-Eintrag kennzeichnet den Monitor mit
einem Namen. Er ist frei wählbar (jede gültige Zeichenkette)
und wird in einer späteren Sektion der
XF86Config
-Datei als Verweis auf den
Monitor
-Abschnitt verwendet.
HorizSync
spezifiziert die gültigen horizontalen
Synchronisationsfrequenzen des Monitors in kHz. Bei
Multisync-Monitoren können dies ein oder mehrere, durch
Komma getrennte Intervalle sein. Bei Festfrequenz-Monitoren
ist es eine Reihe von festen Werten, wie z.B.:
HorizSync 31.5, 35.2, 37.9, 35.5, 48.95
Das Monitorhandbuch sollte im Abschnitt »Technische
Spezifikationen« die entsprechenden Werte auflisten.
Falls dies nicht der Fall ist, kann man versuchen, die
benötigten Informationen beim Monitorhersteller mittels WWW
oder beim Händler selbst zu bekommen.
VertRefresh
gibt die gültigen vertikalen
Refresh-Raten oder vertikalen Synchronisationsfrequenzen des
Monitors in Hz an. Dies kann, wie schon bei
HorizSync
, ein Intervall oder eine Liste fester
Werte sein. Auch hier sollte das Handbuch die entsprechenden
Angaben aufweisen.
Mit Hilfe der HorizSync
- und
VertRefresh
-Einträge wird überprüft, ob sich die
angegebenen Bildschirmauflösungen in einem gültigen Bereich
befinden. Dadurch wird die Möglichkeit reduziert, den
Monitor beim Betreiben einer unzulässigen bzw. zu hohen
Frequenz, für die er nicht ausgelegt ist, zu zerstören.
Die ModeLine
-Zeile wird zur Spezifizierung der
einzelnen Auflösungen des Monitors benutzt. Das Format von
Modeline
ist:
ModeLine Name dot-clock horiz-Werte vert-Werte
Name
ist eine willkürliche Zeichenkette. Sie dient
in der Datei zur Referenzierung auf den jeweiligen
Auflösungsmodus. Dot-clock
bezeichnet die benutzte
Bildpunkt-Taktfrequenz. Die Frequenz wird gewöhnlich in MHz
angegeben und gibt die Anzahl der von einer Grafikkarte an
den Monitor ausgesendeten Bildpunkte je Sekunde bei dieser
Auflösung an. Je vier Werte für horiz
und vier
Werte für vert
spezifizieren den Bildschirmaufbau,
d.h., sie geben die Anzahl der Bildpunkte an, bei der der
Elektronenstrahl eine Zeile anzeigt, eine Beruhigungsphase
und den Synchronisationsimpuls durchläuft.
Zur Bestimmung der ModeLine
-Werte für den
entsprechenden Monitor sei auf die Datei
VideoModes.doc
verwiesen, die zum Umfang der
XFree86-Distribution gehört. Das Dokument beschreibt
detailliert, wie diese Werte für jede vom Monitor
unterstützte Auflösung ermittelt werden können. Zu allererst
muß sichergestellt sein, daß der angegebene
dot-clock
-Wert auch mit einer von der Grafikkarte
verwendeten Bildpunkt-Taktfrequenz korrespondiert. Man
beachte, daß nur solche Videomodi verwendet werden können,
deren Bildpunkt-Taktfrequenz von der Grafikkarte unterstützt
wird. Im weiteren Verlauf der XF86Config
-Datei
werden die Bildpunkt-Taktfrequenzen weiter spezifiziert.
Zwei Dateien der XFree86-Distribution enthalten Daten für
die ModeLine
-Zeilen des zu verwendenden Monitors.
Diese Dateien heißen: modeDB.txt
bzw.
Monitors
und befinden sich beide im Verzeichnis
/usr/X11R6/lib/X11/doc
.
Anfänglich ist es empfehlenswert, mit
Modeline
-Werten des VESA-Standards zu beginnen, da
die meisten Monitore die VESA-Auflösungen unterstützen. Die Datei
modeDB.txt
enthält Werte für die verschiedenen
VESA-Standardauflösungen, und ihre Einträge sehen z.B. wie
folgt aus:
# 640x480@60Hz Non-Interlaced Modus
# Horizontal Sync = 31.5kHz
# Timing: H=(0.95us, 3.81us, 1.59us)
# V=(0.35ms, 0.064ms, 1.02ms)
#
# Name clock horizontales Timing vertikales Timing flags
"640x480" 25.175 640 664 760 800 480 491 493 525
Dies ist der VESA-Standard für den 640x480-Videomodus. Er
benutzt eine Bildpunkt-Taktfrequenz von 25,175, die die
Grafikkarte unterstützen muß, um diesen Modus zu benutzen
(später mehr dazu). Um diesen Eintrag in der
XF86Config
-Datei zu benutzen, muß die nachfolgende
Zeile eingefügt werden:
ModeLine "640x480" 25.175 640 664 760 800 480 491 493 525
Man beachte, daß der Name
der Zeile
640x480
eine frei wählbare Zeichenkette
darstellt. Nach Konvention sollte er die verwendete
Auflösung bezeichnen. Für Name
kann theoretisch
auch jede andere Zeichenkette gewählt werden, die den Modus
beschreibt.
Für jede benutzte ModeLine
-Zeile überprüft der
Server, ob die Angaben des Modus innerhalb des
Gültigkeitsbereichs von Bandwidth
(Bandbreite),
HorizSync
und VertRefresh
liegen. Falls
sie nicht im gültigen Bereich liegen, werden die jeweiligen
ModeLine
-Zeilen vom X11-Server ignoriert.
Stellt sich heraus, daß die Werte für die VESA-Standardmodi
nicht funktionieren, so enthalten die Dateien
modeDB.txt
und Monitors
spezifische
Einträge für viele verschiedene Monitortypen. Auf Basis
der Einträge aus diesen beiden Dateien können eigene Werte
kreiert werden. Man sollte jedoch nur dem Monitormodell
entsprechende Werte benutzen. Man beachte, daß jeder Monitor nur
eine bestimmte maximale Auflösung darstellen kann. Hier sollte
man sich nicht nur auf die Herstellerangaben verlassen, da diese
Angaben oft übertrieben sind. Rein physikalisch kann ein 15-Zoll-Monitor
maximal 800x600 scharf darstellen. Höhere Auflösungen führen dazu,
daß das Bild unscharf wird. Bei 17-Zoll-Monitoren sind maximal
1280x1024 zu empfehlen.
Sind an dieser Stelle immer noch keine gültigen Werte für
den Monitor gefunden, kann man den Instruktionen aus der der
XFree86-Distribution beigefügten Datei
VideoModes.doc
folgen, um ModeLine
-Werte
aus den im Monitor-Handbuch aufgelisteten Spezifikationen
selber zu generieren. Die Datei VideoModes.doc
beschreibt außerdem sehr ausführlich das Format einer
ModeLine
-Direktive sowie andere Aspekte des
XFree86-Servers.
Sind die übernommenen oder selbergenerierten
ModeLine
-Werte noch nicht ganz perfekt, so ist es
möglich, durch ein geringes Modifizieren der Werte das
gewünschte perfekte Resultat zu erhalten. Ist z.B. während
des XFree86-Betriebes das Monitorbild ein wenig verschoben
oder scheint es zu laufen, so kann man gemäß der Anleitung
in der Datei VideoModes.doc
versuchen, diese Werte
zu verbessern. Auch sollten die Einstellregler des Monitors
überprüft werden. In vielen Fällen ist es nur notwendig, die
horizontale oder vertikale Bildschirmgröße nach dem Start
von XFree86 zu ändern, um das Bild zu zentrieren und auf
eine passende Größe anzuordnen. Das Vorhandensein der
Kontrollregler an der Frontseite des Monitors macht das
Leben sicherlich leichter.
Man sollte weder Monitor-Frequenzen noch
ModeLine
-Werte von Monitoren benutzen, die nicht
dem zu verwendenden Modell entsprechen. Versucht man
dennoch, den Monitor mit einer Frequenz anzusteuern, für die
er nicht konzipiert ist, so besteht die Gefahr, ihn zu
beschädigen oder ihn gar zu zerstören.
Der nächste Abschnitt der Konfigurationsdatei
XF86Config
ist Device
, der die Parameter
der Grafikkarte kennzeichnet. Hier ein Beispiel:
Section "Device"
Identifier "#9 GXE 64"
# bisher nichts; wir werden diese später mit
# Optionen füllen
EndSection
Die Sektion definiert die Eigenschaften für eine bestimmte
Grafikkarte. Identifier
ist wieder eine frei
wählbare Zeichenkette, die die Karte beschreibt. Auch hier
wird der Name für einen späteren Verweis benutzt.
Anfänglich braucht außer Identifier
nichts in
diesen Abschnitt eingetragen zu werden. Das liegt daran, daß
der X-Server dazu benutzt wird, die Eigenschaften der
Grafikkarte selber zu ermitteln. Anschließend können die so
gefundenen Werte in die Device-
Sektion eingetragen
werden. Der X-Server ist nämlich in der Lage, den
Videochipsatz, die Bildpunkt-Taktfrequenzen, den RAMDAC
sowie die Größe des Videospeichers auf der Grafikkarte
festzustellen.
Bevor diese Werte jedoch zu ermitteln sind, muß die
XF86Config
-Datei durch den letzten Abschnitt
komplettiert werden. Er lautet Screen
und
spezifiziert die Kombination von Monitor und Grafikkarte für
die Benutzung eines bestimmten Servers.
Section "Screen"
Driver "Accel"
Device "#9 GXE 64"
Monitor "CTX 5468 NI"
Subsection "Display"
Depth 16
Modes "1024x768" "800x600" "640x480"
ViewPort 0 0
Virtual 1024 768
EndSubsection
EndSection
Die Zeile Driver
beschreibt den zu benutzenden
X-Server. Gültige Angaben für Driver
sind:
Accel
: Für die XF86_S3
-,
XF86_Mach64
-, XF86_Mach32
-,
XF86_Mach8
-, XF86_8514
-,
XF86_P9000
-, XF86_AGX
- und
XF86_W32
-Server.
SVGA
: Für den XF86_SVGA
-Server.
VGA16
: Für den XF86_VGA16
-Server.
VGA2
: Für den XF86_Mono
-Server.
Mono
: Für die Nicht-VGA-Monochrom-Treiber
der XF86_Mono
- und XF86_VGA16
-Server.Es sollte sichergestellt sein, daß ein symbolischer Link von
/usr/X11R6/bin/X
auf den zu benutzenden Server
zeigt.
Die Device
-Zeile spezifiziert den
Identifier
der Device
-Sektion, der mit der
verwendeten Grafikkarte korrespondiert. In dem oben
angegebenen Device
-Abschnitt ist die Zeile
Identifier "#9 GXE 64"
eingetragen worden. Daher wird in dieser Sektion die
Zeichenkette #9 GXE 64
in die
Device
-Zeile gestellt.
Ähnliches geschieht mit der Zeile Monitor
. Sie
verweist auf den Identifier
"CTX 5468
NI"
aus der oben beschriebenen
Monitor
-Sektion.
Der Unterabschnitt Display
definiert verschiedene
Eigenschaften des XFree86-Servers mit der Kombination aus
Monitor und Grafikkarte. Die XF86Config
-Datei
beschreibt diese Optionen sehr detailliert. Die meisten davon
sind jedoch wie der »Zuckerguß auf einem Kuchen«
und daher nicht notwendig, um ein System zum Laufen zu
bekommen.
Die wichtigsten Optionen sind:
Depth
Definiert die Farbtiefe, d.h. die Anzahl Bits je Bildpunkt. Der Standardwert beträgt 8. Ein VGA-Server benutzt eine Farbtiefe von 4 und ein Monochrom-Server eine Farbtiefe von 1. Bei der Benutzung einer beschleunigten Grafikkarte mit genügend Speicher, um mehr Bits je Bildpunkt zu unterstützen, kann der Wert auf 16, 24 oder 32 gesetzt werden. Falls dabei Probleme auftreten, sollte der Wert auf 8 zurückgesetzt werden. Später kann man dann versuchen, das Problem zu beheben. Der 24 Bit-Modus sollte keine Verwendung finden, da damit einige bekannte Programme wie netscape Probleme haben. Statt dessen sollte der 32 Bit-Modus verwendet werden, wenn eine Echtfarbendarstellung benötigt wird.
Modes
Dies ist die Liste mit Namen der
verschiedenen Videomodi, die durch die Verwendung der
ModeLine
-Direktive in der Monitor
-Sektion
definiert worden sind. In dem oben aufgeführten Abschnitt
sind ModeLine
-Zeilen
"1024x768"
,
"800x600"
und
"640x480"
benannt. Deswegen stellt sich
die Zeile Modes
wie folgt dar:
Modes "1024x768" "800x600" "640x480"
Der zuerst angegebene Modus in dieser Zeile wird
standardmäßig nach dem Start von XFree86 eingestellt.
Während des Betriebes von XFree86 kann mit Hilfe der
Tastenkombination Strg-Alt-numerisch +
und
Strg-Alt-numerisch -
zwischen den angegebenen Modi
gewechselt werden.
Es hat sich bei der Erstkonfiguration von XFree86
vorteilhaft erwiesen, einen Videomodus mit einer niedrigen
Auflösung, wie z.B. 640x480, zu benutzen, da sich diese
Auflösung auf den meisten Systemen problemlos darstellen
läßt. Ausgehend von dieser Basiskonfiguration kann
anschließend die Datei XF86Config
modifiziert
werden, um auch höhere Auflösungen zu erzielen.
Virtual
Kennzeichnet die Größe des
virtuellen Desktops. XFree86 besitzt die Fähigkeit,
zusätzlichen Speicher der Grafikkarte für die Vergrößerung
der Oberfläche zu benutzen. Bewegt sich der Mauszeiger über
den Bildschirmrand hinaus, so verschiebt sich der
Ausschnitt und der zusätzliche Bereich wird sichtbar. Bei
einer Bildschirmauflösung von z.B. 800x600 Bildpunkten kann
Virtual
auf die von der Grafikkarte maximal
unterstützten Auflösung gesetzt werden. Eine Grafikkarte mit
1 MB RAM unterstützt 1024x768 Bildpunkte mit einer Farbtiefe
von 8 Bits je Bildpunkt, eine Karte mit 2 MB RAM dagegen
1280x1024 Bildpunkte bei einer Farbtiefe von 8 Bits je
Bildpunkt oder 1024x768 Bildpunkte bei einer Farbtiefe von
16 Bits je Bildpunkt. Selbstverständlich kann der gesamte
virtuelle Desktop nicht auf einmal dargestellt werden,
dennoch kann man ihn insgesamt benutzen.
Die Virtual
-Option stellt eine gute Möglichkeit
dar, um den Speicher der Grafikkarte nutzbar zu machen.
Dennoch ist sie ziemlich begrenzt und bietet kaum
Bedienungsmöglichkeiten. Zur Nutzung eines wahren virtuellen
Desktop sollte statt dessen fvwm2
oder ein ähnlicher
Fenstermanager benutzt werden. fvwm2
bietet die
Möglichkeit zur Darstellung beliebig vieler virtueller
Bildschirme, zwischen denen mit Hilfe des Desktopmanagers
umgeschaltet werden kann. So braucht nur der aktuelle
Bildschirm und nicht der gesamte Desktop in den Speicher der
Grafikkarte gestellt zu werden. Für weitere Details sollte
die Manual-Seite über fvwm2
herangezogen werden. Die
meisten Linux-Systeme setzen standardmäßig fvwm2
als
Fenstermanager ein.
ViewPort
Setzt bei Benutzung der oben
beschriebenen Virtual
-Option die Koordinaten der
linken, oberen Ecke des virtuellen Desktops beim Start von
XFree86. Standardkoordinaten für Virtual
sind oft
0 0
. Werden für Virtual
keine Angaben gemacht, erhält
man einen zum virtuellen Desktop zentrierten
Bildschirmausschnitt.
Für diese Sektion existieren noch viele andere Optionen.
Eine komplette Beschreibung enthält die Manual-Seite zu
XF86Config
. Für die anfängliche Konfiguration von
XFree86 sind diese Optionen aber nicht notwendig.