De Help Desk punt NL
Kennisbank
De Helpdesk > De Helpdesk > Kennisbank

Systeemconfiguratie

Oplossing

Het opstartproces en runlevels

De kernel wordt geladen met een bootloader (LILO of GRUB). Daarna wordt het proces init geactiveerd. Wat init doet, wordt geregeld in /etc/inittab. Er worden runlevels gedefinieerd en een van de runlevels wordt als standaard aangewezen. Verder voert init initialisatiescripts uit en stelt het consoles beschikbaar om in te loggen.

Runlevel 0 is altijd de status waarin het systeem gestopt is en 6 is een reboot. De rest kan veschillen per distributie. Je kunt vaak in /etc/inittab terugvinden welke runlevel waar goed voor is. Een mogelijke indeling:

  • 0 halt
  • 1 single-user mode
  • 2 multi-user, without NFS
  • 3 full multi-user mode
  • 4 unused
  • 5 X11
  • 6 reboot

Met init of telinit kun je van runlevel veranderen.

Ook bij de LILO-prompt kun je de runlevel opgeven. Zet het nummer van de gewenste runlevel dan achter het gewenste label (bijv. linux 3). In plaats van een 1 (voor single-user mode) kun je ook het woord single (dus bijv. linux single) gebruiken. Bij GRUB kunnen deze opties worden opgegeven door op de regel van de gewenste kernel te gaan staan en op e te drukken. Je kunt dan opties toevoegen.

In /etc/init.d of /etc/rc.d/init.d staan een aantal scripts om services te starten en stoppen (met de argumenten start en stop.) Vaak werkt restart ook om iets te herstarten en status om de status op te vragen. Er bestaan ook verschillende directories /etc/rc#.d of /etc/rc.d/rc#.d, waarbij # de runlevel aangeeft. In deze directories staan symlinks naar de scripts in de init.d-directory. De namen van deze symlinks zien eruit als Sxxnaam of Kxxnaam. Hierbij geeft de S start aan en K kill (stop). Wordt de runlevel ingegaan, dan worden de symlinks die met een S beginnen gebruikt, bij het verlaten die met een K. De xx na de S of K is een nummer dat de volgorde bepaalt (01 wordt eerder uitgevoerd dan 10). Er mogen best gaten in de nummers die voorkomen zitten (niet elk nummer hoeft te bestaan) en als de volgorde waarin drie dingen worden gestart niet uit maakt, mogen ze ook alle drie hetzelfde nummer hebben. De naam na het nummer is alleen om gemakkelijk te kunnen zien waar de symlink naar wijst en is verder niet van belang.

Library's installeren

Als je nieuwe library's hebt gecompileerd en zelf ergens neerzet, dan moet je ze nog laten opnemen in de database van library's. De desbetreffende directory moet daartoe in de variabele $LD_LIBRARY_PATH opgenomen zijn of in /etc/ld.so.conf staan. De directory's /lib en /usr/lib worden echter altijd al doorgekeken. Voer (als root) /sbin/ldconfig uit om de database van library's te updaten als je ld.so.conf aanpast.

Als je make install gebruikt voor het installeren van zelf gecompileerde library's, dan staat in de Makefile vaak al wat code zodat een eventuele benodigde toevoeging aan /etc/ld.so.conf en het uitvoeren van ldconfig automatisch worden gedaan. Hetzelfde is het geval bij het installeren van library's via het pakketsysteem van je distributie (in die pakketten zitten ook de benodigde scripts.) Dus vaak zul je dit niet handmatig hoeven te doen.

Partities op fouten controleren

Doe dit als X niet gestart is en er geen programma's driftig met de harde schijf in de weer zijn. Het beste is het systeem in runlevel 1 (single user) brengen. Je kunt dit bereiken met init 1 of tijdens het booten zoals hierboven uitgelegd. Eenmaal in single-user mode moet je de te controleren partitie nog unmounten met umount /dev/xxx (zie ook sectie Mounten). Dit gaat zonder problemen voor partities zonder belangrijke gegevens. De root-partitie kun je echter niet zomaar unmounten. Wat je daarmee kunt doen, is het hermounten als read-only met mount -o remount,ro / .

