PCMCIA network configuration
(Please CC me on replies.)
Currently, netcfg adds the "auto" option on all interface definitions
it generates. However, during the boot process cardmgr is started
after networking, so the interfaces are ifup'd before they are known
by the kernel. Unfortunately, ifup does not check whether the
interface it tries to bring up actually exists, so it gets added to
/etc/network/ifstate anyway. When cardmgr later tries to ifup the
interface, it fails.
I have some ideas on how to solve this problem:
1. Change /etc/pcmcia/network{,.opts} to somehow tell netcfg that a
particular interface is a PCMCIA network card and then modify
netcfg so that it doesn't add the auto option on these interfaces.
2. Start pcmcia-cs earlier in the boot process, before
networking. hotplug does this so why not pcmcia-cs? It would have to
call cardmgr with -f though, so that the cards are configured
synchronously.
3. Make ifupdown smarter, so that it won't add an interface to
/etc/network/ifstate if it hasn't really been brought up (or
doesn't exist).
4. Use hotplug to bring up hotpluggable network interfaces such as
PCMCIA, PCI (Cardbus) and USB network adapters. I think that's what
you're supposed to do, and why should only 16-bit PCMCIA cards be
truly hotpluggable by default?
What do you think? Alt. 1 should work and probably has the smallest
effect on the rest of the system, but I think alt. 4 is more elegant
as it provides unified hotplugging of all types of network
interfaces. Perhaps alt. 2 might be a good thing to do in any case to
make pcmcia-cs consistent with the rest of the system.
--
Pelle
Reply to: