# [SOLVED][NET] Neostrada (eagle) automatyczne łączenie

## vanbastek

Wiem, że była juz masa postów zwiazana z neostradą, ale nie znalazlem w nich problemu podobnego do mojego.

Chciałem, żeby neostrada startowała razem z systemem, dodałem do /etc/conf.d/local.start wpis /usr/sbin/startadsl.

```

Starting local

Modem is not operational!

Check eaglestat result to know its state.

Failed to start local

```

Standart, powinno pomóc dodanie eaglectrl -w przed startadsl. No i problem jest taki, że to nic nie daje.

```

~ $ eaglectrl -w

Waiting for pre-firmware device to re-pop as post-firmware device

.....

```

 i kropki sobie leca, a ja moge se czekać.

Zawsze wyskakiwało coś DSP loaded, waiting for synchro i po chwilce działało. Ze 3 dni temu postawiłem na nowo system i teraz mam takie dziwactwo.

Pomaga dopiero eagleconfig. Tylko nie mogę tego dodać do local.start, chyba że da się jakoś zrobić zeby skrypt 'naciskal' za mnie enter.

I co by z tym zrobić?

----------

## Padre

Mialem podobny problem. 

eaglediag albo status nie pamietam juz wyswietlalo tylko jakas informacje o pre firmware device albo driver nie pamietam dokladnie.

Gdy dawalem eaglectrl -w to moglem sobie isc na browca.

Pomoglo mi dopiero przeinstalowanie/wywalenie wszystkiego co zwiazane z neo czyli eagle-usb / demona pppd.

Gdy zainstalowalem i skonfigurowalem polaczenie eagleconfig / dodalem hasla w chap-secrets ruszylo. 

I teraz eaglectrl -w przynosi porzadany efekt.

Sproboj przeinstalowac  moze to pomoze.

----------

## svirus

hmm... dziwne rzeczy

mi sie eaglectrl -w wieszalo jesli poprzedzilem go eaglectrl -d

ale tak to mialem w /etc/conf.d/local.start:[/code]

```

modpreobe eagle-usb && eaglectrl -w && startadsl

```

robilem neo na gentoo dwa razy w te wakacje na dwoch kernelach (2.6.10 i 2.6.12-cko) dziala bez problemu.

----------

## mbar

znacznie prościej i zgodnie z filozofią Gentoo:

```
rc-update add eagle-usb default
```

przed tym mam jeszcze eagle-usb w modules.autoload...

----------

## vanbastek

Próbuję problem rozwiązać "zgodnie z filozofią gentoo".

Dodalem moduł do modules.autoload.d, ale nie moge zrobić rc-update bo w /etc/init.d nie mam eagle-usb  :Sad: 

----------

## patpi

 *vanbastek wrote:*   

> Próbuję problem rozwiązać "zgodnie z filozofią gentoo".
> 
> Dodalem moduł do modules.autoload.d, ale nie moge zrobić rc-update bo w /etc/init.d nie mam eagle-usb 

 

czy ten, moj, opis dla Vidalinuxa pomoze? -> http://vlos.org/forum/index.php?showtopic=46

jak cos w nim wyczytasz co Ci sie przyda/rozwiaze problem to napisz co zrobiles

----------

## vanbastek

Oj przydało się.

Z Twojego opisu:

```
touch /etc/init.d/neostrada
```

zawartość /etc/init.d/neostrada

```

#!/sbin/runscript

start() {

ebegin "Starting neostrada"

exec `eaglectrl -w; startadsl` > /dev/null &

eend $?

}

stop() {

ebegin "Stopping neostrada"

stopadsl

eend $?

}

```

uprawnienia dla skryptu i dodanie do runlevela

```
chmod 755 /etc/init.d/neostrada

rc-update add neostrada default
```

Restart i działa  :Very Happy: 

Moduł eagle-usb dodałem wcześniej. Przypuszczam, że "dziwne zachowanie" eaglectrl było spowodowane właśnie brakiem eagle-usb w modules.autoload.d.

Dzięki za pomoc.

----------

## mbar

 *vanbastek wrote:*   

> Próbuję problem rozwiązać "zgodnie z filozofią gentoo".
> 
> Dodalem moduł do modules.autoload.d, ale nie moge zrobić rc-update bo w /etc/init.d nie mam eagle-usb 

 

a powinien być po 

```
emerge eagle-usb
```

----------

## vanbastek

