openSUSE 11.2 – Ein NTP-Dienst (Network Time Protocol Version 4) konfigurieren

In diesem Artikel gehe ich heute auf den NTP-Dienst unter openSUSE ein. Dieser Dienst ist bereits vorinstalliert, aber noch nicht aktiviert bzw. abschließend konfiguriert. Dieser Dienst synchronisiert die Systemzeit mit der Atomuhr bzw. Funkuhr. Die Besonderheit dieses NTP-Dienstes ist es, dass die Uhrzeit der Atomuhr schonend mit der Systemzeit abgleicht. Hier mal ein Beispiel: Für den Betrieb mit Dovecot ist die schonende Synchronisierung sehr wichtig. Denn bei größerer Abweichung der Systemzeit quittiert Dovecot seinen Dienst und beendet sich selbst. Da kommt man schon in Erklärungsnot, weshalb die lieben Menschen keine Post mehr abrufen können und kommt daher nicht besonders gut an. ;-)

Veraltete NTP-Programme wie ntpdate sollte man nicht mehr verwenden, da diese richtig hart die Systemzeit stellen und das mögen manche Dienste aus den oben genannten Gründen nicht.

Nun kommen wir zur Konfiguration und fügen ausserdem noch weitere NTP-Server für den deutschen Sprachraum hinzu, um mögliche Latenzzeiten aus dem Weg zu gehen. Falls man in einem anderen Land ist, sollte man möglichst einen NTP-Server wählen, der in dem eigenen Land steht. Mehr Infos dazu gibt es unter www.pool.ntp.org oder www.ptb.de/de/org/q/q4/q42/ntp/ntp_main.htm.

1. Starte das YaST-Kontrollzentrum

2. Starte dann „NTP-Einrichtung“ im Abschnitt „Netzwerkdienste“

3. Wähle bei „NTP-Daemon starten“ => „Jetzt und beim Systemstart“ aus

4. Auf „Hinzufügen“ klicken

5. Die Auswahl „Server“ wählen und auf „Weiter“ klicken

6. Die NTP-Server Adresse eingeben: 0.de.pool.ntp.org

7. Mit „Okay“ bestätigen.

8. Die Schritte 4 – 7 wiederholen für weitere NTP Server:

  • 1.de.pool.ntp.org
  • 2.de.pool.ntp.org
  • 3.de.pool.ntp.org
  • ptbtime1.ptb.de
  • ptbtime2.ptb.de
  • ptbtime3.ptb.de

9. Mit „Okay“ die Einrichtung des NTP-Dienstes bestätigen.

Wieso verwenden wir hier mehrere Pools und nicht ein einzigen wie z.B. de.pool.ntp.org? Die Antwort hatte ich eben schon teilweise vorgegeben. ;-) Es ist die Latenzzeit und die Erreichbarkeit der jeweiligen NTP-Server. Der NTP-Dienst pingt die jeweiligen NTP-Server an und entscheidet selbst, welcher Dienst am besten erreichbar und vorallem nutzbar ist.

Abschließend können wir in der Konsole überprüfen, wie der NTP-Dienst arbeitet:

rcntp status

Somit dürfte das System ohne Funkuhr sehr genau ticken. ;-)

openSUSE 11.2 – Splash-Screen beim Starten und Herunterfahren ausschalten

Standardmäßig wird beim Starten oder Herunterfahren des openSUSE-Systems der Splash-Screen vorgeschaltet. Man kann mit der ESC-Taste in der aktuellen Sitzung das Splash-Screen ausschalten und man erhält so die direkte Boot-Ausgabe. So kann man nach möglichen Fehlermeldungen beim Booten oder Herunterfahren sehen, die über den Schirm wandern. Wer möchte, kann diesen Splash-Screen auch dauerhaft ausschalten.

Hier die Anleitung:

1. Starte das YaST2-Kontrollzentrum

2. Starte den „Editor für /etc/sysconfig“  im Abschnitt „System“ vom YaST2-Kontrollzentrum

3. Im Editor auf der linken Seite den Pfad folgen:
System / Boot / SPLASH

4. Im DropDown-Feld „no“ wählen und auf „OK“ klicken. (Evtl. die Änderung nochmal bestätigen lassen)

openSUSE 11.2 – Boot-Vorgang per Tastenkombination anhalten und fortsetzen

Je nach System laufen die Boot-Meldungen schnell über den Schirm, so dass man nicht immer schnell genug lesen kann. Egal, ob es die Ausgabe eines zu startenden Dienstes oder bestimmte Fehlermeldungen sind.

