BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Kernelkonfiguration wiederherstellen

Damit die Kernelkonfiguration aus dem Kernel zu einem späteren Zeitpunkt wiederhergestellt werden kann, muss dieser schon mit folgender Option gebaut werden:

options         INCLUDE_CONFIG_FILE

Hat man die Kernelkonfiguration irgendwann einmal verloren, überschrieben oder zerstört, so lässt sich mit folgendem Befehl die ursprüngliche Konfiguration wiederherstellen:

# strings -n 3 /boot/kernel/kernel | sed -n 's/^___//p' > MYKERNEL

Update 05.01.2008:

Ab FreeBSD 7.0 muss zum Wiederherstellen der Kernelkonfiguration folgender Befehl verwendet werden:

# config -x /boot/kernel/kernel > MYKERNEL
Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

ISO-Image erstellen

Möchte man Daten auf eine CD brennen, so muss zuerst ein ISO-Image erstellt werden. Ein ISO-Image kann mit mkisofs(8) erstellt werden. mkisofs befindet sich im sysutils/cdrtools Port. Zuerst müssen alle Daten, die später im Image vorhanden sein sollen, in ein Verzeichnis kopiert werden. Danach kann aus diesem Verzeichnis ein Image erstellt werden:

# mkisofs -o <Name des Images> <Pfad zu Verzeichnis mit Daten>

Wird die CD später mit einem unixoiden Betriebssystem verwendet, so empfiehlt es sich noch die -r Option zu verwenden, damit die Rock Ridge Erweiterung aktiviert wird, und die Dateirechte und der Besitzer auf vernünftige Werte gesetzt werden.

Soll die CD mit Windows verwendet werden, so sollte die Joliet Erweiterung mit der -J Option aktiviert werden. Werden Dateinamen die länger als 64 Zeichern sind verwendet, so kann die -joliet-long Option zusätzlich verwendet werden.

Im folgenden Beispiel wird der Inhalt von /var/backups in ein Image namens backup.iso gepackt und die Rock Ridge Erweiterung wird aktiviert:

# mkisofs -r -o backup.iso /var/backups

Möchte man danach den Inhalt des Images nochmals ansehen, so kann das Image wie folgt gemountet werden:

# mdconfig -a -t vnode -f <Pfad zu Image> -u 0
# mount -t cd9660 /dev/md0 /mnt/

Nun ist der Inhalt unter /mnt sichtbar. Das Image kann nun wie folgt wieder geunmountet werden:

# umount /mnt/
# mdconfig -d -u 0

Jetzt kann das ISO-Image mit burncd(8) gebrannt werden.

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

NSSWITCH(nss_method_lookup): nis, group_compat, endgrent, not found

Befinden sich in /var/log/debug.log und /var/log/cron folgende Fehlermeldungen:

Oct 15 13:01:00 fenchurch cron[62903]: NSSWITCH(nss_method_lookup): nis, group_compat, setgrent, not found
Oct 15 13:01:00 fenchurch cron[62903]: NSSWITCH(nss_method_lookup): nis, group_compat, endgrent, not found
Oct 15 13:01:00 fenchurch cron[62903]: NSSWITCH(nss_method_lookup): nis, passwd_compat, endpwent, not found
Oct 15 13:02:00 fenchurch cron[64716]: NSSWITCH(nss_method_lookup): nis, group_compat, setgrent, not found
Oct 15 13:02:00 fenchurch cron[64716]: NSSWITCH(nss_method_lookup): nis, group_compat, endgrent, not found
Oct 15 13:02:00 fenchurch cron[64716]: NSSWITCH(nss_method_lookup): nis, passwd_compat, endpwent, not found

So kann der Inhalt der /etc/nsswitch.conf in Folgenden geändert werden, damit diese Meldungen verschwinden:

group: files
hosts: files dns
networks: files
passwd: files
shells: files
Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

rc.conf aufräumen

Auf FreeBSD sind in der /etc/defaults/rc.conf Datei die Standardwerte der Systemvariablen festgelegt. Diese können in der /etc/rc.conf überschrieben werden. Mit der Zeit können sich Variablen in der rc.conf ansammeln, die identisch mit jenen in der /etc/defaults/rc.conf sind. Um die rc.conf übersichtlicher zu machen, können diese und auskommentierte Variablen entfernt werden. Dafür kann man rclean verwenden. rclean befindet sich in den FreeBSD Ports unter sysutils/rclean.

Hier zu Beispiel eine rc.conf die mit der Zeit gewachsen ist:

