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:
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.
Ogólnie problem polega na tym, że za wcześnie odpalone pppd od razu pada z błędem, zamiast próbować jeszcze raz. Może więc właściwym rozwiązaniem byłby jakiś patch na pppd właśnie? Znając życie, jeszcze przy tym pogrzebię :)
na starszym baselayout nie było problemu ;-) za to nowy czeka jak pod mandriva np :)
Niestety tak to działa :( Na razie jako obejście dopisałem powyższy skrypt i /etc/init.d/net.ppp0 start do /etc/conf.d/local. Niezbyt piękne, ale działa.
Hej,
a jak chciałbyś się połączyć do innej sieci u kumpla przez zwykłe eth0 to dalej by init czekał na "modem operational" ?