SUMMARY: detect new hme0 without reboot

From: Daniel Ellis (
Date: Tue Dec 23 1997 - 09:52:28 CST

Well, I never did get the hme0 interface to work, but I will post this
summary anyway, since there were lots of good suggestions.

hme_idle turned out to be a workaround for a problem that occurs if you
aren't using the ethernet protion of the SunSwift card. The previous
admin must have done this. Putting this back to hme still didn't help

The funny thing with this problem was that booting from CD would allow
the OS to see the interface, but not otherwise. Just last night I
finally gave up on the card and removed it. Since none of the
suggestions helped, it would seem to be a hardware problem, but why
would it see it when booted from CD? Anyway, someday I'll throw another
one in and try again.

I am very grateful for all your suggestions.

Erik Janssen <>
The Hermit Hacker <>
Casper Dik <casper@holland.Sun.COM>
"Philip A. Fitzpatrick" <>
Asim Zuberi <>
Russ Poffenberger <>
Benjamin Cline <>
Matthew Zeier <>
Dieter Gobbers <>
Matthew Stier <>
Robert <>
Virginia Coffindaffer <>
Martin D. Baldenegro <>
Bismark Espinoza <bizmark@alta.Jpl.nasa.Gov>
Cat Okita <>
Rick Reineman <>
Steven Sakata <>
"D. Ellen March" <>
Joel Lee <>
James Coby <>
Christian Lotz <>
Sabrina Downard <>
"Brion Leary" <>
Fletcher B. Cocquyt <>
Glenn Satchell <>
Tom Erickson <>
Craig W. Shaver <>
Ake Hjalmarsson <>
Drexx Laggui <>
Robert Gillespie <>
Kevin Sheehan <>
Gerd Pruemm <>
Christophe Perrault <>

Original question:
I have installed a SunSwift SBus adapter and created
/etc/hostname.hme0. Is there a way I can get Solaris to see hme0
without rebooting?

SunOS orchid 5.5 Generic_103093-14 sun4m sparc SUNW,SPARCstation-10


Followup question:
Sorry I was not verbose enough. I got a couple responses already(thanks
Erik Janssen, Hermit Hacker, and Casper Dik for your fast replies)
suggesting ifconfig -plumb hme0 and ifconfig hme0 plumb after doing a
boot -r.

Unfortunately, I had done these things last night when I was able to
quickly install the card and boot -r. I don't know when I will be able
to reboot again, so this is why I wanted to finish configuring without
reboot. Since the responses say that a boot -r and ifconfig hme0 plumb
are the only things I need to do, I had apparently done what I was
supposed to do and there must be another problem.

ifconfig hme0 -plumb hme0 gives "ifconfig: hme0: bad address" and
ifconfig hme0 plumb gives "ifconfig: plumb: hme0: no such interface".

Ar there any more good ideas?

Thanks a lot.

ifconfig -plumb hme0
        ifconfig hme0 plumb

     plumb Open the device associated with the physi-
                       cal interface name and setup the streams
                       needed for TCP/IP to use the device.
                       Before this is done the interface will not
                       show up in the output of ifconfig -a.

Did you install it without rebooting :-)?

If you did a "boot -r" then a "ifconfig hme0 plumb" will suffice.

if not, you'll need to do drvconfig

No. A `reboot -r` is the thing to do. Did you install the SBus card
the unit was turned on?

You may wanna do the following:

# _INIT_RECONFIG=true ; /etc/init.d/drvconfig
# _INIT_RECONFIG=true ; /etc/init.d/devlink

How did you install the card without rebooting? Certainly you didn't
plug it in

Maybe you just forgot to "boot -r" after installing. You might check the
"drvconfig" and "add_drv" man pages for some help.

Do you have the drivers for the hme ethernet card installed? There are
packages you need to have installed, SUNWhmd (SunwSwift SBus Adapter
Drivers) and SUNWhmdu (SunSwift SBus Adapter Headers). Once (if) the
drivers are installed, you can try running and drvconfig and devlinks
see if that will convince Solaris to see the adaptor. Unfortunately, I'm
not 100% sure that will work, and you may have to do a "boot -r"
(reconfigure) to get Solaris to find the new ethernet controller.

