• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 337
  • Last Modified:

Hotplug Installation Aborted

Just put a server together:

MOBO:        SOYO P4-RC350 (on board video, LAN and sound)
CPU:           Intel Celeron D 2.24 GHz
RAM:          256 Mb

Installed Slackware 10.0 kernel 2.4.26. Got Samba working with file and printer sharing.
Anomaly in the install: when I had to get the network working on the MOBO, SOYO supplied a driver which I had to compile and do an insmod. They gave specific instructions. I got the network woring and I noticed the hotplug section, during boot, does not seem to load (it says Aborted). Anyway, I continued on since I was not going to use USB, yet.

I will have to use the USB at some point, so I am looking for any help in order to get this working. SOYO does not have any information on USB drivers in the Linux environment.

Any help is appreciated.
0
rathodr
Asked:
rathodr
  • 6
  • 4
1 Solution
 
wesly_chenCommented:
>  I had to compile and do an insmod
What did you do with "insmod"? Can you provide the command you run with "insmod"?

> during boot, does not seem to load (it says Aborted)
Could you provide the error message (in /var/log/messages  or "dmesg | grep -i err")?

The more details the faster the solution be found.

Wesly
0
 
rathodrAuthor Commented:
The insmod command issued:

insmod velocityget

where velocityget is an object file I copied to the /lib/modules/2.4.26/kernel/drivers/net directory.


During boot, I get messages that go by really fast, but here is what I can make out during bootup:
/etc/hotplug/pci.agent   line xxx:  Aborted    $MODPROBE .....

The /var/log/messages files does not show any errors. There are several times it detectes the USB hub and the 6 ports. It seems to visit the USB a few times.

The dmesg command yields 4 places where "err" shows up. The lines are as follows:
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
kmod: failed to exec /sbin/modprobe -s -k scsi_hostadapter, errno = 2
kmod: failed to exec /sbin/modprobe -s -k scsi_hostadapter, errno = 2
kmod: failed to exec /sbin/modprobe -s -k scsi_hostadapter, errno = 2

The first is a fluke (I think). The other lines indicate I have a scsi_hostadapter. I don't have any scsi in this machine. Is it possible it is confusing the USB with the scsi?

0
 
wesly_chenCommented:
Hi,

   You might want to add
alias eth0 velocityget
into /etc/modles.conf

Wesly
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
rathodrAuthor Commented:
Getting closer. I found the line in rc.mo

Checking the file: /etc/rc.d/rc.hotplug, I noticed all it does is issue commands to run based on input. So, I decided to run these commands manually.

When I run:
/etc/hotplug/input.rc start   no errors
/etc/hotplug/pci.rc start      errors (see below)
/etc/hotplug/usb.rc start     no errors

pci.rc runs pci.agent. The errors I get manually are the same ones I see during boot-up:

/etc/hotplug/pci.agent: line 168:  2133 Aborted                 $MODPROBE -n $MODULE >/dev/null 2>&1
/etc/hotplug/pci.agent: line 168:  2173 Aborted                 $MODPROBE -n $MODULE >/dev/null 2>&1
/etc/hotplug/pci.agent: line 168:  2213 Aborted                 $MODPROBE -n $MODULE >/dev/null 2>&1
/etc/hotplug/pci.agent: line 168:  2253 Aborted                 $MODPROBE -n $MODULE >/dev/null 2>&1
/etc/hotplug/pci.agent: line 168:  2293 Aborted                 $MODPROBE -n $MODULE >/dev/null 2>&1
/etc/hotplug/pci.agent: line 168:  2333 Aborted                 $MODPROBE -n $MODULE >/dev/null 2>&1
/etc/hotplug/pci.agent: line 168:  2373 Aborted                 $MODPROBE -n $MODULE >/dev/null 2>&1
/etc/hotplug/pci.agent: line 168:  2413 Aborted                 $MODPROBE -n $MODULE >/dev/null 2>&1
/etc/hotplug/pci.agent: line 168:  2453 Aborted                 $MODPROBE -n $MODULE >/dev/null 2>&1
/etc/hotplug/pci.agent: line 168:  2493 Aborted                 $MODPROBE -n $MODULE >/dev/null 2>&1
/etc/hotplug/pci.agent: line 168:  2534 Aborted                 $MODPROBE -n $MODULE >/dev/null 2>&1
/etc/hotplug/pci.agent: line 168:  2575 Aborted                 $MODPROBE -n $MODULE >/dev/null 2>&1

So, here is the entire pci.agent file for your review:

