QRM megoldás
Sikerült egy viszonylag barkács módon csinált QRM-javítást készítenem. Így nekem eddig teljes biztonsággal megy a netem. A lényeg:
Egy prgram ellenőrzi, hogy a google.hu-t meg tudja-e pingelni. Ha nem, akkor elindítja az /etc/init.d/S40network parancsot, ami megpróbálja helyreállítani a hálózati kapcsolatot. Ha eléri a megadott hálózatot, csatlakozik rá, ha nem, továbbra is halottnak látszik a fonera.
A hiba oka: Ha QRM módban a fonera nem tud elég gyorsan csatlakozni a hálózathoz, akkor kifagy. Pl. nekem a közelben levő wifihez tudott csatlakozni, nem fagyott ki, de messzebb levőhöz nem. Ez necces.
Még egy probléma. Az általam készített scriptet a crontab lefuttatja percenként. Viszont. Ha a fonera a bootoláskor kifagyott, akkor még nincs crontab futtatás, azaz az S40network sem fut le. Azaz a /etc/init.d/rcS és rcSng fájlok elejébe beszúrtam a következő sorokat:
mkdir -p /var/spool/cron
ln -s /etc/crontabs /var/spool/cron/crontabs
crond -c /etc/crontabs
Illetve: a jól működő, amúgy mindegy a későbbiekben, hogy milyen, csak ne qrm legyen, /etc/config/fon fájlről init néven másolatot készítettem. A fenti két fájlba beletettem az elejébe a
cp /etc/config/fon /etc/config/fonarchive
cp /etc/config/init /etc/config/fon
a végébe a
cp /etc/config/fonarchive /etc/config/fon
parancsot.
Azaz a jó beállítással elindul a fonera, ami természetesen QRM módban nem jó, de a fonera nem fagy ki. Ezután lesz crontab, ami ellenőrzi, hogy van-e net. Ha nincs, indítja az S40networkot, és rendbejön minden. Végülis az S40network beállítja az /etc/config/fon fájl alapján a hálózatot. Azaz, ha az alap működő fonera DHCP-s, akkor:
1) átmásolódik a DHCP-s konfig
2) indul a crontab
3) lefut a DHCP-s config
4) visszamásolódik a QRM-es config, de nem fut le
5) crontab ellenőrzi, hogy van-e net
6) Ha van net, nem csinál semmit
7) Ha nincs net, akkor lefut a QRM-es beállítás
Azaz ha nagyon nem műxik a QRM, akkor vissza kell dugni a fonerát a DHCP-s netre, és újraindítani, ekkor a 6-os pont valósul meg.
Amúgy a script, ami percenként lefut (kicsit barkács):
#!/bin/sh
HOSTS="google.hu"
# A pingelendő szerver
COUNT=1
for myHost in $HOSTS
do
count=$(ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
if [ $count -eq 0 ]; then
# Ha nincs kapcsolat
/etc/init.d/S40network
else
# Ha van kapcsolat
echo 'Ok'
fi
done
Nekem ez a kód az /etc/config/figyelo.sh néven van mentve (futtatási jog is kell természetesen), és a crontabban ez van:
* * * * * /etc/config/figyelo.sh
Szóval ezzel QRM gond megoldva.
Fontenna mennyire időjárásálló? Ha veri az eső, azt is bírja? Mert a leírás alapján kellene? Csak mert felszereltem egyet kintre, aztán rosszul állítottam be, egyet meg most kitettem lényegében a szabad ég alá (erkély korlátjára), de azt verheti az eső.
Amúgy a fonera az áramot Power On Ethernettel kapja (házibarkács), a barnacsík és barna viszi az áramot. Így is van 100Mbit, mert ez a kettő csak a Gigabithez kellene. Úgyhogy a fonera is kint van a szabadban, de arra nem eshet az eső. Ez árt neki amúgy? Hogy a szabadban van?