Unter openSUSE 11.2 ist das Stoppen und Fortsetzen des Boot-Vorgangs per Tastenkombination standardmäßig ausgeschaltet und kann über YaST2 wieder eingeschaltet werden.

1. Starte das YaST2-Kontrollzentrum

2. Starte den „Editor für /etc/sysconfig“ im Abschnitt „System“ vom YaST2-Kontrollzentrum

3. Im Editor auf der linken Seite den Pfad folgen:
System / Boot / FLOW_CONTROL

4. Im DropDown-Feld „yes“ wählen und auf „OK“ klicken. (Evtl. die Änderung nochmal bestätigen lassen)

Ab jetzt kann man, während dem Booten, die Tastenkombination STRG + S (anhalten) und STRG + Q (fortsetzen) verwenden. Die Tastenkombination kann man auch beim Herunterfahren anwenden.

openSUSE 11.2 – proprietären Grafik-Treiber ATI Catalyst 9.12 als RPM installieren

Hinweis: Dieser Artikel ist veraltet. Ein neuer Artikel befindet sich hier: openSUSE 11.2 – proprietären Grafik-Treiber ATI Catalyst 10.1 als RPM installieren

Seit ATI Catalyst 9.12 funktioniert der Bau eines RPM-Package unter openSUSE 11.2 wieder.

Hierbei wird vorausgesetzt, dass die Entwicklungswerkzeuge bzw. -packages bereits vorhanden sind:

  • gcc
  • make
  • kernel-source
  • kernel-{default,desktop,pae,rt,vanilla,xen}-devel

Beim Kernel-Entwicklungspackage ist zu beachten, dass man die richtige installiert hat. Welchen Kernel zur Zeit auf dem System läuft, kann man in der Konsole abfragen:

uname -r

Bei mir ergibt diese Ausgabe:

2.6.31.5-0.1-desktop

Also muss in meinem Fall der Kernel-Entwicklungspackage kernel-desktop-devel installiert sein.

Hier die Step-By-Step Anleitung für die Konsole (root-Modus) für den 32/64-bit System:

1. den Installer des proprietären Treiber von ATI herunterladen:
http://support.amd.com/us/gpudownload/linux/Pages/radeon_linux.aspx?type=2.4.1&product=2.4.1.3.5&lang=English

2a. den Bau der RPM manuell anstoßen (32-bit):

sh ./ati-driver-installer-9-12-x86.x86_64.run --buildpkg SuSE/SUSE112-IA32

2b. den Bau der RPM manuell anstoßen (64-bit):

sh ./ati-driver-installer-9-12-x86.x86_64.run --buildpkg SuSE/SUSE112-AMD64

3a. das frisch gepackte RPM installieren (Neuinstallation / 32-bit):

rpm -ihv fglrx_7_4_0_SUSE112-8.681*.rpm

3a. das frisch gepackte RPM installieren (Neuinstallation / 64-bit):

rpm -ihv fglrx64_7_4_0_SUSE112-8.681*.rpm

3b. das frisch gepackte RPM installieren (Update / 32-bit):

rpm -Uhv fglrx_7_4_0_SUSE112-8.681*.rpm

3b. das frisch gepackte RPM installieren (Update / 64-bit):

rpm -Uhv fglrx64_7_4_0_SUSE112-8.681*.rpm

Nach der Installation den Rechner neustarten und schon seid ihr mit dem neuen Treiber unterwegs. ;-)

Update (02.01.2009):
Ich habe ein Skript namens makerpm-ati-9.12.sh geschrieben, dass den Bau der RPM vom proprietären ATI Installer unter openSUSE automatisiert. Dadurch fällt die manuelle Prüfung des Build-Systems zum größten Teil weg. ;-) Denn es wird automatisch geprüft, ob die notwendigen Entwicklungspackages installiert sind. Falls diese nicht installiert sind, wird die Installation angestoßen. Hier bei ist es notwendig die Installation der jeweiligen Packages bestätigen zu lassen. Das Skript fragt auch die Version von openSUSE und dessen Architektur ab, um diese Information dem ATI Installer weiterzugeben.

Das Skript wird zusammen mit dem ATI Installer in ein beliebiges temporäres Verzeichnis gespeichert und wird im root-Modus ausgeführt. Dieses Skript habe ich bewusst in englischer Sprache geschrieben, damit jeder openSUSE User auf unserer Erde es auch versteht und handhaben kann. ;-)

Downloads:

Über die Konsole im root-Modus:

# Das Skript ggfs. über die Konsole herunterladen.
wget http://www.sebastian-siebert.de/downloads/makerpm-ati-9.12.sh

# Die Prüfsumme vom Skript herunterladen.
wget http://www.sebastian-siebert.de/downloads/makerpm-ati-9.12.sh.sha1

