Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Tak sobie sprzątam konfigurację w pliku /etc/network/interfaces i z tych porządków postanowiłem posprawdzać co mi z tego jeszcze działa, a co przestało. Niby zatrzymałem się na ifplugd. Generalnie, to łącza przewodowe działają z tym bez problemu, gorzej z bezprzewodowymi — tak wiem, że mogą nie działać xD
Połączenie ifplugd i parametru wpa-roam od wpasupplicant jest w stanie zrobić automat, który działa na takiej zasadzie, że po podpięciu kabla do eth0, wifi jest ubijane i pakiety lecą przez przewód. Po odłączeniu przewodu, wifi jest zestawiane i mam połączenie bezprzewodowe. I tak to sobie działa mniej więcej.
Problem jest w tym, że trzeba to puścić w ruch manualnie, w sensie, nie działa to po restarcie laptopa. Niby procesy monitorowania interfejsów eth0 i wlan0 są odpalone:
# ps aux | grep ifpl root 1692 0.0 0.0 6292 1428 ? S 19:55 0:00 /usr/sbin/ifplugd -i eth0 -q -f -u0 -d2 -w -I root 1721 0.0 0.0 6292 100 ? S 19:55 0:00 /usr/sbin/ifplugd -i wlan0 -q -f -u0 -d2 -w -I
ale z jakiegoś powodu jest ignorowany ten wlan0.
Jeśli manualnie teraz bym wpisał w terminalu [b]ifup wlan0[/b], to ten interfejs zaskoczy i ifplugd go zauważy. W efekcie po odłączeniu/podpięciu przewodu do eth0, ifplugd będzie podłączał i rozłączał wifi, czyli działał tak jak powinien.
Pytanie jest dlaczego to nie działa bez ifup i czy da radę to jakoś poprawić?
Generalnie to mam alternatywę z mertykami ale w tym przypadku są dwa różne adresy. Mi by generalnie zależało na tym, by te interfejsy tak działały jak to wyżej opisałem, bo wtedy można zespófować MAC karty WiFi i przypisać laptopowi jeden adres IP bez względu na to z którego interfejsu on korzysta. Coś jak bonding, tyle, że prościej. xD
Ktoś coś wie czemu ten ifplugd nie podbiera interfejsu wlan0 po restarcie maszyny?
Ostatnio edytowany przez morfik (2016-09-02 15:04:01)
Offline
Nie wie, ale wicd mi to samo robi bez problemu
W wicd-curses jest okienko do zafajkowania, że LAN ma działać po wpięciu kabla. A jak kabelek wyjmę to wstaje wifi.
Offline
Udało mi się to zmęczyć w końcu za sprawą [url=http://www.cubieforums.com/index.php?topic=1636.0]tego artykułu[/url], teraz działa tak jak powinno. Poniżej trochę info.
W konfiguracji ifplugd monitorowany ma być tylko interfejs przewodowy eth0, mimo, że tam piszą, że można też dodać wlan0. Jak już się monitoruje tylko interfejs eth0, to trzeba nieco skryptami się pobawić.
Ten podstawowy skrypt znajduje się w /etc/ifplugd/action.d/action_wpa i trzeba go wyłączyć (dopisując exit 0 gdzieś zaraz na początku pliku). Później trzeba stworzyć nowy skrypt, np. /etc/ifplugd/action.d/action_wlan i dodać tam poniższą zawartość:
#!/bin/sh set -e case "$2" in down) /sbin/wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -B /sbin/ifup wlan0=wifi ;; up) /sbin/ifdown wlan0 /usr/bin/killall wpa_supplicant ;; esac
Potem w /etc/network/interfaces skonfigurować interfejsy w poniższy sposób:
iface eth0 inet dhcp metric 5 auto wlan0 iface wlan0 inet manual wpa-driver nl80211 wpa-debug-level -1 wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf wpa-roam-default-iface wifi iface wifi inet dhcp metric 10
Metryki chyba nie są obowiązkowe ale mi się coś chrzaniło bez nich, to dodałem na wszelki wypadek. [b]auto wlan0[/b] musi być, bo w przypadku startu systemu nie będzie połączenia przy niepodpiętym przewodzie.
Póki co działa, choć jeszcze będę to testował. xD
Offline
Mam jeszcze takie zapytanie odnośnie zmiany adresu MAC dla tych interfejsów, bo coś działa to trochę problematycznie.
Praktycznie żadna metoda zmiany adresu MAC przez plik /etc/network/interfaces nie działa. Nie działa [b]haaddress ether[/b], podobnie też nie działają akcje w pre-up , np. [b]macchanger[/b] czy [b]ip[/b] . Sam adres MAC można bez problemu zmienić w terminalu wskazując interfejs wlan0 ale dopisanie odpowiedniej linijki w bloku z [b]iface wlan0[/b] lub [b]iface wifi[/b] nie przynosi oczekiwanego skutku. W logu zaś można zobaczyć taki komunikat:
ifplugd(eth0)[2545]: client: [ERROR] Could not change MAC: interface up or insufficient permissions: Device or resource busy ifplugd(eth0)[2545]: client: Current MAC: 3c:4a:92:00:4c:5b (Hewlett-Packard Company) ifplugd(eth0)[2545]: client: Permanent MAC: 3c:4a:92:00:4c:5b (Hewlett-Packard Company) ifplugd(eth0)[2545]: client: Failed to bring up wifi. ifplugd(eth0)[2545]: client: run-parts: /etc/ifplugd/action.d//action_wlan exited with return code 1 ifplugd(eth0)[2545]: Program execution failed, return value is 1.
No i jest takie pytanie, czy jak jest wykorzystywany ten ifplugd, to czy konfiguracja tych adresów MAC jest w ogóle możliwa za sprawą pliku /etc/network/interfaces?
Niby potrafię ustawić MAC od razu na starcie systemu via ta poniższa reguła udeva:
ACTION=="add", SUBSYSTEM=="net", \ ATTR{address}=="c0:cb:38:01:f0:f5", \ RUN+="/bin/ip link set dev %k address 3c:4a:92:00:4c:5b"
Offline
Time (s) | Query |
---|---|
0.00011 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00138 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.138.170.67' WHERE u.id=1 |
0.00074 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.138.170.67', 1732746719) |
0.00051 | SELECT * FROM punbb_online WHERE logged<1732746419 |
0.00059 | SELECT topic_id FROM punbb_posts WHERE id=304829 |
0.00004 | SELECT id FROM punbb_posts WHERE topic_id=28919 ORDER BY posted |
0.00040 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=28919 AND t.moved_to IS NULL |
0.00032 | SELECT search_for, replace_with FROM punbb_censoring |
0.00129 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=28919 ORDER BY p.id LIMIT 0,25 |
0.00080 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=28919 |
Total query time: 0.00622 s |