Nu alles veilig is en echt niet meer naar de partitie geschreven kan worden, kun je het controleren laten beginnen met e2fsck -f /dev/xxx met in plaats van xxx de te controleren partitie. Het is in veruit de meeste gevallen verstandig y(es) te antwoorden op vragen van e2fsck om fouten te repareren. Als e2fsck verloren data vindt, wordt die in de subdirectory lost+found op de desbetrefferende partitie gezet.

Na de controle kun je de partitie weer mounten. Je kunt de root-partitie hermounten als read-write met mount -o remount,rw /. Ten slotte kun je weer terug naar de oorspronkelijke runlevel. Bij de meeste distributies is runlevel 3 multi-user mode: init 3.

E2fsck kan alleen partities met ext2 of ext3 controleren. Gebruik voor ReiserFS reiserfsck met de optie --fix-fixable. Zie de manual page voor meer informatie.

Tijd en datum instellen

Er zijn twee klokken: de hardware- of CMOS-klok en de softwareklok. De softwareklok wordt vastgesteld door het OS, dat de tijd van de hardwareklok bekijkt tijdens het booten. De hardwareklok loopt altijd door, ook als je pc uit staat. Daarvoor zit er een batterijtje op het moederbord. De reden waarom er een softwareklok wordt bijgehouden, is dat deze veel nauwkeuriger is. De hardwareklok wordt gezet op de tijd van de softwareklok als je Linux afsluit.

Je kunt de softwareklok bekijken met date en de hardwareklok met hwclock. De softwareklok verander je met een commando als:

/bin/date --set '10/24/2004 14:35:14'

De hardwareklok met een commando als:

/sbin/hwclock --set --date="10/24/2004 14:35:14"

De hardwareklok kan ook in je BIOS ingesteld worden. Denk eraan dat de dag en maand in het Engels omgekeerd zijn!

Linux corrigeert de hardwareklok automatisch als die te snel of te langzaam loopt. Het is een goed idee om, nadat je de hardwareklok veranderd hebt echo '' > /etc/adjtime te gebruiken. Daarmee wordt de oude informatie vergeten en wordt de tijd meestal nauwkeuriger bijgehouden.

De Europese tijd (tijdzone CEST, Central European Standard Time) loopt in de winter één en in de zomer twee uur voor op GMT (Greenwich Mean Time) of UTC (Coordinated Universal Time). Het voordeel van GMT of UTC is dat het geen zomer- en wintertijd kent, en dus nooit een uur vooruit of terug gezet hoeft te worden.

Als de hardwareklok op GMT draait (en als je Linux-systeem dat weet), zal Linux je nog steeds de lokale tijd (CEST dus) geven als je de tijdzone juist hebt ingesteld. Maar MS-DOS en Windows gaan ervan uit dat de hardwareklok op de lokale tijd staat. Als je naast Linux nog een ander besturingssysteem gebruikt, kun je de hardwareklok het beste de lokale tijd aan laten geven.

Voor elke tijdzone (eigenlijk van elk land) staat informatie in /usr/share/zoneinfo. Eén van die dingen is de zomer- en wintertijd. Als de hardwareklok op GMT draait, zul je merken dat de zomer- en wintertijd automatisch wordt aangepast (in de softwareklok, de GMT van de hardwareklok kent immers geen zomer- en wintertijd). Als de hardwareklok op de lokale tijd draait, gaat het soms wel, en soms ook niet goed. Ook als je af en toe Windows draait, wil de tijd nog wel eens verkeerd gezet worden. Het kan nooit kwaad om op dergelijke momenten te kijken of alles nog goed loopt, en het zonodig aan te passen.

