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

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

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.