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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2015-02-10 11:05:46

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

[RPi] automatyczny restart hostapd przy wyjęciu/włożeniu karty wifi

Witam.


Z różnych przyczyn do najbliższej wypłaty zmuszony jestem do korzystania z tzw "rozwiązań bezkosztowych" - czyli trzeba zastąpić prowizorycznie routerek wifi (który napisał do mnie podanie o wycieczkę lotniczą w kierunku najbliższego smietnika). Z routingiem nie ma problemu - mój blaszak działa non-stop, ilość sieciówek ma wystarczającą. Gorzej z wifi (nie podłączę karty do blaszaka bo stoi w takim miejscu że nigdzie nie sięgnie).

Do dyspozycji działająca również non-stop malinka, wyposażona w huba USB z zasilaniem oraz wielce paszczatą kartę TP-Linka (to coś co dodawali w roblandzie do zestawów z wifi, TL-725N-V2). Po pewnych problemach z uruchomieniem (ściąganie jakichś lewych driverów) wszystko ruszyło (hostapd + bridge) i działa nadspodziewanie dobrze (mam zasięg w całym mieszkaniu, sąsiad mnie nie interesuje).

Niestety - karta (albo driver, albo co) ma swoje fochy - mianowicie po pewnym czasie wyłącza tryb master i próby jego włączenia kończą się informacją, że "karta nie może pracować w trybie master" (fakt zresztą odnotowany na paru forach raspberrego). Doraźne rozwiązanie to:

* hostapd stop
* wyjęcie karty z huba
* włożenie karty
* dodanie wlan0 do br0
* start hostapd

Tyle że chciałbym, aby moja małżonka (której umiejętności techniczne ograniczają sie do wyjęcia i włożenia karty) również mogła całe to ustrojstwo w przypadku awarii uruchomić.

I teraz pytanie czy dobrze kombinuję:

Załóżmy że odczytałem sobie ID karty przez lsusb, i wprowadzam nową regułkę do np. /etc/udev/udev.d/100-hostapd-restart.rules:

Kod:

ACTION=="add", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="yyyy", RUN+="/root/hostapd.sh"

ACTION=="remove", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="yyyy", RUN+="/usr/sbin/service hostapd stop"

gdzie zawartość /root/hostapd.sh to

Kod:

#!/bin/bash
if [ -f /dev/shm/hostapd.enable ] ; then
    echo 'sleep 10 && brctl ifadd br0 wlan0 && service hostapd restart' | at now
fi

a w /etc/rc.local siedzi m.in. linijka:

Kod:

touch /dev/shm/hostapd.enable

Dobrze kombinuję czy trzeba jakoś inaczej do sprawy podejść?

Zaznaczam że niespecjalnie się znam na pisaniu regułek do udeva, a nie mam w tej chwili dostępu do malinki (inna awaria, brak netu w domu, siedzę w barze z wifi).

A może jest jakiś inny sposób?


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#2  2015-02-10 11:43:06

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [RPi] automatyczny restart hostapd przy wyjęciu/włożeniu karty wifi

Dobrze kombinuję czy trzeba jakoś inaczej do sprawy podejść?[/quote]
No inaczej raczej się nie da tego zrobić skoro ma to polegać na eventach przy wykrywaniu urządzeń. Rzuć sobie okiem na ten mój art https://dug.net.pl/tekst/278/ , tylko jeśli szukasz urządzeń, to rób to via

Kod:

# lsusb
Bus 002 Device 008: ID 2357:0101

# udevadm info --name /dev/bus/usb/002/008 --attribute-walk

I dalej już tam masz info jak sobie obadać tego udeva.

Offline

 

#3  2015-02-10 12:15:14

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: [RPi] automatyczny restart hostapd przy wyjęciu/włożeniu karty wifi

Przydatny tekścik, nie powiem. Dzięki!

Tak przy okazji... nie wiem kto tworzył style do tego działu, ale za szare literki na białym tle i brak liquid layout przy powiększaniu powinien być zakuty w dyby na jakiś tydzień i wystawiony na widok publiczny.


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)

[ Generated in 0.007 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00009 SET CHARSET latin2
0.00003 SET NAMES latin2
0.00095 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='18.219.209.144' WHERE u.id=1
0.00070 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.219.209.144', 1732808940)
0.00051 SELECT * FROM punbb_online WHERE logged<1732808640
0.00046 SELECT topic_id FROM punbb_posts WHERE id=282710
0.00005 SELECT id FROM punbb_posts WHERE topic_id=27015 ORDER BY posted
0.00051 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=27015 AND t.moved_to IS NULL
0.00006 SELECT search_for, replace_with FROM punbb_censoring
0.00071 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=27015 ORDER BY p.id LIMIT 0,25
0.00093 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=27015
Total query time: 0.005 s