Bij alle distributies is /etc/localtime een symlink naar of kopie van een bestand onder /usr/share/zoneinfo/. Er zijn vaak tooltjes om de tijdzone in te stellen. Aangeven of de hardwareklok op GMT/UTC loopt of niet kan meestal ook in een bestand onder /etc. Raadpleeg de documentatie van de distributie voor meer informatie.

Logbestanden

In /var/log staat een aantal logbestanden met meldingen van de kernel en verschillende daemons. Daar kun je gebruik van maken om meer informatie over problemen met hardware te verzamelen of om te kijken wie er in je systeem heeft ingebroken (als die persoon slim was heeft hij echter zijn sporen wel gewist). Je kunt het laaste stuk van de belangrijkste logbestanden in console 11 en 12 weergeven met

tail -f /var/log/messages >> /dev/tty11 &
tail -f /var/log/secure >> /dev/tty12 & 

Je kunt ze dan bekijken met alt-F11/F12 of ctrl-alt-F11/F12 als je in X zit.

Je wilt waarschijnlijk niet dat de logbestanden maar blijven groeien. Daarom wordt vaak gebruikgemaakt van een programma als logrotate, dat door middel van cron regelmatig oude logbestanden backupt (en hele oude verwijdert) en nieuwe aanmaakt.

Het commando dmesg laat de meldingen zien die van de kernel afkomstig waren tijdens het opstarten. Daarbij ontbreken de meldingen die door andere opstartscripts gegenereerd werden.

At

At is een service om een opdracht uit te laten voeren op een bepaald tijdstip. Zo kun je je bijvoorbeeld de volgende dag om 7 uur gewekt laten worden door een cd of een MP3 te laten afspelen. De manual page is erg duidelijk. Lees voor de details man at.

Cron

Cron is een service waarbij je met vaste regelmaat een opdracht kunt laten uitvoeren. Dit is bijvoorbeeld handig voor het maken van een backup of het opruimen van tijdelijke bestanden.

Bij veel distributies zijn er subdirectory's in /etc zoals cron.daily en cron.weekly. In het algemene configuratiebestand /etc/crontab staat dat alles in die directory elke dag resp. week moet worden uitgevoerd. Wil je dus iets toevoegen dat regelmatig moet worden uitgevoerd, zet de opdracht dan in een script in een van deze directory's en je bent klaar.

Een voorbeeldinhoud van /etc/crontab:

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
HOME=/

# minute, hour, day of month, month, day of week
*/10   *    * * * root run-parts /etc/cron.d
14     *    * * * root run-parts /etc/cron.hourly
00     19   * * * root run-parts /etc/cron.daily
06     19   * * 0 root run-parts /etc/cron.weekly
10     19   0 * * root run-parts /etc/cron.monthly

Het gaat hier vooral om de laatste 5 regels. Een uitleg per regel:

  • elke 10 minuten worden de scripts uitgevoerd die in de directory /etc/cron.d/ staan
  • elke 14e minuut van een uur worden de scripts in /etc/cron.hourly/ uitgevoerd
  • elke dag om 19:00 uur worden de scripts in /etc/cron.daily/ uitgevoerd
  • elke eerste dag van de week om 19:06 uur worden de scripts in /etc/cron.weekly/ uitgevoerd
  • elke eerste dag van de maand worden om 19:10 uur de scripts in /etc/cron.monthly/ uitgevoerd

Het is mogelijk per gebruiker extra regels voor crontab op te geven, bijvoorbeeld om opdrachten op afwijkende tijden uit te voeren. Doe dit door crontab -e in te tikken. Er wordt dan een editor gestart waarin je eigen regels kunt opgeven. Het crontabbestand zal ergens worden opgeslagen onder /var/spool/cron. (Zie sectie Standaard editor hoe je kunt bepalen welke editor zal worden gestart.)