Sterowniki do neo instalowałem "ręcznie".

----------

## mbar

I stąd właśnie te problemy -- bo niezgodnie z filozofią Gentoo   :Wink: 

----------

## vanbastek

No dobra teraz instalowałem zgodnie z filozofiš gentoo.

Zrobiłem 

```

rc-update add eagle-usb default 
```

I co to nie działa. Najpierw wywalało mi, że nie ma /etc/eagle-usb/dsp/eagle-usb.conf, wogóle nie było u mnie katalogu dsp, stworzyłem skopiowałem tam conf. Potem znowu nie mógł załadować dsp_code_pots.bin, skopiowałem je do tego /etc/eagle-usb/dsp.

Pierwszy sukces - modem się synchronizuje.

No i teraz błšd z którym sobie nie mogę poradzić. Nie można uruchomić dhcpcd.

Sprawdziłem w /var/log/messages, no i tam jest że minšł mi czas oczekiwania na serwer dhcp.

No a skšd ten serwer DHCP, mam go na swoim kompie uruchomić?

----------

## mbar

Nie, po prostu trzeba ze zrozumieniem wyedytować pliki konfiguracyjne eagle-usb i ppp. Po pierwsze, Neostrada to PPPoA, więc

```
USE="pppoa" emerge eagle-usb
```

Przyda się przelecieć eagle-config czy coś.

Po drugie, faktycznie w domyślnym configu eagle jest błąd ścieżki do plików conf/dsp, ale z tym już sobie poradziłeś. Po trzecie, w /etc/conf.d/eagle-usb edytujesz właśnie OPTIONS (poprawa ścieżki do eagle-usb.conf), zmieniasz PEER na "adsl" (jest taki plik w /etc/ppp/peers), no i zmieniasz METHOD z "dhcpip" na "pppoa". Wtedy zadziała pobieranie adresu IP od TP. 

Jeszcze jedna uwaga, jeśli masz w katalogu /etc/eagle-usb plik "bla_bla_bla_must_be_configured" (nie pamiętam dokładnie nazwy), to modem się nie połączy, nawet jeśli pliki konfiguracyjne są poprawne. RM go  :Smile: 

----------

## vanbastek

Dzięki, zrobiłem tak jak napisałeś. Działa  :Very Happy: 

----------

## sasq

OK, zrobiłem tak:

1. Zemergowałem eagle-usb [musiałem dodać ACCEPT_KEYWORDS="~x86", nie wiem czemu ;P]. Dodatkowo hotplug i coldplug, bo chcę żeby mi się to wszystko automatycznie ładowało  :Wink:  Wszystko się ładnie skompilowało i zainstalowało.

2. Po reboocie coldplug ładnie załadował mi moduły *hci-hcd i eagle-usb, modem dostał DSP i się zsynchronizował  :Smile: 

3. Odpaliłem eagleconfig. Wszystko OK.

4. Po wydaniu polecenia "startadsl" nie chce się jednak połączyć, wywala: "Failed to launch connection!". Nie pomaga przepinanie modemu, przeładowywanie modułów, synchronizuje się ale się nie łączy, tylko wywala ten błąd.

5. Postanowiłem więc sprawdzić jak sobie da radę skrypt Gentoo /etc/init.d/eagle-usb

W pierwszym momencie nie ruszył, bo nie mógł znaleźć pliku eagle_config - szukał go w /etc/eagle-usb/dsp, zmieniłem więc ścieżki w /etc/conf.d/eagle-usb tak jak było w tym wątku opisane i tym razem przeszedł ten etap dobrze.

Jednak skrypt przy startowaniu demona pppd wywala że mam wpisać spod roota coś takiego:

```
mknod /dev/ppp c 108 0
```

i gdy dodaję, tym razem nie marudzi tylko strasznie długo zawisa aż w końcu muszę dać Ctrl+C  :Razz: 

W końcu pomyślałem żeby odpalić ten pppd ręcznie i wtedy wystartował pppd [choć też coś długo czekał wpierw] i następnie zadziałało polecenie "startadsl" :/

>>>>>> I TERAZ PYTANIE:

Jak zmusić ten skrypt /etc/init.d/eagle-usb żeby odpalał poprawnie demona pppd i połączenie? Bez konieczności tworzenia jakichś inodów w /dev ?  Sprawa jest o tyle ważna, że pppd z tego skryptu wiesza mi bootowanie gdy nie ma tego /dev/ppp, a po resecie nigdy nie ma nawet jak tworzę  :Razz: 

