DOCUMENT ID: 1105-02
SYNOPSIS: Adding Network Support to Solaris
OS RELEASE: 2.x
PRODUCT: Solaris x86
KEYWORDS: network card adapter install file directory PowerPC PPC generic
DESCRIPTION:
When a workstation is placed in service without a network card, or none
is recognized during initial software installation, several files and
directories will not be available to the operating system if future
networking support is desired.
SOLUTION:
Solaris will not presume upon any particular network configuration if it
is unable to identify supported network hardware at the factory default
addresses. Hence, the installation scripts will not prompt the user for
network-specific configuration items like ip address, netmasks, hardware
settings, subnets, etc.
All of these can be added by hand after the machine has had Solaris
installed on it.
Workaround - Adding support for a network card to an existing system
To add network support to a Solaris workstation previously installed
without a supported network card driver requires adding/changing certain
files in the OS according to which network card is to be added. A
network card that is listed in the Hardware Compatibility List for that
platform (x86, Sparc, or PowerPC) must also be present on the system bus
and identified by the operating system to reside at supported addresses.
The following instructions for identifying a card will apply to x86 and
PowerPC platforms, for the most part. For the Sparc platforms the Open
Boot Prom is able to identify any SBUS card and, in future versions, any
PCI or PCMCIA (PC Card) device that is installed. Note also, that for
PCI devices, some ISA, MCA and EISA devices, as well as some PCMCIA
devices - the addresses, IRQs, memory, and DMA resources will be
assigned by the BIOS or a configuration utility and the driver will be
able to read the info for the device when it is loaded. Check the
Driver Configuration Guide for how to configure your particular device.
First, identify the make and model of your network card and write down
which addresses it occupies in terms of interrupt vector (IRQ), port
address range, DMA channel (if any), and shared memory address range.
Then find the driver configuration file in the /kernel/drv sub-directory
and examine this file to make sure that the addresses on the card will
be seen. For example, on Solaris 2.4 and earlier, the SMC (WD) Model
8003 or 8013 configuration file is /kernel/drv/smc.conf. It should look
similar to the following:
#ident "@(#)smc.conf 1.8 93/04/02 SMI"
# Factory default setting.
name="smc" class="sysbus" intr=5,3 ioaddr=0x280 reg=0x280,0xD0000,0x2000;
This means that the factory default for this card is at interrupt 3,
priority 5 and port address 280 hex, at memory address D0000 hex with an
8k memory range.
If you are instead using a supported 3COM or token-ring adapter, the
driver names for these are "el.conf" & "elx.conf" for 3COM, or "tr" for
token- ring. Note that as of Solaris 2.5 some drivers that are unique
to a platform (i.e. - not common to all the Solaris platforms, like
ISA), will be found in /platform/{PLATFORM_NAME}/kernel/drv instead of
/kernel/drv. For the x86 you use i86pc in place of {PLATFORM_NAME}.
Secondly, when logged in as root, bring the driver into service. Do
this by typing drvconfig, devlinks, and touch /reconfigure at successive
"#" prompts. Type "prtconf" to test for the existence of the 0th
instance of the driver.
Workaround - Configuring the system to use the network card
You are now ready to modify the filesystem as required. Ensure that the
following directories, files, named-pipes, and symbolic links are
present and have the designated permissions, owner, and group. Those
with a file size of zero can simply be created with the touch command
(if they do not already exist). The sizes may vary with different
versions of Solaris, so don't worry if your sizes don't match these:
dr-xr-xr-x 1 root root 2 /home
dr-xr-xr-x 1 root root 2 /net
lrwxrwxrwx 1 root other 12 /etc/hosts -> ./inet/hosts
-r--r--r-- 1 root sys 62 /etc/inet/hosts
-r-xr-xr-x 1 bin bin 55 /etc/netid
lrwxrwxrwx 1 root other 15 /etc/netmasks->./inet/netmasks
-r--r--r-- 1 root sys 252 /etc/inet/netmasks
-r-xr-xr-x 1 bin bin 571 /etc/publickey
lrwxrwxrwx 1 root root 14 /etc/umount -> ../sbin/umount
lrwxrwxrwx 1 root root 17 /etc/umountall->../sbin/umountall
Lastly, make the necessary changes to the following files:
o Add your system's host name (use "uname -a" to find or "uname -S" to
change) to the "/etc/hostname.n" file:
-rw-rw-rw- 1 root root /etc/hostname.smc0 (or el0, elx0, or tr0, etc.)
The "n" is normally "0", as in the examples above. If you are adding an
additional card (second, third, etc.) you would put the next higher
number there (1, 2, etc.). For each additional card, you will have a
unique hostname in the hostname.n file. See info on how to set
up a gateway system if you are doing this.
o Change the "/etc/inet/hosts" file by adding your system hostname and
your ip address (NOTE: this is only an example):
FROM: TO:
127.0.0.1 localhost loghost hostname 127.0.0.1 localhost
128.152.62.55 hostname loghost
o Add the file "/etc/inet/netmasks" to delineate a sub-net for the
interface configuration program (NOTE: this is an example for a
class C network):
Example: 128.152.0.0 255.255.255.0
o Define your fully qualified domain name, if you have one, with the
following commands:Example: domainname domain.company.COM
domainname >/etc/defaultdomain
o Shut the system down and re-boot with the reconfigure option (b -r)
When the system is back up, test the interface with the following
commands (NOTE: expected responses are in braces {}):
ifconfig smc0
{smc0: flags=863 mtu 1500}
{inet 128.152.62.55 netmask ffffff00 broadcast 129.153.76.255}
ping localhost
{localhost is alive}
ping 128.152.62.55
{128.152.62.55 is alive}
ping
{ is alive}
If your ifconfig command gets an error, as it may with a card whose
driver has been added after the machine was booted, you should try using
the "plumb" option after the n argument
DATE APPROVED: 10/15/95