diff --git a/nl_NL.ISO8859-1/books/handbook/kernelconfig/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/kernelconfig/chapter.sgml index 4400cd3903..971bb54aa7 100644 --- a/nl_NL.ISO8859-1/books/handbook/kernelconfig/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/kernelconfig/chapter.sgml @@ -1,1689 +1,1689 @@ Jim Mock Bijgewerkt en opnieuw gestructureerd door Jake Hamby Oorspronkelijk bijgedragen door René Ladan Vertaald door De &os;-kernel instellen Samenvatting kernel een aangepaste kernel bouwen De kernel is de kern van het &os;-besturingssysteem en is verantwoordelijk voor het geheugenbeheer, het opleggen van beveiligingsregels, het aansturen van het netwerk, de toegang tot schijven en nog veel meer. Hoewel steeds meer in &os; dynamisch instelbaar wordt, is het af en toe nodig om de kernel opnieuw in te stellen en te compileren. Na het lezen van dit hoofdstuk weet de lezer: Waarom het nodig is om een aangepaste kernel te bouwen; Hoe een nieuw kernelinstellingenbestand te schrijven of een bestaand kernelinstellingenbestand aan te passen; Hoe het kernelinstellingenbestand te gebruiken om een nieuwe kernel aan te maken en te bouwen; Hoe een nieuwe kernel te installeren; Hoe problemen op te lossen als er iets verkeerd gaat. Alle opdrachten die in dit hoofdstuk als voorbeeld zijn gegeven moeten als root uitgevoerd worden om te slagen. Redenen om een aangepaste kernel te bouwen Traditioneel heeft &os; zoals dat heet een monolitische kernel gehad. Dit betekent dat de kernel één groot programma was, een vaste lijst van apparaten ondersteunde en als het gewenst was om het gedrag van de kernel te veranderen, moest er een nieuwe kernel gecompileerd worden en moest daarna de computer opnieuw gestart worden met de nieuwe kernel. Vandaag de dag beweegt &os; zich snel naar een model waar veel van de functionaliteit van de kernel in modules zit die dynamisch in en uit de kernel kunnen worden geladen, naargelang dat noodzakelijk is. Dit stelt de kernel in staat om zich aan nieuwe hardware aan te passen die plotseling beschikbaar komt (zoals PCMCIA-kaarten in een laptop) of om nieuwe functionaliteit in zich op te nemen die niet noodzakelijk was toen de kernel oorspronkelijk werd gecompileerd. Dit staat bekend als een modulaire kernel. Desondanks is het nog steeds nodig om enkele dingen van de kernel statisch in te stellen. In sommige gevallen komt dit doordat de functionaliteit zo diep geworteld zit in de kernel dat het niet dynamisch laadbaar gemaakt kan worden. In andere gevallen kan het simpelweg komen doordat nog niemand de tijd heeft genomen om een dynamisch laadbare kernelmodule voor die functionaliteit te schrijven. Het bouwen van een aangepaste kernel is een van de meest belangrijke beproevingen die geavanceerde BSD-gebruikers moet doorstaan. Hoewel dit proces veel tijd in beslag neemt, levert het veel voordelen op voor een &os; systeem. In tegenstelling tot de GENERIC-kernel, die vele typen hardware moet ondersteunen, ondersteunt een aangepaste kernel alleen de hardware van de computer waar hij voor gemaakt is. Dit biedt een aantal voordelen, zoals: Een snellere opstarttijd. Aangezien de kernel alleen de hardware zoekt die zich in het systeem bevindt, kan de tijd die het systeem nodig heeft om op te starten aanzienlijk korter worden; Minder geheugengebruik. Een aangepaste kernel gebruikt vaak minder geheugen dan de GENERIC-kernel door ongebruikte mogelijkheden en apparaatstuurprogramma's weg te laten. Dit is van belang aangezien de kernelcode altijd in het fysieke geheugen aanwezig blijft, waardoor dit geheugen niet door applicaties gebruikt kan worden. Om deze reden is een aangepaste kernel geknipt voor een systeem met een kleine hoeveelheid RAM; Aanvullende hardware-ondersteuning. Een aangepaste kernel kan ingebouwde ondersteuning bieden voor apparaten die zich niet in de GENERIC-kernel bevinden, zoals geluidskaarten. Tom Rhodes Geschreven door De systeemhardware vinden Alvorens in de kernelconfiguratie te duiken, zou het verstandig zijn om een inventarisatie van de hardware van de machine te maken. In het geval dat &os; niet het primaire besturingssysteem is, kan de inventarisatielijst eenvoudig worden gemaakt door de configuratie van het huidige besturingssysteem te bekijken. De Device Manager van µsoft; bijvoorbeeld bevat normaliter belangrijke informatie over geïnstalleerde apparaten. De Device Manager bevindt zich in het controlepaneel. Sommige versies van µsoft.windows; hebben een icoon System dat een scherm weer zal geven waarmee Device Manager kan worden benaderd. Als er geen ander besturingssysteem op de machine staat, moet de beheerder deze informatie handmatig vinden. Eén manier is om de gereedschappen &man.dmesg.8; en &man.man.1; te gebruiken. De meeste apparaatstuurprogramma's van &os; hebben een handleiding, die de ondersteunde hardware noemen, en tijdens het opstarten wordt gevonden hardware getoond. De volgende regels geven bijvoorbeeld aan dat het stuurprogramma voor psm een muis heeft gevonden: psm: <PS/2 Mouse> irq 12 on atkbdc0 psm0: [GIANT-LOCKED] psm0: [ITHREAD] psm0: model Generic PS/2 mouse, device ID 0 Dit stuurprogramma zal in het eigen kernelinstellingenbestand opgenomen moeten worden of worden geladen met &man.loader.conf.5;. Soms geven de gegevens van dmesg alleen de systeemboodschappen weer in plaats van de uitvoer van de opstartonderzoeken. In deze gevallen kan de uitvoer worden verkregen door het bestand /var/run/dmesg.boot te bekijken. Een andere methode om hardware te vinden is door &man.pciconf.8; te gebruiken welke meer gedetailleerde uitvoer geeft. Bijvoorbeeld: ath0@pci0:3:0:0: class=0x20000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00 vendor = 'Atheros Communications Inc.' device = 'AR5212 Atheros AR5212 802.11abg wireless' class = network subclass = ethernet Dit beetje uitvoer, verkregen met pciconf geeft aan dat het stuurprogramma ath een draadloos Ethernetapparaat heeft gevonden. Het gebruik van man ath zal de handleiding voor &man.ath.4; teruggeven. Wanneer de vlag aan &man.man.1; wordt gegeven kan deze nuttige informatie geven. Met het bovenstaande kan dit gedaan worden: &prompt.root; man -k Atheros om een lijst handleidingen te krijgen die dat ene woord bevatten: ath(4) - Atheros IEEE 802.11 wireless network driver ath_hal(4) - Atheros Hardware Access Layer (HAL) Gewapend met een inventarisatielijst van de hardware zou het proces van het bouwen van een eigen kernel minder angstaanjagend moeten lijken. Kernel stuurprogramma's, subsystemen, en modules kernel stuurprogramma's / modules / subsystemen Bekijk, voordat er een eigen kernel gebouwd wordt, de redenen om dit te doen. Als er de noodzaak is voor specifieke hardwareondersteuning, kan dit reeds beschikbaar zijn als een module. Kernelmodules staan in de map /boot/kernel en kunnen dynamisch in de draaiende kernel worden geladen met &man.kldload.8;. De meeste, als niet alle, kernelstuurprogramma's hebben een specifieke module en een handleiding. De laatste sectie merkte bijvoorbeeld het draadloze Ethernetstuurprogramma ath op. Van dit stuurprogramma staat de volgende informatie in de handleiding: Plaats de volgende regel in &man.loader.conf.5; om het stuurprogramma tijdens het opstarten als een module te laden: if_ath_load="YES" Zoals aangegeven, zal het toevoegen van de regel if_ath_load="YES" aan /boot/loader.conf deze module dynamisch laden tijdens het opstarten. In sommige gevallen is er geen geassocieerde module. Dit geldt het vaakst voor bepaalde subsystemen en zeer belangrijke stuurprogramma's, het fast file system (FFS) bijvoorbeeld is een verplichte optie in de kernel, net zoals netwerkondersteuning (INET). Helaas is de enige manier om te zien of een stuurprogramma nodig is naar de module zelf zoeken. Het is nogal eenvoudig om ingebouwde ondersteuning voor een apparaat of optie te verwijderen en met een kapotte kernel opgezadeld te zitten. Als bijvoorbeeld het stuurprogramma &man.ata.4; uit het kernelinstellingenbestand gehaald wordt, zal een systeem dat ATA schijfstuurprogramma's gebruikt niet opstarten zonder een regel aan loader.conf toe te voegen. Kijk bij twijfel of de module aanwezig is en laat ondersteuning dan gewoon in de kernel. Bouwen en installeren van een aangepaste kernel kernel bouwen / installeren Eerst wordt er een overzicht gegeven van de mappen waarin de kernel gebouwd wordt. Alle genoemde mappen staan onder de map /usr/src/sys, die ook toegankelijk is via de padnaam /sys. Er zijn hier een aantal mappen aanwezig die de verschillende delen van de kernel representeren, maar de meest belangrijke hiervan zijn arch/conf, waarin de kernelinstellingen bewerkt worden en compile, waarin de aangepaste kernel gebouwd wordt. arch representeert hier één van i386, alpha, amd64, ia64, powerpc, sparc64 of pc98 (een alternatieve ontwikkelingstak van PC-hardware die populair is in Japan). Alles binnen de map van een bepaalde architectuur is er alleen voor die architectuur. De rest van de code is machine-onafhankelijk en hetzelfde op alle platformen waarnaar &os; eventueel overgezet kan worden. De indeling van de mapstructuur is logisch: alle ondersteunde apparaten, bestandssystemen en opties staan in een eigen submap. Dit hoofdstuk veronderstelt dat de i386-architectuur in de voorbeelden gebruikt wordt. Als dit voor de lezer anders is, moeten de juiste aanpassingen aan de padnamen worden gemaakt voor de architectuur van zijn systeem. Als de map /usr/src/sys niet aanwezig is op een systeem, dan is de kernelbroncode niet geïnstalleerd. De eenvoudigste manier om dit te doen is door sysinstall te draaien als root en Configure, dan Distributions, dan src, dan base en sys te kiezen. Als sysinstall ongewenst is en er toegang is tot een officiële &os; CD-ROM, is de broncode ook vanaf de opdrachtregel te installeren: &prompt.root; mount /cdrom &prompt.root; mkdir -p /usr/src/sys &prompt.root; ln -s /usr/src/sys /sys &prompt.root; cat /cdrom/src/sys.[a-d]* | tar -xzvf - &prompt.root; cat /cdrom/src/sbase.[a-d]* | tar -xzvf - Daarna kan vanuit de map arch/conf het instellingenbestand GENERIC naar de naam voor de aangepaste kernel gekopieerd worden. Bijvoorbeeld: &prompt.root; cd /usr/src/sys/i386/conf &prompt.root; cp GENERIC MIJNKERNEL Traditioneel bestaat deze naam geheel uit hoofdletters en als er meerdere &os;-machines worden beheerd met verschillende hardware is het een goed idee om het te vernoemen naar de hostnaam van de machine. Omwille van dit voorbeeld wordt het MIJNKERNEL genoemd. Het kernelinstellingenbestand direct onder /usr/src opslaan kan een slecht idee zijn. In geval van problemen kan het verleidelijk zijn om /usr/src te verwijderen en opnieuw te beginnen. Nadat dit gedaan is kost het vaak maar enkele seconden om te realiseren dat het instellingenbestand voor de aangepaste kernel verwijderd is. Ook moet GENERIC niet gewijzigd worden, omdat het tijdens de volgende keer dat de broncodeboom bijgewerkt wordt, overschreven kan worden waarbij de wijzigingen in de kernelinstellingen verloren gaan. Het kan gewenst zijn om het kernelinstellingenbestand ergens anders op te slaan en een symbolische link naar het bestand in de map i386 aan te maken: &prompt.root; cd /usr/src/sys/i386/conf &prompt.root; mkdir /root/kernels &prompt.root; cp GENERIC /root/kernels/MIJNKERNEL &prompt.root; ln -s /root/kernels/MIJNKERNEL Nu moet MIJNKERNEL met de favoriete tekstverwerker bewerkt worden. Voor beginners is waarschijnlijk alleen de tekstverwerker vi beschikbaar, die te ingewikkeld is om hier te beschrijven, maar goed is beschreven in vele boeken in de bibliografie. &os; biedt ook de eenvoudigere tekstverwerker ee, die voor een beginner de keuze bij uitstek is. De commentaarregels in het begin kunnen gewijzigd worden om de persoonlijke instellingen of de veranderingen die gemaakt zijn ten opzichte van GENERIC weer te geven. &sunos; Voor degenen die een kernel op &sunos; of een andere BSD hebben gebouwd zal veel van dit bestand bekend voorkomen. Echter, voor degenen die van een ander besturingssysteem zoals DOS komen, kan het instellingenbestand GENERIC overdonderend overkomen, dus moeten de beschrijvingen in de sectie Het Instellingenbestand zorgvuldig opgevolgd worden. Als de broncodeboom gesynchroniseerd is met de nieuwste broncode van het &os;-project, moet altijd /usr/src/UPDATING gelezen worden voordat enige bijwerkstappen worden genomen. Dit bestand beschrijft alle belangrijke zaken en gebieden binnen de broncodestructuur die speciale aandacht nodig hebben. /usr/src/UPDATING komt altijd overeen met de lokale versie van de &os;-broncode en is daarom meer bijgewerkt met nieuwe informatie dan dit handboek. Nu moet de broncode voor de kernel gecompileerd worden. Een kernel bouwen Ga naar de map /usr/src: &prompt.root; cd /usr/src Compileer de kernel: &prompt.root; make buildkernel KERNCONF=MIJNKERNEL Installeer de nieuwe kernel: &prompt.user; make installkernel KERNCONF=MIJNKERNEL De volledige broncode van &os; is nodig om de kernel te bouwen. Bij het bouwen van een aangepaste kernel worden standaard alle kernelmodules ook herbouwd. Om de kernel sneller bij te werken en alleen de aangepaste modules te bouwen kan /etc/make.conf aangepast worden voordat de kernel wordt gebouwd: MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs Met deze variabele wordt een lijst van te bouwen modules ingesteld die gebouwd moeten worden in plaats van allen. - WITHOUT_MODULES = linux acpi sound/sound sound/driver/ds1 ntfs + WITHOUT_MODULES = linux acpi sound ntfs - Deze variabele stelt een lijst in van modules die moeten - worden uitgesloten van het bouwproces. Andere variabelen die - mogelijk ook nuttig zijn in het proces van het bouwen van een + Deze variabele stelt een lijst in van modules op het topniveau + die moeten worden uitgesloten van het bouwproces. Andere variabelen + die mogelijk ook nuttig zijn in het proces van het bouwen van een kernel staan beschreven in de handleiding voor &man.make.conf.5;. /boot/kernel.old De nieuwe kernel wordt naar de map /boot/kernel gekopieerd als /boot/kernel/kernel en de oude kernel wordt verplaatst naar /boot/kernel.old/kernel. Nu moet het systeem afgesloten worden en opnieuw worden opgestart om gebruik te maken van de nieuwe kernel. Er zijn wat instructies voor problemen oplossen aan het einde van dit hoofdstuk, die erg nuttig kunnen zijn als er iets misgaat. Vergeet niet om het gedeelte te lezen waarin staat uitgelegd hoe te herstellen als de nieuwe kernel niet opstart. Andere bestanden die te maken hebben met het opstartproces, zoals de boot &man.loader.8; en instellingen worden opgeslagen in /boot. Modules van derde partijen of eigen modules kunnen in /boot/kernel opgeslagen worden, alhoewel gebruikers erop bedacht moeten zijn dat het erg belangrijk is dat de modules synchroon worden gehouden met de gecompileerde kernel. Modules die niet bedoeld zijn om met de gecompileerde kernel te draaien kunnen voor instabiliteit of onjuistheden zorgen. Joel Dahl Bijgewerkt voor &os; 6.X door Het instellingenbestand kernel NOTES NOTES kernel instellingenbestand Het algemene formaat van een instellingenbestand is vrij eenvoudig. Elke regel bevat een sleutelwoord en één of meer argumenten. Omwille van de eenvoud bevatten de meeste regels maar één argument. Alles wat na een # komt, wordt als commentaar beschouwd en genegeerd. De volgende gedeelten beschrijven elk sleutelwoord, in het algemeen in dezelfde volgorde als GENERIC, alhoewel sommige samenhangende sleutelwoorden gegroepeerd zijn in een enkel gedeelte (zoals Netwerken) zelfs al staan ze verspreid in het bestand GENERIC. Een uitputtende lijst van architectuurafhankelijke opties en apparaten staat in het bestand NOTES, dat in dezelfde map staat als het bestand GENERIC. Architectuuronafhankelijke opties staan in /usr/src/sys/conf/NOTES. Sinds &os; 5.0 is er een nieuwe directief include beschikbaar om te gebruiken in instellingenbestanden. Hiermee kan een ander instellingenbestand logisch in het huidige worden opgenomen, waardoor het eenvoudig wordt om kleine veranderingen relatief aan een bestaand bestand te onderhouden. Als u bijvoorbeeld een GENERIC kernel nodig heeft met slechts een klein aantal aanvullende opties of stuurprogramma's, hoeft u hiermee slechts een delta ten opzichte van GENERIC te onderhouden: include GENERIC ident MIJNKERNEL options IPFIREWALL options DUMMYNET options IPFIREWALL_DEFAULT_TO_ACCEPT options IPDIVERT Veel beheerders zullen aanzienlijke voordelen in dit model zien vergeleken met de vroegere gewoonte om instellingenbestanden vanuit het niets te schrijven: het lokale instellingenbestand zal alleen lokale verschillen uitdrukken ten opzichte van een GENERIC kernel en wanneer upgrades worden uitgevoerd zullen nieuwe mogelijkheden die aan GENERIC zijn toegevoegd ook aan de lokale kernel worden toegevoegd tenzij dit expliciet verhinderd wordt met nooptions of nodevice. De rest van dit hoofdstuk behandelt de inhoud van een typisch instellingenbestand en de verschillende rollen die opties en apparaten spelen. Draai het volgende commando als root om een bestand te bouwen dat alle beschikbare opties bevat, wat normaliter voor testdoeleinden gedaan wordt: &prompt.root; cd /usr/src/sys/i386/conf && make LINT kernel instellingenbestand Het volgende is een voorbeeld van het kernelinstellingenbestand GENERIC met aanvullend commentaar omwille van de helderheid. Dit voorbeeld is redelijk gelijk aan de versie in /usr/src/sys/i386/conf/GENERIC. kernelopties machine machine i386 Dit is de architectuur van de machine. Het moet één van alpha, amd64, i386, ia64, pc98, powerpc of sparc64 zijn. kernelopties cpu cpu I486_CPU cpu I586_CPU cpu I686_CPU Bovenstaande optie geeft het type CPU aan dat in een systeem zit. De CPU-regel kan meerdere keren voorkomen (als bijvoorbeeld onbekend is of I586_CPU of I686_CPU gebruikt moet worden), maar voor een aangepaste kernel is het beter om alleen de aanwezige CPU aan te geven. Als er twijfel bestaat over het type CPU, kan het bestand /var/run/dmesg.boot worden bekeken voor de opstartberichten. kernelopties ident ident GENERIC Dit is de identificatie van de kernel. Dit moet veranderd worden in de naam van de kernel, dus MIJNKERNEL als de instructies van de voorgaande voorbeelden gevolgd zijn. De waarde in de string ident wordt afgebeeld wanneer de kernel opstart, dus is het handig om de nieuwe kernel een andere naam te geven als deze apart moet worden gehouden van de gebruikelijke kernel (als er bijvoorbeeld een experimentele kernel gebouwd wordt). #Om apparaatbindingen statisch in te compileren in plaats van via /boot/device.hints. #hints "GENERIC.hints" # Standaardlocatie voor devices. &man.device.hints.5; wordt gebruikt om opties van de programma's die de apparaten aansturen in te stellen. De standaardplaats die &man.loader.8; controleert tijdens het opstarten is /boot/device.hints. Met de optie hints is het mogelijk om deze aanwijzingen statisch in de kernel te compileren, waardoor er geen noodzaak is om een bestand device.hints in /boot aan te maken. makeoptions DEBUG=-g # Bouw kernel met gdb(1) debugsymbolen. Het normale bouwproces van &os; voegt debuginformatie toe wanneer de kernel met de optie gebouwd wordt, wat debuginformatie doorgeeft aan &man.gcc.1;. options SCHED_ULE # ULE taakplanner De standaard taakplanner voor &os;. Laat dit staan. options PREEMPTION # Zet kernelthreadpreëmptie aan Sta toe dat threads in de kernel worden gepreëmpt door threads met een hogere prioriteit. Het help bij interactiviteit en staat toe dat interruptthreads eerder draaien in plaats van te moeten wachten. options INET # internetwerken Netwerkondersteuning. Laat dit aanstaan, zelfs als een verbinding met een netwerk niet gepland is. De meeste programma's hebben tenminste een teruglusnetwerk nodig (dat wil zeggen het maken van netwerkverbindingen binnen de PC), dus dit is eigenlijk verplicht. options INET6 # IPv6 communicatieprotocollen Dit zet de IPv6-communicatieprotocollen aan. options FFS # Berkeley Fast Bestandssysteem Dit is het basisbestandssysteem voor de harde schijf. Laat dit erin staan als er vanaf de harde schijf wordt opgestart. options SOFTUPDATES # Schakel FFS Softupdates ondersteuning in Deze optie zet softupdates in de kernel aan en helpt om de schijftoegang voor schrijven te verhogen. Zelfs als deze functionaliteit door de kernel geleverd wordt, moet die voor specifieke schijven worden aangezet. Bekijk de uitvoer van &man.mount.8; om te zien of softupdates aanstaat voor de systeemschijven. Als de optie soft-updates niet zichtbaar is, dient deze geactiveerd te worden met behulp van &man.tunefs.8; voor bestaande bestandssystemen of &man.newfs.8; voor nieuwe bestandssystemen. options UFS_ACL # Ondersteuning voor toegangscontrolelijsten Met deze optie wordt de ondersteuning voor toegangscontrolelijsten aangezet. Hiervoor zijn uitgebreide attributen en UFS2 nodig. Een en ander wordt in detail beschreven in . ACL's staan standaard aan en moeten niet uitgezet worden in de kernel als ze al eerder op een bestandssysteem zijn gebruikt, omdat dit de toegangscontrolelijsten verwijdert en hierdoor de manier waarop bestanden beschermd worden op onvoorspelbare wijze verandert. options UFS_DIRHASH # Verbeter prestaties in grote mappen Deze optie bevat functionaliteit om schijfoperaties op grote mappen te versnellen, ten koste van extra geheugen. Deze staat normaalgesproken, zoals voor een grote server of interactief werkstation, aan en wordt uitgezet als &os; op een kleiner systeem wordt gebruikt waar geheugen het belangrijkste en schijfsnelheid minder belangrijk is, zoals voor een firewall. options MD_ROOT # MD is een potentieel rootapparaat Deze optie zet ondersteuning aan voor een virtuële schijf die in het geheugen wordt geïmplementeerd en als rootapparaat wordt gebruikt. kernelopties NFS kernelopties NFS_ROOT options NFSCLIENT # Netwerk Bestandssysteem Client options NFSSERVER # Netwerk Bestandssysteem Server options NFS_ROOT # NFS bruikbaar als /, NFSCLIENT nodig Het netwerkbestandssysteem. Dit kan weggelaten worden tenzij er gepland is om partities te aan te koppelen van een &unix; bestandsserver over TCP/IP. kernelopties MSDOSFS options MSDOSFS # MSDOS Bestandssysteem Het &ms-dos; bestandssysteem. Dit kan veilig weggelaten worden, tenzij er gepland is om een DOS-geformatteerde partitie van de harde schijf tijdens het opstarten aan te koppelen. Het wordt automatisch geladen als er voor de eerste keer een DOS-partitie wordt aangekoppeld, zoals boven beschreven. Bovendien geeft de uitstekende software emulators/mtools toegang tot DOS-floppies zonder dat ze aangekoppeld en afgekoppeld moeten worden en heeft het MSDOSFS helemaal niet nodig. options CD9660 # ISO 9660 Bestandssysteem Het ISO 9960-bestandssysteem voor CD-ROMs. Commentarieer dit uit als er geen CD-ROM drive aanwezig is of als er slechts af en toe gegevens-CD-ROMs aangekoppeld worden (aangezien het dynamisch geladen wordt als er voor de eerste keer een gegevens-CD-ROM aangekoppeld wordt). Audio-CD's hebben dit bestandssysteem niet nodig. options PROCFS # Procesbestandssysteem (vereist PSEUDOFS) Het procesbestandssysteem. Dit is een als-of bestandssysteem, aangekoppeld op /proc, dat programma's als &man.ps.1; in staat stelt om meer informatie over de draaiende processen te geven. Het is in de meeste omstandigheden niet nodig om PROCFS te gebruiken, omdat de meeste debug- en monitorgereedschappen zijn aangepast om zonder PROCFS te draaien: installaties koppelen dit bestandssysteem standaard niet aan. options PSEUDOFS # Pseudo-bestandssysteem raamwerk 6.X kernels die PROCFS gebruiken moeten ook ondersteuning voor PSEUDOFS opnemen. options GEOM_GPT # GUID Partitietabellen. Met deze optie kan een groot aantal partities op een enkele schijf aanwezig zijn. options COMPAT_43 # Compatibel met BSD 4.3 [ERIN HOUDEN!] Compatibiliteit met 4.3BSD. Laat dit aanstaan. Sommige programma's gedragen zich vreemd als dit uitgecommentarieerd wordt. options COMPAT_FREEBSD4 # Compatibel met &os; 4 Deze optie is nodig op &os; 5.X &i386; en Alpha systemen om ondersteuning te bieden aan applicaties die gecompileerd zijn op oudere versies van &os; en gebruik maken van oudere systeemaanroep-interfaces. Het is aanbevolen dat deze optie gebruikt wordt op alle &i386; en Alpha systemen die mogelijk oudere applicaties draaien. Voor platformen die pas in 5.X ondersteuning verwierven, zoals ia64 en &sparc64;, is deze optie niet nodig. options COMPAT_FREEBSD5 # Compatibel met &os;5 Deze optie is vereist in &os; 6.X en hoger om toepassingen die op &os; 5.X zijn gecompileerd en systeemaanroepinterfaces van &os; 5.X gebruiken te ondersteunen. options SCSI_DELAY=5000 # Vertraging (in ms) voordat SCSI wordt ondergezocht. Dit zorgt ervoor dat de kernel vijf seconden wacht voordat die elk SCSI-apparaat in het systeem onderzoekt. Als er alleen IDE-harde schijven zijn, kan deze optie genegeerd worden, anders kan geprobeerd worden dit getal te verlagen, om het opstarten te versnellen. Uiteraard moet deze waarde weer verhoogd worden als &os; problemen heeft om de SCSI-apparaten te herkennen. options KTRACE # ktrace(1) ondersteuning Dit schakelt kernelondersteuning voor het volgen processen in, wat handig is tijdens debuggen. options SYSVSHM # SYSV-stijl gedeeld geheugen Deze optie biedt System V gedeeld geheugen. Meestal wordt dit wegens de XSHM-uitbreiding in X gebruikt, waar door vele grafische programma's automatisch gebruik van wordt gemaakt voor extra snelheid. Als X gebruik wordt, is het raadzaam om dit op te nemen. options SYSVMSG # SYSV-stijl berichtwachtrijen Dit biedt ondersteuning voor System V berichten. Ook deze optie voegt slechts een paar honderd bytes aan de kernel toe. options SYSVSEM # SYSV-stijl semaforen Dit biedt ondersteuning voor System V semaforen. Het wordt minder vaak gebruikt, maar voegt slechts een paar honderd bytes aan de kernel toe. De optie van het commando &man.ipcs.1; geeft een lijst van alle processen die een van deze System V faciliteiten gebruikt. options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensies Dit biedt real-time-uitbreidingen die in de 1993 &posix; zijn toegevoegd. Bepaalde applicaties in de Portscollectie gebruiken deze (zoals &staroffice;). options KBD_INSTALL_CDEV # installeer een CDEV-ingang in /dev Deze optie is nodig om apparaatknooppunten voor het toetsenbord aan te maken in /dev. options ADAPTIVE_GIANT # Giant mutex is adaptief. Giant is de naam van een wederzijds uitsluitingsmechanisme (een sleep mutex) dat een grote verzameling kernelbronnen beschermt. Vandaag de dag is dit een onacceptabele prestatie-bottleneck die actief door sloten wordt vervangen die individuele bronnen beschermen. De optie ADAPTIVE_GIANT zorgt ervoor dat Giant in de verzamelingen van mutexen wordt opgenomen waar actief wordt opgespind. Dit betekent dat wanneer een thread de Giant-mutex wil nemen, maar die reeds door een thread op een andere CPU genomen is, de eerste thread blijft draaien en wacht tot er een slot vrijkomt. Normaalgesproken zou de thread weer gaan slapen en wachten op de volgende kans om te draaien. Laat dit er in geval van twijfel instaan. Merk op dat in &os; 8.0-CURRENT en later alle mutexen standaard adaptief zijn, tenzij ze expliciet op niet-adaptief zijn gezet door met de optie NO_ADAPTIVE_MUTEXES te compileren. Een gevolg is dat Giant nu standaard adaptief is, en dat de optie ADAPTIVE_GIANT uit de kernelinstellingen is verwijderd. kernelopties SMP device apic # I/O APIC Het apic-apparaat zet de ondersteuning voor I/O-APIC voor het afleveren van interrupts aan. Het apic-apparaat kan zowel in UP- als in SMP-kernels gebruikt worden, maar is noodzakelijk voor SMP-kernels. Voeg options SMP toe om ondersteuning voor meerdere processoren op te nemen. Het apic-apparaat bestaat alleen in de i386-architectuur, deze instelregel dient niet op andere architecturen gebruikt te worden. device eisa Neem dit op voor een EISA-moederbord. Dit zet ondersteuning voor zelfdetectie en -instelling aan voor alle apparaten op de EISA-bus. device pci Neem dit op voor een PCI-moederbord. Dit zet ondersteuning voor zelfdetectie van PCI-kaarten en gatewaying van PCI-naar-ISA-bus aan. # Floppy drives device fdc Dit is de controller voor de floppydrive. # ATA- en ATAPI-apparaten device ata Dit stuurprogramma biedt ondersteuning aan alle ATA- en ATAPI-apparaten. Er is slechts één device ata-regel nodig om de kernel alle PCI ATA/ATAPI-apparaten te laten ontdekken op moderne machines. device atadisk # ATA schijven Dit is samen met device ata nodig voor ATA schijven. device ataraid # ATA RAID schijven Dit is samen met device ata nodig voor ATA RAID-schijven. device atapicd # ATAPI CD-ROM drives Dit is samen met device ata nodig voor ATAPI CD-ROM drives. device atapifd # ATAPI floppy drives Dit is samen met device ata nodig voor ATAPI floppydrives. device atapist # ATAPI tape drives Dit is samen met device ata nodig voor ATAPI tapedrives. options ATA_STATIC_ID # Statische apparaatnummering Dit zorgt ervoor dat de controller statisch nummert. Zonder deze optie worden nummers dynamisch toegewezen. # SCSI Controllers device ahb # EISA AHA1742 familie device ahc # AHA2940 en onboard AIC7xxx apparaten options AHC_REG_PRETTY_PRINT # Print registerbitvelden in # debuguitvoer. Voegt ~128k # aan stuurprogramma toe. device ahd # AHA39320/29320 en onboard AIC79xx apparaten options AHD_REG_PRETTY_PRINT # Print registerbitvelden in # debuguitvoer. Voegt ~215k # aan stuurprogramma toe. device amd # AMD 53C974 (Teckram DC-390(T)) device isp # Qlogic familie #device ispfw # Firmware voor QLogic HBAs- normaliter een module device mpt # LSI-Logic MPT-Fusion #device ncr # NCR/Symbios Logic device sym # NCR/Symbios Logic (nieuwere chipsets + die van `ncr') device trm # Tekram DC395U/UW/F DC315U adapters device adv # Advansys SCSI adapters device adw # Advansys wide SCSI adapters device aha # Adaptec 154x SCSI adapters device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60. device bt # Buslogic/Mylex MultiMaster SCSI adapters device ncv # NCR 53C500 device nsp # Workbit Ninja SCSI-3 device stg # TMC 18C30/18C50 SCSI controllers. Commentarieer de regels uit voor apparaten die niet in het systeem aanwezig zijn. Als het een systeem met alleen IDE apparaten betreft, kunnen ze allemaal weggelaten worden. De regels met *_REG_PRETTY_PRINT zijn debugopties voor hun respectievelijke stuurprogramma's. # SCSI randapparaten device scbus # SCSI bus (nodig voor SCSI) device ch # SCSI media changers device da # Direct Access (schijven) device sa # Sequential Access (tape, enzovoort) device cd # CD device pass # Passthrough apparaat (directe SCSI-toegang) device ses # SCSI Omgevingsdiensten (en SAF-TE) SCSI-aanhangsels. Ook hier geldt dat apparaten die niet aanwezig zijn uitgecommentarieerd kunnen worden, of als alleen IDE-hardware aanwezig aanwezig is, ze allemaal weggelaten kunnen worden. Het USB-stuurprogramma &man.umass.4; en enkele andere stuurprogramma's gebruiken het SCSI-subsysteem, alhoewel ze geen echte SCSI-apparaten zijn. Daarom mag SCSI-ondersteuning niet verwijderd worden als dit soort stuurprogramma's in de kernelinstellingen worden opgenomen. # RAID controllers met interfaces naar het SCSI subsysteem device amr # AMI MegaRAID device arcmsr # Areca SATA II RAID device asr # DPT SmartRAID V, VI en Adaptec SCSI RAID device ciss # Compaq Smart RAID 5* device dpt # DPT Smartcache III, IV - Zie NOTES voor opties device hptmv # Highpoint RocketRAID 182x device rr232x # Highpoint RocketRAID 232x device iir # Intel Integrated RAID device ips # IBM (Adaptec) ServeRAID device mly # Mylex AcceleRAID/eXtremeRAID device twa # 3ware 9000 series PATA/SATA RAID # RAID controllers device aac # Adaptec FSA RAID device aacp # SCSI passthrough voor aac (heeft CAM nodig) device ida # Compaq Smart RAID device mfi # LSI MegaRAID SAS device mlx # Mylex DAC960 famile device pst # Promise Supertrak SX6000 device twe # 3ware ATA RAID Ondersteunde RAID-controllers. Als een van deze niet aanwezig is, kan deze uitgecommentarieerd of verwijderd worden. # atkbdc0 bestuurt het toetsenbord en de PS/2 muis device atkbdc # AT toetsenbordcontroller De toetsenbordcontroller (atkbdc) biedt I/O-diensten aan voor het AT-toetsenbord en het PS/2-type van aanwijsapparaten. Deze controller is noodzakelijk voor het toetsenbordstuurprogramma (atkbd) en het PS/2-aanwijsapparaatstuurprogramma (psm). device atkbd # AT toetsenbord Het stuurprogramma atkbd biedt samen met de controller atkbdc toegang tot het AT84-toetsenbord of het uitgebreide AT-toetsenbord dat verbonden is met de controller voor het AT-toetsenbord. device psm # PS/2 muis Dit apparaat kan gebruikt worden als de muis in de PS/2-muispoort wordt geplugd. device kbdmux # toetsenbordmultiplexer Basisondersteuning voor multiplexing van toetsenborden. Als u niet van plan bent om meerdere toetsenborden op het systeem te gebruiken, kunt u deze regel veilig verwijderen. device vga # VGA videokaart stuurprogramma Het stuurprogramma voor de videokaart. device splash # Splash screen en screensaver ondersteuning Een splash-scherm tijdens het opstarten! Screensavers hebben deze optie ook nodig. # syscons is het standaard consolestuurprogramma, lijkt op een SCO console device sc sc is het standaard consolestuurprogramma en lijkt op een SCO-console. Aangezien de meeste programma's die met een volledig scherm werken de console via een terminaldatabase zoals termcap benaderen, moet het niet uitmaken of dit of vt, het VT220-compatibele consolestuurprogramma, gebruikt wordt. Wanneer er aangemeld wordt, dient de variabele TERM op scoansi gezet worden indien programma's die met een volledig scherm werken problemen hebben om met dit console te draaien. # Schakel dit in voor het pcvt (VT220 compatibele) consolestuurprogramma #device vt #options XSERVER # ondersteuning voor X server op een vt console #options FAT_CURSOR # begin met een blokcursor Dit is een VT220-compatibel consolestuurprogramma, achterwaarts compatibel met de VT100/102. Het werkt goed op enkele laptops die hardware-incompatibiliteiten hebben met sc. Ook dient de variabele TERM op vt100 of vt220 gezet te worden bij het aanmelden. Dit stuurprogramma kan ook nuttig zijn wanneer er verbinding wordt gemaakt met een groot aantal verschillende machines in een netwerk, waarbij de ingangen termcap of terminfo voor het apparaat sc vaak niet beschikbaar zijn. vt100 is op bijna elk platform beschikbaar. device agp Neem dit op als er een AGP-kaart in het systeem aanwezig is. Dit zet ondersteuning voor AGP aan, en ondersteuning voor AGP GART voor borden die deze mogelijkheden hebben. APM # Ondersteuning voor energiebeheer (zie NOTES voor meer opties) #device apm Ondersteuning voor geavanceerd energiebeheer (Advanced Power Management). Dit is nuttig voor laptops, alhoewel dit standaard uitgeschakeld is in GENERIC. # Schakel suspend/resume ondersteuning voor de i8254 in. device pmtimer Het stuurprogramma voor het timerapparaat voor energiebeheergebeurtenissen, zoals APM en ACPI. # PCCARD (PCMCIA) ondersteuning. # PCMCIA en cardbus bridge ondersteuning. device cbb # cardbus (yenta) bridge device pccard # PC Card (16-bit) bus device cardbus # CardBus (32-bit) bus Ondersteuning voor PCMCIA. Dit is wenselijk voor laptopgebruikers. # Serial (COM) poorten device sio # 8250, 16[45]50-gebaseerde seriële poorten Dit zijn de seriële poorten waarnaar in de wereld van &ms-dos;/&windows; verwezen wordt als COM-poorten. Als er een intern modem op COM4 en een seriële poort op COM2 aanwezig is, moet het IRQ van het modem in 2 worden veranderd (om duistere technische redenen geldt dat IRQ2 = IRQ9) om er vanuit &os; toegang toe te krijgen. Als er een multipoort seriële kaart aanwezig is, staat in &man.sio.4; meer informatie over de juiste waarden die aan /boot/device.hints toegevoegd moeten worden. Sommige videokaarten (vaak gebaseerd op S3 chips) gebruiken IO-adressen van de vorm 0x*2e8, en omdat vele goedkope serieële kaarten de 16-bits IO-adresruimte niet volledig decoderen, botsen ze met deze kaarten waardoor de COM4-poort praktisch onbruikbaar is. Elke serieële poort moet een uniek IRQ hebben (tenzij er gebruik wordt gemaakt van een van de multipoortkaarten waarbij gedeelde interrupts ondersteund worden), dus kunnen de standaard IRQ's voor COM3 en COM4 niet gebruikt worden. # Parallelle poort device ppc Dit is de interface voor de parallelle poort op de ISA-bus. device ppbus # Parallelle poortbus (verplicht) Biedt ondersteuning voor de parallelle poortbus. device lpt # Printer Ondersteuning voor parallelle poort-printers. Alle van de bovenstaande drie zijn noodzakelijk om ondersteuning voor parallelle printers aan te zetten. device plip # TCP/IP over parallel Dit is het stuurprogramma voor de parallelle netwerkinterface. device ppi # Parallelle poort interface apparaat De algemene I/O (geek-poort) + IEEE1284 I/O. #device vpo # scbus en da verplicht zipdrive Dit is voor een Iomega Zipdrive. Hiervoor is ondersteuning voor scbus en da nodig. De beste prestaties worden gehaald met poorten in EPP 1.9-modus. #device puc Dit dient uitgecommentarieerd te worden indien er een domme seriële of parallelle PCI-kaart aanwezig is die ondersteund wordt door het &man.puc.4; verbindingsstuurprogramma. # PCI Ethernet NIC's. device de # DEC/Intel DC21x4x (Tulip) device em # Intel PRO/1000 adapter Gigabit Ethernet Card device ixgb # Intel PRO/10GbE Ethernet Card device txp # 3Com 3cR990 (Typhoon) device vx # 3Com 3c590, 3c595 (Vortex) Verscheidene PCI-netwerkkaartstuurprogramma's. Degenen die niet in het systeem aanwezig zijn kunnen uitgecommentarieerd of verwijderd worden. # PCI Ethernet NIC's die de MII bus controller code gebruiken. # NB: 'device miibus' moet behouden blijven om deze NIC's te kunnen gebruiken! device miibus # MII bus ondersteuning Ondersteuning voor MII-bus is noodzakelijk voor sommige PCI 10/100 Ethernet-NICs, namelijk voor diegenen die MII-geldige transceivers gebruiken of interfaces voor transceiverbesturing implementeren die als een MII werken. Door device miibus aan de kernelinstellingen toe te voegen wordt de ondersteuning voor de generieke miibus-API en voor alle PHY-stuurprogramma's opgenomen, waaronder een generieke voor PHYs die niet specifiek door een individueel stuurprogramma worden behandeld. device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet device bfe # Broadcom BCM440x 10/100 Ethernet device bge # Broadcom BCM570xx Gigabit Ethernet device dc # DEC/Intel 21143 en verschillende gelijkwerkenden device fxp # Intel EtherExpress PRO/100B (82557, 82558) device lge # Level 1 LXT1001 gigabit Ethernet device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet device nge # NatSemi DP83820 gigabit Ethernet device nve # nVidia MCP on-board Ethernet Networking device pcn # AMD Am79C97x PCI 10/100 (voorrang op 'lnc') device re # RealTek 8139C+/8169/8169S/8110S device rl # RealTek 8129/8139 device sf # Adaptec AIC-6915 (Starfire) device sis # Silicon Integrated Systems SiS 900/SiS 7016 device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet device ste # Sundance ST201 (D-Link DFE-550TX) device stge # Sundance/Tamarack TC9021 gigabit Ethernet device ti # Alteon Networks Tigon I/II gigabit Ethernet device tl # Texas Instruments ThunderLAN device tx # SMC EtherPower II (83c170 EPIC) device ge # VIA VT612x gigabit Ethernet device vr # VIA Rhine, Rhine II device wb # Winbond W89C840F device xl # 3Com 3c90x (Boomerang, Cyclone) Stuurprogramma's die gebruik maken van de MII bus-controllercode. # ISA Ethernet NIC's. Inclusief pccard NIC's. device cs # Crystal Semiconductor CS89x0 NIC # 'device ed' heeft 'device miibus' nodig device ed # NE[12]000, SMC Ultra, 3c503, DS8390 kaarten device ex # Intel EtherExpress Pro/10 en Pro/10+ device ep # Etherlink III-gebaseerde kaarten device fe # Fujitsu MB8696x-gebaseerde kaarten device ie # EtherExpress 8/16, 3C507, StarLAN 10, etc. device lnc # NE2100, NE32-VL Lance Ethernet kaarten device sn # SMC's 9000 serie Ethernet chips device xe # Xircom pccard Ethernet # ISA apparaten die de oude ISA shims gebruiken #device le ISA Ethernetstuurprogramma's. In /usr/src/sys/i386/conf/NOTES staan details over welke kaarten door welk stuurprogramma ondersteund worden. # Draadloze NIC kaarten device wlan # 802.11 ondersteuning Generieke 802.11 ondersteuning. Deze regel is vereist voor draadloos netwerken. device wlan_wep # 802.11 WEP-ondersteuning device wlan_ccmp # 802.11 CCMP-ondersteuning device wlan_tkip # 802.11 TKIP-ondersteuning Crypto-ondersteuning voor 802.11-apparaten. Deze regels zijn nodig als u van plan bent om versleuteling en 802.11i-beveiligingsprotocollen te gebruiken. device an # Aironet 4500/4800 802.11 draadloze NIC's. device ath # Atheros PCI/CardBus NICs device ath_hal # Atheros HAL (Hardware Access Layer) device ath_rate_sample # SampleRate verzendsnelheidbeheer voor ath device awi # BayStack 660 en anderen device ral # Ralink Technologies RT2500 draadloze NICs. device wi # WaveLAN/Intersil/Symbol 802.11 draadloze NIC's. #device wl # Oudere niet-802.11 Wavelan draadloze NIC. Ondersteuning voor verscheidene draadloze kaarten. # Pseudo-apparaten device loop # Netwerk teruglussen Dit is het generieke teruglusapparaat voor TCP/IP. Als telnet of FTP op localhost (ook bekend als 127.0.0.1) gebruikt wordt, loopt dat via dit apparaat. Dit is verplicht. device random # Entropy apparaat Cryptografisch veilige willekeurige getallengenerator. device ether # Ethernet ondersteuning ether is allen noodzakelijk als er een Ethernetkaart aanwezig is. Het bevat code voor het generieke Ethernetprotocol. device sl # Kernel SLIP sl dient voor SLIP-ondersteuning. Dit is bijna geheel overgenomen door PPP, wat eenvoudiger is op te zetten, beter geschikt is voor modem-naar-modem-verbindingen en krachtiger is. device ppp # Kernel PPP Dit dient voor PPP-ondersteuning van inbelverbindingen door de kernel. Er is ook een versie van PPP als gebruikersapplicatie geïmplementeerd die tun gebruikt en meer flexibiliteit en mogelijkheden biedt zoals demand-bellen. device tun # Packet tunnel. Dit wordt gebruikt door de gebruikers-PPP-software. In PPP staat meer informatie. device pty # Pseudo-ttys (telnet, etc.) Dit is een pseudo-terminal of gesimuleerde aanmeldpoort. Die wordt gebruikt door binnenkomende sessies van telnet en rlogin, door xterm en voor sommige andere applicaties zoals Emacs. device md # Geheugenschijven Pseudo-apparaten die een schijf in het geheugen implementeren. device gif # IPv6 en IPv4 tunnelen Dit implementeert IPv6-over-IPv4-tunneling, IPv4-over-IPv6-tunneling, IPv4-over-IPv4-tunneling en IPv6-over-IPv6-tunneling. Het apparaat gif is zelfklonend en zal naar behoefte apparaatknooppunten aanmaken. device faith # IPv6-naar-IPv4-relay (vertaling) Dit pseudo-apparaat onderschept pakketten die ernaar verzonden worden en leidt ze om naar het IPv4/IPv6-vertaaldaemon. # Het `bpf' apparaat schakelt de Berkeley Pakketfilter in. # Wees bewust van de administratieve consequenties die dit heeft! # 'bpf' is nodig bij gebruik van DHCP. device bpf # Berkeley pakketfilter Dit is het Berkeley Pakketfilter. Dit pseudo-apparaat staat netwerkinterfaces toe om in luistermodus gezet te worden, zodat elk pakket op een uitzendnetwerk (bijvoorbeeld een Ethernet) onderschept wordt. Deze pakketten kunnen naar schijf onderschept en/of onderzocht worden met het programma &man.tcpdump.1;. Het apparaat &man.bpf.4; wordt ook gebruikt door &man.dhclient.8; om het IP-adres van de standaardrouter (gateway) te verkrijgen, enzovoorts. Als DHCP gebruikt wordt, dient dit ingeschakeld te blijven. # USB-ondersteuning device uhci # UHCI PCI->USB interface device ohci # OHCI PCI->USB interface device ehci # EHCI PCI->USB interface (USB 2.0) device usb # USB Bus (verplicht) #device udbp # USB Double Bulk Pipe apparaten device ugen # Generic device uhid # Human Interface Devices device ukbd # Toetsenbord device ulpt # Printer device umass # Schijven/Massaopslag - heeft scbus en da nodig device ums # Muis device ural # Ralink Technology RT2500USB draadloze NICs device urio # Diamond Rio 500 MP3 speler device uscanner # Scanners # USB Ethernet, heeft mii nodig device aue # ADMtek USB Ethernet device axe # ASIX Electronics USB Ethernet device cdce # Generic USB over Ethernet device cue # CATC USB Ethernet device kue # Kawasaki LSI USB Ethernet device rue # RealTek RTL8150 USB Ethernet Ondersteuning voor verscheidene USB-apparaten. # FireWire ondersteuning device firewire # FireWire bus code device sbp # SCSI over FireWire (scbus en da nodig) device fwe # Ethernet over FireWire (niet-standaard!) Ondersteuning voor verscheidene Firewire-apparaten. Meer informatie en aanvullende apparaten die door &os; ondersteund worden staan in /usr/src/sys/i386/conf/NOTES. Instellingen bij veel geheugen (<acronym>PAE</acronym>) Physical Address Extensions (PAE) veel geheugen Sommige machines (PAE) hebben meer geheugen nodig dan limiet van 4 gigabyte op User+Kernel Virtual Adress (KVA) ruimte. Vanwege deze limiet voegde Intel ondersteuning toe voor toegang tot 36-bits fysieke adresruimte in de &pentium; Pro en nieuwere lijn van CPU's. De Physical Address Extension (PAE) mogelijkheden van de &intel; &pentium; Pro en nieuwere CPU's staan geheugenhoeveelheden toe tot 64 gigabyte. &os; biedt ondersteuning voor deze mogelijkheid via de kernelinsteloptie , die beschikbaar is in alle recent uitgegeven versies van &os;. Vanwege de beperkingen van de geheugenarchitectuur van Intel wordt er geen onderscheid gemaakt tussen geheugen boven of beneden 4 gigabytes. Geheugen dat boven de 4 gigabytes is toegewezen wordt gewoon bij het beschikbare gevoegd. Om ondersteuning voor PAE in de kernel aan te zetten, dient de volgende regel aan het kernelinstellingenbestand te worden toegevoegd: options PAE De ondersteuning voor PAE in &os; is alleen beschikbaar voor &intel; IA-32-processoren. Ook dient opgemerkt te worden dat ondersteuning voor PAE nog niet wijdverbreid getest is en als betakwaliteit beschouwd dient te worden vergeleken met andere stabiele kenmerken van &os;. Ondersteuning voor PAE in &os; heeft enige beperkingen: Een proces kan niet meer dan 4 gigabyte VM-ruimte krijgen; Apparaatstuurprogramma's die geen gebruik maken van de &man.bus.dma.9;-interface zullen gegevenscorruptie veroorzaken in een kernel die PAE aan heeft staan en hun gebruik wordt afgeraden. Om deze reden wordt er de kernelinstellingenbestand voor de PAE-kernel geleverd met &os;, dat alle stuurprogramma's uitsluit waarvan niet bekend is dat ze werken in een kernel die PAE aan heeft staan; Sommige systeeminstellingen bepalen het geheugenbronverbruik aan de hand van de hoeveelheid beschikbaar fysiek geheugen. Zulke instellingen kunnen onnodig veel toewijzen vanwege de grote hoeveelheid geheugen in een PAE systeem. Een voorbeeld hiervan is de sysctl , die het maximum aantal vnodes dat in de kernel aanwezig mag zijn beheert. Het is aan te raden om deze en andere van dit soort instellingen aan te passen aan een redelijke waarde; Het kan nodig zijn om de virtuele kerneladresruimte (KVA) te vergroten of om het aantal kernelbronnen dat veel gebruikt wordt (zie boven) te verminderen om zo uitputting van KVA te voorkomen. De kerneloptie kan gebruikt worden om de KVA-ruimte te vergroten. Om prestatie- en stabiliteitsredenen is het aan te raden om &man.tuning.7; te raadplegen. &man.pae.4; bevat bijgewerkte informatie over de ondersteuning voor PAE in &os;. Problemen oplossen Er zijn vier probleemcategoriën die op kunnen treden tijdens het bouwen van een aangepaste kernel: config faalt Als het commando &man.config.8; faalt bij het verwerken van de kernelbeschrijving, is er waarschijnlijk ergens een eenvoudige fout gemaakt. Gelukkig geeft &man.config.8; het nummer van de regel weer waarmee het problemen had, dus kan snel de regel gevonden worden waarin de fout zit. In het onderstaande voorbeeld dient gecontroleerd te worden of het sleutelwoord juist is ingevoerd door het met de kernel GENERIC of een andere referentie te vergelijken: config: line 17: syntax error make faalt Als make faalt, duidt dit meestal op een fout in de kernelbeschrijving die niet erg genoeg is om door &man.config.8; opgemerkt te worden. De instellingen dienen nogmaals nagekeken te worden. Als het probleem nog steeds niet is op te lossen, stuur dan een mail naar de &a.questions; met de kernelinstellingen. Dat leidt meestal snel tot een diagnose. De kernel start niet op Als de nieuwe kernel niet opstart of de apparaten niet herkent is kalmte geboden. &os; heeft een uitstekend mechanisme om van niet-compatibele kernels te herstellen. De gewenste kernel om mee op te starten kan vanuit de &os; boot loader gekozen worden. Als het systeemopstartmenu verschijnt, kan deze gekozen worden. Selecteer de optie Escape to a loader prompt, nummber zes. Typ op de prompt unload kernel en daarna boot /boot/kernel.old/kernel of de bestandsnaam van een andere kernel die correct opstart. Als de kernelinstellingen gewijzigd worden, is het altijd aan te raden om een kernel bij de hand te houden waarvan bekend is dat die juist werkt. Nadat er met een goede kernel is opgestart, kan het instellingenbestand gecontroleerd worden en geprobeerd worden om de kernel nogmaals te bouwen. Een behulpzame bron is het bestand /var/log/messages, dat onder andere alle kernelberichten van alle keren dat er succesvol is opgestart vastlegt. Ook geeft &man.dmesg.8; alle kernelberichten weer van de huidige opstartprocedure. Als er problemen zijn met het bouwen van een kernel, dient een GENERIC, of een andere kernel waarvan bekend is dat die werkt, bewaard te worden onder een andere naam die niet verwijderd wordt als de volgende kernel gebouwd wordt. Er kan niet op kernel.old vertrouwd worden omdat bij de installatie van een nieuwe kernel kernel.old overschreven wordt met de laatst geïnstalleerde kernel, die niet hoeft te werken. Ook dient de werkende kernel zo snel mogelijk naar de juiste plaats /boot/kernel verplaatst te worden, omdat anders commando's als &man.ps.1; eventueel onjuist werken. Hiervoor dient simpelweg de map met de goede kernel hernoemd te worden: &prompt.root; mv /boot/kernel /boot/kernel.slecht &prompt.root; mv /boot/kernel.goed /boot/kernel De kernel werkt, maar &man.ps.1; werkt niet meer Als er een andere versie van de kernel is geïnstalleerd dan degene waarmee de systeemgereedschappen gebouwd zijn, bijvoorbeeld een kernel voor -CURRENT op een -RELEASE-systeem, werken vele systeemstatuscommando's als &man.ps.1; en &man.vmstat.8; niet langer. De wereld moet opnieuw gecompileerd en geïnstalleerd worden en met dezelfde broncodestructuur als de kernel zijn gebouwd. Dit is een van de redenen waarom het normaliter geen goed idee is om een afwijkende versie van de kernel ten opzichte van de rest van de wereld te gebruiken. diff --git a/nl_NL.ISO8859-1/books/handbook/l10n/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/l10n/chapter.sgml index 9bbc4627c0..5b3c00a1d7 100644 --- a/nl_NL.ISO8859-1/books/handbook/l10n/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/l10n/chapter.sgml @@ -1,1098 +1,1097 @@ Andrey Chernov Bijgedragen door Michael C. Wu Herschreven door René Ladan Vertaald door Lokalisatie - I18N/L10N gebruiken en instellen Overzicht &os; is een zeer gedistribueerd project met gebruikers over de gehele wereld. Dit hoofdstuk behandelt de internationalisatie- en lokalisatie-eigenschappen van &os; die niet-Engelssprekende gebruikers echt werk laten verzetten. Er zitten veel aspecten van de i18n-implementatie in zowel de systeem- als applicatieniveaus, dus waar mogelijk wordt de lezer verwezen naar meer specifieke bronnen. Na dit hoofdstuk weet de lezer: Hoe verschillende talen en locales gecodeerd zijn op moderne besturingssystemen. Hoe de locale in te stellen voor een login-shell. Hoe de console voor niet-Engelse talen in te stellen. Hoe het X Window systeem effectief met meerdere talen te gebruiken. Waar meer informatie te vinden over het schrijven van i18n-respecterende applicaties. Veronderstelde voorkennis: Weten hoe aanvullende applicaties van derde partijen geïnstalleerd worden (). Beginselen Wat is I18N/L10N? internationalisatie lokalisatie lokalisatie Ontwikkelaars hebben internationalisatie (internationalization afgekort tot de term I18N, de eerste en de laatste letter en het aantal tussenliggende letters. L10N gebruikt hetzelfde schema voor naamgeving en komt van localization. Samen staan I18N/L10N methoden, protocollen en applicaties gebruikers toe de taal van hun keuze te gebruiken. I18N-applicaties zijn geprogrammeerd door gebruik te maken van I18N-gereedschappen van bibliotheken. Daarmee kunnen ontwikkelaars een eenvoudig bestand schrijven en menu's en teksten weergeven in elke taal. Programmeurs worden door het &os; Project sterk aangemoedigd deze conventie te volgen. Waarom I18N/L10N gebruiken? I18N/L10N wordt gebruikt als een gebruiker gegevens wil bekijken, invoeren of verwerken in niet-Engelse talen. Welke talen worden ondersteund door I18N? I18N en L10N zijn niet &os; specifiek. Momenteel kan er gekozen worden uit de meeste grote wereldtalen, inclusief maar niet beperkt tot: Chinees, Duits, Japans, Koreaans, Frans, Russisch en Vietnamees. Lokalisatie gebruiken In al zijn pracht is I18N niet &os; specifiek maar een conventie. Het &os; Project moedigt iedereen aan &os; te helpen deze conventie te gebruiken. locale Lokalisatie-instellingen zijn gebaseerd op drie hoofdtermen: Taalcode, Landcode en Codering. Localenamen zijn als volgt opgebouwd: Taalcode_Landcode.Codering Taal- en landcodes taalcodes landcodes Om een &os;-systeem (of een ander I18N-ondersteunend &unix; achtig systeem) te lokaliseren naar een bepaalde taal, moet de gebruiker de codes voor het specifieke land en taal achterhalen. Landcodes geven applicaties aan welke variatie van de gegeven taal gebruikt moet worden. Ook webbrowsers, SMTP/POP-servers, webservers, enz. maken beslissingen gebaseerd op die codes. Hieronder staan voorbeelden van taal- en landcodes: Taal- en landcode Omschrijving en_US Engels - Verenigde Staten ru_RU Russisch voor Rusland zh_TW Traditioneel Chinees voor Taiwan Coderingen coderingen ASCII Sommige talen gebruiken andere ASCII-coderingen dan 8-bit, wijde of multibyte karakters, zie &man.multibyte.3;. Oudere programma's herkennen die niet en interpreteren ze foutief als controlekarakters aan. Afhankelijk van de implementatie moeten gebruikers eventueel een applicatie met wijde of multibyte karakterondersteuning compileren, of hem correct instellen. Om wijde of multibyte karakters in te kunnen voeren en te kunnen verwerken levert de &os; Portscollectie voor elke taal programma's. Hiervoor staat I18N-documentatie in de respectievelijke &os; Port. Voor het bouwen van een gewenste applicatie met lokalisatie is het verstandig de applicatiedocumentatie te bekijken om te bepalen hoe de juiste waarden doorgegeven kunnen worden naar configure, Makefile of de compiler. Houd rekening met: Taalspecifieke enkele C-karakters karakterverzamelingen (zie &man.multibyte.3;), bijvoorbeeld ISO8859-1, ISO-8859-15, KOI8-R of CP437. Wijde of multibyte coderingen, bijvoorbeeld EUC of Big5. Een lijst met actieve karakterverzamelingen staat bij de IANA Registry. &os; gebruikt in plaats hiervan X11-compatible locale-coderingen. I18N applicaties In het &os; Ports en Package systeem hebben I18N-applicaties I18N in hun naam zodat ze eenvoudig herkend kunnen worden. Toch ondersteunen ze niet altijd iedere mogelijk gewenste taal. Locale instellen Meestal is het voldoende om de waarde van de localenaam te exporteren als LANG in de login-shell. Dit kan door die waarde in ~/.login_conf van de gebruiker of in ~/.profile, ~/.bashrc of ~/.cshrc) van de gebruiker te zetten. Het is niet nodig om localedeelverzamelingen als LC_CTYPE of LC_CTIME in te stellen. Bij de taalspecifieke &os; documentatie staat vaak nog informatie. De twee volgende omgevingsvariabelen moeten in de instellingenbestanden ingesteld worden: POSIX LANG voor de &posix; &man.setlocale.3; functies. MIME MM_CHARSET voor de MIME karakters voor applicaties. Dit is inclusief het instellen van de gebruikers-shell, het instellen van de specifieke applicatie en de instellingen voor X11. Methoden om locale in te stellen locale loginklasse Er zijn twee methoden om de locale in te stellen en beiden worden hieronder beschreven. De eerste (aanbevolen) methode is door middel van het toekennen van omgevingsvariabelen in de loginklasse en de tweede is mogelijk door middel van het toevoegen van de omgevingsvariabelen aan het opstartbestand van de systeem-shell. Methode loginklasse Deze methode biedt de mogelijkheid om omgevingsvariabelen die nodig zijn voor de localenaam en MIME karakterverzamelingen éénmalig voor elke mogelijke shell toe te kennen in plaats van door toekenning via het opstartbestand van elke shell. Gebruikersinstellingen kunnen door de gebruiker zelf worden gemaakt en voor Beheerdersinstellingen zijn superuser-rechten nodig. Gebruikersinstellingen Hieronder staat een minimaal voorbeeld van een .login_conf bestand in de thuismap van een gebruiker die beide variabelen heeft ingesteld op Latin-1 codering: me:\ :charset=ISO-8859-1:\ :lang=de_DE.ISO8859-1: traditioneel Chinees BIG-5 codering Hieronder staat is een voorbeeld van een .login_conf die variabelen instelt voor traditioneel Chinees in BIG-5 codering. Er zijn veel andere variabelen ingesteld zijn omdat sommige software localevariabelen niet correct respecteert voor Chinees, Japans, en Koreaans. # Gebruikers die geen valuta eenheden of tijdformaten voor Taiwan # willen gebruiken kunnen handmatig elke variabele wijzigen. me:\ :lang=zh_TW.Big5:\ :setenv=LC_ALL=zh_TW.Big:\ :setenv=LC_COLLATE=zh_TW.Big5:\ :setenv=LC_CTYPE=zh_TW.Big5:\ :setenv=LC_MESSAGES=zh_TW.Big5:\ :setenv=LC_MONETARY=zh_TW.Big5:\ :setenv=LC_NUMERIC=zh_TW.Big5:\ :setenv=LC_TIME=zh_TW.Big5:\ :charset=big5:\ :xmodifiers="@im=gcin": # Stel gcin in als XIM invoerserver Zie Beheerdersinstellingen en &man.login.conf.5; voor meer details. Beheerdersinstellingen Er dient gecontroleerd te worden of loginklasse voor gebruikers, /etc/login.conf, de juiste taal instelt door de volgende instellingen in /etc/login.conf: taalnaam:accountstitel:\ :charset=MIME_karakterverzameling: :lang=localenaam:\ :tc=default: Voor het bovenstaande voorbeeld dat gebruik maakt van Latin-1 ziet dat er als hieronder uit: german:Duitse gebruikersaccounts:\ :charset=ISO-8859-1:\ :lang=de_DE.ISO8859-1:\ :tc=default: Voer voordat de gebruikers login class wordt gewijzigd het volgende uit: &prompt.root; cap_mkdb /etc/login.conf om de nieuwe configuratie in /etc/login.conf zichtbaar te maken voor het systeem. Loginklasse wijzigen met &man.vipw.8; vipw Met vipw kunnen nieuwe gebruikers toegevoegd worden en de instellingen dienen ongeveer als volgt uit te zien: gebruiker:wachtwoord:1111:11:taal:0:0:Gebruikersnaam:/home/gebruiker:/bin/sh Loginklasse wijzigen met &man.adduser.8; adduser loginklasse Met adduser kunnen nieuwe gebruikers toegevoegd worden. Hierna dient één van de volgende stappen uitgevoerd te worden: defaultclass = taal instellen in /etc/adduser.conf. In dit geval dient er voor alle gebruikers van andere talen een default klasse ingevoerd te worden. Er kan ook gekozen worden voor een antwoord op de vraag over taal vanuit &man.adduser.8;: Enter login class: default []: Ook kan het volgende gebruikt worden voor elke gebruiker die een andere taal gebruikt: &prompt.root; adduser -class taal Loginklasse wijzigen met &man.pw.8; pw Als &man.pw.8; wordt gebruikt om nieuwe gebruikers toe te voegen: &prompt.root; pw useradd gebruikersnaam -L taal Methode opstartbestand shell Deze methode wordt niet aanbevolen omdat er instellingenen nodig zijn voor elke mogelijke shell. Het advies is de Methode Loginklasse te gebruiken. MIME locale Om de localenaam en MIME karakterverzameling toe te voegen kunnen gewoon twee omgevingsvariabelen ingesteld worden, zoals hieronder te zien is, in /etc/profile en/of /etc/csh.login opstartbestanden voor shells. Hier wordt de Duitse taal als voorbeeld gebruikt: In /etc/profile: LANG=de_DE.ISO8859-1; export LANG MM_CHARSET=ISO-8859-1; export MM_CHARSET Of in /etc/csh.login: setenv LANG de_DE.ISO8859-1 setenv MM_CHARSET ISO-8859-1 Het is ook mogelijk de bovenstaande instructies toe te toevoegen /usr/share/skel/dot.profile (ongeveer gelijk aan wat hierboven in /etc/profile is gebruikt) of aan /usr/share/skel/dot.login (ongeveer gelijk aan wat hierboven in /etc/csh.login is gebruikt). Voor X11: In $HOME/.xinitrc: LANG=de_DE.ISO8859-1; export LANG Of: setenv LANG de_DE.ISO8859-1 Afhankelijk van de shell (zie boven). Console instellen Voor alle enkele C-karakters karakterverzamelingen worden de juiste lettertypen voor het console ingesteld in /etc/rc.conf voor de taal in kwestie met: font8x16=lettertypenaam font8x14=fontnaam font8x8=fontnaam De lettertypenaam komt uit de map /usr/share/syscons/fonts zonder het achtervoegsel .fnt. sysinstall toetsenmapping schermmapping - De gebruiker dient ervoor te zorgen de juiste enkele - C-karakters karakterverzameling wordt ingesteld met - /stand/sysinstall - ((/stand/sysinstall in &os; versies ouder - dan 5.2). In sysinstall kan + De gebruiker dient ervoor te zorgen dat indien nodig de juiste + enkele C-karakters karakterverzameling wordt ingesteld met + /stand/sysinstall. In + sysinstall kan Configure en Console gekozen worden. Het is ook mogelijk het volgende aan /etc/rc.conf toe te voegen: scrnmap=schermmappingnaam keymap=toetsenmappingnaam keychange="fkey_nummer sequentie" schermmappingnaam komt uit de map /usr/share/syscons/scrnmaps zonder het achtervoegsel .scm. Meestal is een schermmapping met een overeenkomstig gemapt lettertype nodig als workaround om bit 8 naar bit 9 uit te breiden op een lettertype–karaktermatrix van een VGA-adapter in pseudografische gebieden, dat wil zeggen om letters uit dat gebied te halen als het schermlettertype een bit 8 kolom gebruikt. Als de moused daemon is ingeschakeld met de onderstaande regel in /etc/rc.conf, dan wordt aangeraden de muiscursorinformatie in de volgende paragraaf te bekijken. moused_enable="YES" moused Standaard neemt de muiscursor van het &man.syscons.4; stuurprogramma het bereik 0xd0-0xd3 van de tekenverzameling in beslag. Als een ingestelde taal dit bereik gebruikt, moet het cursorbereik hierbuiten gehaald worden. Om de workaround voor &os; aan te zetten kan de volgende regel aan /etc/rc.conf toegevoegd worden: mousechar_start=3 De toetsenmappingnaam komt uit de map /usr/share/syscons/keymaps zonder het achtervoegsel .kbd. Als niet precies duidelijk is welke toetsenmapping te gebruiken, kan de toetsenmapping getest worden met &man.kbdmap.1; zonder opnieuw op te starten. keychange is nodig om functietoetsen zo te programmeren dat ze overeenkomen met het geselecteerde terminaltype omdat functietoetssequenties niet in de toetsenmapping gedefinieerd kunnen worden. Er dient ook een controle te zijn op een juiste instelling van het juiste terminaltype voor het console in /etc/ttys voor alle ttyv* regels. De huidige instellingen zijn: Karakterverzameling Terminaltype ISO8859-1 of ISO-8859-15 cons25l1 ISO8859-2 cons25l2 ISO8859-7 cons25l7 KOI8-R cons25r KOI8-U cons25u CP437 (VGA standaardinstelling) cons25 US-ASCII cons25w Voor wijde of multibyte karaktertalen kan je juiste &os; port in de map /usr/ports/taal gebruikt worden. Sommige ports verschijnen als console terwijl het systeem ze als serieële vtty ziet. Er dienen dus voldoende vtty's gereserveerd te zijn voor zowel X11 als de pseudo-serieële console. Hier is een gedeeltelijke lijst van applicaties voor het gebruik van andere talen in console: Taal Locatie traditioneel Chinees (BIG-5) chinese/big5con Japans japanese/kon2-16dot of japanese/mule-freewnn Koreaans korean/han X11 instellen Hoewel X11 geen deel is van het &os; Project wordt het hier wel besproken voor &os; gebruikers. Meer details zijn te vinden op de &xorg; website of op de website van een andere X11 server die gebruikt wordt. In ~/.Xresources kunnen applicatiespecifieke I18N instellingen gemaakt worden als lettertypen, menu's, enzovoort. Lettertypen weergeven X11 &truetype; lettertypeserver Eerst moet &xorg; server (x11-servers/xorg-server) of &xfree86; server (x11-servers/XFree86-4-Server) geïnstalleerd worden en daarna de &truetype; lettertypen van de taal. Door de gewenste locale in te stellen worden de menu's en dergelijke in de gekozen taal weergegeven. Niet-Engelse karakters invoeren X11 Input Method (XIM) Het X11 Input Method (XIM) protocol is een nieuwe standaard voor alle X11-cliënts. Alle X11-applicaties horen geschreven te worden als XIM-cliënts die invoer aannemen van de XIM-invoerservers. Er zijn meerdere XIM-servers beschikbaar voor verschillende talen. Printerinstellingen Sommige enkele C-karakters karakterverzamelingen zijn standaard hardware-gecodeerd in printers. Voor wijde of multibyte karakterverzamelingen is een speciale installatie nodig en het gebruik van apsfilter wordt dan aangeraden. Een document kan ook naar &postscript; of PDF formaat omgezet worden door gebruik te maken van taalspecifieke conversieprogramma's. Kernel en bestandssystemen Het &os; Snelle Bestandssysteem (FFS) is 8-bit schoon, dus het kan gebruikt worden met elke enkele C-karakters karakterverzameling (zie &man.multibyte.3;), maar er is geen karakterverzamelingnaam opgeslagen in het bestandssysteem. Het is dus rauw 8-bit en het weet niets van coderingsbevelen. Officieel ondersteunt FFS nog geen enkele vorm van wijde of multibyte karakterverzamelingen. Toch hebben sommige wijde of multibyte karakterverzamelingen onafhankelijke patches voor FFS die ondersteuning inschakelen. Dit zijn tijdelijke oplossingen of hacks die niet overdraagbaar zijn en daarom is besloten ze niet in de source tree op te nemen. Op de websites van de talen staan de patchbestanden en meer informatie. &ms-dos; Unicode Voor het &os; &ms-dos; bestandssysteem kan geschakeld worden tussen &ms-dos;, Unicode karakterverzamelingen en gekozen &os; bestandssysteem-karakterverzamelingen. &man.mount.msdosfs.8; beschijft de details. I18N-programma's compileren Veel &os; Ports zijn geschikt gemaakt voor &os; met I18N-ondersteuning. Een aantal daarvan zijn gemarkeerd met -I18N in de portnaam. Deze en nog veel andere programma's hebben ingebouwde ondersteuning voor I18N en behoeven geen speciale aandacht. MySQL Toch is het voor sommige applicaties zoals MySQL nodig dat de Makefile ingesteld is met de specifieke karakterverzameling. Dit wordt normaliter gedaan in de Makefile of door middel van het doorgeven van een waarde aan configure in de broncode. &os; lokaliseren naar talen Andrey Chernov Oorspronkelijk bijgedragen door Russisch (KOI8-R codering) lokalisatie Russisch Voor meer informatie over KOI8-R codering, zie de KOI8-R References (Russian Net Character Set). Locale instellen Voeg de volgende regels toe aan ~/.login_conf bestand: me:Mijn account:\ :charset=KOI8-R:\ :lang=ru_RU.KOI8-R: Zie eerder in dit hoofdstuk voor voorbeelden over het opzetten van de locale. Console instellen Voeg de volgende regel toe aan aan /etc/rc.conf: mousechar_start=3 Gebruik ook de volgende instellingen in /etc/rc.conf: keymap="ru.koi8-r" scrnmap="koi8-r2cp866" font8x16="cp866b-8x16" font8x14="cp866-8x14" font8x8="cp866-8x8" Voor elke ttyv* regel in /etc/ttys, gebruik cons25r als het terminaltype. Zie eerder in dit hoofdstuk voor voorbeelden over het opzetten van de console. Printer instellen printers Aangezien de meeste printers met Russische karakters met hardware-codepagina CP866 komen, is een speciaal uitvoerfilter nodig om KOI8-R om te zetten in CP866. Zo'n filter is standaard geïnstalleerd als /usr/libexec/lpr/ru/koi2alt. Een /etc/printcap regel voor een Russische printer moet er uit zien als: lp|Russische lokale lijnprinter:\ :sh:of=/usr/libexec/lpr/ru/koi2alt:\ :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs: Zie &man.printcap.5; voor een gedetailleerde beschrijving. &ms-dos; bestandssysteem en Russische bestandsnamen De volgende voorbeeld &man.fstab.5; regel zet ondersteuning aan voor Russische bestandsnamen gekoppeld op &ms-dos; bestandssystemen: /dev/ad0s2 /dos/c msdos rw,-Wkoi2dos,-Lru_RU.KIO8-R 0 0 De optie selecteert de te gebruiken localenaam, en stelt de karakteromzettabel in. Om de te gebruiken moet /usr gemount zijn voor de &ms-dos; partitie omdat de omzettabellen zich bevinden in /usr/libdata/msdosfs. &man.mount.msdosfs.8; geeft verdere uitleg. X11 instellen Voer eerst de niet-X lokale instellingen uit zoals beschreven. Installeer bij gebruik van &xorg; het package x11-fonts/xorg-fonts-cyrillic. Controleer de "Files" sectie in /etc/X11/xorg.conf bestand. Zorg dat de volgende regel vóór andere FontPath regels staan: FontPath "/usr/local/lib/X11/fonts/cyrillic" Zie de Ports Collectie voor meer cyrillic fonts. Om een Russisch toetsenbord te activeren dient het volgende in het "Keyboard" gedeelte van xorg.conf te staan: XkbLayout "ru" XkbOptions "grp:caps_toggle" Voor &xorg;: Option "XkbLayout" "us,ru" Option "XkbOptions" "grp:caps_toggle" Ook moet daar XkbDisable uitgeschakeld (uitgecomment) zijn. Voor grp:toggle is de RUS/LAT-schakelaar Rechter Alt voor de grp:ctrl_shift_toggle schakelaar zal dat Ctrl Shift zijn. Voor grp:caps_toggle zal de RUS/LAT-schakelaar CapsLock zijn. De oude CapsLock functie is nog steeds beschikbaar via Shift CapsLock (alleen in LAT-modus). grp:caps_toggle werkt om onbekende reden niet in &xorg;. Als er &windows; toetsen op een toetsenbord zitten en het blijkt dat sommige niet-alfabetische toetsen verkeerd gemapt zijn in RUS-modus, dan kan de volgende regel aan xorg.conf toegevoegd worden: Option "XkbVariant" ",winkeys" Het Russische XKB toetsenbord hoeft niet te werken met niet-gelokaliseerde applicaties. Minimaal gelokaliseerde applicaties moeten vroeg in het programma een aanroep naar de XtSetLanguageProc (NULL, NULL,); functie doen. In KOI8-R for X Window staan meer instructies over het lokaliseren van X11-applicaties. Traditioneel Chinees voor Taiwan lokalisatie traditioneel Chinees Het &os;-Taiwan Project heeft een Chinese HOWTO voor &os; op die gebruik maakt van veel Chinese ports. De huidige redacteur voor de &os; Chinese HOWTO is Shen Chuan-Hsing statue@freebsd.sinica.edu.tw. Chuan-Hsing Shen heeft de Chinese &os; Collection (CFC) gemaakt met gebruik van &os;-Taiwan's zh-L10N-tut. De packages en scriptbestanden zijn beschikbaar op . Duits (alle ISO 8859-1 talen) lokalisatie Duits Slaven Rezic eserte@cs.tu-berlin.de heeft een tutorial geschreven over het gebruik van umlauten op een &os;-machine. De tutorial is in het Duits geschreven en staat op . Grieks lokalisatie Grieks Nikos Kokkalis nickkokkalis@gmail.com heeft een compleet artikel over Griekse ondersteuning in &os; geschreven. Het is beschikbaar als deel van de officiële Griekse &os;-documentatie, in http://www.freebsd.org/doc/el_GR.ISO8859-7/articles/greek-language-support/index.html. Merk opdat dit alleen in het Grieks beschikbaar is. Japans en Koreaans lokalisatie Japans lokalisatie Koreaans Japanse lokalisatie staat beschreven op en de Koreaanse lokalisatie staat op . Niet-Engelstalige &os; documentatie Sommige delen van de &os;-documentatie zijn naar andere talen vertaald. Hiernaar staan links op de hoofdsite of in /usr/share/doc. diff --git a/nl_NL.ISO8859-1/books/handbook/ports/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/ports/chapter.sgml index 3b3105e981..62cd25a363 100644 --- a/nl_NL.ISO8859-1/books/handbook/ports/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/ports/chapter.sgml @@ -1,1689 +1,1686 @@ René Ketelaars Vertaald door Siebrand Mazeland Applicaties installeren: pakketten en ports Overzicht ports pakketten &os; bevat een grote collectie aan systeemgereedschappen als onderdeel van het basissysteem. De mogelijkheden reiken echter niet heel ver en daarom is er snel een applicatie van een andere partij nodig. &os; bevat twee complementaire technologieën om andere applicaties te installeren: de &os; Portscollectie (voor het installeren vanuit broncode) en pakketten (voor het installeren vanuit voorgecompileerde binaire bestanden). Beide systemen kunnen gebruikt worden om de nieuwste versies van een gewenste applicatie te installeren van lokale media of rechtstreeks van het netwerk. Na het lezen van dit hoofdstuk weet de lezer: Hoe binaire softwarepakketten van derden te installeren; Hoe software van derden vanuit de Portscollectie vanuit broncode te installeren; Hoe eerder geïnstalleerde pakketten of ports te verwijderen; Hoe standaardwaarden die door de ports worden gebruikt te wijzigen; Hoe het juiste softwarepakket te vinden; Hoe applicaties bij te werken. Overzicht van softwareinstallatie Als u eerder gebruik heeft gemaakt van een &unix;-systeem dan is het bekend dat de standaardprocedure voor het installeren van software van derden ongeveer als volgt is: Download de software als broncode of als binair bestand; Pak de software uit vanuit zijn originele distributietype (meestal een tar-bestand gecomprimeerd met &man.compress.1;, &man.gzip.1;, of &man.bzip2.1;); Zoek de documentatie (meestal een INSTALL of README bestand of enkele bestanden in een submap doc/) en lees zorgvuldig hoe de software geïnstalleerd moet worden; Als de software als broncode is gedistribueerd, moet de broncode gecompileerd worden. Dit kan wijzigingen in een Makefile vereisen of het draaien van een configure script en andere werkzaamheden; De software installeren en testen. En dat geldt alleen als alles goed gaat. Als er een softwarepakket geïnstalleerd wordt dat niet specifiek gemaakt is voor &os; moet mogelijkerwijs zelfs de code aangepast worden om alles goed te laten werken. Als de gebruiker het wenst, kan hij in &os; doorgaan met het installeren van software op de traditionele manier. &os; levert echter twee technologieën die veel moeite kunnen besparen: pakketten en ports. Op dit moment zijn zo meer dan &os.numports; applicaties beschikbaar. Voor iedere gewenste applicatie is het &os; pakket voor die applicatie één te downloaden bestand. Het pakket bevat voorgecompileerde kopiën met alle commando's voor de applicatie en alle instellingenbestanden of documentatie. Een gedownload pakketbestand kan gemanipuleerd worden met &os; pakketbeheercommando's zoals &man.pkg.add.1;, &man.pkg.delete.1;, &man.pkg.info.1;, enzovoort. Het installeren van een nieuwe applicatie kan met één commando. Een &os; port van een applicatie is een groep bestanden ontworpen om het proces van compileren van een applicatie vanuit broncode te automatiseren. Het is te vergelijken met de stappen die normaal gevolgd worden om een programma te compileren (downloaden, uitpakken, aanpassen, compileren en installeren). De bestanden die samen een port vormen bevatten alle noodzakelijke informatie om het systeem dit te laten doen. Met een aantal eenvoudige commando's wordt de broncode voor de applicatie automatisch gedownload, uitgepakt, aangepast, gecompileerd en geïnstalleerd. Het portssysteem kan zelfs gebruikt worden om pakketten te maken die later weer gemanipuleerd kunnen worden met pkg_add en andere pakketbeheercommando's, waarover later meer uitleg wordt gegeven. Zowel pakketten als ports kennen afhankelijkheden (dependencies). Stel dat er een applicatie geïnstalleerd gaat worden die er vanuit gaat dat een specifieke bibliotheek wordt geïnstalleerd. Zowel de applicatie als de bibliotheek zijn beschikbaar als &os; ports en pakketten. Als het commando pkg_add of het portssysteem wordt gebruikt om de applicatie toe te voegen, dan zien beiden dat de bibliotheek niet geïnstalleerd is en wordt deze automatisch eerst geïnstalleerd. Gezien het feit dat beide technologieën vrijwel identiek zijn, kan de vraag rijzen waarom &os; de moeite neemt om beide te faciliteren. Pakketten en ports hebben ieder hun eigen kracht. Welke gebruikt wordt hangt af van voorkeuren en omstandigheden. Voordelen van pakketten Een gecomprimeerd pakket tar-bestand is meestal kleiner dan het gecomprimeerde tar-bestand met de broncode van de applicatie; Pakketten vereisen geen additionele compilatie. Voor grote applicaties als Mozilla, KDE of GNOME kan dit belangrijk zijn, vooral als een systeem wat trager is; Pakketten vereisen geen begrip van het proces van het compileren van software op &os;. Voordelen van ports Pakketten worden meestal gecompileerd met conservatieve opties, omdat ze moeten draaien op een maximaal aantal systemen. Bij het installeren vanuit de port kunnen de compilatie-instellingen aangepast worden om zo bijvoorbeeld code te maken die specifiek voor een Pentium 4 of een Athlon processor is; Sommige applicaties hebben compilatie-instellingen gerelateerd aan wat ze wel of niet kunnen doen. Apache kan bijvoorbeeld ingesteld worden met een uitgebreide hoeveelheid verschillende ingebouwde instellingen. Door vanuit de port te werken hoeven niet alle standaardinstellingen geaccepteerd te worden en kunnen ze ingesteld worden; In sommige gevallen zijn er meerdere pakketten voor dezelfde applicatie om specifieke instellingen aan te geven. Ghostscript is bijvoorbeeld beschikbaar als een ghostscript pakket en ghostscript-nox11 pakket, afhankelijk van het al dan niet geïnstalleerd hebben van een X11 server. Deze ruwe vorm van tweaking is mogelijk met pakketten, maar dit wordt snel onmogelijk als een applicatie meer dan één of twee verschillende compilatie-instellingen heeft; De licentievoorwaarden van sommige softwaredistributies verbieden binaire distributie. Ze moeten dus gedistribueerd worden als broncode; Sommige mensen vertrouwen binaire distributies niet. Broncode kan tenminste (in theorie) zelf doorgelezen en gecontroleerd worden op potentiële problemen; Als er lokale modificaties zijn, is de broncode nodig om ze toe te passen; Sommige mensen hebben graag de broncode zodat ze die kunnen lezen als ze zich vervelen, erin kunnen hacken, code kunnen overnemen (indien de licentie dit toestaat natuurlijk), enzovoort. Om vernieuwingen van ports bij te houden kan een abonnement genomen worden op de &a.ports; en/of de &a.ports-bugs;. Voordat een applicatie wordt geïnstalleerd is het aan te raden op na kijken of er geen beveiligingsproblemen voor de gewenste applicatie bekend zijn. Het is ook mogelijk om ports-mgmt/portaudit te installeren, dat automatisch alle geïnstalleerde applicaties controleert op bekende fouten. Deze controle wordt ook uitgevoerd voordat een port wordt geïnstalleerd. Met het commando portaudit -F -a kunnen de pakketten die al geïnstalleerd zijn worden gecontroleerd. In de rest van dit hoofdstuk wordt uitgelegd hoe pakketten en ports gebruikt kunnen worden om software in &os; te installeren en te beheren. Applicaties zoeken Voordat een applicatie geïnstalleerd kan worden, moeten de doelen bekend zijn en hoe de applicatie heet. De lijst met voor &os; beschikbare applicaties groeit continu. Gelukkig zijn er een aantal manieren om te zoeken: Op de &os; website staat een recente doorzoekbare lijst met alle beschikbare applicaties: http://www.FreeBSD.org/ports/. De ports zijn onderverdeeld in categorieën. Er kan naar een applicatie gezocht worden op naam (als die bekend is) of alle applicaties in een categorie kunnen bekeken worden. FreshPorts Dan Langille onderhoudt FreshPorts op . FreshPorts volgt veranderingen in applicaties in de ports en biedt de mogelijkheid om of meer ports te volgen. Er wordt dan een email gestuurd als de port is bijgewerkt. FreshMeat Als de naam van de gewenst applicatie niet bekend is, is het wellicht mogelijk deze te achterhalen via een website als FreshMeat () en kan daarna op de &os; site gecontroleerd worden of de applicatie al geschikt gemaakt is voor gebruik met &os;. Als de precieze naam van de port bekend is, maar niet bekend is in welke categorie deze staat, kan dit achterhaald worden met &man.whereis.1;. Door simpelweg whereis bestand in te geven, waar bestand het te installeren programma is. Als het op het systeem staat, wordt dat als volgt aangegeven: &prompt.root; whereis lsof lsof: /usr/ports/sysutils/lsof Dit geeft aan dat lsof (een systeemhulpprogramma) in de map /usr/ports/sysutils/lsof staat. U kunt ook een eenvoudig &man.echo.1;-statement gebruiken om uit te zoeken waar een port zich in te ports tree bevindt. Bijvoorbeeld: &prompt.root; echo /usr/ports/*/*lsof* /usr/ports/sysutils/lsof Merk op dat dit alle overeenkomstige bestanden die gedownload zijn in de map /usr/ports/distfiles terruggeeft. Nog een andere manier om een port op te sporen is door het ingebouwde zoekmechanisme van de Portscollectie te gebruiken. Hiervoor moet het huidige pad de map /usr/ports zijn. Vanuit die map kan make search name=programmanaam uitgevoerd worden, waar programmanaam de naam is van het programma dat wordt gezocht. Als bijvoorbeeld lsof wordt gezocht: &prompt.root; cd /usr/ports &prompt.root; make search name=lsof Port: lsof-4.56.4 Path: /usr/ports/sysutils/lsof Info: Lists information about open files (similar to fstat(1)) Maint: obrien@FreeBSD.org Index: sysutils B-deps: R-deps: Het belangrijkste onderdeel van de uitvoer is in dit geval de regel waarop Path: staat, omdat die aangeeft waar de port staat. De andere informatie is niet nodig voor de installatie van de port en wordt hier niet behandeld. Voor nog dieper zoeken kan ook make search key=string gebruikt worden waar string tekst is waarnaar gezocht moet worden. Hiermee wordt naar namen van ports, commentaar, beschrijvingen en afhankelijkheden gezocht en dit kan gebruikt worden om ports te vinden die te maken hebben met een bepaald onderwerp als onbekend is hoe het gezochte programma heet. In beide gevallen is de zoekstring niet hoofdlettergevoelig. Zoeken naar LSOF geeft hetzelfde resultaat als zoeken naar lsof. Chern Lee Bijgedragen door Het pakkettensysteem gebruiken Er zijn verschillende gereedschappen die gebruikt worden om pakketten op &os; te beheren: Het gereedschap sysinstall kan op een draaiend systeem worden gebruikt om beschikbare en geïnstalleerde pakketten te installeren, te verwijderen, en weer te geven. Zie voor meer informatie . De opdrachtregelgereedschappen om pakketten te beheren, welke het onderwerp van de rest van deze sectie zijn. Pakketten installeren pakketten installeren pkg_add Met &man.pkg.add.1; kan een &os; softwarepakket geïnstalleerd worden vanaf een lokaal bestand of vanaf een server op het netwerk. Handmatig pakketten downloaden en lokaal installeren &prompt.root; ftp -a ftp2.FreeBSD.org Connected to ftp2.FreeBSD.org. 220 ftp3.FreeBSD.org FTP server (Version 6.00LS) ready. 331 Guest login ok, send your email address as password. 230- 230- This machine is in Vienna, VA, USA, hosted by Verio. 230- Questions? E-mail freebsd@vienna.verio.net. 230- 230- 230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd /pub/FreeBSD/ports/packages/sysutils/ 250 CWD command successful. ftp> get lsof-4.56.4.tgz local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz 200 PORT command successful. 150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes). 100% |**************************************************| 92375 00:00 ETA 226 Transfer complete. 92375 bytes received in 5.60 seconds (16.11 KB/s) ftp> exit &prompt.root; pkg_add lsof-4.56.4.tgz Als er lokaal geen bron is voor pakketten (zoals de &os; CD-ROM-verzameling) dan is het waarschijnlijk makkelijker om de optie te gebruiken met &man.pkg.add.1;. Deze optie zorgt er voor dat het hulpprogramma automatisch het correcte formaat en de juiste versie bepaalt en die daarna binnenhaalt en installeert vanaf een FTP site. pkg_add &prompt.root; pkg_add -r lsof Het voorbeeld hierboven haalt het correcte pakket binnen en installeert het zonder dat de gebruiker iets hoeft te doen. Als u een alternatieve &os; Pakkettenmirror wilt specificeren, in plaats van de hoofddistributiesite, dan moet u de omgevingsvariabele PACKAGESITE overeenkomstig instellen om de standaardinstellingen aan te passen. &man.pkg.add.1; gebruikt &man.fetch.3; om de bestanden binnen te halen, dat gebruik maakt van diverse omgevingsvariabelen zoals FTP_PASSIVE_MODE, FTP_PROXY, en FTP_PASSWORD. Mogelijk moeten ook één of meer van deze variabelen gebruikt worden als een machine achter een firewall staat of als gebruik gemaakt moet worden van een FTP/HTTP proxy. In &man.fetch.3; staat de complete lijst. In het voorbeeld hierboven is gebruik gemaakt van lsof in plaats van lsof-4.56.4. Als het pakket wordt binnengehaald met behulp van de bovenstaande instellingen, dan moet het versienummer van het pakket niet gebruikt worden. &man.pkg.add.1; haalt automatisch de laatste versie van de applicatie binnen. &man.pkg.add.1; downloadt de meest recente versie van een applicatie als &os.current; of &os.stable;. Als een -RELEASE versie wordt gebruikt, wordt het pakket dat bij die release hoort gebruikt. Het is mogelijk dit gedrag te veranderen door PACKAGESITE te wijzigen. Als u bijvoorbeeld &os; 5.4-RELEASE draait, dan haalt &man.pkg.add.1; standaard de pakketten uit ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/. Om &man.pkg.add.1; de &os; 5-STABLE pakketten te laten downloaden kan PACKAGESITE ingesteld worden op ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/. Pakketbestanden worden gedistribueerd in de formaten .tgz en .tbz. Ze zijn te vinden op of op de &os; CD-ROM-distributie. Iedere CD-ROM in de &os; 4-CD-ROM-verzameling (en de PowerPak, enzovoort) bevat pakketten in de map /packages. De opbouw van de pakketten is ongeveer gelijk aan die van /usr/ports. Iedere categorie heeft zijn eigen map en ieder pakket staat ook in de map All. De mappenstructuur van het pakkettensysteem is gelijk aan die van het portssysteem. Samen vormen ze het pakket/portssysteem. Pakketten beheren pakketten beheren &man.pkg.info.1; is een hulpprogramma dat de diverse geïnstalleerde pakketten toont en beschrijft. pkg_info &prompt.root; pkg_info cvsup-16.1 A general network file distribution system optimized for CV docbook-1.2 Meta-port for the different versions of the DocBook DTD ... &man.pkg.version.1; is een hulpprogramma dat een samenvatting van de versie van alle geïnstalleerde pakketten geeft. Het vergelijkt de versie van het pakket met de huidige versie in de Portscollectie. pkg_version &prompt.root; pkg_version cvsup = docbook = ... De symbolen in de tweede kolom geven aan hoe de geïnstalleerde versie staat ten opzichte van de versie die beschikbaar is in de lokale Portscollectie. Symbool Betekenis = De versie van het geïnstalleerde pakket komt overeen met die in de lokale Portscollectie. < De geïnstalleerde versie is ouder dan die beschikbaar is in de ports. > De geïnstalleerde versie is nieuwer dan die in de lokale Portscollectie. De lokale Portscollectie is waarschijnlijk verouderd. ? Het geïnstalleerde pakket kan niet gevonden worden in index van de Portscollectie. Dit kan bijvoorbeeld gebeuren als een geïnstalleerde port uit de Portscollectie wordt verwijderd of hernoemd. * Er zijn meerdere versies van het pakket. ! Het geïnstalleerde pakket bestaat in de index maar om de een of andere reden was pkg_version niet in staat om het versienummer van het geïnstalleerde pakket met de overeenkomstige ingang in de index te vergelijken. Pakketten verwijderen pkg_delete pakketten verwijderen Voor het verwijderen van een geïnstalleerd pakket wordt het hulpprogramma &man.pkg.delete.1; gebruikt. &prompt.root; pkg_delete xchat-1.7.1 Merk op dat &man.pkg.delete.1; de volledige naam en het volledige nummer van het pakket nodig heeft; het bovenstaande commando zou niet werken als xchat in plaats van xchat-1.7.1 was gegeven. Het is echter eenvoudig om &man.pkg.version.1; te gebruiken om de versie van het geïnstalleerde pakket te achterhalen. U zou ook eenvoudigweg een wildcard kunnen gebruiken: &prompt.root; pkg_delete xchat\* In dit geval zullen alle pakketten waarvan de naam met xchat begint worden verwijderd. Diversen Alle informatie over pakketten wordt opgeslagen in de map /var/db/pkg. De lijst met geïnstalleerde bestanden en beschrijvingen van ieder pakket staat in de bestanden in deze map. De Portscollectie gebruiken In de volgende paragrafen worden basisinstructies gegeven over het gebruik van de Portscollectie om programma's op een systeem te installeren of ervan te verwijderen. Een gedetailleerde beschrijving van de make-doelen en omgevingsvariabelen staat in &man.ports.7;. De Portscollectie Voordat ports geïnstalleerd kunnen worden moet eerst de Portscollectie op een systeem staan, die in essentie een set van Makefiles, patches en bestanden met beschrijvingen is in /usr/ports. Tijdens het installeren van een &os; systeem, vraagt sysinstall of de Portscollectie geïnstalleerd moet worden. Als daar NO is aangegeven, dan kan met behulp van de volgende instructies alsnog de Portscollectie op een systeem gezet worden: Met CVSup Dit is een snelle methode voor het verkrijgen en bijhouden van een kopie van Portscollectie met behulp van het CVSup-protocol. Meer informatie over CVSup staat in CVSup gebruiken. De implementatie van het CVSup-protocol dat met &os; wordt geleverd heet csup. Het verscheen voor het eerst in &os; 6.2. Gebruikers van oudere uitgaven kunnen het via de port of het pakket net/csup installeren. Zorg ervoor dat /usr/ports leeg is voordat csup voor het eerst gebruikt wordt! Als er reeds een Ports Collectie aanwezig is die via een andere bron is opgehaald, zal csup verwijderde patchbestanden niet verwijderen. Draai csup: &prompt.root; csup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfile Wijzig cvsup.FreeBSD.org in een CVSup server in de buurt. In CVSup Mirrors () staat een complete lijst van mirrorsites; Het kan wenselijk zijn een aangepaste ports-supfile te gebruiken, bijvoorbeeld om een CVSup server niet mee te hoeven geven op de commandoregel. Kopieer in dit geval, als root, /usr/share/examples/cvsup/ports-supfile naar een nieuwe locatie, zoals /root of een thuismap. Wijzig ports-supfile. Wijzig CHANGE_THIS.FreeBSD.org in een CVSup server in de buurt. In CVSup Mirrors () staat een volledige lijst met mirrorsites. Roep nu als volgt csup aan: &prompt.root; csup -L 2 /root/ports-supfile Het later draaien van &man.csup.1; zal alle recente veranderingen aan uw Portscollectie downloaden en toepassen, behalve het eigenlijke herbouwen van ports voor uw eigen systeem. Met Portsnap Portsnap is een alternatief systeem voor het distribueren van de Portscollectie. In Portsnap gebruiken staat een gedetailleerde beschrijving van alle mogelijkheden van Portsnap. Download een gecomprimeerd snapshot van de Portscollectie naar /var/db/portsnap. Na deze stap kan eventueel de verbinding met Internet verbroken worden. &prompt.root; portsnap fetch Als Portsnap voor de eerste keer draait, pak het snapshot dan uit in /usr/ports: &prompt.root; portsnap extract Als /usr/ports al gevuld is en er alleen wordt bijgewerkt, voer dan het volgende commando uit in plaats van het bovenstaande: &prompt.root; portsnap update Met sysinstall Bij deze methode wordt sysinstall gebruikt om de Portscollectie van installatiemedia te installeren. Hier wordt wel de Portscollectie op het moment dat de release gemaakt is geïnstalleerd. Bij toegang tot Internet is het advies altijd een andere methode te gebruiken. Draai als root - sysinstall - (/stand/sysinstall in &os; - versies ouder dan 5.2) zoals hieronder aangegeven: + sysinstall zoals hieronder aangegeven: &prompt.root; sysinstall Scroll naar beneden en selecteer Configure, druk op Enter. Scroll naar beneden en selecteer Distributions, druk op Enter. Scroll naar ports, druk op Space. Scroll naar boven naarExit, druk op Enter. Selecteer de gewenste installatiemedia, zoals CD-ROM, FTP, enzovoort. Scroll omhoog naar Exit en druk op Enter. Druk op X om sysinstall af te sluiten. Ports installeren ports installeren Het eerste wat uitleg behoeft als het over de Portscollectie gaat is de term skelet (skeleton). In een notendop is een portskelet een minimaal aantal bestanden dat &os; aangeeft hoe een programma gecompileerd en geïnstalleerd kan worden. Ieder portskelet bevat: Een Makefile. De Makefile bevat verschillende definities die aangeven hoe de applicatie gecompileerd moet worden en waar die op een systeem geïnstalleerd moet worden; Een bestand distinfo. Dit bestand bevat informatie over de bestanden die gedownload moeten worden om de port te bouwen, en hun checksums (door gebruik te maken van &man.md5.1; en &man.sha256.1;), om vast te stellen dat de bestanden niet corrupt zijn geraakt tijdens de download; Een map files. Deze map bevat patches om het programma op een &os; systeem te laten compileren en installeren. Patches zijn in essentie kleine bestanden waarin kleine veranderingen aan andere, specifieke, bestanden staan aangegeven. Ze zijn opgesteld in platte tekst en er staan dingen in als Verwijder regel 10 of Wijzig regel 26 in .... Patches staan ook wel bekend als diffs omdat ze gemaakt worden met het programma &man.diff.1;. Deze map kan ook andere bestanden bevatten die gebruikt worden om de port te bouwen; Een bestand pkg-descr. Dit is een meer gedetailleerde beschrijving van het programma, vaak in één regel; Een bestand pkg-plist. Dit is een lijst met alle bestanden die door de port geïnstalleerd worden. Het geeft het portssysteem ook aan welke bestanden bij het verwijderen van de port weer verwijderd kunnen worden. Sommige ports bevatten nog andere bestanden, zoals pkg-message. Het portssysteem gebruikt die bestanden voor het afhandelen van bijzondere situaties. Meer details over die bestanden en over ports in het algemeen zijn na te lezen in het &os; Handboek voor Porters. De port bevat instructies over hoe de broncode gebouwd moet worden, maar de broncode zelf is er geen onderdeel van. De broncode staat op een CD-ROM of op Internet. De broncode wordt verspreid op de wijze waarop de auteur dat wenst. Vaak is dat als een tar of gzip bestand, maar het kan ook ingepakt zijn met een ander programma of helemaal niet ingepakt zijn. De broncode van een programma, in welke vorm dan ook, heet een distributiebestand. De twee methoden om een &os; port te installeren worden hieronder beschreven. Ports installeren dient als root te gebeuren. Voordat een port wordt geïnstalleerd is het aan te raden op na kijken of er geen beveiligingsproblemen voor de gewenste port bekend zijn. Er kan automatisch een controle op beveiligingsproblemen door portaudit gedaan worden voordat er een nieuwe applicatie wordt geïnstalleerd. Dit gereedschap kan in de Portscollectie gevonden worden (ports-mgmt/portaudit). Overweeg om portaudit -F te draaien voordat er een nieuwe port wordt geïnstalleerd, om de huidige database met beveiligingsproblemen op te halen. Tijdens de dagelijkse beveiligingscontrole van het systeem zal er een beveiligingsaudit en een update van de database plaatsvinden. Lees voor meer informatie de hulppagina's &man.portaudit.1; en &man.periodic.8;. De Portscollectie neemt aan dat er een werkende Internetverbinding is. Als die niet aanwezig is, zet dan handmatig een kopie van het benodigde distributiebestand in /usr/ports/distfiles. Ga om te beginnen naar de juiste map voor een port: &prompt.root; cd /usr/ports/sysutils/lsof Eenmaal in de map lsof is het skelet van de port te zien. In de volgende stap wordt de broncode voor de port gecompileerd of gebouwd. Dit wordt gedaan door op het prompt make in te voeren. Dat levert iets als het volgende op: &prompt.root; make >> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/. >> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/. ===> Extracting for lsof-4.57 ... [uitvoer van uitpakken verwijderd] ... >> Checksum OK for lsof_4.57D.freebsd.tar.gz. ===> Patching for lsof-4.57 ===> Applying FreeBSD patches for lsof-4.57 ===> Configuring for lsof-4.57 ... [uitvoer van configure verwijderd] ... ===> Building for lsof-4.57 ... [uitvoer van compileren verwijderd] ... &prompt.root; Als het compileren is afgerond is het prompt weer zichtbaar. In de volgende stap wordt de port geïnstalleerd. Om dat te bewerkstelligen wordt het woord install aan make toegevoegd: &prompt.root; make install ===> Installing for lsof-4.57 ... [uitvoer installatie verwijderd] ... ===> Generating temporary packing list ===> Compressing manual pages for lsof-4.57 ===> Registering installation for lsof-4.57 ===> SECURITY NOTE: This port has installed the following binaries which execute with increased privileges. &prompt.root; Als de prompt weer beschikbaar is, is de applicatie klaar voor gebruik. Omdat lsof met verhoogde rechten wordt uitgevoerd, wordt er een waarschuwing getoond. Tijdens het bouwen en installeren van ports zijn de getoonde waarschuwingen van belang. Het is verstandig om de submap die als werkmap wordt gebruikt te verwijderen. Hierin staan alle tijdelijke bestanden die tijdens het compileren worden gebruikt. Die bestanden gebruiken niet alleen waardevolle schijfruimte, maar ze kunnen later ook problemen veroorzaken als de port wordt bijgewerkt. &prompt.root; make clean ===> Cleaning for lsof-4.57 &prompt.root; Het is mogelijk twee stappen minder te gebruiken door make install clean uit te voeren in plaats van make, make install en make clean als drie afzonderlijke stappen. Sommige shells houden een cache bij van de commando's die in de mappen uit de omgevingsvariabele PATH staan om het opzoeken van een uitvoerbaar bestand te versnellen. Als zo'n shell wordt gebruikt, moet er na de installatie van een port het commando rehash worden uitgevoerd voordat zojuist geïnstalleerde commando's kunnen worden gebruikt. Dit commando werkt voor shells zoals tcsh. Gebruik voor shells als sh hash -r. In de documentatie van een shell staat meer informatie. Sommige DVD-ROM-producten van andere partijen, zoals de &os; Toolkit van de FreeBSD Mall bevatten distributiebestanden. Die kunnen met de Portscollectie gebruikt worden. Koppel de DVD-ROM aan op /cdrom. Stel bij gebruik van een ander aankoppelpunt de make variabele CD_MOUNTPTS in. De benodigde distributiebestanden worden automatisch gebruikt als ze op de schijf aanwezig zijn. Licenties van sommige ports staan niet toe dat de code wordt opgenomen in een CD-ROM. Dit kan komen doordat er een formulier ingevuld moet worden voor een download of doordat herdistributie niet is toegestaan of om een andere reden. Om een port te installeren die niet op de CD-ROM staat moet de computer waarop de port geïnstalleerd wordt een Internetverbinding hebben. Het portssysteem gebruikt &man.fetch.1; om bestanden te downloaden. Dat programma maakt gebruik van een aantal omgevingsvariabelen, waaronder FTP_PASSIVE_MODE, FTP_PROXY, en FTP_PASSWORD. Als een systeem achter een firewall staat, is het wellicht noodzakelijk om een of meer van deze omgevingsvariabelen in te stellen of om gebruik te maken van een FTP/HTTP proxy. In &man.fetch.3; staat een complete lijst. Als er geen continue Internetverbinding is, kan gebruik gemaakt worden van make fetch. Door dit commando in de map /usr/ports uit te voeren worden alle benodigde bestanden gedownload. Dit commando werkt ook op een lager niveau als /usr/ports/net of /usr/ports/net/xmule. Als een port afhankelijk is van bibliotheken of andere ports dan worden de distributiebestanden van die ports niet opgehaald. Om dat de bereiken dient fetch vervangen te worden door fetch-recursive. Het is mogelijk alle ports in een categorie te bouwen door make in een hogere map uit te voeren, naar analogie van het voorbeeld voor make fetch. Dit is wel gevaarlijk, omdat sommige ports niet tegelijk met andere geïnstalleerd kunnen zijn. In andere gevallen installeren twee ports hetzelfde bestand met een andere inhoud. In zeldzame gevallen willen of moeten gebruikers de tar-bestanden van een andere site dan de MASTER_SITES halen (de locatie waar de bestanden vandaan komen). Dat is mogelijk met de optie MASTER_SITES met een volgend commando: &prompt.root; cd /usr/ports/directory &prompt.root; make MASTER_SITE_OVERRIDE= \ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch In het voorgaande voorbeeld is de optie MASTER_SITES gewijzigd naar ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/. Sommige ports staan toe (of schrijven zelfs voor) dat er een aantal instellingen worden meegegeven die bepaalde onderdelen (niet gebruikt, beveiligingsinstellingen en andere aanpassingen) van de applicatie in- of uitschakelen. Voorbeelden van ports waarbij dat het geval is zijn www/mozilla, security/gpgme en mail/sylpheed-claws. Er wordt een bericht getoond als dit soort instellingen beschikbaar zijn. Standaardmappen voor ports wijzigen Soms is het handig (of verplicht) om een andere map voor werk of ports te gebruiken. Met de variabelen WRKDIRPREFIX en PREFIX kunnen de standaardmappen veranderd worden: &prompt.root; make WRKDIRPREFIX=/usr/home/example/ports install Het voorbeeld hierboven compileert de port in /usr/home/example/ports en installeert alles in /usr/local. &prompt.root; make PREFIX=/usr/home/example/local install Het voorbeeld hierboven compileert in /usr/ports en installeert in /usr/home/example/local. &prompt.root; make WRKDIRPREFIX=../ports PREFIX=../local install Het voorbeeld hierboven combineert de twee instellingen. Het gaat te ver om dit volledig in het handboek te beschrijven, maar hier krijgt de lezer een idee van de mogelijkheden. Het is ook mogelijk de bovenstaande variabelen als deel van de omgeving in te stellen. In de hulppagina's van de gebruikte shell staat hoe dat mogelijk is. Omgaan met <command>imake</command> Er zijn ports die imake gebruiken (een onderdeel van het X Window systeem) die niet goed werken met PREFIX en erop staan te installeren in /usr/X11R6. Er zijn ook een aantal Perl ports die PREFIX negeren en in de Perl hiërarchie installeren. Deze ports op de PREFIX locatie laten installeren is meestal erg moeilijk of onmogelijk. Ports herconfigureren Tijdens het bouwen van bepaalde ports kan er een menu dat op ncurses is gebaseerd verschijnen waaruit u bepaalde bouwopties kunt selecteren. Het is niet ongebruikelijk dat gebruikers dit menu opnieuw willen bezoeken om deze opties toe te voegen, te verwijderen, of te veranderen nadat een port is gebouwd. Er zijn vele manieren om dit te doen. Eén optie is om naar de map waarin de port staat te gaan en make config te typen, wat eenvoudigweg het menu opnieuw toont met daarin de zelfde opties geselecteerd. Een andere optie is om make showconfig te gebruiken, wat alle instelopties voor de port aan u laat zien. Nog een andere optie is om make rmconfig uit te voeren wat alle geselecteerde opties zal verwijderen en u toestaat opnieuw te beginnen. Al deze opties, en anderen, worden zeer gedetailleerd uitgelegd in de hulppagina voor &man.ports.7;. Geïnstalleerde ports verwijderen ports verwijderen Nu u weet hoe ports te installeren, zult u zich waarschijnlijk afvragen hoe ze te verwijderen, in het geval dat u er een installeert en later besluit dat u de verkeerde port heeft geïnstalleerd. We zullen ons vorige voorbeeld (lsof) verwijderen. Ports worden op precies dezelfde manier verwijderd als pakketten met het commando &man.pkg.delete.1; (zoals beschreven in het onderdeel Pakketten): &prompt.root; pkg_delete lsof-4.57 Ports bijwerken ports bijwerken Stel als eerste een lijst samen met ports waarvoor een nieuwere versie beschikbaar is in de Portscollectie met het commando &man.pkg.version.1;: &prompt.root; pkg_version -v <filename>/usr/ports/UPDATING</filename> Als de Portscollectie eenmaal is bijgewerkt vóór het bijwerken van ports, is het verstandig het bestand /usr/ports/UPDATING te raadplegen. In dat bestand staan aanwijzingen en wijzigingen voor gebruikers die van belang zijn bij het bijwerken van ports, zoals het veranderen van bestandsformaten, veranderen van de locatie van configuratie bestanden, en andere incompatibiliteiten met voorgaande versies. Als UPDATING tegenstrijdig is met wat hier beschreven is, moet men UPDATING als waar beschouwen. Ports bijwerken met portupgrade portupgrade Het hulpprogramma portupgrade is ontworpen om geïnstalleerde ports eenvoudig bij te werken. Het is beschikbaar via de port ports-mgmt/portupgrade. Installeer het net als iedere andere port met het commando make install clean: &prompt.root; cd /usr/ports/ports-mgmt/portupgrade &prompt.root; make install clean Scan de lijst met geïnstalleerde ports met het commando pkgdb -F en corrigeer alle gerapporteerde inconsistenties. Het is verstandig dit regelmatig te doen, voor iedere keer bijwerken. Door het draaien van portupgrade -a zal portupgrade beginnen met het bijwerken van alle geïnstalleerde ports op een systeem waarvoor een nieuwere versie beschikbaar is. Met de vlag is het mogelijk in te stellen dat voor iedere bij te werken port om bevestiging wordt gevraagd. &prompt.root; portupgrade -ai Gebruik om alleen een specifieke applicatie bij te werken en niet alle beschikbare ports portupgrade pkgname. Gebruik de vlag om portupgrade eerst alle ports bij te laten werken die voor een bij te werken toepassing benodigd zijn. &prompt.root; portupgrade -R firefox Gebruik de vlag om bij installatie van pakketten in plaats van ports gebruik te maken. Met deze optie zoekt portupgrade in de lokale mappen uit PKG_PATH of haalt de pakketten via het netwerk op als ze lokaal niet worden aangetroffen. Als een pakket niet lokaal en niet via het netwerk wordt gevonden, dan gebruikt portupgrade ports. Om het gebruik van ports te voorkomen kan gebruik gemaakt worden van de optie : &prompt.root; portupgrade -PP gnome2 Om alleen de distributiebestanden op te halen (of pakketten als is opgegeven), zonder bouwen of installeren, is beschikbaar. Meer informatie staat in &man.portupgrade.1;. Ports bijwerken met portmanager portmanager Portmanager is een ander hulpprogramma voor het eenvoudig bijwerken van geïnstalleerde ports. Het is beschikbaar via de port ports-mgmt/portmanager: &prompt.root; cd /usr/ports/sysutils/portmanager &prompt.root; make install clean Alle geïnstalleerde ports kunnen bijgewerkt worden met het volgende eenvoudige commando: &prompt.root; portmanager -u Met de vlag kan ingesteld worden dat voor iedere stap die Portmanager wil uitvoeren vooraf toestemming moet worden gegeven. Portmanager kan ook nieuwe ports op een systeem installeren. Anders dan met het bekende commando make install clean worden alle afhankelijkheden bijgewerkt voordat de geselecteerde port wordt gebouwd en geïnstalleerd: &prompt.root; portmanager x11/gnome2 Als er problemen zijn ten aanzien van de afhankelijkheden voor een geselecteerde port, dan kan Portmanager ze allemaal herbouwen in de juiste volgorde. Als dat is afgerond, wordt daarna ook de port die problemen opleverde opnieuw gebouwd: &prompt.root; portmanager graphics/gimp -f Meer informatie staat in &man.portmanager.1;. Ports bijwerken met Portmaster portmaster Portmaster is nog een gereedschap voor het bijwerken van geïnstalleerde ports. Portmaster was ontworpen om gebruik te maken van de gereedschappen die in het basis systeem te vinden zijn (het hangt niet af andere ports) en het gebruikt de informatie in /var/db/pkg om te bepalen welke ports bij te werken. Het is beschikbaar via de port ports-mgmt/portmaster: &prompt.root; cd /usr/ports/ports-mgmt/portmaster &prompt.root; make install clean Portmaster verdeelt ports in vier categoriën: Wortelpoorten (geen afhankelijkheden, wordt niet van afgehangen) Stampoorten (geen afhankelijkheden, wordt van afgehangen) Takpoorten (hebben afhankelijkheden, wordt van afgehangen) Bladpoorten (hebben afhankelijkheden, wordt niet van afgehangen) U kunt de optie gebruiken om alle geïnstalleerde ports tonen en naar updates te zoeken: &prompt.root; portmaster -L ===>>> Root ports (No dependencies, not depended on) ===>>> ispell-3.2.06_18 ===>>> screen-4.0.3 ===>>> New version available: screen-4.0.3_1 ===>>> tcpflow-0.21_1 ===>>> 7 root ports ... ===>>> Branch ports (Have dependencies, are depended on) ===>>> apache-2.2.3 ===>>> New version available: apache-2.2.8 ... ===>>> Leaf ports (Have dependencies, not depended on) ===>>> automake-1.9.6_2 ===>>> bash-3.1.17 ===>>> New version available: bash-3.2.33 ... ===>>> 32 leaf ports ===>>> 137 total installed ports ===>>> 83 have new versions available Alle geïnstalleerde ports kunnen met dit eenvoudige commando worden bijgewerkt: &prompt.root; portmaster -a Standaard maakt Portmaster een backup-pakket aan voordat het een bestaande port verwijderd. Als de installatie van de nieuwe versie succesvol is, zal Portmaster de reservekopie verwijderen. Het gebruik van zal Portmaster instrueren om de reservekopie niet automatisch te verwijderen. Het toevoegen van de optie zal Portmaster in interactieve modus opstarten, en u vragen voordat het elke port bijwerkt. Als u fouten tegenkomt tijdens het bijwerkproces, kunt u de optie gebruiken om alle ports bij te werken/te herbouwen: &prompt.root; portmaster -af U kunt Portmaster ook gebruiken om nieuwe ports op het systeem te installeren, en alle afhankelijkheden bijwerken voordat de nieuwe port gebouwd en geïnstalleerd wordt: &prompt.root; portmaster shells/bash Bekijk &man.portmaster.8; voor meer informatie. Ports en schijfruimte ports disk-space Werken met de Portscollectie kan in de loop der tijd veel schijfruimte gebruiken. Na het bouwen en installeren van software uit de ports, is het van belang altijd de tijdelijke mappen work op te ruimen met het commando make clean. De complete Portscollectie kan geschoond worden met het volgende commando: &prompt.root; portsclean -C In de loop der tijd komen ook veel oude bestanden met broncode in de map distfiles te staan. Die kunnen handmatig verwijderd worden of met het volgende commando dat alle distributiebestanden waarnaar in de huidige ports geen verwijzingen meer staan verwijdert: &prompt.root; portsclean -D Of om alle distributiebestanden te verwijderen waardoor momenteel door geen één geïnstalleerde port op uw systeem wordt verwezen: &prompt.root; portsclean -DD Het hulpprogramma portsclean is onderdeel van de suite portupgrade. Vergeet niet ports die niet langer gebruikt worden te verwijderen. Een handig hulpmiddel hiervoor kan de port ports-mgmt/pkg_cutleaves zijn. Activiteiten na het installeren Na het installeren van een nieuwe applicatie is het meestal verstandig om de documentatie te lezen die bij een applicatie zit, bestanden met instellingen die vereist zijn aan te passen, ervoor te zorgen dat de applicatie start na het opstarten (als het een daemon is), enzovoort. De exacte stappen om een applicatie in te stellen zijn natuurlijk voor iedere applicatie anders. Maar als er net een nieuwe applicatie is geïnstalleerd en het is niet vanzelfsprekend hoe verder te gaan, dan kunnen de volgende tips helpen: Met &man.pkg.info.1; kan uitgevonden worden welke bestanden geïnstalleerd zijn en waar. Om bijvoorbeeld uit te vinden welke bestanden door FooPackage versie 1.0.0 zijn geïnstalleerd: &prompt.root; pkg_info -L foopackage-1.0.0 | less Bestanden in mapnamen met man/ zijn hulppagina's, etc/ bevat bestanden met instellingen en doc/ bevat uitgebreidere documentatie. Als niet helemaal duidelijk is welke versie van het programma is geïnstalleerd, kan een commando als volgt gebruikt worden: &prompt.root; pkg_info | grep -i foopackage Hiermee worden alle pakketten getoond waar foopackage in de pakketnaam voorkomt. Als de hulppagina's zijn gevonden, kunnen die bekeken worden met &man.man.1;. Zo kan er ook in de bestanden met voorbeeldinstellingen gekeken worden en naar aanvullende documentatie, als die is bijgeleverd. Als er een website is voor de applicatie staat daar vaak ook aanvullende documentatie, veelgestelde vragen, enzovoort. Als het webadres niet bekend is, kan dat nog staan in de uitvoer van het volgende commando: &prompt.root; pkg_info foopackage-1.0.0 Als er een regel met WWW: in staat, is dat de URL naar de website voor de applicatie. Ports die na het opstarten moeten starten (zoals Internet diensten) hebben meestal een voorbeeldscript in /usr/local/etc/rc.d. Dit script kan bekeken, aangepast en hernoemd worden waar nodig. Meer informatie staat in Diensten Starten. Omgaan met kapotte ports Als een port niet werkt, zijn er een aantal mogelijke manieren om verder te komen: Zoek uit of er een oplossing voor de port staat te wachten in de Problem Report database. Als dat zo is kan wellicht de voorgestelde reparatie gebruikt worden. Vraag de beheerder van de port om hulp. Voor het emailadres van de beheerder kan make maintainer getypt worden of het kan in de Makefile staan. Zet in de mail in ieder geval de naam en versie van de port (de regel met $&os;: in de Makefile) en de uitvoer tot en met de foutmelding. Sommige ports worden niet beheerd door een individu maar in plaats daarvan door een mailinglijst. Veel, maar niet alle, van deze adressen zien eruit als freebsd-lijstnaam@FreeBSD.org. Houd hier alstublieft rekening mee bij het formuleren van vragen. In het bijzonder worden ports die geregistreerd staan als onderhouden door ports@FreeBSD.org helemaal niet onderhouden. Reparaties en ondersteuning, als dat al beschikbaar is, komt vanuit de gemeenschap die is geabonneerd op die mailinglijst. Meer vrijwilligers zijn altijd nodig! Als er geen antwoord komt, stuur dan met &man.send-pr.1; een foutrapport in. Zie Writing &os; Problem Reports). Repareren! In het Handboek voor de Porter is gedetailleerde informatie te vinden over de infrastructuur van de Ports, zodat een kapotte port gemaakt kan worden of er zelfs een nieuwe port ingestuurd kan worden. Zoek een pakket van een FTP site in de buurt. De master pakketcollectie staat op ftp.FreeBSD.org in de map pakketten, maar het is van belang dat er eerst in de buurt wordt gekeken! Dat het pakket werkt is waarschijnlijker dan wanneer uit de broncode wordt gecompileerd en het is nog sneller ook. Een pakket kan met &man.pkg.add.1; geïnstalleerd worden. diff --git a/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml index 0dfef59b2a..1cd3f6a141 100644 --- a/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml @@ -1,1926 +1,1854 @@ Ken Tom Bijgewerkt voor X.Org's X11 server door Marc Fonvieille Erik Radder Vertaald door René Ladan Het X Window systeem Overzicht &os; gebruikt X11 om gebruikers een krachtige grafische gebruikersschil te bieden. X11 is een vrij beschikbare versie van het X Window System dat geïmplementeerd is in zowel &xorg; als &xfree86; (en andere softwarepakketten die hier niet worden besproken). &os; versies tot en met &os; 5.2.1-RELEASE hebben &xfree86; als standaard, de X11 server die is uitgebracht door The &xfree86; Project, Inc. Vanaf &os; 5.3-RELEASE is de officiële standaardversie van X11 gewijzigd naar &xorg;, de X11-server die is ontwikkeld door de X.Org Foundation onder een licentie die veel lijkt op degene die door &os; wordt gebruikt. Er zijn ook commerciële X-servers voor &os; beschikbaar. In dit hoofdstuk wordt de installatie en instelling van X11 behandeld met de nadruk op &xorg; &xorg.version; release. Voor informatie over het configureren van &xfree86; (i.e. op oudere uitgaven van &os; waar &xfree86; de standaard X11-distributie was) of vorige uitgave van &xorg;, is het altijd mogelijk om gearchiveerde versies van het &os; Handboek op te raadplegen. Meer informatie over de videohardware die X11 ondersteunt kan gevonden worden op de &xorg; website. Na het lezen van dit hoofdstuk weet de lezer: Wat de componenten van het X Window systeem zijn en hoe zij samenwerken. Hoe X11 geïnstalleerd en ingesteld kan worden. Hoe verschillende window managers geïnstalleerd en gebruikt kunnen worden. Hoe &truetype; lettertypen in X11 te gebruiken. Hoe het systeem ingesteld moet worden voor grafisch aanmelden (XDM). Aangeraden voorkennis: Hoe extra software van derden te installeren (). X begrijpen X voor de eerste keer gebruiken kan een hele schok zijn voor mensen die gewend zijn aan andere grafische omgevingen, zoals µsoft.windows; of &macos;. Het is niet noodzakelijk om alle details te kennen over de X componenten en hoe zij samenwerken, maar enige basiskennis draagt wel bij aan krachtiger gebruik kunnen maken van X. Waarom X? X is niet het eerste windows systeem dat geschreven is voor &unix;, maar wel het meest populaire. Het oorspronkelijke X ontwikkelteam werkte eerst aan een ander window systeem. De naam van dat systeem was W (van Window). X was gewoon de volgende letter in het alfabet. X kan gewoon X, X Window systeem, X11 of nog anders genoemd worden. X11 X Windows noemen kan door sommigen als een belediging opgevat worden. &man.X.7; kan hierover wat licht laten schijnen. Het X client/server model X is vanaf het begin aan ontworpen om netwerk-centraal te zijn en gebruikt een client-server model. In het X model draait de X server op de computer waar het toetsenbord, beeldscherm en muis aan vast zit. De server is verantwoordelijk voor het regelen van beeldinformatie, verwerken van invoer van toetsenbord en muis, en andere invoer- of uitvoerapparaten (i.e. een tablet kan als invoerapparaat worden gebruikt, en een videoprojector kan een alternatief uitvoerapparaat zijn). Iedere X applicatie (zoals XTerm, of &netscape;) is een cliënt. Een cliënt stuurt berichten naar de server zoals teken een venster op deze coördinaten en de server stuurt berichten terug zoals de gebruiker heeft op de OK knop gedrukt. Thuis of in kleine bedrijven draaien zowel de X server als de X clients op dezelfde machine. Het is heel goed mogelijk dat de X server op een minder krachtige desktop computer draait en de X applicaties (de clients) op een, zeg maar, dure krachtige machine van het bedrijf. Hier vindt de communicatie tussen de X client en server plaats over het netwerk. Dit verwart sommige mensen, omdat de X terminologie geheel omgekeerd is aan wat ze verwachten. Dat is namelijk dat de X server de grote krachtige machine aan het eind van de gang is en de X client de machine op hun bureau is. De X server is de machine met het beeldscherm en het toetsenbord en de X clients zijn de programma's die de vensters tonen. Het protocol vereist niet dat de clients en servers hetzelfde besturingssysteem moeten draaien of hetzelfde soort computer moeten zijn. Het is heel goed mogelijk om X server op een µsoft.windows; of Apple's &macos; te draaien en er zijn verschillende gratis en commerciële applicaties die dat doen. De window manager De filosofie van het X ontwerp lijkt veel op die van &unix;: gereedschappen, geen beleid. Dit houdt in dat X niet bepaalt hoe een taak volbracht moet worden. In plaats daarvan worden gereedschappen geleverd aan de gebruiker die verantwoordelijk is voor het juiste gebruik hiervan. Deze filosofie verbreedt zich door X niet te laten bepalen hoe vensters er moeten uitzien op het scherm, hoe ze verplaatst moeten worden met de muis, welke toetsaanslagen gebruikt moeten worden om te schakelen tussen vensters (bijvoorbeeld AltTab in het geval van µsoft.windows;), hoe de titelbalken eruit moeten zien, of ze wel of niet sluitknoppen moeten hebben, enzovoort. In plaats daarvan delegeert X deze verantwoordelijkheid aan een applicatie die Window Manager heet. Er zijn tientallen window managers voor X: AfterStep, Blackbox, ctwm, Enlightenment, fvwm, Sawfish, twm, Window Maker en vele anderen. Elk van deze window managers heeft een eigen voorkomen en werking. Er zijn window managers met virtual desktops of met eigen toetscombinaties om de desktop te beheren; of hebben een Start knop of iets gelijksoortig. Sommige gebruiken thema's die uiterlijk en beleving compleet veranderen door een nieuw thema te kiezen. Window managers zijn te vinden in de categorie x11-wm van de Portscollectie. De KDE en GNOME desktop omgevingen hebben hun eigen window managers die in het bureaublad zijn geïntegreerd. Iedere windows manager heeft zijn eigen manier van instellen. Sommige werken met handgetypte bestanden, anderen beschikken over grafische gereedschappen voor de meeste instellingen. Er is er minstens één (Sawfish) waarvan het instellingenbestand is geschreven in een dialect van de taal Lisp. Focusbeleid De window manager is ook verantwoordelijk voor het focusbeleid van de muis. Ieder window geörienteerd systeem heeft een manier nodig om te bepalen welk venster actief is, toetsaanslagen ontvangt en daarbij zichtbaar aangeeft welk venster actief is. Een bekend focus beleid heet click-to-focus. Dit model wordt gebruikt door µsoft.windows;, waarbij een venster actief wordt door er met de muis op te klikken. X ondersteunt geen specifiek focusbeleid. In plaats daarvan bepaalt de window manager op welk venster, op welk moment, de focus ligt. Een aantal window managers ondersteunen verschillende focusmethoden. Ze ondersteunen allemaal click to focus en de meerderheid ondersteunt ook nog andere. De meest populaire zijn: focus-volgt-muis (focus-follows-mouse) Het venster dat onder de muis zit is het venster waarop de focus ligt. Dit hoeft niet het venster te zijn dat bovenop alle andere vensters ligt. De focus verandert door te wijzen naar een ander venster. Het is niet nodig om er ook nog eens op te klikken. slordige-focus (sloppy-focus) Dit beleid is een kleine uitbreiding op focus-follows-mouse. Indien bij focus-follows-mouse de muis over het root venster (of de achtergrond) gaat, ligt op geen enkel venster de focus en gaan alle toetsaanslagen verloren. Bij sloppy-focus, verandert de focus alleen als de muis in een nieuw venster komt en niet als het huidige venster wordt verlaten. klik-voor-focus (click-to-focus) Het actieve venster wordt geselecteerd door erop te klikken. Het venster wordt dan opgetild en verschijnt dan voor alle andere vensters. Alle toetsaanslagen worden nu naar dit venster gestuurd, zelfs als de cursor naar een ander scherm wordt verplaatst. Veel window managers ondersteunen andere soorten of variaties op de bovenstaande typen muisbeleid. Hierover staat meestal meer in de documentatie van de betreffende window manager. Widgets De X aanpak door gereedschappen te leveren en niets af te dwingen breidt zich uit naar de widgets die in elk applicatievenster te zien zijn. Widget is een term voor alle dingen van de gebruikersinterface waarop geklikt kan worden of een andere actie mee uitgevoerd kan worden: knoppen, vinkvakjes, iconen, lijsten en ga zo maar door. µsoft.windows; noemt ze controls. µsoft.windows; en Apple's &macos; hebben beide een erg strikt widgetbeleid. Van de applicatieontwikkelaars wordt verwacht dat hun applicaties eenduidig zijn wat betreft uiterlijk en beleving. Bij X is ervoor gekozen geen grafische stijl of widgets te verplichten. X applicaties hebben dus niet allemaal hetzelfde uiterlijk. Er zijn populaire widgetsets en variaties, inclusief de originele Athena widgetset van MIT, &motif; (waarvan de widgetset van µsoft.windows; is afgeleid: schuine randen en drie gradaties grijs), OpenLook en anderen. De meeste nieuwe X applicaties gebruiken een modern uitziende widgetset: Qt, gebruikt door KDE, of GTK+ van het GNOME project. Vanuit dit oogpunt lijkt het enigszins op de &unix; desktop, wat het makkelijker maakt voor de beginnende gebruiker. X11 installeren &xorg; is de standaard X11 implementatie voor &os;. &xorg; is de X11 server van de open source implementatie die is uitgebracht door de X.Org Foundation. &xorg; is gebaseerd op de code van &xfree86 4.4RC2 en X11R6.6. De versie van &xorg; die momenteel beschikbaar is in de &os; Portscollectie is &xorg.version;. Om &xorg; vanuit de Portscollectie te bouwen en te installeren: &prompt.root; cd /usr/ports/x11/xorg &prompt.root; make install clean Om &xorg; compleet te bouwen is tenminste 4 GB vrije schijfruimte nodig. X11 kan ook als package geïnstalleerd worden doordat er binaire packages beschikbaar zijn voor &man.pkg.add.1;. Als hiervoor de optie remote fetching van &man.pkg.add.1; wordt gebruikt, dan moet het versienummer verwijderd worden. &man.pkg.add.1; haalt automatisch de laatste versie van het programma op. Om het package voor &xorg; op te halen en te installeren: &prompt.root; pkg_add -r xorg Het voorbeeld hierboven installeert de complete X11 distributie inclusief de servers, clients, lettertypen enz. Er zijn ook afzonderlijke packages en ports beschikbaar voor verschillende delen van X11. De rest van dit hoofdstuk licht toe hoe X11 wordt ingesteld en hoe een productieve desktopomgeving gebouwd kan worden. Christopher Shumway Geschreven door X11 instellen &xorg; X11 Voorbereiding Voordat er wordt begonnen met het instellen van X11 is de volgende informatie van de te installeren machine nodig: Monitor specificaties Chipset van de videokaart Geheugen van de videokaart horizontale scansnelheid verticale scansnelheid De specificaties van de monitor worden door X11 gebruikt om de resolutie en ververssnelheid te bepalen. Deze specificaties kunnen normaal gesproken verkregen worden uit de bij de monitor geleverde documentatie of van de website van de leverancier. Er zijn twee nummerreeksen nodig: de horizontale scansnelheid (scan rate) en de verticale synchronisatiesnelheid (vertical synchronization). De chipset van de videokaart bepaalt welk stuurprogramma X11 gebruikt om de grafische hardware aan te spreken. Bij de meeste chipsets kan dit automatisch bepaald worden, maar het is altijd handig om dit te weten voor het geval de automatische detectie niet correct werkt. Het geheugen op de videokaart bepaalt de resolutie en kleurdiepte waarmee het systeem kan werken. Dit is belangrijk omdat de gebruiker zo de grenzen van zijn systeem kent. X11 instellen Sinds versie 7.3 kan &xorg; vaak zonder enig instellingenbestand werken door eenvoudig op de prompt te typen: &prompt.user; startx Beginnend met versie 7.4 kan &xorg; HAL gebruiken om toetsenborden en muizen automatisch te detecteren. De ports sysutils/hal en devel/dbus worden als afhankelijkheden van x11/xorg geïnstalleerd, maar moeten met de volgende regels in het bestand /etc/rc.conf worden aangezet: hald_enable="YES" dbus_enable="YES" Deze diensten dienen gestart te worden (ofwel handmatig of door opnieuw op te starten) voordat er verder wordt gegaan met de configuratie van &xorg;. De automatische configuratie kan met sommige hardware mislukken, of het kan dingen anders instellen dan gewenst is. In deze gevallen is handmatige configuratie nodig. Bureaubladomgevingen als GNOME, KDE, of Xfce hebben gereedschappen waarmee de gebruiker eenvoudig de schermparameters zoals de resolutie kan instellen. Dus als de standaardconfiguratie niet acceptabel is en u van plan bent om een bureaubladomgeving te installeren kunt u gewoon doorgaan met de installatie van de bureaubladomgeving en het juiste scherminstelgereedschap gebruiken. Het instellen van X11 bestaat uit meerdere stappen. De eerste stap is het bouwen van een instellingenbestand. Dit kan als de supergebruiker met: &prompt.root; Xorg -configure Dit genereert een kaal X11-instellingenbestand in de map /root met de naam xorg.conf.new. Feitelijk wordt bepaald waar de map staat door hoe er superuser rechten zijn verkregen. $HOME is anders bij gebruik van &man.su.1; of bij direct aanmelden. Het X11 programma probeert dan de grafische hardware te detecteren en schrijft een instellingenbestand dat de juiste stuurprogramma's laadt voor de gevonden hardware van het systeem. De volgende stap is het testen van de bestaande instellingen om te controleren of &xorg; met de grafische kaart van het doelsysteem kan werken. Typ in &xorg; tot en met versie 7.3: &prompt.root; Xorg -config xorg.conf.new Beginnend met &xorg; 7.4 en hoger produceert deze test een zwart scherm wat het moeilijk kan maken om vast te stellen of X11 juist werkt. Het oudere gedrag is nog steeds beschikbaar door de optie te gebruiken: &prompt.root; Xorg -config xorg.conf.new -retro Als er een zwart/grijs rooster en een X muis cursor verschijnen was de instelling succesvol. Om de test te stoppen dient naar de virtuele console waarmee de test werd gestart overgeschakeld te worden door op CtrlAlt Fn ( F1 voor de eerste virtuele console) en CtrlC te drukken. Tot en met versie 7.3 van &xorg; kon de toetsencombinatie Ctrl AltBackspace gebruikt worden om uit &xorg; te breken. Om het in versie 7.4 en hoger aan te zetten, kunt u òfwel het volgende commando uitvoeren vanaf elke X-terminal-emulator: &prompt.user; setxkbmap -option terminate:ctrl_alt_bksp òf een instellingenbestand voor het toetsenbord genaamd x11-input.fdi voor hald aanmaken en het in de map /usr/local/etc/hal/fdi/policy opslaan. Dit bestand dient het volgende te bevatten: <?xml version="1.0" encoding="ISO-8859-1"?> <deviceinfo version="0.2"> <device> <match key="info.capabilities" contains="input.keyboard"> <merge key="input.x11_options.XkbOptions" type="string">terminate:ctrl_alt_bksp</merge> </match> </device> </deviceinfo> U moet uw machine opnieuw opstarten om hald te forceren om dit bestand te lezen. - De volgende regel dient ook aan de sectie + De volgende regel dient ook aan de sectie ServerLayout of ServerFlags van xorg.conf.new te worden toegevoegd: - Option "DontZap" "off" + Option "DontZap" "off" Als de muis niet werkt, dan moet deze eerst ingesteld worden. Zie in het &os; installatiehoofdstuk. Verder worden beginnend met versie 7.4 de secties InputDevice in xorg.conf genegeerd ten voorkeur van de automatisch verbonden apparaten. Voeg de volgende regel aan de sectie ServerLayout of ServerFlags van dit bestand toe om het oude gedrag te herstellen: Option "AutoAddDevices" "false" Invoerapparaten kunnen dan zoals in vorige versies worden geconfigureerd, tezamen met eventuele andere benodigde opties (b.v. omschakelen van toetsenbordindeling). Zoals al eerder is uitgelegd zal sinds versie 7.4 de daemon hald automatisch uw toetsenbord detecteren. Het kan zijn dat de indeling of het model van uw toetsenbord niet juist zijn. Bureaubladomgevingen zoals GNOME, KDE of Xfce bieden gereedschappen om het toetsenbord in te stellen. Het is echter mogelijk om de eigenschappen direct in te stellen met behulp van het gereedschap &man.setxkbmap.1; of met een configuratieregel van hald. Als men bijvoorbeeld een PC-toetsenbord met 102 toetsen met een Franse indeling wilt gebruiken, dienen we een instellingenbestand voor het toestenbord voor hald aan te maken genaamd x11-input.fdi en het op te slaan in de map /usr/local/etc/hal/fdi/policy. Het dient de volgende regels te bevatten: <?xml version="1.0" encoding="ISO-8859-1"?> <deviceinfo version="0.2"> <device> <match key="info.capabilities" contains="input.keyboard"> <merge key="input.x11_options.XkbModel" type="string">pc102</merge> <merge key="input.x11_options.XkbLayout" type="string">fr</merge> </match> </device> <deviceinfo> Als dit bestand al bestaat, kunt u de regels betreffende de configuratie van het toetsenbord kopiëren en aan uw bestand toevoegen. U dient uw machine opnieuw op te starten om hald te forceren om dit bestand te lezen. Het is mogelijk om hetzelfde te bereiken vanaf een X-terminal of een script met dit commando: &prompt.user; setxkbmap -model pc102 -layout fr Het bestand /usr/local/share/X11/xkb/rules/base.lst noemt de beschikbare toetsenborden, indelingen en opties. X11 optimaliseren Nu moet xorg.conf.new worden aangepast aan de smaak van de gebruiker. Hiervoor moet het bestand in een teksteditor zoals &man.emacs.1; of &man.ee.1; worden geladen. Eerst moeten de frequenties van de monitor toegevoegd worden. Die zijn meestal weergegeven als horizontale en verticale synchronisatiesnelheid. Deze waarden worden toegevoegd aan xorg.conf.new in het onderdeel "Monitor": Section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "Monitor Model" HorizSync 30-107 VertRefresh 48-120 EndSection In het instellingenbestand kunnen de sleutelwoorden HorizSync en VertRefresh missen. Als ze er niet staan, moeten ze toegevoegd worden met de juiste horizontale synchronisatiesnelheid achter het HorizSync sleutelwoord en de verticale synchronisatiesnelheid achter het VertRefresh sleutelwoord. In het bovenstaande voorbeeld werden de gegevens van de monitor ingevoerd. X kan DPMS (Energy Star) eigenschappen gebruiken bij monitoren die dit ondersteunen. &man.xset.1; regelt de timeouts en kan de statussen standby, suspend of uit forceren. Om DPMS eigenschappen voor een monitor te activeren, moet de volgende regel toegevoegd worden aan de monitor sectie: Option "DPMS" xorg.conf Als het instellingenbestand xorg.conf.new toch open staat in de editor dan kan ook meteen de gewenste standaardresolutie en kleurdiepte gekozen worden. Dit staat in het onderdeel "Screen": Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 24 Modes "1024x768" EndSubSection EndSection Het sleutelwoord DefaultDepth beschrijft de kleurdiepte die standaard wordt gebruikt. Met de commandoregeloptie van &man.Xorg.1; kan dit overschreven worden. Het sleutelwoord Modes beschrijft de resolutie waarmee gewerkt wordt bij de opgegeven kleurdiepte. Alleen VESA standaarden die door de grafische kaart van het systeem worden gedefinieerd worden ondersteund. In het voorbeeld hierboven is de standaard kleurdiepte 24 bits per pixel. Bij deze kleurdiepte is de toegestane resolutie 1024 bij 768 pixels. Bij het oplossen van problemen zijn de logboekbestanden van X11 vaak een goede hulp. Ze bevatten informatie voor ieder apparaat waar de X11 server verbinding mee maakt. Namen van &xorg; logboekbestanden hebben de vorm /var/log/Xorg.0.log. De precieze naam van een logboekbestand van variëren van Xorg.0.log tot Xorg.8.log enzovoort. Als alles is ingesteld, moet het instellingenbestand op een plaats gezet worden waar &man.Xorg.1; het kan vinden. Dit is meestal /etc/X11/xorg.conf of /usr/local/etc/X11/xorg.conf: &prompt.root; cp xorg.conf.new /etc/X11/xorg.conf Het instellen van X11 is nu gereed. &xorg; gestart worden met &man.startx.1;. De X11-server kan ook gestart worden met behulp van &man.xdm.1;. Bijzondere instellingen Instellen met de &intel; i810 grafische chipset Intel i810 grafische chipset Instellen met &intel; i810 geïntegreerde chipsets vereist de agpgart AGP programmeerinterface voor X11 om de kaart aan te sturen. Zie de &man.agp.4; handleiding voor meer informatie. Hierdoor wordt het instellen van de hardware net als ieder andere grafische kaart. Bij systemen die zonder &man.agp.4; stuurprogramma gecompileerd zijn slaagt het laden van module met &man.kldload.8; niet. Het stuurprogramma moet in de kernel geladen zijn tijdens het opstarten door te compileren of door /boot/loader.conf te gebruiken. Een Breedbeeld Flatpanel toevoegen breedbeeld flatpanelconfiguratie Deze sectie gaat uit van wat diepere configuratiekennis. Als pogingen om de bovenstaande standaard instelgereedschappen niet tot een werkende configuratie leidden, dan is er genoeg informatie in de logbestanden om de opstelling aan de praat te krijgen. Het gebruik van een tekstverwerker zal nodig zijn. Huidige breedbeeldformaten (WSXGA, WSXGA+, WUXGA, WXGA, WXGA+, et. al.) ondersteunen 16:10 en 10:9 formaten of aspectverhoudingen die problematisch kunnen zijn. Voorbeelden van enkele veelvoorkomende schermresoluties voor 16:10 aspectverhoudingen zijn: 2560x1600 1920x1200 1680x1050 1440x900 1280x800 Op een gegeven moment zal het toevoegen van een van deze resoluties net zo eenvoudig zijn als een mogelijke Mode in het Section "Screen": Section "Screen" Identifier "Screen 0" Device "Card0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 24 Modes "1680x1050" EndSubSection EndSection &xorg; is slim genoeg om de resolutie-informatie via I2C/DDC-informtie uit het flatpanel te onttrekken zodat het weet wat de monitor aan kan wat betreft frequenties en resoluties. Als die ModeLines niet bestaan in de stuurprogramma's, dient men &xorg; een kleine hint te geven. Met behulp van /var/log/Xorg.0.log kan men genoeg informatie onttrekken om handmatig een werkende ModeLine aan te maken. Kijk naar informatie die op deze lijkt: (II) MGA(0): Supported additional Video Mode: (II) MGA(0): clock: 146.2 MHz Image Size: 433 x 271 mm (II) MGA(0): h_active: 1680 h_sync: 1784 h_sync_end 1960 h_blank_end 2240 h_border: 0 (II) MGA(0): v_active: 1050 v_sync: 1053 v_sync_end 1059 v_blanking: 1089 v_border: 0 (II) MGA(0): Ranges: V min: 48 V max: 85 Hz, H min: 30 H max: 94 kHz, PixClock max 170 MHz Deze informatie wordt EDID-informatie genoemd. Hiervan een ModeLine maken is gewoon een kwestie van de nummers in de juiste volgorde zetten: ModeLine <name> <clock> <4 horiz. timings> <4 vert. timings> Dus de ModeLine in Section "Monitor" zou er voor dit voorbeeld uitzien als: Section "Monitor" Identifier "Monitor1" VendorName "GroteNaam" ModelName "BesteModel" ModeLine "1680x1050" 146.2 1680 1784 1960 2240 1050 1053 1059 1089 Option "DPMS" EndSection Na het voltooien van deze eenvoudige stappen, zou X moeten starten op uw nieuwe breedbeeldmonitor. Murray Stokely Bijgedragen door Lettertypen gebruiken in X11 Type1 lettertypen De standaard lettertypen van X11 zijn allerminst ideaal voor het typische bureaubladprogramma. Grote presentatielettertypen zien er hoekig en onprofessioneel uit en kleine lettertypen in &netscape; zijn bijna onleesbaar. Er zijn diverse gratis, kwalitatief goede Type1 (&postscript;) lettertypen die meteen gebruikt kunnen worden met X11. De URW lettertypecollectie (x11-fonts/urwfonts) heeft bijvoorbeeld hoge kwaliteit versies van standaard Type1 lettertypen (Times Roman, Helvetica, Palatino en anderen). De Freefonts collectie (x11-fonts/freefonts) heeft nog meer lettertypen, maar de meesten ervan zijn bedoeld om in grafische software als Gimp gebruikt te worden en zijn niet compleet genoeg om als schermlettertypen te gebruiken. Daarbij kan X11 zonder veel moeite ingesteld worden worden om &truetype; lettertypen te gebruiken. Meer informatie staat in &man.X.7; of de paragraaf over &truetype; Lettertypen. Om de bovenstaande Type1 lettertypecollectie van de Portscollectie te installeren: &prompt.root; cd /usr/ports/x11-fonts/urwfonts &prompt.root; make install clean Dat geldt ook voor de freefont en andere collecties. Om de X server te vertellen dat deze lettertypen bestaan, dient de volgende regel toegevoegd te worden aan het instellingenbestand van de X server (/etc/X11/xorg.conf): FontPath "/usr/local/lib/X11/fonts/URW/" Ook kan op de commando regel in de X sessie het volgende gestart worden: &prompt.user; xset fp+ /usr/local/lib/X11/fonts/URW &prompt.user; xset fp rehash Dit werkt wel, maar zodra de X sessie wordt afgesloten is het weer verdwenen tenzij het is toegevoegd aan het opstartbestand (~/.xinitrc voor een normale startx sessie of ~/.xsession als er wordt aangemeld met een grafische aanmeldmanager als XDM). Een derde manier is het gebruik van het nieuwe bestand /usr/local/etc/fonts/local.conf: zie hiervoor de paragraaf over over Anti-aliasing. &truetype; lettertypen TrueType lettertypen lettertypen TrueType &xorg; heeft ingebouwde ondersteuning voor het renderen van &truetype; lettertypen. Er zijn twee verschillende modules die deze functionaliteit activeren. In dit voorbeeld wordt de freetype module gebruikt omdat deze beter werkt met de andere lettertypen die back-ends renderen. Om de freetype module te activeren dient de volgende regel toegevoegd te worden aan het onderdeel "Module" van /etc/X11/xorg.conf. Load "freetype" Hierna dient een map voor de &truetype; lettertypen gemaakt te worden (bijvoorbeeld /usr/local/lib/X11/fonts/TrueType) en alle &truetype; lettertypen moeten naar deze map gekopieerd worden. &truetype; lettertypen kunnen niet direct van een &macintosh; gehaald worden. Ze moeten in een &unix;/&ms-dos;/&windows; formaat zijn voor X11. Zodra de bestanden naar deze map zijn gekopieerd, kan ttmkfdir gestart worden om een fonts.dir bestand te maken zodat de X lettertyperenderer weet waar deze nieuwe bestanden zijn geïnstalleerd. ttmkfdir zit in de &os; Portscollectie als x11-fonts/ttmkfdir. &prompt.root; cd /usr/local/lib/X11/fonts/TrueType &prompt.root; ttmkfdir -o fonts.dir Nu moet de &truetype; map toe aan het lettertypepad toegevoegd worden. Dit gebeurt op dezelfde wijze als boven is beschreven voor Type1 lettertypen: &prompt.user; xset fp+ /usr/local/lib/X11/fonts/TrueType &prompt.user; xset fp rehash of door een FontPath regel toe te voegen aan xorg.conf. Dat is alles. Nu herkennen &netscape;, Gimp, &staroffice; en alle andere X applicaties de geïnstalleerde &truetype; lettertypen. Extreem kleine lettertypen (zoals hoge resolutie tekst op een webpagina) en extreme grote lettertypen (in &staroffice;) zien er nu veel beter uit. Joe Marcus Clarke Bijgewerkt door Antialias lettertypen antialias lettertypen lettertypen antialias - Anti-aliasing wordt door X11 sinds ondersteund sinds - &xfree86; versie 4.0.2. Maar - instellingen voor lettertypen waren bewerkelijk voordat - &xfree86; 4.3.0 geïntroduceerd - werd. Vanaf &xfree86; 4.3.0 - zijn alle lettertypen die X11 in de mappen + Alle lettertypen die X11 in de mappen /usr/local/lib/X11/fonts/ en - ~/.fonts/ aantreft automatisch beschikbaar - voor anti-aliasing in applicaties die Xft ondersteunen. Niet - alle applicaties ondersteunen Xft. Voorbeelden van applicaties - met Xft ondersteuning zijn Qt 2.3 en hoger (de - hulpprogramma's voor het KDE - bureaublad), GTK+ 2.0 en hoger (de hulpprogramma's voor - het GNOME bureaublad) en - Mozilla 1.2 en hoger. + ~/.fonts/ staan zijn automatisch beschikbaar + voor anti-aliasing in applicaties die Xft ondersteunen. De meeste + recente applicaties ondersteunen Xft, inclusief KDE, GNOME, en + Firefox. Om te kunnen regelen welke lettertypen gebruik maken van anti-alias of om de eigenschappen van anti-aliasing in te stellen kan /usr/local/etc/fonts/local.conf gemaakt of gewijzigd worden. In dit bestand kunnen speciale eigenschappen van het Xft lettertypesysteem aangepast worden. Deze paragraaf beschrijft wat eenvoudige mogelijkheden. Meer details staan in &man.fonts-conf.5;. XML Dit bestand moet in het XML formaat opgemaakt worden. Hoofdletters en kleine letters worden onderscheiden en alle tags moeten netjes worden afgesloten. Het bestand begint met de gewone XML header gevolgd door een DOCTYPE definitie en daarna de <fontconfig> tag: <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> Zoals al eerder is vermeld zijn alle lettertypen in /usr/local/lib/X11/fonts/ en in ~/.fonts/ al geschikt gemaakt voor Xft applicaties. Als naast deze twee mappen nog een andere lettertypen moeten kunnen bevatten, dan dient een soortgelijke regel als de onderstaande aan /usr/local/etc/fonts/local.conf toegevoegd te worden: <dir>/pad/naar/mijn/fonts</dir> Na het toevoegen van nieuwe lettertypen en zeker nieuwe lettertypemappen dienen de lettertypecaches opnieuw opgebouwd worden met: &prompt.root; fc-cache -f Anti-aliasing maakt randen een beetje wazig wat kleine teksten beter leesbaar maakt en voorkomt trapvorming van grote letters. Maar het kan oogkramp veroorzaken als het op normale tekst wordt toegepast. Om lettertypen kleiner dan 14 punten uit te sluiten van anti-aliasing moeten de volgende regels toegevoegd worden: <match target="font"> <test name="size" compare="less"> <double>14</double> </test> <edit name="antialias" mode="assign"> <bool>false</bool> </edit> </match> <match target="font"> <test name="pixelsize" compare="less" qual="any"> <double>14</double> </test> <edit mode="assign" name="antialias"> <bool>false</bool> </edit> </match> lettertypen spacing Spatiëring voor sommige enkel gespatieerde lettertypen kan ook ongepast zijn bij anti-aliasing. Dit lijkt vooral een probleem te zijn bij KDE. Een mogelijke oplossing hiervoor is het vergroten van de spatiëring van die lettertypen naar 100: <match target="pattern" name="family"> <test qual="any" name="family"> <string>fixed</string> </test> <edit name="family" mode="assign"> <string>mono</string> </edit> </match> <match target="pattern" name="family"> <test qual="any" name="family"> <string>console</string> </test> <edit name="family" mode="assign"> <string>mono</string> </edit> </match> Het bovenstaande hernoemt de standaardnamen van lettertypen naar "mono"). Voeg daarna het volgende toe: <match target="pattern" name="family"> <test qual="any" name="family"> <string>mono</string> </test> <edit name="spacing" mode="assign"> <int>100</int> </edit> </match> Bepaalde lettertypen, zoals Helvetica, kunnen problemen hebben met anti-aliasing. Dit uit zich meestal in een lettertype dat verticaal door midden lijkt gesneden. Op zijn - ergst kan het applicaties zoals - Mozilla laten crashen. Om dit te + ergst kan het applicaties laten crashen. Om dit te voorkomen kan overwogen worden om ook de volgende regels toe te voegen aan local.conf: <match target="pattern" name="family"> <test qual="any" name="family"> <string>Helvetica</string> </test> <edit name="family" mode="assign"> <string>sans-serif</string> </edit> </match> Als de wijzigingen in local.conf zijn gemaakt dient niet vergeten te worden het bestand te eindigen met de tag </fontconfig> tag. Als dit niet gedaan wordt, dan worden de wijzigingen niet gezien. - De standaard lettertypeset die geleverd wordt bij X11 is - niet erg geschikt als het aankomt op anti-aliasing. Een veel - betere set standaardlettertypen is de x11-fonts/bitstream-vera port. - Deze port maakt - /usr/local/etc/fonts/local.conf aan als - het nog niet bestaat. Als het al wel bestaat maakt de port - /usr/local/etc/fonts/local.conf-vera aan. - De inhoud van dit bestand dient in - /usr/local/etc/fonts/local.conf geplaatst - te worden en dan vervangen de Bitstream lettertypen automatisch - de standaard X11 Serif, Sans Serif en Monospaced - lettertypen. - Als laatste kunnen gebruikers hun eigen instellingen aan een persoonlijk .fonts.conf bestand toevoegen. Om dit te doen moet iedere gebruiker het bestand ~/.fonts.conf maken. Ook dit bestand moet in het XML formaat zijn. LCD scherm lettertypen LCD scherm Nog een laatste punt: bij een LCD scherm kan sub-pixel sampling prettig zijn. Eigenlijk zorgt dit er voor dat de (horizontaal gesplitste) rode, groene en blauwe componenten gewijzigd worden om de horizontale resolutie te verbeteren. Het resultaat is geweldig. Voeg hiervoor de volgende regels ergens aan local.conf toe: <match target="font"> <test qual="all" name="rgba"> <const>unknown</const> </test> <edit name="rgba" mode="assign"> <const>rgb</const> </edit> </match> Afhankelijk van het soort beeldscherm kan rgb veranderd moeten worden in bgr, vrgb of vbgr. Experimenteren levert de beste instelling op. - - - Mozilla - - anti-aliasing lettertypen uitschakelen - - - Anti-aliasing moet werken zodra de X server opnieuw gestart - is. Programma's dienen echter wel te weten hoe ze er mee - moeten werken. Op dit moment geldt dat voor de Qt toolkit en - de hele KDE omgeving kan met - anti-alias omgaan. GTK+ en - GNOME anti-aliasing gebruiken via de - Font capplet (zie ). - Mozilla 1.2 en hoger gebruiken - automatisch anti-aliasing. Om dit uit te zetten moet - Mozilla opnieuw gebouwd worden met - de optie -DWITHOUT_XFT. Seth Kingsley Bijgedragen door De X beeldschermmanager Overzicht X beeldschermmanager De X beeldschermmanager (XDM) is een optioneel onderdeel van het X Window systeem dat gebruikt wordt voor beheer van aanmeldsessies. Dit is vaak erg handig bij bijvoorbeeld X Terminals, desktops en grote netwerk beeldschermservers. Omdat het X Window systeem netwerk- en protocolonafhankelijk is, zijn er veel mogelijkheden om X clients en servers op verschillende machines in een netwerk te verbinden. XDM levert een grafische interface waarmee er gekozen kan worden welke beeldschermserver gebruikt moet worden en handelt autorisatie informatie (gebruikersnaam en wachtwoord) af. XDM levert de gebruiker dezelfde functionaliteit levert als &man.getty.8; (zie ). Dus het regelt de systeemaanmeldingen voor de schermen waaraan verbonden moet worden en start dan een sessie manager namens de gebruiker (meestal een X window manager). XDM wacht dan tot het programma stopt en geeft aan dat de gebruiker klaar is en afgemeld kan worden. Hierna kan XDM het aanmeldscherm weer tonen zodat de volgende gebruiker kan aanmelden. XDM gebruiken Om XDM te gebruiken moet de port x11/xdm geïnstalleerd worden (het wordt in recente versies van &xorg; niet standaard geïnstalleerd). Het daemon-programma XDM is daarna beschikbaar in /usr/local/bin/xdm. Dit programma kan als root altijd gestart worden en regelt dan het X weergavegedeelte van de lokale machine. Als XDM iedere keer bij het opstarten moet starten is het handig om een regel toe te voegen aan /etc/ttys. Meer informatie over het gebruik van dit bestand staat in . In de standaardversie van /etc/ttys staat een regel om de applicatie daemon XDM op een virtuele terminal te draaien: ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure Standaard staat deze regel uit. Om hem aan te zetten moet veld 5 van off naar on gewijzigd worden en moet met &man.init.8; herstart worden met gebruikmaking van de aanwijzingen in . Het eerste veld, de naam van de terminal die het programma aanstuurt, is ttyv8. Dit houdt in dat XDM op de negende virtuele terminal begint te draaien. XDM instellen De map met instellingen voor XDM is /usr/local/lib/X11/xdm. In deze map staan diverse bestanden die gebruikt kunnen worden om het gedrag en uiterlijk van XDM te veranderen. Meestal zijn dit de volgende bestanden: Bestand Omschrijving Xaccess Regels voor client authorisatie. Xresources Standaard waarden voor X bronnen. Xservers Lijst met op afstand en lokaal te beheren schermen. Xsession Standaard sessie script voor logins. Xsetup_* Script die applicaties start voordat de login interface start. xdm-config Algehele instellingen voor alle schermen op deze machine. xdm-errors Fouten die gegenereerd zijn door het serverprogramma. xdm-pid Het proces ID van de draaiende XDM. Tevens staan in deze map een aantal scripts en programma's om het bureaublad in te stellen als XDM draait. Het doel van elk van deze bestanden wordt kort omschreven. De juiste syntaxis en het gebruik van deze bestanden staat in &man.xdm.1;. De standaardinstelling regelt een eenvoudig rechthoekig aanmeldvenster met bovenin de hostnaam van de machine in een groot lettertype met een Login: en Password: prompt eronder. Dit is een goed beginpunt om het uiterlijk en werking van het XDM venster te veranderen. Xaccess Om een verbinding te maken met XDM-gestuurde schermen wordt het protocol X Display Manager Connection Protocol (XDMCP) gebruikt. Het bestand is een set regels die XDMCP verbindingen met andere machines bestuurt. Het wordt genegeerd, tenzij xdm-config is gewijzigd zodat er wordt geluisterd naar inkomende verbindingen. Standaard wordt het clients niet toegestaan te verbinden. Xresources Dit is een bestand met standaarden voor de schermkiezer en de aanmeldschermen. Hier kan het uiterlijk van het aanmeldprogramma gewijzigd worden. De indeling is hetzelfde als bij het app-defaults bestand en is beschreven in de X11 documentatie. Xservers Dit is een lijst met netwerkschermen waaruit gekozen kan worden. Xsession Dit is het standaard sessiescript voor XDM dat start nadat de gebruiker is aangemeld. Normaal heeft iedere gebruiker een eigen sessiescript in ~/.xsession dat dit script overheerst. Xsetup_* Deze starten automatisch voordat de kiezers of aanmeldschermen getoond worden. Er is een script voor ieder gebruikt scherm met de naam Xsetup_ gevolgd door het lokale schermnummer (bijvoorbeeld Xsetup_0). Normaal draaien deze scripts éé of twee programma's in de achtergrond zoals xconsole. xdm-config Dit bevat de instellingen die toegepast worden op ieder scherm die deze installatie aanstuurt. De indeling is hetzelfde als van app-defaults. xdm-errors Hierin staan de meldingen die de X servers geven als XDM ze probeert te starten. Als een scherm dat gestart is door XDM om onduidelijke reden hangt, is dit een goede plaats om te zoeken naar foutmeldingen. Deze meldingen worden ook per sessie naar het ~/.xsession-errors van de gebruiker gestuurd. Een netwerk beeldschermserver gebruiken Om gebruikers een verbinding te laten maken met een X server moeten de toegangsregels gewijzigd worden en de connectielistener moet aangezet worden. Deze hebben standaard wat terughoudende waarden. Om XDM te laten luisteren naar verbindingen moet als eerste een regel uitgecommentarieerd worden in xdm-config: ! SECURITY: do not listen for XDMCP or Chooser requests ! Comment out this line if you want to manage X terminals with XDM DisplayManager.requestPort: 0 Hierna moet XDM herstart worden. Afwijkend in dit bestand is dat commentaar in app-defaults bestanden begint met het karakter ! en niet met het karakter #. Het kan wenselijk zijn om de toegangscontrole aan te scherpen — hiervoor staan voorbeeldregels in Xaccess en lees de hulppagina &man.xdm.1; voor meer informatie. Alternatieven voor XDM Er bestaan diverse alternatieven voor XDM programma. kdm (wordt geleverd bij KDE) wordt later in dit hoofdstuk behandeld. De kdm beeldschermmanager biedt vele grafische verbeteringen en cosmetische franje en de mogelijkheid om de gebruiker de kans te geven een window manager te laten kiezen bij het aanmelden. Valentino Vaschetto Bijgedragen door Bureaubladomgevingen Deze sectie beschrijft de verschillende bureaubladomgevingen voor X op &os;. Een bureaubladomgeving kan van alles inhouden: van een simpele window manager tot een complete suite van bureaubladapplicaties zoals KDE of GNOME. GNOME Over GNOME GNOME GNOME is een gebruikersvriendelijke bureaubladomgeving die de gebruiker de mogelijkheid geeft om gemakkelijk de computer te gebruiken en in te stellen. GNOME heeft een paneel (voor het starten en tonen van statusinformatie van applicaties), een bureaublad (waar data en applicaties geplaatst kunnen worden), een set standaard bureaubladapplicaties en een regels die het makkelijker maakt voor applicaties om eenduidig met elkaar samen te werken. Gebruikers van andere besturingssystemen of omgevingen voelen zich meestal meteen thuis bij het gebruik van de krachtige grafisch gestuurde omgeving die GNOME biedt. Meer informatie over GNOME op &os; staat op de &os; GNOME Project website. De website bevat ook redelijk complete FAQ's over het installeren, instellen en beheren van GNOME. GNOME installeren De software kan eenvoudig worden geïnstalleerd vanuit een pakket of de Portscollectie: Om het GNOME package te installeren: &prompt.root; pkg_add -r gnome2 Om GNOME vanuit de Portscollectie te installeren: &prompt.root; cd /usr/ports/x11/gnome2 &prompt.root; make install clean Zodra GNOME geïnstalleerd is, moet de X server verteld worden dat in plaats van de standaard window manager GNOME gebruikt moet worden. De meest eenvoudige manier om GNOME te starten is via GDM, de GNOME Display Manager. GDM wordt meegeïnstalleerd met de GNOME bureaubladomgeving, maar staat standaard uitgeschakeld. Dit programma kan ingeschakeld worden door gdm_enable="YES" toe te voegen aan /etc/rc.conf. Na herstarten start GDM automatisch. Verder kan gnome_enable="YES" aan /etc/rc.conf worden toegevoegd om alle diensten van GNOME aan te zetten wanneer GDM start. GNOME kan ook gestart worden vanaf de commandoregel door het bestand .xinitrc juist in te stellen. Als er al een .xinitrc is, dan hoeft alleen de regel die de huidige window manager start veranderd te worden in een regel die /usr/local/bin/gnome-session start. Als er niets speciaals met dit instellingenbestand is gedaan: &prompt.user; echo "/usr/local/bin/gnome-session" > ~/.xinitrc Nu kan met startx de GNOME bureaubladomgeving gestart worden. Als een beeldschermmanager als XDM gebruikt wordt werkt het bovenstaande niet. In plaats daarvan moet een uitvoerbaar .xsession gemaakt worden met hetzelfde commando erin. Hiervoor moet het bestand aangepast worden door het bestaande window manager commando te vervangen door /usr/local/bin/gnome-session: &prompt.user; echo "#!/bin/sh" > ~/.xsession &prompt.user; echo "/usr/local/bin/gnome-session" >> ~/.xsession &prompt.user; chmod +x ~/.xsession Het is ook mogelijk de beeldschermmanager zo in te stellen dat de window manager gekozen kan worden tijdens het aanmelden. In de paragraaf Meer KDE Details wordt uitgelegd hoe dit gedaan moet worden voor de kdm beeldschermmanager van KDE. - - - Anti-alias lettertypen in GNOME - - - GNOME - - anti-alias lettertypen - - - X11 ondersteunt anti-aliasing via de - RENDER uitbreiding. GTK+ 2.0 en hoger - (de toolkit die gebruikt wordt bij - GNOME) kunnen dit gebruiken. Het - instellen van anti-aliasing is beschreven in . Dus met up-to-date software is - anti-aliasing in de GNOME - bureaubladomgeving mogelijk. In - ApplicationsDesktop - PreferencesFont - kan gekozen worden voor Best - shapes, Best contrast of - Subpixel smoothing (LCDs). Bij een - GTK+ applicatie die geen onderdeel is van het - GNOME bureaublad moet de - omgevingsvariabele GDK_USE_XFT op - 1 gezet worden voordat het programma wordt - gestart. - KDE KDE Over KDE KDE is een bureaubladomgeving die eigentijds is en makkelijk in gebruik. KDE biedt de gebruiker: Een schitterende eigentijdse desktop; Een desktop die volledig netwerktransparant is; Een geïntegreerd hulpsysteem dat eenvoudig bruikbare informatie geeft over het gebruik van het KDE bureaublad en de applicaties; Alle KDE applicaties werken op dezelfde manier en zien er hetzelfde uit; Gestandaardiseerde menu's en werkbalken, keybindings, kleurschema's, enzovoort; Internationalisatie: KDE is beschikbaar in meer dan 40 talen; Gecentraliseerde, consistente, dialooggedreven bureaubladinstelling; Een grote hoeveelheid bruikbare KDE applicaties; KDE wordt geleverd met een webbrowser genaamd Konqueror die niet onder doet voor de andere bestaande webbrowsers op &unix; systemen. Meer informatie over KDE staat op de KDE website. Voor &os; specifieke informatie en bronnen over KDE is er de KDE op &os; team website. Er zijn twee versies van KDE beschikbaar op &os;. Versie 3 is al een lange tijd aanwezig, en is zeer volwassen. Versie 4, de volgende generatie, is ook beschikbaar in de Portscollectie. Ze kunnen zelfs naast elkaar geïnstalleerd worden. KDE installeren Net als bij GNOME of iedere andere bureaubladomgeving kan de software eenvoudig geïnstalleerd met een package of uit de Portscollectie: Om het KDE3 package van het netwerk te installeren: &prompt.root; pkg_add -r kde Om het KDE4 package van het netwerk te installeren: &prompt.root; pkg_add -r kde4 &man.pkg.add.1; haalt automatisch de laatste versie van de applicatie op. Om KDE3 vanuit de Portscollectie te bouwen en te installeren: &prompt.root; cd /usr/ports/x11/kde3 &prompt.root; make install clean Gebruik de Portscollectie om KDE4 vanuit de broncode te bouwen: &prompt.root; cd /usr/ports/x11/kde4 &prompt.root; make install clean Nadat KDE geïnstalleerd is, moet de X server verteld worden dat déze applicatie gestart moet worden in plaats van de standaard window manager. Hiervoor kan .xinitrc aangepast worden: Voor KDE3: &prompt.user; echo "exec startkde" > ~/.xinitrc Voor KDE4: &prompt.user; echo "exec /usr/local/kde4/bin/startkde" > ~/.xinitrc Als het X Window System wordt gestart met startx is KDE het bureaublad. Als er een beeldschermmanager als XDM gebruikt wordt, is de instelling anders. Dan moet .xsession gewijzigd worden. Instructies voor kdm worden later in dit hoofdstuk beschreven. Meer KDE details Nadat KDE geïnstalleerd is op een systeem, kunnen de meeste dingen uitgezocht worden via de hulppagina's of door de verschillende menu's aan te wijzen en erop te klikken. &windows; en &mac; gebruikers voelen zich meestal helemaal thuis. Het beste naslagwerk voor KDE is de on-line documentatie. KDE heeft zijn eigen web browser, Konqueror, tientallen handige applicaties en uitgebreide documentatie. De volgende paragrafen beschrijven de technische zaken die moeilijk proefondervindelijk te achterhalen zijn. De KDE beeldschermmanager KDE beeldschermmanager Een beheerder van een multi-user systeem die een grafisch aanmeldscherm willen hebben voor zijn gebruikers kan hiervoor XDM gebruiken, zoals eerder beschreven. KDE biedt kdm als alternatief. Dat is ontworpen met een beter uiterlijk en heeft meer aanmeldopties. Gebruikers kunnen via een menu kiezen welke bureaubladomgeving (KDE, GNOME of een andere) zij na het aanmelden willen gebruiken. Om kdm te starten, moet de ttyv8 regel in /etc/ttys worden aangepast. De regel moet er als volgend uitzien: Voor KDE3: ttyv8 "/usr/local/bin/kdm -nodaemon" xterm on secure Voor KDE4: ttyv8 "/usr/local/kde4/bin/kdm -nodaemon" xterm on secure Xfce Over Xfce Xfce is een bureaubladomgeving die gebaseerd is op de GTK+ toolkit die gebruikt wordt bij GNOME, maar is eenvoudiger en bedoeld voor gebruikers die een simpel en efficiënt bureaublad willen dat toch eenvoudig en makkelijk in te stellen is. Het ziet er bijna hetzelfde uit als CDE dat bij commerciële &unix; systemen zit. Een aantal Xfce functies zijn: Een eenvoudige, makkelijk te bedienen desktop; Geheel in te stellen met de muis, met klikken en slepen, enzovoort; Hoofdpaneel hetzelfde als CDE met menu's, applets en applicaties Geïntegreerde window manager, bestandsmanager, geluidsmanager, GNOME compliance module en meer zaken; Thema's (sinds het gebruik van GTK+); Snel, licht en efficiënt: ideaal voor de oudere of langzamere machines of machines met beperkte hoeveelheid geheugen; Meer informatie over Xfce staat op de Xfce website. Installeren van Xfce Xfce is met een package te installeren: &prompt.root; pkg_add -r xfce4 Of vanuit de Portscollectie: &prompt.root; cd /usr/ports/x11-wm/xfce4 &prompt.root; make install clean Nu moet de X server weten dat Xfce gestart moet worden als X de volgende keer start: &prompt.user; echo "/usr/local/bin/startxfce4" > ~/.xinitrc De volgende keer dat X start is Xfce het bureaublad. Wederom: als een beeldschermmanager als XDM gebruikt wordt, moet .xsession gemaakt worden zoals beschreven in de paragraaf over GNOME. Nu moet echter het command /usr/local/bin/startxfce4 gebruikt. Het is ook mogelijk de beeldschermmanager in te stellen om bureaublad te kiezen bij het aanmelden, zoals is uitgelegd in de paragraaf over kdm.