Tak jsem na svém notebooku v Gentoo upgradoval baselayout na vývojovou verzi, což řeší problémy s WPA_Supplicantem, který starší baselayout neobsluhoval správně (nepoznal, že došlo k asociaci a po čase timeoutoval). Jenže mám tu jiný problém. Od té doby se mi wifi zapne vždycky hned při nabootování. Sérií testů jsem přišel na to, že to spouští coldplug, konkrétně coldplug pci zařízení. Řešením by určitě bylo vyndat pci zařízení z hotplugu, protože můj notebook samozřejmě žádné PCI Hotplug rozhranní nemá.
Já šel ale kousek dál. Asi hodinu jsem analyzoval soubory v adresáři /etc/hotplug a /etc/hotplug.d. Přitom jsem zjistil asi toto:
- Soubory *.rc slouží pro coldplug - skript projde /sys strukturu a vygeneruje hotplug událost pro každé zařízení, co najde.
- Soubory *.agent jsou agenti pro jednotlivé druhy událostí, které hotplug generuje. Tito agenti jsou spouštěny skriptem /etc/hotplug.d/default/default.hotplug
- V adresáři /etc/hotplug.d/default/ jsou ještě skripty 10-udev.hotplug - ten vyvolá udev událost pro přidání zařízení do /dev a 20-hal.hotplug - ten zřejmě informuje HAL vrstvu o události pro další zpracování (např. v KDE)
Takže o spuštění síťového rozhranní se stará agent /etc/hotplug/net.agent. A opravdu:
... case $INTERFACE in # interfaces that are registered after being "up" (?) ppp*|ippp*|isdn*|plip*|lo*|irda*|dummy*|ipsec*|tun*|tap*) debug_mesg assuming $INTERFACE is already up exit 0 ;; *) ... # Gentoo elif [ -f /etc/gentoo-release ]; then script=/etc/init.d/net.$INTERFACE if [ -x "$script" ]; then debug_mesg invoke \"$script\" --quiet start exec "$script" --quiet start fi ...
Takže můj workaround bude zřejmě spočívat v přidání eth2 - tak se jmenuje moje bezdrátová karta, do seznamu zařízení, která se nemají spouštět.