Page 1 of 1

[SOLVED] Nieaktualny ifplugd?

Posted: Mon Dec 12, 2016 10:02 am
by robertsurma
Mam takie proste marzenie ;-)
Aby wifi włączane było, gdy wtyczka eth jest odpięta... a gdy ją włożę, aby uruchamiany był interface eth a zamykany interface wlp3s0.

Myślałem, że problem rozwiąże instalacja ifplugd... ale on nie robi tego, co powinien robić.

Zajrzałem do skryptu /etc/ifplugd/ifplugd.action, a tam są np. odwołania do initng, ngc... które już dawno w portage nie istnieją.

Wnioskuję więc, że sam ifplugd jest już dawno nieaktualną starocią.

Co robić? Jak żyć?

Czy jest jakiś zamiennik?

Może zrobić to w skryptach ACPI?
Ale jak wykrywany będzie event podpięcia i wypięcia wtyczki eth?

Posted: Tue Dec 13, 2016 12:27 am
by Jacekalex
Myślałem, że problem rozwiąże instalacja ifplugd... ale on nie robi tego, co powinien robić.
Nie robi, co powinien?

Tutaj jak widać robił:
https://forums.gentoo.org/viewtopic-p-7385212.html

Pozdro
8)

Posted: Sat Dec 17, 2016 4:53 pm
by robertsurma
Przypomniał mi się kawał, który zapewne znacie:

Informatyk do lekarza:
- Panie doktorze, wątroba chyba mi siadła...
- Dziwne, u mnie działa.

------

Niestety, ifplug nie działa u mnie (gdyż jak powyżej napisałem), składniki do których odwołuje się, nie są już dostępne w portage. Więc jak ktoś ma jeszcze system zbudowany dwa lata temu - to być może ma to jeszcze... i działa.

Alternatywa, netplug, także nie działa (tutaj nie wgłębiałem się w kod).

Postanowiłem rozwiązać sprawę za pomocą regułek udev, ale... prawdopodobnie brakuje mi jakiś modułów jądra.

Regułki są dobrze napisane. Dowodem na to jest, że:

# udevadm trigger

odpala regułki i robią one to, co mają robić.

Ale już udev:
# udevadm monitor

nie rejestruje wpinania i wypinania wtyczki eth, choć bez problemu wykrywa akcje związane z usb, drukarkami itp.

Cały problem obecnie sprowadza się więc do modułów / składników jądra, które obsługują netplugging.

# dmesg
r8169 0000:02:00.0 enp2s0: link down
r8169 0000:02:00.0 enp2s0: link up

(wykrywa... ale widocznie udev korzysta z czegoś innego).

Posted: Sun Dec 25, 2016 4:25 pm
by Jacekalex
Jeżeli udev nie pokazuje opdpięcia kabla sieciowego, to albo jakiś bląd sterownika, albo błąd w udevie.

W ogóle to jaką masz wersję udeva?

Pytam, bo u mnie kilka kolejnych wersji eudev zamraża system przy pierwszym wczytywaniu regułek.

Żeby tego uniknąć, musiałem udevadm trigger ustawić dopiero w skrypcie w /etc/local.d/, dlatego teraz się wiesza tylko raz na kilkanaście uruchomień, wczytanie ich w runlevelu boot, sysinit czy default ( wczensiej, niż local.d) powodowało zamrażanie nawet 70 % uruchomień.

Pozdro
8)

Posted: Tue Dec 27, 2016 4:15 pm
by robertsurma
Udało mi się w końcu osiągnąć cel za pomocą netplug.
Uaktywniłem w jądrze większość opcji odpowiedzialnych za NETLINK oraz wyrzuciłem uevent_helper, czyli to:

Code: Select all

Device Drivers → 
   [*] Generic Drivers Option → 
        [ ] Support for uevent helper (/sbin/hotplug)
bo prawdopodobnie konfliktuje z NETLINK.

Dodałem także trochę własnego kodu do skryptu /etc/netplug.d/netplug, aby po włożeniu wtyczki eth wyłączał interface wi-fi programowo i sprzętowo (oszczędność energii).

=========

Co do udev, też mam wrażenie, że błąd tkwi w funkcji udev. Zakładam w tym celu osobny wątek.