FS#25308 - [archboot] some modules (network ones) are both in /etc/rc.conf and blacklisted ! using archboot
Attached to Project:
Arch Linux
Opened by Frederic Bezies (fredbezies) - Friday, 29 July 2011, 13:19 GMT
Last edited by Tobias Powalowski (tpowa) - Wednesday, 17 August 2011, 06:26 GMT
Opened by Frederic Bezies (fredbezies) - Friday, 29 July 2011, 13:19 GMT
Last edited by Tobias Powalowski (tpowa) - Wednesday, 17 August 2011, 06:26 GMT
|
Details
Description: Hello.
Doing some tests with a qemu-kvm virtual PC and archlinux + testing I noticed that when I upgrade to linux 3.0 and related packages, I noticed that e1000 kernel module (which give network to qemu-kvm virtual PC) is both in MODULES and in /etc/modprobe.d/blacklist_net.conf So, at boot time, it is both loaded and unloaded leading to a "Cannot find device eth0" message at boot. Additional info: linux 3.0-2 Steps to reproduce: Just upgrade to linux 3.0 using testing. |
This task depends upon
we don't have any package in repos that owns /etc/modprobe.d/blacklist_net.conf
Removing this file and network is working flawlessly or near that ;)
Blacklisting changed so this had to change too.
blacklist file keeps udev from loading.
rc.conf contains MODULES= which loads the network modules always in the same order.
Not a bug, it's a feature.
Have a good day.
If yes it could be that the interface is not up till netcfg is run.
Anyway, I need to comment blacklist content to install packages after I switched to testing.
In your case I think it's a pure timing issue that the network interface is not ready at link speed when the helpers want to set the address.
and maybe others:
https://bbs.archlinux.org/viewtopic.php?id=123329
https://bbs.archlinux.org/viewtopic.php?id=123453
https://bbs.archlinux.org/viewtopic.php?id=123462
It may not be a bug, but where is it documented?
All network and sound related drivers that I had in rc.conf now appear blacklisted in blacklist_net.conf and blacklist_sound.conf.
If it is not a bug, which is the new way of loading modules? I am expected to leave these automatically generated files untouched?
Thank you
This was caused by the move to the new blacklisting logic in initscripts/module-init-tools/udev. In particular by the patch: <http://projects.archlinux.org/initscripts.git/commit/?id=590ee44c1495ea67d05>.
Though the current behavior was intended, it would be simple enough to revert the functionality that causes this bug. Just colud just ignore blacklisting when we are loading MODULES from rc.conf. If possible, I would rather not though, as I find it a bit counter-intuitive to both force-load and blacklist a module.
It also seems like a fragile feature for a few reasons (off the top of my mind):
1) While the loading of MODULES is sequential at the moment, I don't think this is ever documented in modules-init-tools, so might, in principle, change.
2) What about systems where several nic's happen to use the same driver? I guess in that case this trick will not help to make sure we get persistent names.
3) By using a very Arch-specific solution, we risk that our usecase is not taken into account when various upstream projects evolve.
I believe writing udev rules to rename the devices would be the way to go. Maybe we could add a little tool that could do this for us? It should be something that the admin would call for each of the nic's he wants, in order to rename them, typically on install, and not something that is run automatically when a new nic appears (as was the case before). Such a thing would probably be welcome upstream, if anyone has the motivation to pursue it.
@Everyone: a workaround until we have sorted this out is to remove your *_blacklist.conf files. I hope we'll have this sorted out soon though. Sorry for inconveniencing everyone, as I was not aware of this use-case when I accepted the change.
Create a file like /etc/udev/rules.d/10-network.rules with this content:
SUBSYSTEM=="net", ATTRS{address}=="00:aa:bb:cc:dd:01", NAME="lan0"
SUBSYSTEM=="net", ATTRS{address}=="00:aa:bb:cc:dd:02", NAME="lan1"
Naming is up to you. E.g I call my lan nic lan and wireless wlan.
For audio devices you may use this entry for modprobe.conf:
options snd slots=snd_virtuoso,snd_hda_intel
Have you removed the offending /etc/modprobe.d/* files? That should fix it.
/etc/modprobe.d/blacklist_{net,sound}.conf were automatically created (I did NOT create them; in fact, I didn't even know how to blacklist modules) with MODULES I blacklisted using the deprecated !bang syntax for debugging purposes. However, after removing the '!' the modules were still blacklisted because of the modprobe files that were generated.
I think that's very confusing. You should either
1) have full backwards compatibility for the !blacklisted syntax by removing those entries from the modprobe files if the exclamation mark was removed
2) or have no backwards compatibility at all, ignoring the exclamation marks/complaining.
Just to clarify a bit: the blacklist_{net,sound} modules were created by the installer you used, and this will be fixed in its next release.
There was never a backwards compatibility mechanism that would automatically convert the exclamation marks in rc.conf to the native blacklisting at runtime. I don't think archboot did this at install time either, it just blacklisted everything unconditionally.
http://pastebin.com/DrA5k4jG
Yes it was not documented yet, because i haven't had the time.
New initscripts causes blacklisted modules not to load in rc.conf MODULES= array anymore, please remove
the blacklist files in /etc/modprobe.d/ directory
It will be replaced by udev rules creation for network and modprobe.d files for sound in 08.2011