If you get a "Bad Device Number" error, shut down your computer with the following command:
# touch /reconfigure;sync;init 6
After rebooting, configure your adapters by using ifconfig.
# ifconfig e1000g<instance no.> plumb
# ifconfig e1000g<instance no.> inet <ip_address> netmask + broadcast + -trailers up
Driver supports Solaris alternate pathing functionality. To configure adapters for alternate pathing, please refer to SUN Solaris (x86) Alternate Pathing man pages, the User's Guide, and the Alternate Pathing 2.0 AnswerBook documentation available at http://docs.sun.com.
If you cannot ping other machines, check whether the cable is plugged in properly and that the link lights on the back of the adapter are illuminated.
Check the cable. Faulty cables are a frequent source of problems.
Check the arp table:
# arp –a
Net to Media Table:
Device IP Address Mask Flags Physical Address e1000g0 134.134.177.237 255.255.255.255 SP 00:c0:4f:68:9c:74 e1000g0 134.134.177.146 255.255.255.255 00:a0:c9:3f:27:4a e1000g0 134.134.177.151 255.255.255.255 00:60:94:2e:b0:42 e1000g0 134.134.177.198 255.255.255.255 00:90:27:62:2b:5a e1000g0 134.134.177.200 255.255.255.255 00:a0:c9:ab:e3:9c e1000g0 134.134.177.1 255.255.255.255 00:a0:c9:b1:00:6d e1000g0 134.134.177.80 255.255.255.255 00:a0:c9:aa:e1:f2
If the table is not up to date, try adding entries into the arp table as follows:
For a computer with the IP address 134.134.177.200, add the entry for the other side of the network interface.
# arp –s 134.134.177.253 00:a0:c9:61:00:f2
On the other side (of the computer with IP address 134.134.177.253) add the entry for the previous interface.
# arp –s 134.134.177.200 00:a0:c9:61:a0:c0
Then check whether the proper entries are included into the arp tables on both ends and try to ping.
Run arp –a on both sides and verify entries.
Finally check you network configuration files as /etc/hosts, .rhosts at $HOME and /etc/hostname.e1000g0 files.
Check the device instance with prtconf –v:
# prtconf -v | grep pci8086,[12][01][01][0-F]
pci8086,1000, instance #4
Here, the instance number is 4, so in all the examples above please replace 0 (following the device name e1000g) to 4. It will be e1000g4. The instance number follows the device name.
Check whether the device is identified by the operating system using prtconf –v:
# prtconf -v | grep pci8086,[12][01][01][0-F]
pci8086,1000 (driver not attached) or
pci8086,1000, instance #0
If you see that the driver is not attached, check whether the e1000g and e1000g.conf files are present in /kernel/drv, and add the driver:
# add_drv –m '* 0666 root root' –i 'pci8086,1000' e1000g
# touch /reconfigure
# sync; init 6
Try the following procedure (does not require rebooting the computer):
# add_drv –m '* 0666 root root' –i 'pci8086,1000' e1000g
# modload –p drv/e1000g
# ifconfig e1000g0 plumb
# ifconfig e1000g0 inet 134.134.177.253 netmask + broadcast + -trailers up
# ifconfig –a
e1000g0: flags=863<UP, BROADCAST, NOTRAILERS, RUNNING, MULTICAST>
mtu 1500
inet 134.134.177.253 netmask ffffff00 broadcast 134.134.177.255
ether 0:90:27:29:99:2b
From a different computer on the network:
# ping 134.134.177.253
134.134.177.253 is alive
add_drv fails
Remove the driver and add it again:
# rem_drv e1000g
# touch /reconfigure
# sync; init 6
Reload the driver as described above, or remove and reload the driver.
Check whether the adapter is inserted all the way into the PCI slot.
If the driver is added but has no IP Address, check the device instance using prtconf –v:
# prtconf -v | grep pci8086,[12][01][01][0-F]
pci8086,1000, instance #4
Here, the device instance is 4 so there must be a file in the /etc directory with the name "hostname.e1000g4" containing the computer name. This computer name must be present in the /etc/hosts file with the IP address.
In the hosts file:
134.134.177.253 my_machine
In /etc/hostname.e1000g4:
my_machine
If, after the driver installation, you moved the adapter to different slot, you must reconfigure the computer while booting. This way all the devices can be re-scanned and the appropriate resources such as IRQ, memory etc. can be reassigned to all the detected devices. Your device instance will change as all the device instances are persistent in Solaris.
To perform a reconfiguration, at the boot prompt, type: “boot –r” (or before booting type, touch /reconfigure;sync):
[Guides/Common/legal.htm]#touch /reconfigure;sync;init 6
#
INIT: New Run Level: 6
The system is coming down. Please wait.
NOTE: Your device instance will change so you will have to check your device instance using prtconf –v | grep pci8086,1000 and create another hostname.e1000g<device instance> file. After this process you can do the following assuming 134.134.177.253 is your IP address. # ifconfig e1000g0 plumb
# ifconfig e1000g0 inet 134.134.177.253 netmask + broadcast + -trailers up