hostname="daedalus.chruetertee.ch"
ifconfig_em0="DHCP"
keymap="swissgerman.iso"
sshd_enable="YES"
usbd_enable="YES"
sendmail_enable="NONE"
nfs_server_enable="NO"
nfs_client_enable="NO"
portmap_enable="YES"
syslogd_enable="YES"
syslogd_flags="-ss"
clear_tmp_enable="YES"
firewall_enable="YES"
firewall_script="/etc/ipfwrules"
pccard_enable="YES"
#ifconfig_ath0="DHCP wpa"
#ifconfig_wi0="DHCP"
kern_securelevel_enable="YES"
kern_securelevel="-1"
devd_enable="YES"
ipv6_enable="NO"
inetd_enable="NO"
icmp_log_redirect="NO"
#gateway_enable="YES"
#natd_enable="YES"
#natd_interface="wi0"
#natd_flags=""
#tcp_extensions="NO"
#tcp_keepalive="NO"
icmp_bmcastecho="NO"
dumpdev="NO"
#clamav_clamd_enable="YES"
#clamav_freshclam_enable="YES"
devfs_enable="YES"
#ntpd_enable="YES"
#ntpd_sync_on_start="YES"
jail_enable="NO"

Ruft man nun rclean auf, werden auskommentierte und überflüssige Variablen entfernt:

# rclean
# Reordered by rclean on Fri Sep 22 19:55:30 2006
# rclean Copyright (c) 2002 Lapo Luchini <lapo@lapo.it>
# Please make all changes to this file, not to /etc/defaults/rc.conf
# This file contains just the overrides from /etc/defaults/rc.conf
pccard_enable="YES" # "NO"
hostname="daedalus.chruetertee.ch" # ""
background_dhclient="YES" # "NO"
firewall_enable="YES" # "NO"
firewall_script="/etc/ipfwrules" # "/etc/rc.firewall"
ifconfig_em0="DHCP" # "<not defined>"
syslogd_flags="-ss" # "-s"
sshd_enable="YES" # "NO"
keymap="swissgerman.iso" # "NO"
sendmail_enable="NONE" # "NO"
usbd_enable="YES" # "NO"
clear_tmp_enable="YES" # "NO"
kern_securelevel_enable="YES" # "NO"
portmap_enable="YES" # "<not defined>"
devfs_enable="YES" # "<not defined>"

rclean erstellt nun Kommentare, welche die Standardwerte der /etc/defaults/rc.conf aufzeigen. Möchte man diese Kommentare nicht haben, so kann man rclean mit der -n Option aufrufen. Will man die neue rc.conf speichern, so benutzt man die -w Option.

# rclean -n -w /tmp/rc.conf

Nun sollte man von der alten rc.conf eine Sicherheitskopie erstellen und kann danach die rc.conf mit der neuen und aufgeräumteren Version überschreiben.

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

Ports aktualisieren mit portmaster

Mit portmaster(8) lassen sich genauso wie mit portupgrade(1) Ports aktualisieren. Jedoch ist portmaster ein Shellskript und hat nicht wie portupgrade ruby und perl als Abhängigkeit. portmaster findet man in den Ports unter sysutils/portmaster:

# cd /usr/ports/sysutils/portmaster && make install clean

Möchte man nun herausfinden, von welchen Programmen es in den Ports neuere Versionen gibt, so kann man dies folgendermassen tun:

# portmaster -L | grep -B1 '    '

Der Abstand zwischen den beiden Hochkommas ist ein Tabulator.

Danach kann ein Port wie folgt aktualisiert werden:

# portmaster <Portname>

Möchte man alle Ports die von einem Port abhängen aktualisieren, so kann man die -r Option verwenden:

# portmaster -r <Portname>

Mit der -b Option wird von einem Port der akualisiert wird, zuerst ein Backup erstellt. Die -f Option aktualisiert die Ports, egal ob eine neuere Version in den Ports ist oder nicht. Mit der -n Option kann man sich Anzeigen lassen, was der portmaster machen würde, dies wird aber nicht durchgeführt. Möchte man make(1) Argumente übergeben so benutzt man die -m Option.

Mehr Informationen zu portmaster findet man in der Manpage portmaster(8) oder auf der Webseite: http://dougbarton.us/portmaster.html

UPDATE 05.02.2007:

portmaster wurde von sysutils in die neue Kategorie ports-mgmt verschoben. portmaster kann nun wie folgt installiert werden:

# cd /usr/ports/ports-mgmt/portmaster && make install clean
Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
Comments (1)  Permalink

FreeBSD Service Jails mit unionfs erstellen