# Die Datei mit der Prüfsumme gegen das Skript prüfen.
# Es sollte "makerpm-ati-9.12.sh: OK" ausgegeben werden,
# andernfalls war der Download fehlerhaft oder das Skript wurde manipuliert.
sha1sum -c makerpm-ati-9.12.sh.sha1

# Die Rechte des Skriptes ändern und für root ausführbar machen
chown root:root makerpm-ati-9.12.sh && chmod 744 makerpm-ati-9.12.sh

# Das Skript ausführen
./makerpm-ati-9.12.sh

Nach dem Bau des RPM-Packages kann dieses einfach per rpm-Befehl installiert werden. Das Skript gibt die nötige Kommandozeile für die Installation bzw. Update aus. Diese kann man im Konsolenfenster kopieren und in die Kommandozeile direkt ausführen lassen.

Falls weitere Fragen oder Probleme mit dem Skript gibt, so schreibt mir einfach. ;-)

Linux – Dateinamen und/oder Verzeichnisse in Groß- oder Kleinschreibung umbenennen

Es gibt ein Kommandozeilen-Tool das Groß- oder Kleinschreibung wie auch in bestimmte Zeichensätze umbenennen bzw. konvertieren kann. Das Tool heißt convmv.

Unter openSUSE 11.x lässt sich das Tool sehr einfach in der Konsole installieren:

zypper in convmv

Wenn man alle Dateien und Verzeichnisse im aktuellen Verzeichnis in Kleinschreibung haben möchte, dann reicht dieser Befehl:

convmv --lower *

Wenn man aber alles in Großschreibung haben möchte, dann nimmt man die Option –upper anstatt –lower. Zur Vereinfachung bleibe ich in diesem kleinen HowTo bei der Kleinschreibung und gehe auf verschiedene Lösungswege ein.

Jedoch wird hier eine Liste mit den Änderungen ausgegeben. Somit kann man wunderbar verfolgen, wie das Tool bei der Umbenennung vorgeht.

Um die Umbenennung auch wirklich auszuführen, gibt man noch die Option –notest an:

convmv --lower --notest *

Wenn das Tool rekursiv durch alle Unterverzeichnisse arbeiten soll, dann fügen wir noch eine Option -r ein:

convmv -r --lower --notest *

Jetzt kommen wir mal zu einem Spezialfall. Wenn wir aber nur Dateinamen rekursiv durch alle Unterverzeichnisse umbenennen möchten, dann hilft uns in diesem Fall weitere Tools wie find und xargs:

find ./ -type f -print0 | xargs -r -0 convmv --lower

Erläuterung für find:
./ = In welchem Verzeichnis soll durchsucht werden (hier nur aktuelles)
-type f = Nur Dateien sollen berücksichtigt werden
-print0 = Jede Datei wird ein NULL-Zeichen als Trennzeichen angehängt, somit lassen sich die Dateiennamen bei der Übergabe an xargs besser auseinander halten

Erläuterung für xargs:
-r = nicht ausführen, wenn keine weiteren Argumente übergeben werden können (= leer)
-0 = NULL-Zeichen als Trennzeichen berücksichtigen.

Was ist mit dem schwierigsten Fall wie z.B. die Umbenennung von Verzeichnisnamen und das auch noch rekursiv durch alle Unterverzeichnisse? Nun man denkt einfach, dass man den o.g. Befehl -type f in -type d austauschen und ausführen kann. Spätestens bei der Umbenennung eines Unterverzeichnis dessen oberen Verzeichnisname sich geändert hat, würde das Vorhaben nur auf eine einzige Verzeichnistiefe beschränken. Alle darunterliegenden Verzeichnisse können somit nicht umbenannt werden.

Also verwenden wir ein etwas modifizierten Einzeiler und geben dem find die Option -depth mit, somit sollten die Verzeichnisse in korrekter Reihenfolge an convmv übergeben werden:

find ./ -depth -type d -print0 | xargs -r -0 convmv --lower --notest

Hinweis zum Tool find und der Option -exec:
Einige Linux-User verwenden statt xargs eher die Option -exec in find. Wobei ich vom Gebrauch der Option -exec expizit abraten würde. Ich verdeutliche es mal an einem Beispiel. Wenn find z.B. 5.000 Dateien findet, werden bei -exec auch 5.000 Prozesse hintereinander gestartet und das geht zu Lasten der System-Performance. Bei der Verwendung von xargs werden 5.000 Dateien als Argumente an das jeweilige Programm übergeben und benötigt nur 1 Prozess anstatt 5.000 Prozesse. ;-)