2009-10-31 10:39:00
After my recent upgrade to Parallels Desktop 4 I've run into yet another issue. Apparently upgrading from PD3 to PD4 introduces some minor changes to the networking setup, which causes OpenSolaris' ni interfaces to break.
"Break" turns out to be a large word, but it's still an inconvenience. Apparently during the upgrade process the virtual PCI slots get shuffled a bit, leading to the ni1 interface getting renamed. Before the upgrade everything ran on interface ni0, which started complaining about problems right after the upgrade.
Here's some of my troubleshooting. First, on boot you'll see:
WARNING: ni1: niattach: SA_eeprom is funny, assuming byte-mode
Failed to plumb IPv4 interface(s): ni0
svc.startd[7]: svc:/network/physical:default: Method "/lib/svc/method/net-physical" failed with exit status 96.
svc.startd[7]: network/physical:default misconfigured: transitioned to maintenance (see 'svcs -xv' for details)
Checking the svcs output doesn't actually give me much hints aside from the fact that interface ni0 can actually not be found. Both prtdiag and prtconf seem to confirm this. I then checked the output of dmesg to see if there's anything useful in there. There was.
solaris2 ni: [ID 328865 kern.info] ni1: pci_regs[0]: 00002800.00000000.00000000.00000000.00000000
solaris2 ni: [ID 328865 kern.info] ni1: pci_regs[1]: 01002810.00000000.00000000.00000000.00000000
solaris2 ni: [ID 328865 kern.info] ni1: pci_regs[2]: 02002814.00000000.00000000.00000000.00000000
solaris2 ni: [ID 297787 kern.warning] WARNING: ni1: niattac: SA_eeprom is funny, assuming byte-mode
And so on... This confirms that the ni driver and interface are working. It also tells me that there's an interface ni1. ni0 only gets mentioned when Solaris tries to actually start TCP/IP on ni0, which as has been said is not present. By typing "ifconfig ni1 plumb" I've confirmed that the network card is now in fact called ni1.
Hypothesis:
During the upgrade to Parallels Desktop 4 the virtual PCI slots got shuffled, leading to a rename of the network interface.
Solution:
mv /etc/hostname.ni0 /etc/hostname.ni1
mv /etc/dhcp.ni0 /etc/dhcp.ni1
kilala.nl tags: sysadmin,
View or add comments (curr. 3)
Posted by Thomas
Now that my OpenSolaris virtual machines are up and running again I'm moving on to my RedHat Linux systems. These VMs confirm that the upgrade of Parallels desktop does in fact shuffle hardware about, because at boot time the RedHat "Kudzu" hardware discovery utility popped up telling me that hardware changes had been detected.
Kudzu reports that "the following network card has been removed from your system: Realtek|RTL-8029(AS)". I chose to remove the old configuration, hoping that Kudzu would also find the "new" NIC that Parallels had popped in.
Kudzu also found other hardware that'd been removed and re-added to the system like the sound card and the USB controller.
Posted by Thomas
Oh for fscks sake! Upgrading from Parallels 4 to Parallels Desktop 5 repeats the exact same problem. Only this time under Solaris the interface name seems to change completely. Meh. Why can't they leave the virtual devices alone?!
Posted by Thomas
Further investigation with regards to my problem after upgrading to Parallels Desktop 5 (with Solaris 10) shows that the networking hardware really is not found by the system.
$ ls -al /dev/ni*
/dev/ni -> ../devices/pseudo/clone@0:ni
/dev/ni0 -> ../devices/pci@0,0/pci10ec,8029@5:ni0
/dev/ni1 -> ../devices/pci@0,0/pci1ab8,400@5:ni1
$ ls -al /devices/pci@0,0 | grep -e 8029 -e 400
...
It appears that all device files for the NI hardware are missing.
Grepping for ni in /etc/path_to_inst gives:
"/pci@0,0/pci10ec,8029@5" 0 "ni"
"/pci@0,0/pci1ab8,400@5" 0 "ni"
This would explain the wrong links in /dev.
I've tried every trick I know to make the system search for the proper location of the network card, but it really cannot find anything. A reconfigure boot (touch /reconfigure; init 6) didn't help either.
All content, with exception of "borrowed" blogpost images, or unless otherwise indicated, is copyright of Tess Sluijter. The character Kilala the cat-demon is copyright of Rumiko Takahashi and used here without permission.
You are free to use this specific work, to share and distribute it and to adapt it for your own purposes. However, you must attribute this work as mine and you must share all of your alterations. Click on the logo, or follow this link for full details.