Coldplug mi zapíná síť 

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.


Komentáře

Pro tento záznam nejsou komentáře povoleny.