Wednesday, March 21, 2012

MPT major number error

If you hit the following errors when you reboot the server, just as the server is almost ready. They will come in a large numbers repeatedly.

"WARNING: add_spec: No major number for mpt"
You may want to try the solutions below. I have tried out solution 2 successfully.
Document Audience: SPECTRUM
Document ID: 74181
Title: SolarisTM: "WARNING: add_spec: No major number for mpt"
Update Date: Wed Sep 29 00:00:00 MDT 2004
Products: Solaris 8 Operating System, Solaris 9 Operating System
Technical Areas: Patch

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

Keyword(s):add_spec, mpt, major number

Problem Statement:

After installing a patch to update /etc/driver_classes with
an "mpt" entry (for example, 108528-xx with xx>21), the system may
generate the following WARNING messages at boot time:

SunOS Release 5.8 Version Generic_108528-29 64-bit
Copyright 1983-2003 Sun Microsystems, Inc. All rights reserved.
WARNING: add_spec: No major number for mpt
WARNING: add_spec: No major number for mpt
WARNING: add_spec: No major number for mpt
WARNING: add_spec: No major number for mpt
[...]
WARNING: add_spec: No major number for mpt
WARNING: add_spec: No major number for mpt
WARNING: add_spec: No major number for mpt
configuring IPv4 interfaces: hme0.
configuring IPv6 interfaces: hme0.

The following message appears in the /var/sadm/patch//log file
when the entry has not been successfully added to the /etc/name_to_major
file:
SUNWcsr: failed to add mpt to /etc/name_to_major:
(mpt) already in use as a driver or alias.

Explanation:
============
The problem is due to a reference in /etc/driver_classes to the
mpt driver. The mpt driver isn't added to the system because the
/etc/driver_aliases file already had an entry with the mpt driver. Because
of this, the add_drv failed when trying to install the driver.

This is an example of the inconsistencies described in Bug ID 4939994,
"Inconsistency between name_to_major and driver_aliases."

Resolution:

To solve this problem, a script has been created to identify the
inconsistencies between /etc/driver_aliases and /etc/name_to_major.
This script can also add the missing entries if they are listed in a
"reference" name_to_major file.

Here is an example of the way to use the attached script:

    cksum InconsitencyFixTool.tar.gz
    1091730651 4410 InconsitencyFixTool.tar.gz

    gzip -dc InconsitencyFixTool.tar.gz | tar -xvf -
    x InconsitencyFixTool, 0 bytes, 0 tape blocks
    x InconsitencyFixTool/README, 1364 bytes, 3 tape blocks
    x InconsitencyFixTool/name_to_major.InconsitencyFix, 4928 bytes, 10 tape blocks
    x InconsitencyFixTool/name_to_major.i386.5.8, 841 bytes, 2 tape blocks
    x InconsitencyFixTool/name_to_major.i386.5.9, 889 bytes, 2 tape blocks
    x InconsitencyFixTool/name_to_major.sparc.5.8, 1831 bytes, 4 tape blocks
    x InconsitencyFixTool/name_to_major.sparc.5.9, 1815 bytes, 4 tape blocks

    cd InconsitencyFixTool
    ./name_to_major.InconsitencyFix
    Saving original files into .
    Inconsistency found between //etc/driver_aliases and //etc/name_to_major on
    the following driver(s):
    mpt

Add mpt to //etc/name_to_major ? y y
Adding the following devices to //etc/name_to_major :
mpt 215

     

Reboot the system.

Temporary Workaround:

If the above script cannot be used, there are two other ways to fix the
problem:

1. Remove the "mpt" lines from /etc/driver_classes and /etc/driver_aliases.

They should look like the following:
driver_aliases:mpt "pci1000,30"
driver_classes:mpt scsi

Next, install (or remove and reinstall) a patch updating all
those files [/etc/driver_aliases /etc/driver_classes
/etc/name_to_major]. For example, install the mpt patch 115275-01 (or
above) or a new kernel Update patch.

OR

2. Add the missing "mpt" entry in the /etc/name_to_major file
to correct the problem with the patch installation.

You must manually append the "mpt" entry at the end
of the /etc/name_to_major file as follows:

mpt XXX

Where XXX is the maximum+1 of the numbers already given to
the other drivers in this file. Separate "mpt" and the given number with
a space character.

For example:

    tail /etc/name_to_major
    fasttrap 223
    dmfe 224
    todds1307 225
    pool 226
    zcons 227
    ipf 228
    pfil 229
    ctsmc 230
    bl 231
    mpt 232

Reboot the system.

Additional Information:

History:
========
Two patches have been identified that can cause the problem:

108974-31(or greater): SunOS 5.8: dada, uata, dad, sd, ssd and scsi
drivers patch

OR

109885-14 SunOS 5.8: glm patch

Only on top of a kernel patch 108528-xx where xx <= 21.

Note: If you have a more recent version than -21 before installing
the above patches, the problem will not occur.

This problem can also exist on Solaris 9 - if S9 was installed with
an upgrade from a S8 system where the inconsistency existed.

Impact:
=======
The mpt driver would not be installed correctly and cannot be used.

No comments: