Chapter 17 The SuSE Linux Boot Concept Booting and initializing a UNIX system can challenge even an experienced system administrator. This chapter gives you a short overview of the SuSE Linux boot concept. This concept is much more complex but also more flexible than those used in some Linux distributions. It is based on the boot concept used for a System V workstation as described in [Fri93]. The simple words "Uncompressing Linux..." signal that the kernel is taking control over your hardware. It checks and sets your console1 to read BIOS settings and to initialize basic hardware interfaces. Next, your drivers "probe" existing hardware and initialize it accordingly. After checking the partitions and mounting the root filesystem (assigning it to " / "), the kernel starts /sbin/init which starts the main system with all its programs and configurations. The kernel will control the entire system, including hardware access and the CPU time programs may use. 17.1 The init Program The program /sbin/init is responsible for correctly initializing all system pro- cesses. Thus, it is the father of all processes in the entire system. init takes a special role: init is started directly by the kernel and resists signal 9, which normally enables you to kill processes. All further programs are either started directly by init or by one of its "child" processes. init is centrally configured via the /etc/inittab file. Here, the so-called "runlevels" are defined (more about runlevels in the next section). Here it is also specified what should happen in the various levels. Depending on the entries in /etc/inittab, several scripts are started by init which, for reasons of clarity, all reside in the same directory, /sbin/init.d. The entire process of starting up the system (and shutting down, as well) is maintained by init. From this point of view, the kernel can be considered as a "background process" whose task it is to maintain all other processes and to adjust CPU time and hardware access according to requests from other programs. 1 Or more precisely, the BIOS registers of graphics cards and output format. 395 17. The SuSE Linux Boot Concept 17.2 Runlevels In Linux there are so-called runlevels which define how the system is going to be started up. After booting, the system starts as defined in /etc/inittab in the line initdefault. An alternative to this is assigning a special run- level at boot time (e. g., at the LILO prompt): the kernel passes any parame- ters which it doesn't need directly to init. To change runlevels while the system is running, you can just enter init with the appropriate number. Only the super user is allowed to do this: root@earth:/ > init S brings you to single user mode which is used for the maintenance and ad- ministration of your system. After finishing work in S mode, the system administrator can change the runlevel to 2 again by typing: root@earth:/ > init 2 Now all essential programs are started and users can log in and work with the system. The table below gives you an overview of available runlevels. Runlevel 1 should not be used on a system whose /usr partition is mounted via NFS: Runlevel Meaning 0 Halt S Single user mode 1 Multi-user without network 2 Multi-user with network (standard) 3 Multi-user with network and xdm 4 Unused 5 Unused 6 Reboot Table 17.1: Valid runlevels in Linux You can halt the system using: root@earth:/ > init 0 or restart it with: root@earth:/ > init 6 If you have already installed and configured the X Window System properly (Section 8.1 page 208) and want users to log in via a graphical user interface, you can easily change the runlevel to 3. You should give it a try first by typing: root@earth:/ > init 3 to see whether the system works as you expected. 396 17.3. Changing Runlevels With a damaged /etc/inittab, you can end up in a system which can not be brought up properly. Therefore, be extremely care- ful while editing /etc/inittab! ­ In an emergency you may try to enter init=/bin/sh at the LILO boot prompt for directly booting into a shell (see Section 21 page 106). This looks like: boot: linux init=/bin/sh 17.3 Changing Runlevels Generally, there are a couple of things that happen if you change runlevels. First, so-called stop scripts of the current runlevel are launched, closing down some programs which are essential for the current runlevel. Thereafter, start scripts of the new runlevel are started. Here, in most cases, a number of programs will be started. To illustrate this, we will show you a change from runlevel 2 to 3: * The administrator (`root') tells init to change run levels: root@earth:/ > init 3 * init now consults its configuration file (/etc/inittab) and realizes that it should start /sbin/init.d/rc with the new runlevel as a pa- rameter. * Now rc calls all the stop scripts of the current runlevel, but only for those where there is no start script in the selected new run level. In our example, these are all the scripts which reside in /sbin/init.d/rc2.d (old runlevel was 2) and which start with a `K'.2 The number following `K' guarantees a certain order to start, as there are some dependencies which have to be taken into consideration. * The last thing to start are the start scripts of the new runlevel. These are (in our example) in /sbin/init.d/rc3.d and begin with an `S'. The same procedure regarding the order in which they are started is applied here. If you want to change to the same runlevel which you are already in, init only checks /etc/inittab for changes and starts the appropriate steps (e. g., for starting a getty on another interface). 17.4 Init Scripts Scripts in /sbin/init.d are divided into two sections: * scripts which are executed directly by init. This only applies while boot- ing and shutting down the system immediately (power failure or pressing Ctrl + Alt + Del by the user). * scripts which are started indirectly by init. This happens when the run- level is changed. Generally, /sbin/init.d/rc is executed here, which guar- antees the correct order of the relevant scripts. 2 Names of stop scripts always start with a `K', whereas start scripts always start with an `S'. 397 17. The SuSE Linux Boot Concept All scripts are located in /sbin/init.d. Scripts for changing the run level are also found there but are called via symbolic links from one of the subdi- rectories /sbin/init.d/rc0.d to /sbin/init.d/rc6.d. This is just for clarity reasons and avoids duplicate scripts (e. g., if they are used in several runlevels). Since every script can be executed as both a start and a stop script, these scripts have to "understand" the parameters "start" and "stop". An example: while leaving runlevel 2, /sbin/init.d/rc2.d/K40network Example is one script, of many, that is executed. This results in /sbin/init.d/ network being executed from /sbin/init.d/rc with the "stop" pa- rameter. When entering runlevel 3, the same script is started, but with the "start" parameter instead of "stop". Links in these runlevel-specific subdirectories simply serve to allocate the scripts to a certain runlevel. Boot and Below,we give you a short introduction to the boot and stop scripts that are shutdown launched first (or last, respectively) as well as an explanation of the maintain- ing script. * boot Executed while starting the system directly, using init. It is indepen- dent of the chosen runlevel and is only executed once. Here, filesystems are checked, the kernel daemon is launched, some unnecessary files in /var/lock are deleted, and the network is configured for the loopback device (if it has been selected in /etc/rc.config). Furthermore, the system time is set up and Plug and Play hardware is initialized by the isapnp tools. If an error occurs while automatically checking and repairing the filesys- tem, the system administrator can intervene, after first entering the root password. The directory /sbin/init.d/boot.d is assigned to this script. All scripts in this directory are executed while the system is booted. This is the right place for your own personal extensions, which should be executed only once. Last to be executed is the script boot.local. * boot.local Here, you can enter additional commands to be executed at boot time before changing into a runlevel. It can be compared to AUTOEXEC.BAT on DOS systems. * boot.setup General settings that have to be performed while changing from single user mode to another runlevel. Here, keyboard maps are loaded and the kernel daemon is started, which loads modules automatically. * halt This script is only executed while changing into runlevel 0 or 6. Here, it is executed either as halt or as reboot. Whether the system shuts down or reboots depends on how halt is called. 398 17.5. /etc/rc.config and /sbin/SuSEconfig * rc This script is of overriding importance whenever runlevels are changed. It calls the appropriate stop scripts of the current runlevel and the start scripts of the newly selected runlevel. You may add your own scripts to this skeleton very easily. A template may Creating be found in /sbin/init.d/skeleton. To enable a script via /etc/ scripts rc.config, it is recommended that you create a variable in this file. Additional parameters should only be added if really needed (refer to the /sbin/init.d/gpm script for reference). Now you need to create the links in the corresponding rc?.d to your script to make sure it is launched when you change runlevels (see above Section 17.3 page 397 for script names, etc.). The manpage for init.d (man 7 init.d) gives you all the necessary technical background. Please handle these scripts with the utmost care! A faulty script may hang your machine! See Section 17.2 page 396 if all else fails. . . 17.5 /etc/rc.config and /sbin/SuSEconfig Practically the entire configuration of SuSE Linux can be done via a central configuration file called /etc/rc.config. Here, a couple of environment variables are set which are (amongst others) checked by the init scripts. Each of the scripts in /sbin/init.d executes /etc/rc.config as a first step, in order to read the values of those variables which apply to it. From SuSE Linux 6.0 packages with extensive adjustment options store their variables in individual files in the directory /etc/rc.config.d; this is the case, for example, with the package sendmail or package i4l (ISDN) packages. To simplify things, however, we will usually just mention /etc/rc. config, even if the file has been moved somewhere else! Moreover, a large number of configuration files can be generated from /etc/ rc.config. This is the task of /sbin/SuSEconfig. If you change the net- work configuration, for example, the file /etc/resolv.conf will be re- generated, as it is dependent on the configuration you have made. So, if you change /etc/rc.config manually, you should invoke /sbin/SuSEconfig afterwards to make sure all changes to the appropriate con- figuration files are made at the correct places. If you change the configu- ration with YaST, you don't have to bother. YaST automatically executes /sbin/SuSEconfig and updates your configuration files. This concept enables you to make basic changes to your configuration with- out having to reboot the system. Since some changes are rather complex, some programs probably have to be restarted in order for the changes to take effect. This procedure is explained more fully in network configuration (see Section 5.2 page 137), where these programs are forced to be restarted using the command: 399 17. The SuSE Linux Boot Concept root@earth:/ > /sbin/init.d/network stop root@earth:/ > /sbin/init.d/network start As you can see, you can easily start and stop init scripts by hand. Generally, we recommend the following steps for configuring your system: * Bring the system into single user mode: root@earth:/ > init S As an alternative, you can select runlevel 1. Here, you have the possibility of logging in on several consoles: root@earth:/ > init 1 * Change the configuration file /etc/rc.config as needed. This can be done using an editor of your choice or with YaST in `Changing configuration file' (see Section 17.6). * Execute /sbin/SuSEconfig to make the changes take effect. If you have changed /etc/rc.config via YaST, this is done automatically. * Bring your system back to the previous runlevel: root@earth:/ > init 2 This procedure is mainly relevant if you have changed system-wide settings (such as network configuration). It is not necessary to go into single user mode for small changes, but it ensures that all relevant programs are correctly restarted. To categorically disable the automatic configuration of SuSEconfig you need to set the variable in /etc/rc. config (please note Section 17.6). By using selected rc.config vari- ables you may partially disable the auto configuration 17.6 The Variables in /etc/rc.config In this section, we describe all the parameters of the system, including their default settings. If you don't use YaST to change /etc/rc.config, make sure you set "empty" parameters as two quotation marks (e. g., KEYTABLE="") and that you surround parameters that contain a blank with quotation marks (parameters consisting of only one word do not have to be quoted). In our description, each parameter is given a value in order to make its settings as clear as possible: * ENABLE SUSECONFIG=yes With this entry you can disable SuSEconfig completely. Please don't con- tact our Installation Support if you have trouble configuring your system after disabling SuSEconfig ;-) * MAIL REPORTS TO=newbie SuSEconfig can mail reports (created by YaST or included in packages) to you. Here you can set the address. If you don't want this feature, simply set it to "". 400 17.6. The Variables in /etc/rc.config ­ System Configuration * GMT=-u If your hardware is set to GMT (Greenwich Mean Time), you should set this variable to -u.3 Otherwise, leave it empty. This setting is relevant for automatic switching to summer or winter time. * TIMEZONE=Europe/Berlin Your time zone. Important for automatic switching to summer or winter time. * LANGUAGE="german" This is set by YaST if changes are made with the menu item `Select language' (see Section 3.3.1 page 72). This value also serves as a fallback if the variables LANG or LC * are not set; in that case the value written here is resolved via the file /usr/share/ locale/locale.alias. * RC LANG="de DE" Sets LANG for locale; with this a default can be assigned for local users. This value is valid so long as no special RC LC * variables are used. The standard rc.config variables are: RC LC ALL (with this the variables LC * and LANG can be overwritten!), RC LC MESSAGES, RC LC CTYPE, RC LC MONETARY, RC LC NUMERIC, RC LC TIME und RC LC COLLATE. See manpage for locale (man 5 locale). * ROOT USES LANG="no" Should local settings also be used for `root'? * Use INIT SCRIPT USE LANG="no" locale in init scripts? Prefereably not ;-) Initializing Local Hardware (keyboard, modem, mouse,PCMCIA, etc.) * * KEYTABLE=de-latin1-nodeadkeys Defines keymaps. * KBD NUMLOCK=no NumLock on/off. * KBD CAPSLOCK=no CapsLock on/off. * KBD TTY="tty1 tty2 tty3 tty4 tty5 tty6" NumLock and CapsLock can be limited to certain TTYs; gequoted stands for all TTYs. * KBD RATE=30 Sets the automatic keyboard frequency. Possible values are from twice to 30 times per second. For this change to take effect, keyboard delay has to be set as well. * KBD DELAY=250 This is the delay whereafter automatic repetition of the pressed key com- mences. This value is in milliseconds but isn't very accurate. You have to assign KBD RATE as well. 3 -u is an abbreviation for universal time. 401 17. The SuSE Linux Boot Concept * CONSOLE FONT=mr.fnt This is the console font. Not all fonts support German umlauts. YaST provides a little window where you can test all fonts and choose the one you like best. Additional settings are: CONSOLE SCREENMAP, CONSOLE UNICODEMAP and CONSOLE MAGIC. * MODEM=/dev/ttyS1 Interface to which the modem is connected. YaST and SuSEconfig, in turn, create a link from /dev/modem to the device specified. * MOUSE=/dev/ttyS2 Interface to which the mouse is connected. YaST and SuSEconfig, in turn, create a link from /dev/mouse to the device specified. * START GPM=yes Set to yes to start mouse console support. This enables you to exchange text between consoles using the mouse. gpm can cause problems in con- nection with certain bus mice. If you encounter problems while starting X, you should disable gpm. The other alternative is to start xdm, since gpm is not started in runlevel 3. * GPM PARAM=" -t logi -m /dev/mouse" Initialization parameters for gpm. These are normally set via YaST. * PCMCIA=i82365 This is for assigning the chipset: valid entries are: i82365 and tcic. If the variable is set to "" the PCMCIA sub-system is not launched. Fine tuning is achieved via PCMCIA PCIC OPTS and PCMCIA CORE OPTS * START ISAPNP=yes Initialize ISA P'n'P at boot time. * INITRD MODULES="aic7xxx" The names of the modules which need to be loaded when the kernel is being booted, for example, to access the hard drive. Useful, or necessary entries can be made during the installation or the update; see Section 16.2 page 377. * START KERNELD=yes This variable determines whether the kernel daemon should be started automatically at boot time. This daemon is responsible for automatically loading kernel modules on demand. For the current standard kernel 2.2.xx kerneld is no longer required. ­ A short description of the module concept and functions of kerneld can be found in chapter Section 13.2 page 319. Starting and Configuring Local Network and Other Services * START LOOPBACK=yes Sets up a sort of "mini" network created by configuring the Loopback device. Since many programs rely on this functionality, it should be set.4 * CHECK ETC HOSTS=yes SuSEconfig can do some checks and modifications to /etc/hosts. * BEAUTIFY ETC HOSTS=no If /etc/hosts is to be sorted. 4 Your kernel needs to have been compiled with network support for this to work. 402 17.6. The Variables in /etc/rc.config ­ System Configuration * SETUPDUMMYDEV=no Determines whether the dummy network device should be set up: this is useful for non-permanent network connections (e. g., SLIP or PPP). If you have an ethernet card it can be troublesome at times. * CREATE HOSTCONF=yes SuSEconfig can create and check /etc/host.conf. * CREATE RESOLVCONF=yes SuSEconfig can maintain /etc/resolv.conf. If set to yes and one of SEARCHLIST and NAMESERVER is empty, it is assumed that no DNS is wanted and /etc/resolv.conf will be deleted. no simply leaves /etc/resolv.conf untouched. * NETCONFIG= 0 Specifies how many network cards (or other net devices) are in- stalled. The text shows an example for one network card (they start with 0). For a system with two cards installed, it should resemble NETCONFIG=" 0 1". For a system without networking, it should not be set. * IPADDR 0=193.141.17.202 IP address of the first networking card. * NETDEV 0=eth0 Name of the first network device (normally an Ethernet card, therefore, the example, eth0). Other possible settings are str1 or plip1. If there is more than one card installed, additional cards are supplied with the variables NETDEV 1 to NETDEV 3. * IFCONFIG 0="193.141.17.205 broadcast 193.141.17.255 netmask 255.255.255.192" Configuration command for the first networking device installed. These settings can easily be assigned using YaST. If you have more than one card installed, just enter the corresponding values in the appropriate variables. * CLOSE CONNECTIONS=false If this variable is set to true and the system runs in "runlevel" 0 or 6, /sbin/init.d/route sends a SIGTERM to all processes that own an open "remote tcp" or "udp" connection. * IP DYNIP=no Switch on the "dynamic IP patch" when booting; if yes, the script /sbin/init.d/boot enables this patch via an entry in the /proc filesystem. * IP TCP SYNCOOKIES=yes Activate "syn flood protection". * IP FORWARD=no If the machine should perform forwarding with two network cards, IP FORWARD should be set to yes; normally this is preferable, or re- quired, for a "router" or for "masquerading". The script /sbin/init. d/boot enables "IP forwarding" by means of an entry in the /proc filesystem. 403 17. The SuSE Linux Boot Concept * FQHOSTNAME=earth.cosmos.com Fully qualified hostname of your machine; fully qualified means the com- plete name, consisting of computer name and domain name. * SEARCHLIST=cosmos.com This entry is used for completing a not fully qualified hostname. If, for example, you enter venus, a check is made on whether venus.cosmos.com is a valid address. This variable has to be set if you plan to use DNS! You should at least enter your domain name here. You can make up to three entries, which should be separated by blanks. * NAMESERVER=193.141.17.193 Address of the nameserver which is to be interrogated if a hostname has to be transposed to an IP address. You can enter up to three nameservers which should be separated by blanks. If you plan to use a nameserver, SEARCHLIST has to be set! * ORGANIZATION="Gladstone Ganter Inc." This text appears in every newsposting you send. * NNTPSERVER=helios Address of your news server. If you receive your news via UUCP and it is saved locally, you should enter localhost. * IRCSERVER=helios This is the place for your IRC server (Internet Relay Chat). Names of the servers should be separated by blanks. * START INETD=yes Controls whether the inetd super daemon should be activated. This dae- mon reacts to calls from other hosts and starts (depending on the port) the appropriate service. You need it if you want to log in via telnet or rlogin. If you plan to use xinetd (see Section 89) you should set this to no. * START XINETD=no Controls whether the xinetd super daemon should be activated (this is an enhanced inetd, see Section 89). If you plan to use this daemon, START INETD should be set to no. * SENDMAIL xxxx= The sendmail variables are described in Section 37 page 177 * START POSTFIX=no Activates the mail server postfix. The relevant variables are POSTFIX CREATECF, POSTFIX RELAYHOST, POSTFIX MASQUERADE DOMAIN and POSTFIX LOCALDOMAINS. * SMTP=no Set to yes if a sendmail daemon should be activated. If you receive your e-mail exclusively via UUCP, you don't need it, provided you call sendmail -q after each polling. (rmail, started by UUCP, just puts mail into a queue but doesn't deliver it). If mail spool directories are mounted via NFS (on a network, for example) and the single host has got only outgoing mail, this could be set to no as well. The same applies with the use of relay hosts. * START PORTMAP=no Determines whether to start the portmapper or not. You need the portmap- 404 17.6. The Variables in /etc/rc.config ­ System Configuration per if you plan to use your host as an NFS server (see Section 5.5 page 145). Without this daemon, rpc.mountd and rpc.nfsd can't run; this is why the portmapper is started when the variable is set to no, but NFS SERVER is switched on! It is also necessary for NIS (see Section 5.5 page 145). * NFS SERVER=no If the host is going to be used as an NFS server, this variable has to be set to yes. This initializes the start of rpc.nfsd and rpc.mountd. More on setting up an NFS server can be found in chapter Section 5.5 page 145. * REEXPORT NFS=no Set this variable to yes in order to re-export mounted NFS directories or NetWare volumes. * NFS SERVER UGID=yes If the daemon (rcp.ugidd) for the conversion of user and group ID's is to be started; this variable only takes effect if is set to yes. * USE KERNEL NFSD="no" If the package package knfsd is installed, the kernel-based NFS dae- mon can be used. With this NFS daemon, locking is possible. See the corresponding variable, USE KERNEL NFSD NUMBER. * START AMD=no Start the automounter. If this is not needed you should prefer the autofs kernel module. If so, you need to set the next variable (START AUTOFS) to yes. * START AUTOFS=no This daemon enables you to automatically mount directories, via NFS as well as local directories, CD-ROM drives, floppy disks and more). The package autofs, series n must be installed and configured. * START RWHOD=no Controls whether rwhod is started. Caution: the rwhod regularly sends "Broadcasts". If you use "on-demand" connection (ISDN and/or diald) this may cause connections to be made, resulting in extra traffic and costs! * START ROUTED=no The route daemon is only necessary for dynamic routes (see the manpage for routed (man routed)). Caution, this service establishes a con- nection every 30 seconds. If the machine us connected to the Internet via dialup (for example, ISDN), then it makes no sense to set this variable to yes. * START NSCD=yes NSCD Initializing "Name Service Caching Daemon" at boot time. * START NAMED=no This controls whether the name daemon should be activated. * CREATE YP CONF=yes Set to yes if SuSEconfig should create the necessary files for YP. This depends on the next two entries as well (see Section 5.4 page 144). SuSEconfig also makes the appropriate changes to /etc/passwd and /etc/group. 405 17. The SuSE Linux Boot Concept * YP DOMAINNAME=cosmos.com YP domain name of hosts. For detailed information please refer to Sec- tion 5.4 page 144. * YP SERVER=helios.cosmos.com Name of the NIS server. * USE NIS FOR RESOLVING=no Use NIS for resolving host names. * START CIPED=no Start CIPE daemon for an IPIP tunnel. * START DHCPD=no Start server for DHCP Dynamic Host Configuration Protocol. For this the variables DHCPD INTERFACE, START DHCRELAY and DHCRELAY SERVERS are used. * START LDAP=no Start LDAP server. * START RADIUSD=yes Start radius accounting and authentication service. This service is used by some ISPs for authentication of their users. See documentation in /usr/doc/packages/radiusd. * START LPD=yes Start the lpd ("line printer"). Normally needed for printing. * START NNTPD=yes Start nntpd if you want to access news via an NNTP site. * START INN=no Start the INN news server. * START ATD=yes Controls whether the AT daemon is activated. This daemon enables you to perform tasks periodically. In contrast to the cron daemon, this action is only performed once. * START HTTPD=yes Controls whether the Apache http daemon should be activated. * START HTTPSD=yes Specifies whether the Apache httpsd ("secure" webserver) with SSL and PHP3 should be started. * START SQUID=no Controls whether the proxy server squid should be activated. * DOC HOST="" If you want to use the central documentation server which contains the SuSE help system, you should enter the name of the host, e. g. "helios.cosmos.com". * DOC SERVER=no You should set this variable to yes on the documentation server. In DOC ALLOW (see below) access to http-rman is set. Further- more the index files for the http server have been rearranged:http: //`hostname-f` instead of http://localhost. 406 17.6. The Variables in /etc/rc.config ­ System Configuration * DOC ALLOW="LOCAL" List of machines (as patterns for /etc/hosts.allow) that are al- lowed to access the documentation server. This variable is read only if DOC SERVER is set to yes. You could also enter a subdomain here (e. g. with ".cosmos.com"). * HTTP PROXY="" A couple of programs (e. g. lynx, arena, or wget) are capable of using proxy sites if this environment variable has been set. SuSEconfig may set this in /etc/SuSEconfig/* (see SDB http: //www.suse.de/sdb/en/html/lynx_proxy.html). Exam- ple: "http://proxy.provider.de:3128/". * FTP PROXY="" FTP proxy. Example: "http://proxy.provider.de:3128/". * GOPHER PROXY="" Gopher proxy. Example: "http://proxy.provider.de:3128/". * NO PROXY="" This enables you to exclude (sub) domains from the proxy. Example: "www.me.de, do.main, localhost". * START HYLAFAX=no Activates Hylafax. You will have to invoke faxsetup before setting this variable to yes. * START SMB=no Start the samba server; a file and printer server for MS-Windows. * START MARSNWE=no Activates the Novell server emulation. * START SSHD=yes Start the "Secure Shell Daemon"; ensure before starting that a "host key" exists ­ see also the documentation in /usr/doc/packages/ssh as well as the manpages. * START XNTPD=yes Controls whether the "Network Time Protocol (NTP) daemon" is acti- vated (package xntp). It is configured via /etc/ntp.conf. Ra- dio Controlled Clocks have addresses in the form 127.127.T.U; in which T is the type of clock and U is the "unit number" which has a range from 0 to 3. ­ Most clocks use a serial port or a special bus. The device file ( Device) is normally only to the symbolic link /dev/device-U which refers to the actual hardware, where U has the value of the "unit number". See also /usr/doc/packages/xntp/ html/refclock.htm. Example: You have a radio controlled clock attached to a serial port, you'll also need the necessary Symlink. For this see refclock.htm. ­ for the typical DCF77 receiver the "PARSE" driver is required: ## Type 8 Generic Reference Driver (PARSE) ## Address: 127.127.8.u ## Serial Port: /dev/refclock-u 407 17. The SuSE Linux Boot Concept So, if you choose, by an entry in ntp.conf, the value server 127.127.8.0 you'll also need the Symlink /dev/refclock-0 to refer to ttySx ­ where x represents the serial port on which the Radio controlled clock is attached. * XNTPD INITIAL NTPDATE="" List of the NTP servers from which the time can be obtained before the local server is started; e. g."helios.cosmos.com". If a number of servers are entered, they must be separated by a space. (package xntp). It is configured via /etc/ntp.conf. * DISPLAYMANAGER="" Sets up the login of the machine. This may either be a text console or the X Window System. Possible entries are: xdm (The standard display manager of the X Window System), kdm (KDE's display manager) or "". The latter sets the login to text console (runlevel 2). This is the default. * KDM SHUTDOWN=root Controls which user is allowed to shutdown the machine via kdm (reboot or shutdown). Possible values are: root (`root'), all (every user), none, and local (it may only be shutdown by users that logged in locally). If this is set to "", root is the default. * CONSOLE SHUTDOWN=reboot Controls how init should react to Ctrl + Alt + Del . Possible values: reboot (the machine reboots), halt (the machine shuts down) and ignore (nothing happens). Default is reboot. * START AXNET=no Applixware server. * START MYSQL=no Server for MySQL. * START ADABAS=no Adabas server. The following variables belong to Adabas: DBROOT, DBNAME, DBUSER and DBCONTROL ­ see the respective comments in rc.config. * START DB2=no Server for DB2. * START ARKEIA=no Arkeia backup server. * START ARGUS=no Argus server (network monitor). * ARGUS INTERFACE=eth0 The interface Argus should listen to. * ARGUS LOGFILE="/var/log/argus.log" The Argus logfile. This file might become quite large! * CRON=yes Sets the start and stop of the cron daemon. This daemon lets you start certain programs at a given time. It is only started in runlevels 2 and 3. It is highly recommended that you activate this daemon, especially if your computer is running all the time. An alternative or replacement is the AT daemon (see Section 89 page 406). 408 17.6. The Variables in /etc/rc.config ­ System Configuration There are a lot of options which require you to regularly run certain com- mands and programs. Therefore, the cron daemon should be activated on every system. Local Maintenance * RUN UPDATEDB=yes Set this to yes to have the locate database updated once per day via cron. locate is useful for quickly finding files. This tool may be fine tuned by a set of variables: RUN UPDATEDB AS, UPDATEDB NETPATHS, UPDATEDB NETUSER, and UPDATEDB PRUNEPATHS (see comments in rc.config). ­ This updating may be carried out shortly after you have booted, if the computer is not switched on all the time; see Sec- tion 16.6.1 page 392. * REINIT MANDB=yes If the manpage data base should be renewed once a day by cron.daily. * CREATE INFO DIR=yes Set this to yes to have /usr/info/dir created, which serves as a general index of all info pages. This is useful after installing a package which contains info pages. Keep in mind that perl needs to be installed for this to work. * CHECK PERMISSIONS=set Controls check of file permissions according to /etc/permissions. set corrects wrong entries, warn warns you, and no deactivates this feature. * PERMISSION SECURITY="easy local" There are three levels of security: /etc/permissions.paranoid, /etc/permissions.secure and /etc/permissions.easy. You may enter either easy, secure or paranoid. You can also create your own security levels; e. g. in /etc/permissions.local. Then you may use local to activate your level. * RPMDB BACKUP DIR=/var/adm/backup/rpmdb Controls where cron.daily should install its RPM database backup. If you want to disable this feature, set this variable to "". * MAX RPMDB BACKUPS=5 Maximum number of backup files for the RPM database. * DELETE OLD CORE=yes Core files are memory images of programs which have been killed due to a segmentation fault. These images are very useful for debugging purposes. If this is enabled, a regular search and deletion of old core files is launched. * MAX DAYS FOR CORE=7 Assigns how old core files should be before they are deleted. * MAX DAYS FOR LOG FILES=365 If a log file (mainly in /var/log) reaches a certain size, it will be automatically compressed and archived. `root' is informed via e-mail. This parameter sets how long these files are to be kept on disk before 409 17. The SuSE Linux Boot Concept being deleted automatically. If you set this value to 0, no compressing and no archiving will be done. Log files are written continuously and can grow to a considerable size! Compressed log files can be viewed anytime using less. * MAX DAYS IN TMP=30 Selected directories (see TMP DIRS TO CLEAR below) are checked daily to see whether they have been accessed during the selected time interval (set in days). Files which have not been modified will be deleted automatically. * TMP DIRS TO CLEAR="/tmp /var/tmp" Enter here all directories which are to be searched for old files (see MAX DAYS IN TMP=30 above). item OWNER TO KEEP IN TMP="root bs" Files of system users given here should not be deleted, even if they have not been modified during the time specified. * CWD IN ROOT PATH=no The current working current working directory in the path of user `root'. * ROOT LOGIN REMOTE=no If a login for `root' is to be allowed by telnet or rlogin, this variable should be set to yes. For security aspects concerning this variable, please refer to page 421. * SUSEWM UPDATE=yes Controls whether SuSEconfig should adapt the system-wide configura- tion files according to the installed packages. You may fine tune this fea- ture by means of the following variables: SUSEWM WM, SUSEWM MWM, SUSEWM XPM, SUSEWM ADD and SUSEWM COMPAT. 410