1. About the kernel

The Linux kernel is in the kernel package. We're trying to use as few patches as possible to stay close to the vanilla kernel. We also use splashy instead of well known bootsplash. The kernel contains compiled-in support for most IDE controllers, but all low-level SCSI drivers are compiled as a module. If Frugalware's kernel doesn't contain built-in support for your controller, you can compile your own kernel. Don't worry, it's fairly simple.

  1. After setup is finished, before hitting ENTER to reboot, switch to tty2 by pressing Alt-F2 and press ENTER to get a shell.

  2. Change your root directory to /mnt/target:

    # chroot /mnt/target
  3. The source of your kernel (with additional patches applied) can be found at /usr/src/linux. So go to the /usr/src/linux directory and enter the configuration menu by typing make menuconfig. Inside it, select the driver you don't want to compile as a module anymore, and exit from the menu with saving changes.

  4. Compile your kernel with the make command. This may take several minutes.

  5. Copy your new kernel to /boot by typing the following command:

    # cp /usr/src/linux/arch/$yourarch$/boot/bzImage /boot/vmlinuz

    On x86, $yourarch$ has to be replaced by i386.

2. Init scripts and services

In Frugalware, init scripts are always called rc.something and they are located in /etc/rc.d. They are used to setup the environement and also allow to manage system services.

The services are UNIX daemons that provides various kind of service. The spectrum of their actions are very large. Synchronizing your system clock, running your webserver, running the virus scanner, all of these are services and they offer much much more.

The files that allow to manage them can be found in /etc/rc.d, but usually you will prefer to use our utility service. This tool allows you to control the running state of the services.

In the following examples we will explain how to alter the running state of a given service. You will have to replace $service_name$ with the wanted service name. As you will see the syntax is simple, and you may get more help looking and the service manual doing:

$ man service
Important
Later in this document you will see how to alter the configuration of these services so that they follow your needs. You should better learn how to control them, but don't be afraid, the syntax is really simple, and you will learn it in less then a minute.

2.1. Controlling a service execution

Services can be started, restarted and stopped, so that you can control what your system has to offer.

To start a service, simply do:

# service $service_name$ start

To restart a service, simply do:

# service $service_name$ restart

To stop a service, simply do:

# service $service_name$ stop

As you can see, controlling a service execution is pretty simple.

2.2. Controlling a service execution on system boot

Controlling the automatic execution of services on system startup is not much more difficult.

To add a service for automatic execution on system startup, simply do:

# service $service_name$ add

To delete a service for automatic execution on system startup, simply do:

# service $service_name$ del

To list the runlevels in which the service will be running, simply do:

# service $service_name$ list

3. System boot, runlevels

If you don't pass any extra init=/path/to/init parameters to it, the kernel will start /sbin/init as the final step of the kernel boot sequence. According to the content of /etc/inittab, init will run:

  1. each S* script at /etc/rc.d/rcS.d

  2. each S* script at /etc/rc.d/rcn.d, where n is the default runlevel. This is set to 4 by default. Here is the list of available runlevels:

0 = halt
1 = single user mode
2 = unused (but configured the same as runlevel 3)
3 = multiuser mode (text mode)
4 = multiuser mode, X11 with KDM/GDM/XDM (default Frugalware runlevel)
5 = unused (but configured the same as runlevel 3)
6 = reboot

If X11 is configured, /etc/rc.d/rc.4 will start one of the desktop managers, as configured in /etc/sysconfig/desktop.

4. GRUB gfxmenu

Frugalware comes with a nice graphical grub menu (thanks to SuSE's gfxmenu developers). If you don't like it, you can disable it by commenting out the gfxmenu initialization line in /boot/grub/menu.lst. So for example:

Before: gfxmenu (hd0,5)/boot/grub/message
After: #gfxmenu (hd0,5)/boot/grub/message

5. Splashy

Frugalware uses splashy to display nice splash screen and a progress bar instead of text messages during the boot procedure. Splashy is completely user-space, so there is no need for patching the kernel. If you dislike it or want to switch it off for whatever reason add nosplashy for your kernel parameters in /boot/grub/menu.lst. For example:

kernel (hd0,2)/vmlinuz root=/dev/hda5 ro quiet vga=791 nosplashy