root# ifconfig hme0 plumb
root# ifconfig hme0 `cat /etc/hostname.hme0` netmask + broadcast + up

should do if for you. check the man page for info on plumb and unplumb.

ifconfig hme0 plumb
ifconfig hme0 `cat /etc/hostname.hme0` netmask + broadcast +
 Network interfaces? Not that I'm aware of.

The scripts /etc/init.d/devlinks and /etc/init.d/drvconfig covers most
devices, but I believe that network interfaces are take care of by the

Try these commands:

You can try:
        ifconfig -a
See if it is configured.
        ifconfig hme0 down
        ifconfig hme0 unplumb
        ifconfig hme0 plumb
        ifconfig hme0 up netmask + broadcast +
Where is your IP address and you may want to rewrite the
statement above to suit your site. See the man page on ifconfig.
One thing to try is ifconfig plumb hme1 as the system my
  think that there is more then one hme interface, also you
  can do the following command to findout what the system
  thinks it has;

  sysdef -d | grep hme

  This will give you a list of the system peripherals
  formatted as a device tree.

# ifconfig hme0 up ......

Do you see the card listed when you do a dmesg???

try 'ifconfig -a plumb' and look what ifconfig -a shows you

use the ifconfig command.
  What do you get if you do a "prtconf | grep hme"? I wonder if it sees
other than hme0 (i.e. maybe hme1?). Another question is the proper
installed for hme interfaces? Otherwise, It could also be a hardware
problem :-(
Did you remove /etc/hostname.le0 (or whatever your old one was)
and put in /etc/hostname.hme0?

Well, as I mentioned in my previous message, are you sure you have the
drivers installed?

Have you installed the hme drivers?

Pkg SUNWhmd must be installed.

>From the boot prom, do a "show-devs" and see if the system sees the hme0
(it would something like /devices/sbus@1f,0/.../hme..). Make sure you
those card properly. Once those are done, you should be able to do
ifconfig plumb hme0

Don't quite know how to fix it, but you might want to run dmesg to see
what the system is seeing at boot. Also a ifconfig -a shows interfaces.
  Check the dmesg output and see if you see the card being recognized.
If not then there is a problem hardware wise would be my first guess.

I am assuming the system had a /etc/hostname.hme0 file with the correct
hostname in it.

I have seen cases where the hostname in the ethernet file (hme,elx ) etc
did not
match the hostname in the /etc/hostfile. Is this a possibility?

/usr/people/jec% dmesg |grep hme
SUNW,hme0: FEPS (Rev Id = 22) Found
SUNW,hme0 at sbus0: SBus0 slot 0xe offset 0x8c00000 and slot 0xe offset
0x8c02000 and slot 0xe offset 0x8c04000 and slot 0xe offset 0x8c06000
and slot 0xe offset 0x8c07000 Onboard device sparc9 ipl 6
SUNW,hme0 is /sbus@1f,0/SUNW,hme@e,8c00000
SUNW,hme0: Using Internal Transceiver
SUNW,hme0: 10 Mbps Link Up

As I wrote before, you probably need to run "unplumb" first followed by
a "plumb" which just makes it alive; then follow this by the real
"ifconfig hme0 up netmask + broadcast +". If this does
not work, I would suggest you check your cables or the SBus.

Hrm - have you tried resetting the card (I know that you aren't able to
easily take down the system).

My memory on this one's a bit fuzzy, but if I recall correctly, you
see the device come on bootup, whether or not you have any drivers
to handle it...

Try creating a file called hostname.hme0 and putting it in /etc. In this
simply put the hostname of the interface, and then make an entry for
that host
in /etc/hosts. Then do another reboot. 8-]

# ifconfig hme0 plumb# ifconfig hme0 aaa.bbb.ccc.ddd netmask up

