The following runlevels are used in CRUX (defined in /etc/inittab).
Runlevel | Description |
---|---|
0 | Halt |
1 (S) | Single-user Mode |
2 | Multi-user Mode |
3-5 | (Not used) |
6 | Reboot |
The initialization scripts used in CRUX follow the BSD-style (as opposed to the SysV-style) and have the following layout.
File | Description |
---|---|
/etc/rc | System boot script |
/etc/rc.single | Single-user startup script |
/etc/rc.modules | Module initialization script |
/etc/rc.multi | Multi-user startup script |
/etc/rc.local | Local multi-user startup script (empty by default) |
/etc/rc.shutdown | System shutdown script |
/etc/rc.conf | System configuration |
/etc/rc.d/ | Service start/stop script directory |
Modify /etc/rc.modules, /etc/rc.local and /etc/rc.conf according to your needs.
The following configuration variables are found in /etc/rc.conf.
Variable | Description |
FONT |
Specifies which console font to load at system startup. The contents of this variable will be passed as argument to setfont(1). The available fonts are located in /usr/share/kbd/consolefonts/. Example: |
KEYMAP |
Specifies which console keyboard map to load at system startup. The contents of this variable will be passed as argument to loadkeys(1). The available keyboard maps are located in /usr/share/kbd/keymaps/. Example: |
TIMEZONE |
Specifies the timezone used by the system. The available zone description files are located in /usr/share/zoneinfo/. Example: |
HOSTNAME |
Specifies the hostname. Example: |
SYSLOG |
Specifies the system logging daemon(s) to run at startup. Example: |
SERVICES |
Specifies which services to start at system startup. The services specified in this array must have a matching start/stop script in /etc/rc.d/. When entering multi-user mode the specified scripts will be called in the specified order with the argument start. At system shutdown or when entering single-user mode these scripts will be called in the reverse order with the argument stop. Example: |
Starting with CRUX 2.5, glibc does not contain all possible locales anymore, thus you'll have to generate the locales you need/use. The following example is a typical setup for swedish users, replace sv_SE*
with the locale you want:
# localedef -i sv_SE -f ISO-8859-1 sv_SE # localedef -i sv_SE -f ISO-8859-1 sv_SE.ISO-8859-1 # localedef -i sv_SE -f UTF-8 sv_SE.utf8
The network configuration is found in the service script /etc/rc.d/net. To enable this service you need to add net to the SERVICES array in /etc/rc.conf. By default this service script only configures the lo device and a static IP adress for eth0, you have to add additional ip(8) commands if you want to setup other network devices (eth0, eth1, etc). Example:
#!/bin/sh # # /etc/rc.d/net: start/stop network # case $1 in start) # loopback /sbin/ip addr add 127.0.0.1/8 dev lo broadcast + scope host /sbin/ip link set lo up # ethernet /sbin/ip addr add 192.168.1.100/24 dev eth0 broadcast + /sbin/ip link set eth0 up # default route /sbin/ip route add default via 192.168.1.1 ;; stop) /sbin/ip route del default /sbin/ip link set eth0 down /sbin/ip addr del 192.168.1.100/24 dev eth0 /sbin/ip link set lo down /sbin/ip addr del 127.0.0.1/8 dev lo ;; restart) $0 stop $0 start ;; *) echo "usage: $0 [start|stop|restart]" ;; esac # End of file
if you want to configure your system to be a DHCP client you use the dhcpcd(8) command (instead of ip(8)). Example:
#!/bin/sh # # /etc/rc.d/net: start/stop network # case $1 in start) # loopback /sbin/ip addr add 127.0.0.1/8 dev lo broadcast + scope host /sbin/ip link set lo up # ethernet /sbin/dhcpcd -t 10 -h $HOSTNAME eth0 ;; stop) /usr/bin/killall -q /sbin/dhcpcd /sbin/ip link set lo down /sbin/ip addr del 127.0.0.1/8 dev lo ;; restart) $0 stop $0 start ;; *) echo "usage: $0 [start|stop|restart]" ;; esac # End of file
Note
Manual ip configuration (CRUX < 2.3):
#!/bin/sh # # /etc/rc.d/net: start/stop network # case $1 in start) /sbin/ifconfig lo 127.0.0.1 /sbin/ifconfig eth0 195.38.1.140 netmask 255.255.255.224 /sbin/ifconfig eth1 192.168.0.1 netmask 255.255.255.0 /sbin/route add default gw 195.38.1.129 ;; stop) /sbin/ifconfig eth1 down /sbin/ifconfig eth0 down /sbin/ifconfig lo down ;; restart) $0 stop $0 start ;; *) echo "usage: $0 [start|stop|restart]" ;; esac # End of file
DHCP Configuration (CRUX < 2.3):
#!/bin/sh # # /etc/rc.d/net: start/stop network # case $1 in start) /sbin/ifconfig lo 127.0.0.1 /sbin/dhcpcd eth0 [add additional options if needed] ;; stop) killall -q /sbin/dhcpcd /sbin/ifconfig lo down ;; restart) $0 stop $0 start ;; *) echo "usage: $0 [start|stop|restart]" ;; esac # End of file
CRUX uses MD5SUM passwords by default. This can be turned off if you instead want to use the traditional DES passwords. Note, however, that DES passwords are considered less secure. To disable MD5SUM passwords change the MD5_CRYPT_ENAB variable in /etc/login.defs to no.
Furthermore, when compiling programs that use the crypt(3)
function to authenticate users you should make sure that these programs are linked against the libcrypt library (i.e. use -lcrypt when linking) which contains the MD5SUM version of the crypt function (this version is backwards compatible and understands DES passwords as well).
The kernel source, which is found in /usr/src/linux-2.6.27.8/ is not installed using pkgadd. If you decide to upgrade your kernel you can safely do so by manually replacing the kernel source with a newer version (or place it somewhere else). This will not make the package database inconsistent (since it's not installed with pkgadd) nor will it affect the kernel headers found in /usr/include/linux and /usr/include/asm since these are not symlinks to the kernel source, but instead contain copies of the headers.