-----------BEGIN OF FILE: /etc/hotplug/pci.agent-------------------------------------------
#!/bin/bash
#
# PCI-specific hotplug policy agent.
#
# This should handle 2.4.* PCI (including Cardbus)  hotplugging,
# with a consistent framework for adding device and driver specific
# treatments.
#
# Kernel Cardbus/PCI params are:
#      
#      ACTION=%s [add or remove]
#      PCI_CLASS=%06X
#      PCI_ID=%04X:%04X
#      PCI_SLOT_NAME=%s
#      PCI_SUBSYS_ID=%04X:%04X
#
# If /proc is mounted, /proc/bus/pci/$PCI_SLOT_NAME is almost the name
# of the binary device descriptor file ... just change ':' to '/'.
#
# On systems using Linux 2.4.* kernels, be sure to use the right
# modutils (2.4.1+).
#
#
# HISTORY:
#
# 26-Feb-2001      Cleanup, support comments (Gioele Barabucci)
# 13-Jan-2001      Initial version of "new" hotplug agent; needs
#            retesting.
# 17-Jan-2001      Update to latest kernel syntax (Dan Zink)
# 15-Feb-2001      Remove use of "<<" (Adam Richter)
#
# $Id: pci.agent,v 1.13 2003/09/16 19:42:17 kroah Exp $
#

cd /etc/hotplug
. hotplug.functions

# generated by modutils, for current 2.4.x kernels
MAP_CURRENT=$MODULE_DIR/modules.pcimap

# accumulates list of modules we may care about
DRIVERS=

if [ "$PCI_CLASS" = ""  -o "$PCI_CLASS" = "" ]; then
    mesg Bad PCI agent invocation
    exit 1
fi

#
# Each modules.usbmap format line corresponds to one entry in a
# MODULE_DEVICE_TABLE(pci,...) declaration in a kernel file.
#
# Think of it as a database column with up to three "match specs"
# to associate kernel modules with particular devices or classes
# of device.  The match specs provide a reasonably good filtering
# mechanism, but some driver probe() routines need to provide
# extra filtering.
#

# inputs to the match algorithm, from kernel by way of /sbin/hotplug
declare -i pci_class
declare -i pci_id_vendor pci_id_device
declare -i pci_subid_vendor pci_subid_device

pci_convert_vars ()
{
    if [ "$AWK" = "" ]; then
      mesg "can't find awk!"
      exit 1
    fi

    pci_class=0x$PCI_CLASS

    set `echo $PCI_ID | $AWK -F: '{print "0x" $1, "0x" $2 }'` ''
    pci_id_vendor=$1
    pci_id_device=$2

    set `echo $PCI_SUBSYS_ID | $AWK -F: '{print "0x" $1, "0x" $2 }'` ''
    pci_subid_vendor=$1
    pci_subid_device=$2
}

declare -i PCI_ANY
PCI_ANY=0xffffffff


#
# stdin is "modules.pcimap" syntax
# on return, ONE matching module was added to $DRIVERS
#
pci_map_modules ()
{
    # convert the usb_device_id fields to integers as we read them
    local module ignored
    declare -i vendor device
    declare -i subvendor subdevice
    declare -i class class_mask
    declare -i class_temp

    # comment line lists (current) pci_device_id field names
    read ignored

    # look at each pci_device_id entry
    # collect one match in $DRIVERS
    while read module vendor device subvendor subdevice class class_mask ignored
    do
      # comments are lines that start with "#" ...
      # be careful, they still get parsed by bash!
      case "$module" in
      \#*) continue ;;
      esac

      : checkmatch $module

      : vendor $vendor $pci_id_vendor
      if [ $vendor -ne $PCI_ANY -a $vendor -ne $pci_id_vendor ]; then
          continue
      fi
      : device $device $pci_id_device
      if [ $device -ne $PCI_ANY -a $device -ne $pci_id_device ]; then
          continue
      fi
      : sub-vendor $subvendor $pci_subid_vendor
      if [ $subvendor -ne $PCI_ANY -a $subvendor -ne $pci_subid_vendor ]; then
          continue
      fi
      : sub-device $subdevice $pci_subid_device
      if [ $subdevice -ne $PCI_ANY -a $subdevice -ne $pci_subid_device ]; then
          continue
      fi

      class_temp="$pci_class & $class_mask"
      if [ $class_temp -eq $class ]; then
          DRIVERS="$module $DRIVERS"
          : drivers $DRIVERS
          break
      fi
    done
}


#
# What to do with this PCI hotplug event?
#
case $ACTION in

add)
    pci_convert_vars

    LABEL="PCI slot $PCI_SLOT_NAME"

    # on 2.4 systems, modutils maintains MAP_CURRENT
    if [ -r $MAP_CURRENT ]; then
          load_drivers pci $MAP_CURRENT "$LABEL"
    fi

    if [ "$DRIVERS" == "" ]; then
      mesg "... no modules for $LABEL"
      exit 2
    fi
    ;;

*)
    debug_mesg PCI $ACTION event not supported
    exit 1
    ;;