Mit Hilfe von Service Jails lassen sich gemeinsame Elemente einer Jail mit mehreren Jails teilen. Damit reduziert sich der Administrationsaufwand, da man zum Beispiel Sicherheitspatches des Basissystemes nur noch in der gemeinsamen Basis einspielen muss und nicht mehr in jeder Jail.

Inspiriert durch folgende Seite (http://simon.nitro.dk/service-jails.html) habe ich nun Service Jails mit Hilfe von unionfs erstellt.

Mit unionfs lässt sich ein Dateisystem über ein bestehendes mounten. Wird eine Datei aus dem unterliegenden System nicht durch eine gleichnamige Datei aus dem oberliegenden Dateisystem überdeckt, so ist diese auch im oberliegenden System sichtbar. Änderungen fliessen allerdings nur in das obere System ein.

Da die aktuelle unionfs-Implementation von FreeBSD recht fehlerhaft sein soll, verwenden wir gleich die neue unionfs-Implementation. Damit diese verwendet werden kann, müssen die aktuellen FreeBSD-Quelldateien der verwendeten FreeBSD Version in /usr/src vorhanden sein. Danach kann der Patch heruntergeladen, kompiliert und die neue Implemetation installiert werden:

# cd /usr/src
# fetch http://people.freebsd.org/~daichi/unionfs/unionfs6-p16.diff
# patch -p3 < unionfs6-p16.diff
# cp /usr/src/sys/fs/unionfs/union.h /usr/include/fs/unionfs/
# cd /usr/src/sbin/mount_unionfs/
# make obj depend && make && make install
# make clean
# cd /usr/src
# make buildkernel KERNCONF=<KERNEL-KONFIGURATION>
# make installkernel KERNCONF=<KERNEL-KONFIGURATION>
# shutdown -r now

Dieses Vorgehen läd den Patch 16 für FreeBSD 6 herunter. Man sollte sich vorher allerdings vergewissern, dass man das aktuelle Patchset für die zu verwendende FreeBSD-Version herunterläd.

Danach kann die gemeinsame Basis der Jails erstellt werden. Diese wird in einer 1GB grossen Datei erstellt, welche wiederum als Memory Disk gemountet wird. Der Portbaum wird aus dem Hostsystem in die Jailbasis verschoben und mit einem Symlink dem Hostsystem wieder zur Verfügung gestellt.

# mkdir /usr/jails/
# truncate -s 1G /usr/jails/base
# mdconfig -a -t vnode -f /usr/jails/base -u 0
# bsdlabel -w md0 auto
# newfs md0a
# mkdir -p /mnt/jails
# mkdir -p /mnt/jails/base
# mount /dev/md0a /mnt/jails/base/
# cd /usr/src/ && make installworld DESTDIR=/mnt/jails/base
# cd /usr/src/etc && make distribution DESTDIR=/mnt/jails/base

# mv /usr/ports /mnt/jails/base/usr/ports
# ln -s /mnt/jails/base/usr/ports /usr/ports

# /sbin/mount_unionfs -c transparent -b /usr/ports /mnt/jails/base/usr/ports
# touch /mnt/jails/base/etc/fstab

Nun kann die gemeinsame Basis nach eigenen Wünschen konfiguriert werden.

Danach kann eine Jail folgendermassen erzeugt werden:

# truncate -s <Grösse> /usr/jails/<Name>
# mdconfig -a -t vnode -f /usr/jails/<Name> -u <Nr>
# bsdlabel -w md<Nr> auto
# newfs md<Nr>a
# mkdir -p /mnt/jails/<Name>
# mount /dev/md<Nr>a /mnt/jails/<Name>

# mount_unionfs -c transparent -b /mnt/jails/base /mnt/jails/<Name>

# mount_devfs devfs /mnt/jails/<Name>/dev
# cd /mnt/jails/<Name>
# ln -sf /dev/null kernel

<Grösse> ist durch die Grösse der Datei zu ersetzen, in der man die Jail erzeugen will. Für zum Beispiel 2 GB gibt man hier 2G an. <Name> ist natürlich durch den Jailnamen zu ersetzen. Bei der ersten Jail ersetzt man <Nr> durch 1, bei der zweiten durch 2 usw.

Nun wird die Jail gestartet und kann konfiguriert werden:

# ifconfig <Interface> alias <IP-Adresse>/32
# jail /mnt/jails/<Name> <Name> <IP> /bin/sh

So können nun mehrere Jails erzeugt werden, die das gleiche Basissystem verwenden.

Da diese Variante für die Jails Dateien verwendet, die als RAM-Disk gemountet werden, müssen diese auch bei einem Neustart zuerst geladen werden, damit man nachher die Jails ganz normal über die rc.conf starten kann. Dazu wird unter /etc/rc.d/jails eine Datei mit folgendem Inhalt erstellt:

#!/bin/sh
#
# ----------------------------------------------------------------------------
# "THE BEER-WARE LICENSE" (Revision 42):
# <beat@chruetertee.ch> wrote this file. As long as you retain this notice you
# can do whatever you want with this stuff. If we meet some day, and you think
# this stuff is worth it, you can buy me a beer in return Beat Gätzi
# ----------------------------------------------------------------------------
#

# PROVIDE: jails
# REQUIRE: root mountcritlocal
# BEFORE: jail
# KEYWORD: shutdown

. /etc/rc.subr

name="jails"
rcvar=`set_rcvar`
start_cmd="jails_start"
stop_cmd="jails_stop"

jails_start()
{
echo 'Setting up jails environment'
/sbin/mdconfig -a -t vnode -f /usr/jails/base -u 0
/sbin/fsck -y /dev/md0a
/sbin/mount /dev/md0a /mnt/jails/base/
j=1
for i in ${jails_list}
do
/sbin/mdconfig -a -t vnode -f /usr/jails/${i} -u ${j}
/sbin/fsck -y /dev/md${j}a
/sbin/mount /dev/md${j}a /mnt/jails/${i}
/sbin/mount_unionfs -c transparent -b /mnt/jails/base /mnt/jails/${i}
j=`expr $j + 1`
done
}

jails_stop()
{
j=1
for i in ${jails_list}
do
/sbin/umount /mnt/jails/${i}
/sbin/umount /mnt/jails/${i}
/sbin/mdconfig -d -u ${j}
j=`expr $j + 1`
done
/sbin/umount /mnt/jails/base/
/sbin/mdconfig -d -u 0
}

load_rc_config $name
run_rc_command "$1"

Nun müssen die verschiedenen Jails noch in der jails_list Variable in der /etc/rc.conf eingetragen werden. Wichtig ist, dass die Namen mit den Namen im Pfad der Jails übereinstimmen. Beispiel:

Zwei Jails sind unter /mnt/jails/test1.chruetertee.ch und /mnt/jails/test2.chruetertee.ch installiert, so muss das Startskript aktiviert und die jails_list Variable folgendermassen gesetzt werden:

jails_enable="YES"
jails_list="test1.chruetertee.ch test2.chruetertee.ch"

Die Jails können nun ganz normal in der rc.conf konfiguriert werden und stehen bei einem Neustart automatisch zur Verfügung.

jail_enable="YES"
jail_list="test1 test2"
jail_test1_rootdir="/mnt/jails/test1.chruetertee.ch"
jail_test1_hostname="test1.chruetertee.ch"
jail_test1_ip="<IP>"
jail_test1_exec="/bin/sh /etc/rc"
jail_test1_devfs_enable="YES"
jail_test2_rootdir="/mnt/jails/test2.chruetertee.ch"
jail_test2_hostname="test2.chruetertee.ch"
jail_test2_ip="<IP>"
jail_test2_exec="/bin/sh /etc/rc"
jail_test2_devfs_enable="YES"

Diese Service Jails wurden mit FreeBSD 6.1 getestet und funktionieren bis jetzt hier auch. Allerdings ist diese Variante auf produktiven Systemen mit Vorsicht zu geniessen, da sowohl die neue unionfs-Implementierung als auch diese Variante noch nicht ausgiebig getestet worden sind!

Arbeitet man mit FreeBSD 6.1-RELEASE und mit den Jails sollte man unbedingt folgenden Hinweis beachten, da sich in FreeBSD 6.1-RELEASE ein Fehler in der /etc/rc.d/jail befindet: ftp://ftp.freebsd.org/pub/FreeBSD/ERRATA/notices/FreeBSD-EN-06:01.jail.asc

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

Benutzern temporär das Anmelden verbieten

Möchte man, zum Beispiel wegen Wartungsarbeiten, allen Benutzern das Anmelden verbieten, so kann man einfach die Datei /var/run/nologin erstellen und schon können sich alle Benutzer bis auf root nicht mehr anmelden. Enthält die Datei auch noch einen Text, so wird dieser angezeigt, wenn ein Benutzer versucht sich anzumelden:

# echo Wegen Wartungsarbeiten ist das Anmelden bis 22 Uhr nicht gestattet > /var/run/nologin

# ssh localhost
Wegen Wartungsarbeiten ist das Anmelden bis 22 Uhr nicht gestattet

Alle bereits angemeldeten Benutzer können jedoch weiterhin auf dem System arbeiten. Möchte man diese Benutzer vom System trennen, so kann man mit shutdown -k alle angemeldeten Benutzer bis auf root ausloggen.

Um das Anmelden wieder zu gestatten, muss einfach /var/run/nologin wieder entfernt werden:

# rm /var/run/nologin

Achtung: Hat man auf dem System das direkte Anmelden als root abgeschaltet, so ist nologin(5) mit Vorsicht zu geniessen, da man sich selber aus einem System aussperren kann!

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

Verzeichnis eines Rechners mittels SSH mounten

Mit Hilfe von FUSEFS-SSHFS lässt sich ein Verzeichnis eines entfernten Rechners auf einem lokalen Rechner mounten, wenn man einen SSH-Zugang zu diesem Rechner besitzt.

FUSEFS-SSHFS lässt sich einfach über die Ports installieren:

# cd /usr/ports/sysutils/fusefs-sshfs && make install

Da das FUSE-Kernelmodul gebraucht wird, muss der Kernelmodul-Suchpfad noch angepasst werden. Einfach folgende Zeile in der /etc/sysctl.conf anfügen:

kern.module_path="/boot/kernel;/boot/modules;/usr/local/modules"

Jetzt muss noch folgender Eintrag in der /etc/rc.conf gemacht werden:

fusefs_enable="YES"

Möchte man das SSHFS ohne einen Neustart gleich verwenden, so muss FUSE von Hand gestartet werden:

# sysctl kern.module_path="/boot/kernel;/boot/modules;/usr/local/modules"
# /usr/local/etc/rc.d/fusefs start

Danach kann ein Verzeichnis gemountet werden:

# sshfs -o idmap=user <Benutzername>@<Rechner>:<Verzeichnis> <Mountpunkt>

Alle Optionen von sshfs erhält man mit der -h Option:

# sshfs -h
Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
Comments (3)  Permalink

Eingeloggte Benutzer beobachten

Für Schulungen oder wenn man einem eingeloggten Benutzer helfen möchte, ist es manchmal von Vorteil, wenn man die Terminalausgabe eines Benutzers sieht. Dafür gibt es watch(8). Ist das device snp nicht im Kernel vorhanden, so wird automatisch beim ersten Aufruf von watch das snp.ko-Kernelmodul geladen. Natürlich kann watch nur von root verwendet werden.

Zuerst muss man herausfinden, mit welchem Terminal (tty) der zu überwachende Benutzer arbeitet. Dies lässt sich mit w(1) herausfinden:

# w
5:22pm up 4:50, 4 users, load averages: 0,08 0,13 0,11
USER TTY FROM LOGIN@ IDLE WHAT
guest p1 :0.0 12:45pm 1 more
beat p2 :0.0 1:18pm 1 vi Makefile
beat p3 :0.0 4:46pm 36 csh
beat p4 :0.0 5:13pm 8 w

Möchte man jetzt das Terminal (ttyp1) des Benutzers guest beobachten, so kann man das als root wie folgt tun:

# watch ttyp1

Nun sieht man alle Ein- und Ausgaben des Benutzers guest auf ttyp1. watch beendet man mit Ctrl + G. Mit Ctrl + W löscht man die Ausgabe auf dem Bildschirm und mit Ctrl + X kann man auf ein anderes Terminal wechseln.

Möchte man zusätzlich auch Eingaben auf dem Terminal des Benutzers machen können, so kann man watch mit der -W Option aufrufen:

# watch -W ttyp1
Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

Mit Xinerama zwei Bildschirme an einem Rechner verwenden

Mit Hilfe von Xinerama kann man mit einem Windowmanager mehrere Graphikkarten und Bildschirme benutzen. Fluxbox besitzt eine Xinerama Unterstützung. Auf FreeBSD kann man diese beim Installieren wie folgt aktivieren:

# cd /usr/ports/x11-wm/fluxbox-devel && make -DWITH_XINERAMA install

Danach als root eine xorg.conf erstellen lassen:

# X -configure

Wurde alles richtig erkannt, muss die erstellte xorg.conf nun noch angepasst werden. In der Section "ServerLayout" ist folgende Option einzutragen:

Option "Xinerama" "true"

Das TastaturLayout muss auch noch richtig gesetzt und die gewünschten Auflösungen konfiguriert werden.

Danach kann Fluxbox schon mit zum Beispiel zwei Monitoren verwendet werden.

Folgende Komponenten wurden verwendet:

Ergebnis:

Xinerama

Related Entries:
Umlaute nach X.Org Update von 6.8.2 auf 6.9.0
X.Org: could not open default font "fixed"
Auflösung unter X.Org während des Betriebes ändern
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
 Permalink
Prev Next71-80/125