On 10/17/2012 07:22 PM, Digimer wrote:
On 10/17/2012 09:18 PM, Digimer wrote:
On 10/17/2012 06:24 PM, JD wrote:
Briefly....
$ ifconfig -a
em1 Link encap:Ethernet HWaddr xx:xx:...etc
lo Link encap:Local Loopback
virbr0 Link encap:Ethernet HWaddr xx:xx:...etc
virbr0-nic Link encap:Ethernet HWaddr xx:xx:...etc
wlan0 Link encap:Ethernet HWaddr xx:xx:...etc
Ah, I see. On my systems, I get:
===
em1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether f0:de:f1:fc:65:b3 txqueuelen 1000 (Ethernet)
===
So the script says "grab any non-space character up to the colon (foo:).
Your now showing a colon, so it fails to match.
Try replacing:
===
if ($line =~ /^(\S+):/)
===
With:
===
if ($line =~ /^(\S+)/)
===
Strike that, I see that you are also showing the HWADDR on the same
line, so the whole regex this is going to miss your output.
Skip the script; The main thing is to take the 'em1 ... HWadd:
aa:bb:cc:dd:ee:ff' and put it in 70-persistent-net.rules as (one line);
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",
ATTR{address}=="aa:bb:cc:dd:ee:ff", NAME="eth0"
Then in you 'ifcfg-eth0' file, set 'DEVICE="eth0"' and make sure there
is no HWADDR="..." line. Reboot and you should be golden.
I did do just that, as also vehemently stated by many other bloggers
I read on other web sites. Unfortunately, IT DOES NOT WORK!!
Here is what I have in /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",
ATTR{address}=="00:03:0d:15:2b:9e", ATTR{dev_id}=="0x0",
ATTR{type}=="1", KERNEL=="eth*", NAME="eth0
and I rebooted several times, and yet still:
$ ifconfig eth0
eth0: error fetching interface information: Device not found
$ ifconfig em1
em1 Link encap:Ethernet HWaddr 00:....etc
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:19 Base address:0xd800
and
$ dmesg | grep em1
[ 5.982317] udevd[219]: renamed network interface eth0 to em1
I posted the logic in udev source code where it decides to rename.
I admit that I do not know the udev code, but there might be a problem
in the values of numbers being passed to udev that are incorrect, like
the interface's device index being > 0
Where is this info being gleaned from and passed to udev?
Also, since the name in the rule file is eth0, how is this part of the
conditional
strcmp(event->name, udev_device_get_sysname(dev)) != 0 failing?
In otherwords, udev_device_get_sysname() is returning a name other than
eth0.
Here is that code segment again:
if (udev_device_get_ifindex(dev) > 0 &&
strcmp(udev_device_get_action(dev), "add") == 0 &&
event->name != NULL && strcmp(event->name,
udev_device_get_sysname(dev)) != 0) {
char syspath[UTIL_PATH_SIZE];
char *pos;
err = rename_netif(event);
--
users mailing list
users@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe or change subscription options:
https://admin.fedoraproject.org/mailman/listinfo/users
Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines
Have a question? Ask away: http://ask.fedoraproject.org