How do I get Solaris to recognize generic network cards with well-known chipsets?

How do I get Solaris to recognize generic network cards with well-known chipsets?

6.7) How do I get Solaris to recognize a network card that's not on the
HCL?


There are many new ethernet cards available at major retailers for under $20
using well-supported chipsets. Unfortunately, the cards on the Solaris HCL
have been out of production for quite some time -- particularly the Intel
cards. Even Solaris 8 does not recognize these newer cards. I was amazed
how difficult it is to find hardware on the Solaris HCL, especially fast
ethernet cards. For an example take the Intel EtherExpress Pro/100. This
card, based on the i82559 chipset, has been out of production for years--yet
it is the last card supported by Solaris 8 01/01. The current Intel
InBusiness 10/100 card has the very same i82559 chipset in a much smaller
BGA package, yet Solaris 8 01/01 still won't recognize the card.


First, save yourself a lot of trouble and see if there's a driver for your
card somewhere
See if the card is listed on the Hardware Compatibility List (HCL)
for the latest Solaris Maintenance Update (MU).
The HCL is at
http://SolDC.Sun.COM/support/drivers/hcl/
Check to see if there's a new driver for the card at:

http://soldc.sun.com/developer/support/driver/

Check for new and third-party drivers at
http://www.Sun.COM/io/.
Also check to see if there's a patch supporting your card at
http://access1.Sun.COM/


A list of third-party drivers (mostly from hardware vendors) for Solaris x86
is at

http://www.sun.com/io_technologies/ihv-drivers.html



If you have a Linksys LNE100TX or other NIC card, it may be supported
by one of Garrett D'Amore's ethenet drivers.
See
http://garrett.damore.org/software/ethernet/



If there's no driver found above, here's what to do:



  1. Install the card and watch the computer boot. Look for the list of
    devices in the BIOS summary screen. Write down the two 4-digit numbers.
    For the Intel card it was 8086 1030, the PCI/PnP vendor and device ID for
    the InBusiness card.

  2. Boot into Solaris. Open the /boot/solaris/devicedb/master
    file and look for the vendor ID you wrote down.
    In this example, the vendor ID is 8086 for Intel.
    Look through the file for devices that closely fit the
    description of your device under the vendor ID. One of them for this card
    happens to be iprb for the Intel 82559 chipset which is listed as:


    pci8086,1029 pc8086,1029 net pci iprb.bef "Intel Pro 100/B Fast Ethernet"

  3. If you're confident that you have a reasonable match, add a new line to
    this file that uses the vendor ID and device that you wrote down:
    pci8086,1030 pc8086,1030 net pci iprb.bef "Intel 82559 You Bonehead"

  4. Open the /etc/driver_aliases file and add a line for the card:


    iprb "pci8086,1030"

  5. Type "devlinks". Type "touch /reconfigure". Restart.
    Hit ESC in the
    the Device Configuration Assistant phase of the boot process and ask it to
    scan for new devices. It should find your device and display the name you
    typed in in step (3) above. This step is crucial--the DCA step in the boot
    process is where some important magic happens.

  6. Once the system is finished booting, note the magic appearance of
    /dev/iprb (or whatever your device is called) and experience joy.
    Type "ifconfig iprb0 plumb" to wake it up. Edit a file called
    /etc/hostname.iprb0 and put your hostname into it.
    (if you use IPv6, also add /etc/hostname6.iprb0).
    Type "touch /reconfigure"
    just for good measure and restart a final time.



As another example, these entries (in /etc/driver_aliases and
/boot/solaris/devicedb/master) support both the 905C and 3C980 card,
using the elxl driver:


elxl "pci10b7,9200" elxl "pci10b7,9800"
pci10b7,9200 pci10b7,9200 net pci elxl.bef "3Com 3C905C-TX-M El XL 10/100"
pci10b7,9800 pci10b7,9800 net pci elxl.bef "3Com 3C980-TX El Server 10/100"



Finally, here's a partial list of the sub-$20 cards and their chipsets, but
I am still looking for the proper driver for the super-cheap 100baseT
chipsets from Realtek and Macronix as used by some Dlink, Hawking, Netgear,
and Linksys cards.


  • dnet: SMC, Sohoware, "tulip"
  • iprb: Intel (most)
  • nei: 10baseT NE2000 clones on the PCI bus (Linksys, AT/LANTIC)



[Thanks to Casper Dik, Bruce Adler, and Kriston]






Home
FAQ