should work ...

 Solaris 5.5 doesn't include support for hme - there's a patch you have
download and apply to be able to use your new card.

 Sorry, I don't remember the patch number :( If you look on, though, you should probably be able to find it

Is it possible that the card you installed is hme1 (or 2, etc)?
Check messages from last boot to see what the kernel thinks
its name is -
   grep hme /var/adm/messages
or dmesg |grep hme

You need to install the SunSwift package(s) for Solaris 2.5.
They are included in the standard 2.5.1 and 2.6...

Have you got the SunSwift packages installed (SUNWhmd)? These are part
of Solaris 2.5 onwards but are not installed by default unless the
install program detects the card or you manually select this software.

You should be able to do a pkgadd from the Solaris 2.5 CD and then
ifconfig hme0 plumb and so on without rebooting (I think).

Try ifconfig -a plumb

Do a man drvconfig.

Try to unload and then load the hme driver (I had to do than on a
Solaris 2.4 server):

rem_drv hme
add_drv -i "SUNW,hme" hme

Have you tried ?

# ifconfig hme0 plumb
# ifconfig hme0 netmask up
# vi /etc/hosts Servername loghost loopback

Did this for the first time last week !!!!

I added a second hme interface card to an Ultra 2 with hme.

The gotcha I found was about IP addresses/names
(I think this is your "bad address" problem)

Basically you cannot have the same class address OR name on the two

My current setup below explains...
(I changed 36 to 150 for the hme1 side and it started working after

# more host*
:::::::::::::: localhost train0 loghost tr0 tr1 tr2 tr3 tr4 tr5 tr6
# ifconfig -a
lo0: flags=849<UP,LOOPBACK,RUNNING,MULTICAST> mtu 8232
        inet netmask ff000000
        inet netmask ffffff00 broadcast
        ether 8:0:20:88:88:ed
        inet netmask ffffff00 broadcast
        ether 8:0:20:88:88:ed

You can probably do the ifconfig plumbing after making changes to host*
without rebooting ???

man add_drv
man drvconfig
man devlinks
Was the interface connected to the network when you did the 'boot -r'?

Some weeks ago I made the experience that 'boot -r' actually REMOVES
existing device files for the network interfaces if an interface is not
connected to the net!

So it probably won't create new ones, either.

Instead of rebooting you could also try the following command line first
(in the given order, that's important):

  root@yourhost # drvconfig; devlinks; ucblinks

But maybe this won't work for the hme-interface without modifying
/etc/; I did not try this for network interfaces until now.

As a very basic check:

When doing a 'dmesg | grep -i hme' - do you get lines similar to the

If not, maybe you really need to do a 'boot -r' with the network

  root@yourhost # dmesg | grep -i hme
  SUNW,hme0: FEPS (Rev Id = 22) Found
  SUNW,hme0 at sbus1: SBus1 slot 0x3 offset 0x8c00000 and slot 0x3
offset 0x8c02000 and slot 0x3 offset 0x8c04000 and slot 0x3 offset
0x8c06000 and slot 0x3 offset 0x8c07000 SBus level 4 sparc9 ipl 7
  SUNW,hme0 is /sbus@3,0/SUNW,hme@3,8c00000
  SUNW,hme1 at sbus1: SBus1 slot 0x0 offset 0x8c00000 and slot 0x0
offset 0x8c02000 and slot 0x0 offset 0x8c04000 and slot 0x0 offset
0x8c06000 and slot 0x0 offset 0x8c07000 SBus level 4 sparc9 ipl 7
  SUNW,hme1 is /sbus@3,0/SUNW,hme@0,8c00000
  SUNW,hme1: Using Internal Transceiver
  SUNW,hme1: 100 Mbps Link Up
  SUNW,hme0: Using Internal Transceiver
  SUNW,hme0: 10 Mbps Link Up

About your hme problem (interface not well discovered with 'boot -r'),
perhaps this point will help you :

Did you install the SUNWhmd Solaris's Package on your system ?

It includes support for hme interfaces...


This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:12:12 CDT