Solaris Tidbits

Here are my 2 cents about about the old sbus machines, it is about Solaris 8 on Sun SPARC.

Eclipse workbench

Info about Eclipse on Solaris is in the Eclipse section.

Second NIC in SUN Sparc

I bought a second NIC (SUN FSBE/S 501-2015 SBUS card) for my SUN Ultra 1 running Solaris 8. I wanted to link it to the same subnet (cable, as SUN says) as the internal network interface. This gave me some headaches as the card was found and installed properly but Solaris' IP stack didn't talk to the new interface - whatever I did, all connections (outgoing and incoming) always went over the internal interface.

Installation

Here's what I did.

The hardware installation is very straightforward.

  1. Boot and login as superuser.
  2. # touch /reconfigure
  3. Shutdown to OBP (level 0)
  4. Reconfiguration boot: ok> boot -r
  5. Again, login as root
  6. Find out the new device's name in the tree: # prtconf - This showed me
    lebuffer, instance #0
    le, instance #0

  7. what leads to the name le0
  8. Let the interface be detected: # ifconfig le0 plumb
  9. Now you can configure it: # ifconfig le0 ipaddr net mask etc
  10. Put it on wire: # ifconfig le0 up
  11. Check: # ifconfig -a
  12. create /etc/hostname.xxx, edit /etc/inet/hosts / DNS / NIS accordingly.

Ethernet address problem

All went fine, but by accident I build a wireless LAN: removing the cable to le0 did not break the connection :-)

The problem was the following:

~# ifconfig -a
lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 192.168.50.3 netmask ffffff00 broadcast 192.168.50.255
ether 8:0:20:7a:d1:ed
le0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
inet 192.168.50.4 netmask ffffff00 broadcast 192.168.50.255
ether 8:0:20:7a:d1:ed

That is, both cards (built-in hme0 and new le0 on SBUS card) got identical ethernet addresses - the hostid as shown in the banner on startup.

This results in ARP routing all packets to the first interface found: hme0. le0 was never used.

Solution

Give the new interface another Ethernet address:

~# ifconfig le0 ether 8:0:20:7a:d1:ee

You must make shure that the address doesn't exist in your net.

The ifconfig .. ether .. should be done on boot, I don't know yet what the best place is (and have an additional link in rcS.d now).

Now I'm also noticed when the link goes down on the new card (cable problems etc.). J302 on the FSBE/S is off.

Risks

This is an easy way to break your ARP tables and to setup nice loops. Make shure that the second IF does not become the default for outgoing traffic (netstat -rn). Switch off routing (/etc/notrouter) / IP-Forwarding.

Similar stuff

You also can give additional addresses to an existing NIC. Theese are addressed in the form <devicename>:<number> (example: le0:0 in addition to le0).