Stel dat je elke werkdag om 7 uur 's ochtends gewekt wilt worden met een MP3-bestand, dan kun je de volgende regel gebruiken:

0 7 * * 0-5 mpg321 /home/piet/mp3/*

Anacron zorgt ervoor dat cronjobs altijd worden uitgevoerd. Stel dat je pc om 3 uur 's nachts uit staat en dat er dan een cronjob zou zijn om de logfiles te rotaten, dan zou deze met de gewone cron niet worden uitgevoerd. Met anacron gebeurt dat wel zodra de pc weer aan gezet wordt.

Voor meer informatie zie man cron en man crontab.

Het printsysteem

De standaard om te printen onder Unices is PostScript, een formaat/programmeertaal gespecialiseerd in het plaatsen van tekst en plaatjes op een pagina. Er zijn printers die dit formaat direct begrijpen, zogenaamde PostScript-printers. De PostScript-data kan direct naar zulke printers worden gestuurd. Er zijn echter weing mensen die zo'n printer hebben.

CUPS (Common Unix Printing System, http://www.cups.org) is het standaard printsysteem geworden voor Linux. Je kunt het configureren via een website die draait op poort 631 van localhost. Dus je kunt in een willekeurige browser naar http://localhost:631 gaan. De gebruikersnaam en het wachtwoord die je daar moet invoeren, moeten die van root zijn. Zowel KDE als GNOME hebben ook configuratietooltjes.

CUPS bevat filters om verschillende formaten, zoals PostScript, platte tekst en jpeg's, om te zetten naar een voor de printer begrijpbaar formaat. Er wordt gebruikgemaakt van een eigen versie van Ghostscript voor niet-PostScript-printers. Ghostscript is software van GNU om de PostScript-taal te interpreteren. Welke driver het beste is voor je printer kun je vinden op http://www.linuxprinting.org. Enkele speciale sets van drivers die je via CUPS kunt gebruiken zijn:

  • Gimp-Print - Voor verschillende printers van Canon, Epson, Lexmark, Sony, Olympus en PCL-printers van HP (PCL is Printer Command Language, uitgevonden door HP). De drivers zijn bedoeld om hoogwaardige (fotokwaliteit) prints te kunnen maken. Ze kunnen ook worden gebruikt door Ghostscript en direct door GIMP (een tekenprogramma).
  • HP Linux Printing Project - Voor printers van HP (de hpijs-driver). Omvat ook ondersteuning voor gecombineerde printer-scanners en kaartlezers, die vaak in de apparaten ingebouwd zitten.
  • PNM2PPA - Een kleine serie printers van HP maakt gebruik van een systeem genaamd PPA (Printing Performance Architecture). Ze worden nu niet meer geproduceerd. Deze printers hebben minder hardware en de driver moet meer voorkauwen. Voor PPA-printers is PNM2PPA als filter nodig.

Een geïnstalleerde printer is via het netwerk met behulp van Samba te bereiken. Meer daarover vind je in de documentatie van Samba. Meer over Samba vind je in sectie Samba.

Een gedetailleerd overzicht van hoe het printsysteem werkt, is te vinden in de Printing HOWTO en de documentatie van CUPS. Zie ook sectie Printen.

Geluid

In de kernel zitten drivers met ondersteuning voor je geluidskaart. Vroeger was dit OSS (Open Sound System), maar tegenwoordig wordt ALSA (Advanced Linux Sound Architecture) gebruikt. Als je geluidskaart ondersteuning heeft voor hardwarematig mixen van geluid, dan is het met ALSA-drivers mogelijk meerdere processen geluid naar de kaart te laten sturen. Bij OSS kon dat niet. Veel geluidskaarten, vooral goedkopere, kunnen niet hardwarematig mixen. In dat geval kan maar één proces tegelijk van de geluidskaart gebruikmaken.

Als oplossing hiervoor zijn sound servers of sound daemons gemaakt. Deze programma's mixen het geluid softwarematig. Bekende zijn ESD of EsounD en aRts. ESD staat voor Enlightenment Sound Daemon en was oorspronkelijk voor de window manager Enlightenment gemaakt. Het wordt gebruikt bij GNOME. KDE gebruikt aRts (analog real-time synthesizer). Naast mixen kunnen sound servers ook nog voor een andere taak zorgen: het kunnen overzenden van geluid over het netwerk. ALSA heeft ook een oplossing om geluid te mixen: de dmix-plugin. Hiermee kun je alleen geen geluid over het netwerk sturen. Een andere overweging die door ontwikkelaars in het achterhoofd wordt gehouden, is dat ALSA er alleen voor Linux is en niet voor andere Unices, zoals de BSD-varianten.

Applicaties die geluid willen afspelen, moeten of direct OSS of ALSA gebruiken, of een sound server. Oude applicaties kunnen alleen ondersteuning voor OSS hebben. Hiervoor zit OSS-emulatie in ALSA. Als een sound server in gebruik is, zal het de geluidskaart bezet houden. Als een programma niet zelf met de sound server overweg kan, zal het met een wrapperprogramma gestart moeten worden. Voor aRts is er artsdsp en voor ESD is er esddsp. Geef als argument het programma mee.

GNOME maakt steeds meer gebruik van GStreamer. GStreamer is geen sound server, maar een multimediaframework. Het kan gebruikt worden om media-applicaties te bouwen. Dat kan een mediaspeler zijn, maar ook een video-editor. Codecs om audio en video te en- of decoderen zijn als plugin toe te voegen. (Zie ook sectie Video afspelen.) GStreamer is niet speciaal voor GNOME ontworpen, maar het wordt wel voornamelijk door GNOME gebruikt op het moment. GStreamer heeft ook (output)plugins voor OSS, ALSA en de sound servers ESD en aRts. Door GStreamer te gebruiken, is er geen directe afhankelijkheid meer met ESD.

Er zijn geruchten dat aRts niet meer gebruikt zal worden vanaf KDE 4.0. Wat er als vervanging komt, is niet zeker. Het zou kunnen dat KDE ook GStreamer gaat gebruiken. Dat zorgt nog niet voor het mixen van geluid, maar het maakt het wel flexibeler om te kiezen wat je daarvoor wilt gebruiken (bijv. ALSA met dmix-plugin op Linux-systemen en een sound server op BSD-systemen).

Eigenlijk zijn zowel ESD als aRts aan vervanging toe. Ze zijn lang geleden ontwikkeld en worden niet langer meer onderhouden. Er zijn enkele andere sound servers en multimediaframeworks die op dit moment niet veel gebruikt worden, maar wellicht wel in de toekomst. Zo zijn er de sound servers PulseAudio (http://pulseaudio.org) en JACK (http://jackaudio.org, ontworpen voor low-latency) en de multimediaframeworks NMM (Network-integrated Multimedia Middleware, http://www.networkmultimedia.org) en MAS (Media Application Server, http://www.mediaapplicationserver.net).

FIXME: Huidige stand van zaken?

 
Was dit artikel bruikbaar? ja / nee
Gerelateerde artikelen Security
Hardwareondersteuning
Kernel
Tips & trucs
Partities
Basiskennis
X windowing system
Op afstand werken
Internationalisering
Windows-gerelateerd
Artikel details
Artikel ID: 738
Categorie: Linux handboek 2008
Zoekwoorden systeemconfiguratie, opstartproces, runlevels, systeem, configuratie, library's, installeren, init, telinit, make, install, partities, fouten, datum, tijd, log, cron, print, cups, geluid,
Datum toegevoegd: 6-Dec-2008 03:24:20
Aantal bekeken: 216
Beoordeling (Stemmen): Artikel nog niet beoordeeld (0)

 
« Ga terug