Network Problems FAQ
From Genunix
THIS PAGE IS UNDER CONSTRUCTION
My network / internet connection doesn't work on Solaris - how can I fix this?
There are many things that can go wrong that might cause this problem. The steps below are some of the common hurdles to getting networking up and running on Solaris.
Note: all of the steps below assume that you are logged in as root, or as a user with root privileges. If you are running OpenSolaris 2008.05 you can get a root shell by typing:
su -
then entering the root password.
Step 1: Check to see if Solaris has attached a driver to your network interface
Issue the following command:
ifconfig -a
You should see two instances of lo0 - one for IP version 4 (with address 127.0.0.1) and one for IP version 6. (lo0 is the local loopback address and allows the computer to communicate with itself over the network). If Solaris has attached a driver to your network interface, then there will also be an interface listed for this, e.g. rtls0. If Solaris has attached a driver, then go to step 3 below.
Step 2: Find a driver that works with your network device
Solaris associates drivers to network cards by looking at the unique "device ID" of each device and comparing it to a list that tell it which driver to use. To check the device ID of your network card, run the following command as root:
prtconf -v > devices.txt
Then view the devices.txt file in your favourite text editor. Look for the word "ethernet". Near the line that contains this word, you will find the device ID of your network interface. For PCI cards the device ID begins "pci" and for PCI Express it begins "pciex". An example of the section that refers to the VMware network card is shown below:
pci1022,2000, instance #0
Hardware properties:
name='assigned-addresses' type=int items=5
value=81020010.00000000.00002000.00000000.00000080
name='reg' type=int items=10
value=00020000.00000000.00000000.00000000.00000000.01020010.00000000.00000000.00000000.00000080
name='compatible' type=string items=7
value='pci1022,2000.1022.2000.10' + 'pci1022,2000.1022.2000' + 'pci1022,2000' + 'pci1022,2000.10'
+ 'pci1022,2000' + 'pciclass,020000' + 'pciclass,0200'
name='model' type=string items=1
value='Ethernet controller'
In this example the device ID of the VMware network interface is "pci1022,2000". The first number (1022) is the vendor ID. The second number (2000) is the device ID. Both are required in order to uniquely identify the device.
There are two ways to get your network working from this point. You can either persuade Solaris to use one of its existing drivers with your network device, or you can install a separate driver.
To use one of Solaris' existing drivers with your network card, you need to add an entry to the file /etc/driver_aliases to associate your device ID with the driver. For example, suppose I have a DLink DFE-528-TX network card. I install Solaris onto the computer, but no driver attaches to it. Some googling reveals that this network card uses the Realtek 8139 network chip, which some further googling reveals is supported by the rtls driver built into Solaris. I have a look at the /etc/driver_aliases file and see that it has the following entries:
rtls "pci10ec,8139" rtls "pci1186,1301" rtls "pci1113,1211"
I know from running the prtconf -v command that the device ID of my network card is pci1186,1300 . I therefore add the following line to the /etc/driver_aliases file:
rtls "pci1186,1300"
Once I have done this, I reboot the computer. I then run the following commands:
ifconfig -a plumb ifconfig -a
I can then see a network interface rtls0 listed. The rtls driver has therefore successfully attached to my network card.
More soon!
