SDB:Waiting for Mandatory Device

Şuraya atla: kullan, ara


Version: 9.1

Symptom

During the boot process, the following message appears: ...waiting for mandatory device...

Cause

The rcnetwork script (/etc/init.d/network) uses the ifup command to set up existing network interfaces only; this does not load any drivers (which was done earlier with an alias entry in the moprobe.conf file). Starting with SUSE LINUX versions 9.1/SLES9 this happens exactly the other way around:

Existing hardware is identified or announced by the kernel. This triggers initialization of the hardware (mostly loading modules), which registers network interfaces. The hotplug or rcnetwork scripts are then used to set them up.

Additional background information is available in the following articles

SDB:SUSE Linux Device and Interface Configuration

and

SDB:SUSE Linux Hotplug System Overview

Since this is an asynchronous process, it is not certain that all interfaces are already present when the network script is started. That is why the script waits, if needed, for missing interfaces that are considered mandatory. In addition, the script also waits to make sure that existing interfaces are set up completely (e.g., waiting for a DHCP address).

The network script does not announce success until all mandatory interfaces are set up succesfully.
In order to prevent this process from running endlessly, the /etc/sysconfig/network/config file contains a so-called timeout value.

WAIT_FOR_INTERFACES="20"

Once the timeout period is up, there are two possible error scenarios:

  • 1) " No interface found". This means that no interface was found that belongs to this hardware description. The (hotplug) device was either not found, the device could not be initialized, or the automatic identification of mandatory devices is not applicable.
  • 2) " Interface could not be set up". The interface exists, but could not be set up completely. Either because no configuration was found, or because an interface set up with dhcp, for example, does not yet have an address. In the latter case, the situation can still resolve itself.

All this is necessary because the LSB (Linux Standard Base) requires a point during the boot process at which the basic network functions are considered to be set up and the network services that are based upon them can be started.

Mandatory interfaces are those device interfaces that are entered in the /etc/sysconfig/network/config file under the value MANDATORY_DEVICES.

If this variable is empty, the network script determines it from existing configurations. This includes all configurations that are either "bus-pcmcia" or "bus-usb" and still have the "hotplug", "manual" or "off" start mode.

Solution

This automatic identification process is an emergency solution only. After all, having more configurations than devices is permitted. And in that case, of course, the system cannot find a device for each configuration.

In this case, you can enter the value MANDATORY_DEVICES.

In the process, it is permissible to specify the device configuration file without the prefix ifcfg-.

If the MANDATORY_DEVICES value is empty, the system automatically identifies the devices.

If you do not want to specify any devices as mandatory, the value should contain a space:

MANDATORY_DEVICES=" " <keyword>mandatory,networkcard,device,waiting,net,dhcp,ip,error,boot,hotplug</keyword>