Linux Hot-Plug Operation Fails

Affected OS

Red Hat Enterprise Linux Advanced Server 4 Update 3 and Update 4; SUSE Linux Enterprise Server 9 with Service Pack 3

Problem

A hot-plug operation running under Linux will fail if you do not have the kernel module acpiphp loaded. This module is not loaded by default.

Workaround

Create a simple rc script and use the ckkconfig command to install the kernel module at the proper run levels. Follow these steps:

  1. Create the following file in /etc/init.d/acpiphp:

    #!/bin/bash
    #chkconfig: 123435 20 99
    #description: Load the acpiphp hotplug driver, replacing shpchp
    case $1 in
    start)
    /sbin/modprobe -q -r shpchp
    /sbin/modprobe acpiphp
    ;;
    stop)
    /sbin/modprobe -r acpiphp
    ;;
    status)
    /sbin/lsmod | grep acpiphp
    ;;
    *)
    printf “\nUsage: $(basename $0) [start | stop | status] \n”
    exit 1
    ;;
    esac
    exit 0
  2. Make the file executable. Type:

    chmod +x /etc/init.d/acpiphp

  3. Add the script to the automated system startup sequence. Type:

    chkconfig --add acpiphp

  4. Verify that the acpiphp “service” has been registered properly by typing:

    chkconfig --list acpiphp

    The system returns output similar to the following:

    chkconfig --list acpiphp
    acpiphp 0:off 1:0n 2:on 3:on 4:on 5:on 6:off
  5. You can reboot the system now or start the new "service" acpiphp manaully. Type:

    /etc/init.d/acpiphp start

    Once you have done this, when the system starts, the acpiphp kernel module will be loaded automatically whenever the system is rebooted.

  6. To verify that the proper hot-plug driver is installed, type:

    /etc/init.d/acpiphp status

    The system returns output similar to the following (the numbers might vary):

    /etc/init.d/acpiphp status
    acpiphp					29149 0