View previous topic :: View next topic |
Author |
Message |
ssenesac n00b
Joined: 31 Jan 2004 Posts: 16 Location: Indianapolis, IN
|
Posted: Sat Nov 24, 2007 6:14 pm Post subject: Multiple Happy Meal NIC Problem |
|
|
I have an Enterprise 220R machine with 3 happy meal NIC cards. If I boot from the 2007.0 installation CD, all three are recognized and usable. After performing an install, I can only effectively use eth1. I see from dmesg that all three cards are recognized:
Code: |
PCI: Enabling device: (0000:00:01.1), cmd 2
sunhme.c:v3.00 June 23, 2006 David S. Miller (davem@davemloft.net)
eth0: HAPPY MEAL (PCI/CheerIO) 10/100BaseT Ethernet 08:00:20:ce:b8:66
PCI: Enabling device: (0000:00:02.1), cmd 2
eth1: HAPPY MEAL (PCI/CheerIO) 10/100BaseT Ethernet 08:00:20:ce:b8:66
PCI: Enabling device: (0000:00:04.1), cmd 2
eth2: HAPPY MEAL (PCI/CheerIO) 10/100BaseT Ethernet 08:00:20:ce:b8:66
|
If I try to bring up eth0 or eth2 I get:
Code: |
eth0: unknown interface: No such device
|
/etc/conf.d/net looks like this:
Code: |
dns_domain_lo="senesac.local"
dns_servers_lo=( "192.168.1.2" "192.168.1.1" )
config_eth0=( "null" )
config_eth1=( "192.168.1.3/24" )
routes_eth1=( "default via 192.168.1.1" )
config_eth2=( "null" )
|
I have links in /etc/init.d for net.eth0, net.eth1 and net.eth2. Currently only net.eth1 is starting at the default runlevel.
If I swap the config for eth0 and eth1 in /etc/conf.d/net, move the cable to eth0, remove net.eth1 from the default runlevel and add net.eth0, eth0 will fail to come up complaining that it does not exist. Oddly, eth1 will still attempt to come up despite being removed from init.
Any help would be appreciated. Thanks! |
|
Back to top |
|
|
NeddySeagoon Administrator
Joined: 05 Jul 2003 Posts: 54793 Location: 56N 3W
|
Posted: Sat Nov 24, 2007 6:25 pm Post subject: |
|
|
ssenesac,
What interfaces does claim you have ? _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
|
ssenesac n00b
Joined: 31 Jan 2004 Posts: 16 Location: Indianapolis, IN
|
Posted: Sat Nov 24, 2007 6:29 pm Post subject: |
|
|
Code: |
sv-senesac-02 ~ # ifconfig -a
eth0_rena Link encap:Ethernet HWaddr 08:00:20:CE:B8:66
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:12 Base address:0x1000
eth1 Link encap:Ethernet HWaddr 08:00:20:CE:B8:66
inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:20ff:fece:b866/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6062 errors:0 dropped:0 overruns:0 frame:0
TX packets:4908 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6862198 (6.5 Mb) TX bytes:536332 (523.7 Kb)
Interrupt:16 Base address:0x3000
eth2_rena Link encap:Ethernet HWaddr 08:00:20:CE:B8:66
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:17 Base address:0x2800
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
|
|
|
Back to top |
|
|
NeddySeagoon Administrator
Joined: 05 Jul 2003 Posts: 54793 Location: 56N 3W
|
Posted: Sat Nov 24, 2007 6:41 pm Post subject: |
|
|
ssenesac,
Your interfaces are all there but they are called eth0_rena eth1 and eth2_rena.
eth0 and eth2 don't exist on your system.
Thats a little simplistic too as they all seem to have the same MAC Address of 08:00:20:CE:B8:66.
Thats not permitted.
Do they all have different MAC addresses when you boot from the liveCD ? _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
|
ssenesac n00b
Joined: 31 Jan 2004 Posts: 16 Location: Indianapolis, IN
|
Posted: Sat Nov 24, 2007 6:46 pm Post subject: |
|
|
Yeah, I noticed that. I thought about randomizing the last 3 bytes on each card in /etc/cond.d/net, but I don't understand why the driver isn't just using the MAC address of the cards which I could not imagine are the same. To answer your question, though, no, the MAC addresses are all identical even if I boot from the install CD. |
|
Back to top |
|
|
NeddySeagoon Administrator
Joined: 05 Jul 2003 Posts: 54793 Location: 56N 3W
|
Posted: Sat Nov 24, 2007 6:51 pm Post subject: |
|
|
ssenesac,
You MAC address is different from the Happy Meal in my Sun but its odd that they are all the same.
You need to use the names that udev has assigned in the net file, so net_eth0 becomes net_eth0_rena and so on _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
|
ssenesac n00b
Joined: 31 Jan 2004 Posts: 16 Location: Indianapolis, IN
|
Posted: Sat Nov 24, 2007 7:21 pm Post subject: |
|
|
There's definitely something strange going on here. I opened the machine up...
eth0 is an onboard happy meal card
eth1 & eth2 are add-on pci happy meal cards
I found little orange stickers on each with the last 3 MAC address bytes on them.
eth0 is CEB866
eth1 is F1997F
eth2 is EF6C15
So, all three interfaces are being given the MAC address for eth0.
/etc/udev/rules.d/70-persistent-net-generator.rules shows:
Code: |
sv-senesac-02 rules.d # less 70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.
# PCI device 0x108e:0x1001 (hme)
SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="08:00:20:ce:b8:66", NAME="eth1"
# PCI device 0x108e:0x1001 (hme)
SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="08:00:20:ce:b8:66", NAME="eth2"
# PCI device 0x108e:0x1001 (hme)
SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="08:00:20:ce:b8:66", NAME="eth0"
|
So, eth1 is listed first and I am guessing this is why it works. The comments for each entry show the same PCI device. So, is it fair to say that udev is trying to load three instances of the same NIC and give them different names? eth1 succeeds because it was first and the others fail?
If this is the case I don't know where to go from here, but I'm going to work google heavily and see what I get. |
|
Back to top |
|
|
NeddySeagoon Administrator
Joined: 05 Jul 2003 Posts: 54793 Location: 56N 3W
|
Posted: Sat Nov 24, 2007 7:24 pm Post subject: |
|
|
ssenesac,
That looks like the problem ... what happens if you fix the MAC addressis un the udev rules ?
Beware that you need lower case hex letters _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
|
ssenesac n00b
Joined: 31 Jan 2004 Posts: 16 Location: Indianapolis, IN
|
Posted: Sat Nov 24, 2007 8:17 pm Post subject: |
|
|
I modified /etc/udev/rules.d/70-persistent-net.rules
Code: |
# This file was automatically generated by the /lib/udev/write_net_rules
# program run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.
# PCI device 0x108e:0x1001 (hme)
SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="08:00:20:ce:b8:66", NAME="eth0"
# PCI device 0x108e:0x1001 (hme)
SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="08:00:20:f1:99:7f", NAME="eth1"
# PCI device 0x108e:0x1001 (hme)
SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="08:00:20:ef:6c:15", NAME="eth2"
|
eth0 works now, but the others do not. All interfaces still have the same MAC and eth1 is eth1_rename, etc.[/code] |
|
Back to top |
|
|
NeddySeagoon Administrator
Joined: 05 Jul 2003 Posts: 54793 Location: 56N 3W
|
Posted: Sat Nov 24, 2007 8:37 pm Post subject: |
|
|
ssenesac,
Hmm - I set my rules before udev did that sort of thing for you. I have Code: | # Name the eth interfaces correctly
KERNEL=="eth*", SYSFS{address}=="00:26:54:0b:c6:c6", NAME="eth_lan"
KERNEL=="eth*", SYSFS{address}=="00:0c:6e:14:c8:e7", NAME="eth_spare"
/etc/udev/rules.d/03-local-net.rules lines 1-4/4 (END) | because there is/was an issue of reusing kernel names.
I invented descriptive names as above. You also have to propogate the new names everywhere ...
/etc/inid.d/
net
and rc-update _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
|
ssenesac n00b
Joined: 31 Jan 2004 Posts: 16 Location: Indianapolis, IN
|
Posted: Sat Nov 24, 2007 10:09 pm Post subject: |
|
|
Doesn't work unfortunately. What I get is three interfaces named eth_lan, eth1_rename and eth2_rename even though I try to name the other two eth_spare and eth_spare2. I think the problem is that if I go to /sys and poke around it shows that all interfaces have the same MAC. If I try to identify them by MAC as is shown in your local-net.rules it is only successful for the first entry and fails for the other two. I give up for now as I've wasted half the day trying to figure this out. I may just pull the other two adapters. I really appreciate the help, though! Thanks! |
|
Back to top |
|
|
ssenesac n00b
Joined: 31 Jan 2004 Posts: 16 Location: Indianapolis, IN
|
Posted: Sun Nov 25, 2007 12:20 am Post subject: |
|
|
This works. Now I can change the MAC addresses in /etc/conf.d/net.
Code: |
# This file was automatically generated by the /lib/udev/write_net_rules
# program run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.
# PCI device 0x108e:0x1001 (hme)
SUBSYSTEM=="net", DRIVERS=="?*", KERNELS=="0000:00:01.1", NAME="eth0"
# PCI device 0x108e:0x1001 (hme)
SUBSYSTEM=="net", DRIVERS=="?*", KERNELS=="0000:00:02.1", NAME="eth1"
# PCI device 0x108e:0x1001 (hme)
SUBSYSTEM=="net", DRIVERS=="?*", KERNELS=="0000:00:04.1", NAME="eth2"
|
|
|
Back to top |
|
|
Ixar n00b
Joined: 02 May 2007 Posts: 15
|
Posted: Fri Dec 14, 2007 10:54 am Post subject: |
|
|
Hello,
It's not a bug it's a feature
In the PC world the MAC address is a unique interface identifier, on Sun it is unique for a machine.
Sun made a setting in openboot to change this behavior. Just set 'local-mac-address?' to true and each interface will have its
own mac address as you expected. (See http://www.gentoo.org/doc/en/gentoo-sparc-obpreference.xml
for more details regarding OpenBoot).
Code: | <STOP-A>
setenv local-mac-address? true |
I think it is an easier way to solve your problem
Best Regards,
Ixar |
|
Back to top |
|
|
|