Przydałoby się też żeby startował mi połączenie po wpięciu kabelka. Wydaje mi się to możliwe, bo skoro hotplug ładuje moduły i DSP przy wpięciu kabelka, to mógłby też odpalić połączenie :J

----------

## dlugidll

ja zrobilem prosto, zgodnie z innymi opisami na forum

skompilowalem jako zgodnie z opisem

http://gentoo-wiki.com/HARDWARE_Install_a_modem_that_uses_the_eagle-usb_software

tylko wszystko od mojego usb dalem na stale w jajko

emerge eagle-usb najnowsze jakie jest poprzez 

USE="pppoa" emerge eagle-usb

oczywiscie odmaskowalem eagla 

oczywiscie dodalem modul do autoload

po rebocie odpalilem eagleconfig

a w /etc/init.d/local.start dalem taki wpis

```
eaglectrl -w

startadsl
```

i teraz dziala

jak potrzebuje zatrzymac internet to daje

stopadsl

a nie /etc/init.d/eagle-usb stop

a potem znowu startadsl

wszystko dziala

----------

## sasq

Tak to mi też działa  :Wink: 

Ale muszę dodatkowo startować tego demona pppd i dodawać mu jakieś cholerne inody w /dev po każdym restarcie kompa. Nie wiem dlaczego demon pppd nie startuje sam, bo z tego co mi wiadomo - powinien.

Druga sprawa że chciałem by połączenie odpalało mi się przy starcie systemu [a gdyby odpalało się po włożeniu kabelka i wyłączało po wyjęciu, byłbym w siódmym niebie  :Wink: ].

Modułu nie musiałem dodawać do autoload, bo jak już wspomniałem mam hotplug i coldplug, które robią to za mnie - gdy tylko podłączę modem, same ładują mi potrzebne moduły, podobnie jest gdy modem jest wpięty podczas bootowania systemu.

Wszystko git, tylko ten /etc/init.d/eagle-usb nie chce mi odpalać demona pppd [narzeka na brakujące inody w /dev]. Gdy zadziała, połączenie mogłoby mi startować wraz z systemem.

W sumie to zastanawiam się jeszcze nad jakimś mechanizmem automatycznego łączenia ponownego, gdy mnie TePsa rozłączy  :Cool: 

----------

## vanbastek

Masz coś skopane. Ja dalej robię tak jak tam wcześniej jest, z tym że w wersji 2.3.2 zauważyłem już że w configu jest poprawiona scieżka do dsp.

Nie wiem czy to dlatego że zapomniałem o use pppoa, ale muszę tylko zmienić peer i method i wszystko pieknie działa przez usługę eagle-usb.

Co do modułu, jedyno co zrobiłem to dodałem go do /etc/modules.autoload.d/kernel-2.6.

Patrząc na twoje hotpługi i coldplugi mam wrażenie że używasz jajka z genkernela  :Wink:  Nie znam tych rozwiązaniach  :Razz: 

----------

## sasq

 *vanbastek wrote:*   

> Masz coś skopane.

 

Tyle to ja wiem sam, tylko że mnie to nie urządza  :Razz: 

 *vanbastek wrote:*   

> Ja dalej robię tak jak tam wcześniej jest, z tym że w wersji 2.3.2 zauważyłem już że w configu jest poprawiona scieżka do dsp.

 

Ja miałem jeszcze niepoprawną, poprawiłem ręcznie.

 *vanbastek wrote:*   

> Nie wiem czy to dlatego że zapomniałem o use pppoa, ale muszę tylko zmienić peer i method i wszystko pieknie działa przez usługę eagle-usb.

 

Ja dodałem pppoa i inne do USE [na czas instalacji eagle-usb, bo kiedy indziej niekoniecznie będzie tam potrzebne] ale też musiałem peer i method poprawiać sam. Możliwe że to dlatego, że nie dałem --new-use ale nie znam sie  :Cool: 

 *vanbastek wrote:*   

> Patrząc na twoje hotpługi i coldplugi mam wrażenie że używasz jajka z genkernela 

 

