[HOWTO] Zmusić net.ppp0 do czekania na synchronizację
Monday, 31. March 2008, 15:01:19
Mój Sagem F@st 800 to bardzo fajny modem ADSL i działa bez problemów (sterownik w kernelu), ale czasem bywa trochę ospały, jeśli chodzi o synchronizację. Przełączenie na bliższą centralę znacznie pomogło w tym względzie, ale nadal zdarza się czasem, że net.ppp0 startuje zanim modem się zsynchronizuje. Pod OpenRC z GIT problem przybrał na sile ze względu na szybszy start systemu. Zakasałem więc rękawy i postanowiłem usunąć problem. W ten sposób powstał skrypt eagle-waitforsync. W rzeczywistości to znacznie okrojony i troszkę zmodyfikowany skrypt eagle-stats, który kiedyś zdobyłem na forum Gentoo (nie pomnę dokładnie gdzie). Jak to działa? Skrypt sprawdza czy stan modemu to "operational". Jeśli nie, odczekuje 2 sekundy i próbuje dalej. I tak aż do skutku. Gdy znajdzie to, czego szukał, kończy działanie. Niestety, rozwiązanie to opóźnia też start systemu. Na razie nie udało mi się tego zwalczyć w sensowny sposób.
Opis instalacji:
1) Wrzucamy skrypt do dowolnego katalogu w $PATH (najlepiej /usr/local/bin)
2) Do /etc/conf.d/net dopisujemy:
Uwagi:
Skrypt działa tylko z modemami obsługiwanymi przez ueagle-atm. Nie sprawdzałem żadnych dziwnych konfiguracji (np. kilka modemów). U mnie działa.
EDIT: Jednak parę usterek wyszło w praniu, więc poprawiłem opis. Zaktualizowałem też skrypt. Poprzedni od razu kończył pracę, jeśli ueagle-atm nie zdążył jeszcze utworzyć swojego katalogu w /sys. My bad.
Opis instalacji:
1) Wrzucamy skrypt do dowolnego katalogu w $PATH (najlepiej /usr/local/bin)
2) Do /etc/conf.d/net dopisujemy:
function preup() {
if [ "${IFACE}" = "ppp0" ] ; then
eagle-waitforsync
return 0
fi
}Uwagi:
Skrypt działa tylko z modemami obsługiwanymi przez ueagle-atm. Nie sprawdzałem żadnych dziwnych konfiguracji (np. kilka modemów). U mnie działa.
EDIT: Jednak parę usterek wyszło w praniu, więc poprawiłem opis. Zaktualizowałem też skrypt. Poprzedni od razu kończył pracę, jeśli ueagle-atm nie zdążył jeszcze utworzyć swojego katalogu w /sys. My bad.