
That's the place to be until/unless someone "helpfully" pulls it from the tree.Anon-E-moose wrote:One can copy udev-171-* to the local portage tree (include virtual/udev-171) and
mask anything beyond it.
*Needs to be put in the local portage tree as it is slated for removal by the gentoo devs *
A/o right now, I have udev-171-r6 installed and it is working fine with kernel 3.8.5
Note: Yes, I'm aware that udev-171* might stop working in the future,
but I have no guarantees that udev-19*/udev-20* won't do the same.
K, give you that.@py-ro:
Logic Flaw #1. If you add a NIC, all bets are off since the new card may be earlier in the PCI slot numbering scheme than desirable. This is what has happened to me. You may find that default behaviour is seriously altered and things don't work -- exactly the disaster scenario you said this prevents.
In most cases you will use a specific set of cards and won't mix too much chips up, atleast we don't do this. We keep a stock of two kinds of cards.Logic Flaw #2: If you add a new card, you have to add the new driver (unless you've built them ALL preemptively into the kernel, just in case, like Windows does...). So it's never just plug-and-play.
There was no fixed algorithm to number them, the new mechanism is not perfect, but less random then the oldone IMHO.Logic Flaw #3: Writing one line to a list of two or three other udev-rules is inferior to rewriting iptables rules, routing tables, and whatnot to override default behaviour and preserve the ideal that interface numbers derived from the hardware bus (somewhat random itself) is better than a fixed algorithm that numbers them.
Sure you can break any system by changes, intended or not, but in most cases you won't do too much changes on a production system, atleast you should not, same reason as mentionend.Logic Flaw #4: That if the interface name remains the same, nothing can happen that will make a working configuration fail if new hardware is added or old hardware is changed. Anyone who thinks that should immediately one giant step back from their keyboards. They are not qualified.
We were naming our Interfaces by function with our own naming scheme way before and nobody prevents anybody to ommit the change or do his own thinggy.I have three or four more, but I am tired now. Absent a sane way to order the interface-up sequence in net.whatever, I am going back to my aptly-named sysinit-level runscript called fixudevnightmare and go back to calling everything eth*. This is udev megalomania just ridiculous.
Ah, that's the sane way to use names other than eth0; the new "predictable" pattern is in fact unpredictable. Your organization has gone with a predictable pattern. Good for you. You didn't need new udev to do it.py-ro wrote:We were naming our Interfaces by function with our own naming scheme way before and nobody prevents anybody to ommit the change or do his own thinggy.
Clearly, I have been asking this all along. Many, many innocent database bytes could have been spared if we didn't get mired in udev-mania. *sigh*I was thinking the answer would be in something like RC_NEED=... (or some such) put some where that provoked the Gentoo start scripts to call the new names in a specific order.
It's bizarre how simple the question I asked really was, and that all this is because I have been trying to "go along to get along" with all the new udev naming nonsense. It is clear that the new 'persistent names' idea was ill-conceived, poorly designed, even more poorly pushed out, and then in the end achieves none of its original design goals. Rather, it's wreaked havoc.As I have read all these threads several times (and had even masked >udev171 until just recently in silent protest) it is clear to me that something like 70-persistent-net.rules is really the only way.
Code: Select all
I see the train a-coming
It's coming round the bend
Hey! It's on the same track I'm on
Don't tell me it's the end!
I'm cruising to disaster
On this udev-using line.
I'm gonna get myself of this track
While I still have the time.
It was meant as an enumeration: You have to convince four (groups of) people who are usually very hard to convince. In theory, this might be possible, in practice your suggestion is already doomed.miket wrote:Poettering, at least, is not a kernel developer. Thank God.mv wrote:You would have to convince Linus, probably several other kernel developers, Sievers and Poettering. Good luck
And this is not stable, either: I remember many angry comments in the beginning of udev when people expected eth0/wlan0 to remain when they had only one device and exchanged this device by another (with another MAC, of course). In a sense, these people were right: If there is only one device, connected in the same way as previously, why should it have another number?depontius wrote:The only truly stable thing about network devices is the MAC - period
But, for this discussion, MAC has an opposite problem - it is TOO specific. That is, there is no chance that your script will work on another, even identical, machine without modification, if it is based on MAC address (*) Basing network interface name on MAC essentially equates the two - imagine firewall rules with hardcoded MAC - that's what you'll get. In essence you are hardcoding manufacturers serial numbers. And the point of network interface names is actaully to provide some level of abstraction from being purely hardware descriptors.depontius wrote:Until you replace the network card, the MAC is stable. What others have been saying is that with the current default, changing other hardware can cause the network device name to change. I agree that using the MAC changing the network card would change the device name, but at least changing the sound card won't.
Actually, this is where basing things on the PCI address makes more sense: rather than trigger the udev rule on the specific MAC address, one could go simply with device class and PCI slot--or even a small range of slots. This would have trouble, of course, if there are multiple NIC's of the class which have different roles: you might be back to MAC addresses, or you could go in the direction of making a rule like "LAN-facing NIC's go into slot 0 or 1 and WAN-facing NIC's go into slot 2 or 3".dmpogo wrote:But, for this discussion, MAC has an opposite problem - it is TOO specific. That is, there is no chance that your script will work on another, even identical, machine without modification, if it is based on MAC address (*) Basing network interface name on MAC essentially equates the two - imagine firewall rules with hardcoded MAC - that's what you'll get. In essence you are hardcoding manufacturers serial numbers. And the point of network interface names is actaully to provide some level of abstraction from being purely hardware descriptors.
(*) it make me shiver to think of a class of 100 identical desktops where one would need to adjust scripts for every single one.

No, it wouldn't, at least not reliably: udev would have to rename eth* to another eth* (depending on the previous rules and on the order in which the kernel initializes the drivers) - which is what udev did before but which is subject to a race condition: While udev is renaming the kernel could want to add the same device. If you want it in such a way, but reliably, you would still need to rename to e.g. net* which is not in danger to interfere with kernel names.depontius wrote:With that kind of sceme we could have our eth0, eth1, wlan0, etc, and as long as that card remained, it would get its name
gentoo_newguy ... yes, don't use udev use the eudev package. By *default* eudev keeps the old naming convention, and allows you to use the new naming schema if you so wish. Otherwise, read all the threads, news items, upgrade guides, etc, symlink what-have-you to /dev/null, write some udev rule ... take your pick.gentoo_newguy wrote:is there a simple way to have my network devices back to how they were
I imagine this should be a "0" (zero, naught) and not an "o" (ohhhwww), and when you say "command line" you do mean passed to the kernel (ie, via grub, or you bootloader)?gentoo_newguy wrote:i have tried net.ifnames=o on the command line and that is not working.
Sounds as though wpa_supplicant is passed a interface name as a parameter that it can't translate into an actual device.gentoo_newguy wrote:wpa_supplicant is giving me some weird error when trying to start lots of ioctil[siociwpmksa] invalid arguments going on, any ideas what this is??



Code: Select all
rc-update add net.wlan0 default
gentoo_newguy ... John's pretty much covered it above. By default the "rule-generator" useflag is set and this will provide an init "udev-postmount" you then add this to the default runlevel.gentoo_newguy wrote:how do i switch from udev to eudev?
Code: Select all
# rc-update add udev-postmount default