Niestety pudło  :Wink:  Kompilowałem jajco sam, dodałem obsługę PPP, USB, IPTables i QoS bo było mi to potrzebne, nie wiem czy genkernel dałby mi taką swobodę  :Wink:  Hotplug i Coldplug to wynik mojego lenistwa i tego, że jestem zwolennikiem automatyzmu  :Wink:  [zwłaszcza system taki jak Linux powinien to umożliwiać i dlatego go lubię :> ]. Dałem hoptluga nie po to, żeby mi sam wykrywał sprzęt [bo ja tam wiem i tak co mam w kompie  :Wink: ], tylko żeby mi wykrywał to co aktualnie mam podłączone, a nie zaśmiecał pamięci modułami, które nie są aktualnie potrzebne.

***

OK rozwiązałem już chyba ten problem.

Po pierwsze, pppd nie chciał startować bo nie mógł znaleźć /dev/ppp . Urządzenie to pojawia się samo wtedy, gdy jest załadowany moduł ppp_generic [normalnie byłby chyba wkompilowany w jądro, a ja sobie go dałem jako moduł i teraz pokutuję  :Razz: ]. Gdy załaduję ten moduł, pppd startuje i połączenie również  :Wink:  i to o wiele szybciej niż po wydaniu komendy startadsl :> [tuningi Gentoo rulez!  :Cool: ].

Po drugie, moduły mi się nie chciały ładować gdy je dopisywałem w /etc/modules.autoload.d/kernel-2.6. Myślałem że to z nimi coś nie tak, ale gdy nie ładowały się ŻADNE, uznałem że coś tu śmierdzi i zajrzałem w logi. A tam:

```
Jan 13 18:24:45 reaktor ppp_generic: Unknown parameter `#'
```

 :Razz: 

Bo miałem w modules autoload coś takiego:

```
ppp_generic     # Dodaje /dev/ppp
```

Czyli mój komentarz został zinterpretowany jako parametry dla modułu -_-

Wywaliłem komentarze i wszystko gra  :Wink: 

----------

## vanbastek

 *sasq wrote:*   

> 
> 
> Ja dodałem pppoa i inne do USE [na czas instalacji eagle-usb, bo kiedy indziej niekoniecznie będzie tam potrzebne] ale też musiałem peer i method poprawiać sam. Możliwe że to dlatego, że nie dałem --new-use ale nie znam sie 
> 
> 

 

BTW

```
echo "net-dialup/eagle-usb pppoa i inne" >> /etc/portage/package.use
```

Nie prościej?  :Razz: 

----------

## sasq

Można i tak:

```
# USE="pppoa" emerge eagle-usb
```

 :Wink: 

No ale mądry Polak po szkodzie ;D

----------

## vanbastek

A można, tylko np. podczas aktualizacji systemu flagi ustawione w ten sposób nie zostaną wzięte pod uwagę. Wolę dopisywać do /etc/portage/package.* - zawsze bedzie tak jak ma być.

----------

## sasq

Racja  :Smile: 

Jak to powiedział Marty McFlay z "Back to the future":

"Pan tu jest doktorem, doktorze"  :Cool: 

Można by dać [SOLVED^2] w topicu ;D

----------

## dlugidll

dzieki wielkie -> vanbastek

ten skrypt 

neostrada

bardzo mi sie przydal

zmienilem tylko nieco ten skrypt bo sagem sam  probowal sie zsynchronizowac zanim uruchamial sie skrypt neostrada

wiec wywolanie w tym skrypcie 

eaglectrl -w     powodowalo ponowna probe synchronizacji . Skutek byl taki, ze sagem sie wogole nie synchronizowal

malym rozwiazaniem bylo zamiana wpisu eaglectrl -w  na sleep 30, ale po co ma czekac az 30 sek, skoro i tak nie wiadomo czy w tym czasie modem zlappie synchro.

Najlepszym rozwiazaniem okazalo sie dodanie takiego wpisu 

```
rmmod eagle-usb

modprobe eagle-usb
```

zatem caly skryp wyglada tak

```
#!/sbin/runscript 

start() { 

ebegin "Starting neostrada" 

exec `rmmod eagle-usb;modprobe eagle-usb; eaglectrl -w; startadsl` > /dev/null & 

eend $? 

} 

stop() { 

ebegin "Stopping neostrada" 

stopadsl 

eend $? 

} 
```

dodam, ze  ta wersja tego skryptu dziala rowniez idealnie pod Slackware Linux, gdzie problem z autosynchronizacja tez wystepuje zanim uruchamia sie skrypt  rc.neostrada do uruchamiania neostraday

----------