esac
-----------END OF FILE: /etc/hotplug/pci.agent---------------------------------------------

0
 
wesly_chenCommented:
Line 168 of pci.agent is the last line.

Could you also post /etc/hotplug/pci.rc ?

Wesly
0
 
rathodrAuthor Commented:
Just wondering...would it make a difference if I remove the LAN driver and see if the errors clear up? I would still need the drivers, but it may afford the opportunity to see if that is causing the error.

Anyway, here is the file:
-----------BEGIN OF FILE: /etc/hotplug/pci.rc-------------------------------------------
#!/bin/sh
# vim: syntax=sh
#
# pci.rc      mostly to recover lost boot-time pci hotplug events
#
# $Id: pci.rc,v 1.7 2003/06/06 18:27:23 dbrownell Exp $
#

PATH=/sbin:/bin:/usr/sbin:/usr/bin

cd /etc/hotplug

# source function library
if [ -f /etc/init.d/functions ]; then
      . /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ]; then
      . /etc/rc.d/init.d/functions
fi

. hotplug.functions


# # override any of the defaults?
# if [ -f /etc/sysconfig/pci ]; then
#     . /etc/sysconfig/pci
# fi

pci_boot_events ()
{
    #
    # FIXME on 2.5, /sys/bus/pci/devices gives some of this
    # information, and more can be gotten with 'lspci'.
    # don't expect pcimodules to exist!!
    #
    LISTER=`type -p pcimodules`
    if [ "$LISTER" = "" -o ! -f /proc/bus/pci/devices -o ! -x pci.agent ]; then
          echo $"** can't synthesize pci hotplug events"
          return
    fi

    # make sure the pci agent will run
    ACTION=add
    PCI_CLASS=0
    PCI_ID=0:0
    PCI_SLOT=0:0.0
    PCI_SUBSYS_ID=0:0
    export ACTION PCI_CLASS PCI_ID PCI_SLOT PCI_SUBSYS_ID

    # these notifications will be handled by pcimodules
    for BUS in `cd /proc/bus/pci;find * -type d -print`; do
      for SLOT_FUNC in `cd /proc/bus/pci/$BUS; echo *`; do
          PCI_SLOT=$BUS:$SLOT_FUNC
          : hotplug pci for $PCI_SLOT
          /sbin/hotplug pci
      done
    done
}

# See how we were called.
case "$1" in
  start)
      pci_boot_events
        ;;
  stop)
      # echo $"pci stop -- ignored"
        ;;
  status)
      echo $"PCI Status for kernel: "  `uname -srm`
      echo ''

      if [ -f /proc/bus/pci/devices ]; then
          COUNT=`ls /proc/bus/pci | wc -l`
          if [ $COUNT -gt 1 ]; then
            COUNT=`expr $COUNT - 1`
            echo $"PCI up; bus count is $COUNT"
            if [ -x /sbin/lspci ]; then
                /sbin/lspci
            fi
          else
            echo $"no PCI busses?"
          fi
          echo ''
      else
          echo $"no PCI /proc support?"
      fi
      echo ''

      ;;
  restart)
      # always invoke by absolute path, else PATH=$PATH:
      $0 stop && $0 start
      ;;
  *)
        echo $"Usage: $0 {start|stop|status|restart}"
        exit 1
esac
-----------END OF FILE: /etc/hotplug/pci.rc-------------------------------------------
0
 
rathodrAuthor Commented:
BTW: I have the /etc/modules.conf:

alias eth0 velocityget

line. In fact, its the only line in that file.
0
 
wesly_chenCommented:
> if [ "$LISTER" = "" -o ! -f /proc/bus/pci/devices -o ! -x pci.agent ]; then
The line above is the only place "pci.agent" showing up.
It shouldn't execute pci.agent at all.

Could you comment out
#if [ "$LISTER" = "" -o ! -f /proc/bus/pci/devices -o ! -x pci.agent ]; then
#         echo $"** can't synthesize pci hotplug events"
#         return
#fi

and try it?

Wesly
0
 
rathodrAuthor Commented:
Did that ... same problem. Although, when I rebooted, I had the USB Mass storage pluggged in and turned on. The system actually hanged again. So, I reset the system, this time, turning the USB device off. Anyway, the system came back up with the same errors as above. Here are the lines I commented out:

#    LISTER=`type -p pcimodules`
#    if [ "$LISTER" = "" -o ! -f /proc/bus/pci/devices -o ! -x pci.agent ]; then
#          echo $"** can't synthesize pci hotplug events"
#          return
#    fi

This is starting to become frustrating. Any additional ideas would be appreciated.
0
 
rathodrAuthor Commented:
Don't know if this matters, but it appears my mass storage is working. In fact, I can get to all of the files on it. I think the errors above are from modprobe on scsi. In any case, I can close this. Thanks for your help!
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 6
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now