Fedora Online Forum

Il forum della comunità italiana di Fedora

#1 11-09-2015 07:32:55

marcomotta
Moderatore
Da Roma
Registrato: 18-01-2009
Messaggi: 2'800
Sito web

Connessione automatica a Speed Touch Alcatel USB

Essendo improvvisamente defunto il router in comodato di Tiscali, ho dovuto riesumare, (finché non me lo sostituiscono), il mio vecchio Speed Touch Alcatel.
Seguendo questa guida, sono riuscito, finora:
1) a far caricare, quando inserisco il modem nella presa usb, il firmware, in modo che il modem cerca, e trova, la sincronia sulla linea ADSL.
2) a far connettere il modem quando do il comando

# pppd call speedtch

Ho ancora i seguenti problemi:
1) Quel birichino di Network Manager mi sovrascrive i DNS in /etc/resolv.conf, con il risultato di impedirmi la navigazione. Per ora ho disabilitato Network Manager e riscritto i dns in /etc/resolv.conf.
2) La connessione non parte in automatico. Ho inserito una regola, che però sempra essere ignorata:

$ cat /etc/udev/rules.d/99-speedtouch.rules
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="06b9" , ATTRS{idProduct}=="4061", RUN+="/root/speedtch"

dove

# cat /root/speedtch
/usr/sbin/pppd call speedtch >/tmp/speedtch

(N.B. /root/speedtch è eseguibile)

Ho anche provato, come suggerito nella guida, con

$ cat /etc/udev/rules.d/99-speedtouch.rules
ACTION=="add", SUBSYSTEM=="atm", KERNEL=="speedtch*", RUN="/root/speedtch"

ma anche questa non viene eseguita: il file /tmp/speedtch non viene creato e la connessione non viene attivata, a differenza di quanto accade eseguendo da terminale

# /root/speedtch

3) Ho bisogno di condividere la connessione con gli altri computer collegati allo switch via cavo: ma le guide che trovo in giro usano iptables, che se non erro non viene più usato in Fedora.

Insomma, io vorrei che, quando inserisco il cavo usb, oltre a caricare il firmware e sincronizzarsi con la linea ADSL, il sistema facesse partire automaticamente la connessione ppp, utilizzando i dns indicati e condividendo la connessione con gli altri computer.

N.B. Network Manager può fare tutto ciò?

Ultima modifica di marcomotta (11-09-2015 12:46:47)


La filosofia è una disciplina con obiettivi, ma senza regole. La matematica è una disciplina con regole, ma senza obiettivi.
Un giorno ho incontrato un uomo che non aveva né obiettivi né regole. Studiava filosofia della matematica.

Non in linea

#2 11-09-2015 08:16:41

marcomotta
Moderatore
Da Roma
Registrato: 18-01-2009
Messaggi: 2'800
Sito web

Re: Connessione automatica a Speed Touch Alcatel USB

Aggiornamento: al momento ho risolto tutto, tranne la connessione automatica (devo sempre eseguire il comando da root).

I files usati: il firmware (i nomi sono obbligatori):

$ ls /lib/firmware/spe*
/lib/firmware/speedtch-1.bin  /lib/firmware/speedtch-2.bin

Il file /etc/resolv.conf:

$ cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

NetworkManager è stato disabilitato e fermato per impedirgli di sovrascrivere /etc/resolv.conf:

# systemctl stop NetworkManager
# systemctl disable NetworkManager

Il file di configurazione di ppp:

$ cat /etc/sysconfig/network-scripts/ifcfg-ppp0
PEERDNS=yes
TYPE=xDSL
DEVICE=ppp0
BOOTPROTO=dialup
PIDFILE=/var/run/pppoa-adsl.pid
CONNECT_POLL=6
CONNECT_TIMEOUT=300
SYNCHRONOUS=no
DEFROUTE=yes
LCP_INTERVAL=10
LCP_FAILURE=2
USER='[email protected]' # <== qui ho messo il mio nome utente
VPI=8
VCI=35
LINUX_PLUGIN=pppoatm.so
DNS1=8.8.8.8
DNS2=8.8.4.4

Il file di configurazione della connessione:

$ cat /etc/ppp/peers/speedtch
###  /etc/ppp/peers/speedtch

# To connect to using this configuration file, do
#       pppd call speedtch

lcp-echo-interval 10
lcp-echo-failure 10
noipdefault
defaultroute
user "[email protected]" # <== qui ho messo il mio nome utente
noauth
noaccomp
nopcomp
noccp
novj
holdoff 4
persist
maxfail 25
updetach
#usepeerdns
plugin pppoatm.so
# Following entry is country/ISP dependent
8.35

I file con la password per l'autenticazione:

# cat /etc/ppp/chap-secrets
"[email protected]" "*" "password"
# al posto di [email protected] ho messo il mio nome utente
# al posto di password ho messo la mia reale password

/etc/ppp/pap-secrets è identico a /etc/ppp/chap-secrets

Il file per far partire l'effettiva connessione:

# cat /root/speedtch
/usr/sbin/pppd call speedtch
ifconfig p37p1 up 192.168.0.2/24

(/root/speedtch deve essere eseguibile).

La prima riga serve a far connettere il modem (speedtch è il nome del file in /etc/ppp/peers/), mentre la seconda serve ad attivare la mia interfaccia di rete (che, nel mio caso, si chiama p37p1), attribuendole IP fisso (192.168.0.2).

Condivisione della connessione:

Ho aperto il firewall, e, sotto "Mascheramento", messo la spunta a "Zona Mascherata", sia nella configurazione "In esecuzione" che in "Salvata". Risultato: la connessione ppp (in realtà credo tutte le connessioni), quando è attiva, viene condivisa da tutti i computer collegati via cavo a p37p1, e con IP fisso del tipo 192.168.0.x, utilizzando come maschera di rete 255.255.255.0 e come gateway 192.168.0.2.
N.B. Sarei curioso di ottenere lo stesso risultato da terminale, anziché per via grafica, ma così funziona, e mi sta bene così.


Problema rimasto:

La connessione non parte automaticamente. Devo dare, in un terminale, il seguente comando:

# /root/speedtch

in quanto tutte le regole udev che ho provato ad usare vengono sistematicamente ignorate.

Ultima modifica di marcomotta (11-09-2015 08:21:43)


La filosofia è una disciplina con obiettivi, ma senza regole. La matematica è una disciplina con regole, ma senza obiettivi.
Un giorno ho incontrato un uomo che non aveva né obiettivi né regole. Studiava filosofia della matematica.

Non in linea

#3 11-09-2015 12:45:39

marcomotta
Moderatore
Da Roma
Registrato: 18-01-2009
Messaggi: 2'800
Sito web

Re: Connessione automatica a Speed Touch Alcatel USB

Ho fatto un passo avanti. Al posto di /root/speedtch ho usato /usr/bin/speedtch, come segue:

$ cat /usr/bin/speedtch
#!/bin/sh
echo "$0 executed on $(date) by $(whoami)" >/tmp/speedtch
sleep 15
echo "pppd debug call speedtch..." >>/tmp/speedtch
/usr/sbin/pppd call speedtch >>/tmp/speedtch
echo "...done." >>/tmp/speedtch
firewall-cmd --add-masquerade
ifconfig p37p1 up 192.168.0.2/24

Notare che:
1) mancava lo shabang (#!/bin/sh);
2) il comando viene eseguito subito dopo il caricamento del firmware, quando il modem ancora sta cercando la sincronia ADSL: quindi ho usato una pausa di 15 secondi prima di richiamare pppd;
3) "firewall-cmd --add-masquerade" permette il mascheramento della rete solo quando uso il modem e solo nella zona in esecuzione. Quando mi arriverà il nuovo router se non inserirò lo Speed Touch non verrà abilitato il mascheramento (che, nel frattempo, ho disabilitato dalla zona salvata).

Come regola ho usato quella della guida:

$ cat /etc/udev/rules.d/99-speedtouch.rules
ACTION=="add", SUBSYSTEM=="atm", KERNEL=="speedtch*", RUN="/usr/bin/speedtch"

Ora l'output di /tmp/speedtch indica la corretta esecuzione dello script, e la connessione è accessibile subito dopo.

Solo che, per ben due volte, dopo qualche minuto la rete non era presente, p37p1 non era più attivo, ppp0 neppure... come se, dopo qualche secondo dall'uscita dallo script, fosse tornato tutto come prima.

Ultima modifica di marcomotta (11-09-2015 12:46:05)


La filosofia è una disciplina con obiettivi, ma senza regole. La matematica è una disciplina con regole, ma senza obiettivi.
Un giorno ho incontrato un uomo che non aveva né obiettivi né regole. Studiava filosofia della matematica.

Non in linea

#4 12-09-2015 07:58:35

Moreno
Fedora nel sangue
Registrato: 05-03-2009
Messaggi: 1'341

Re: Connessione automatica a Speed Touch Alcatel USB

Ciao

Non posso che farti i miei complimenti per l'impresa eroica in cui ti sei cimentato.

Ricordo ancora con terrore le mie peripezie con questo modem e la felicità provata il giorno in cui me ne sono liberato.

Spero ti sostituiscano alla svelta il router.


Ciao Ciao, Moreno


Io vado ovunque dove ci sia Linux.
Avatar by moonlight-dream.

Non in linea

#5 12-09-2015 07:59:59

marcomotta
Moderatore
Da Roma
Registrato: 18-01-2009
Messaggi: 2'800
Sito web

Re: Connessione automatica a Speed Touch Alcatel USB

marcomotta ha scritto:

Solo che, per ben due volte, dopo qualche minuto la rete non era presente, p37p1 non era più attivo, ppp0 neppure... come se, dopo qualche secondo dall'uscita dallo script, fosse tornato tutto come prima.

Ecco perché moriva tutto:

Until recently, udev didn't mind doing that via just RUN+="/path/to/binary ...", but in recent merged systemd-udevd versions this behavior was deprecated:

RUN
...
Starting daemons or other long running processes is not appropriate for
udev; the forked processes, detached or not, will be unconditionally killed
after the event handling has finished.

http://blog.fraggod.net/2012/06/16/prop … tplug.html


Risolto creando un'unità di systemd.
Appena ho un attimo la posto.


La filosofia è una disciplina con obiettivi, ma senza regole. La matematica è una disciplina con regole, ma senza obiettivi.
Un giorno ho incontrato un uomo che non aveva né obiettivi né regole. Studiava filosofia della matematica.

Non in linea

#6 13-09-2015 11:20:47

marcomotta
Moderatore
Da Roma
Registrato: 18-01-2009
Messaggi: 2'800
Sito web

Re: Connessione automatica a Speed Touch Alcatel USB

HOWTO: Connettersi con un modem Speed Touch Usb Alcatel (Manta), condividendo la connessione con altri computer

1) Il firmware. Bisogna procurarsi il firmware del modem, che nel mio caso è formato da 2 files, da inserire come

/lib/firmware/speedtch-1.bin
/lib/firmware/speedtch-2.bin

Attenzione, perché i files devono chiamarsi proprio speedtch-1.bin e speedtch-2.bin: quindi, se i nomi originali sono diversi (per esempio, io avevo boot1.eni e boot2.eni), i vanno rinominati.

2) Siccome NetworkManager ha la brutta abitudine di riscrivere /etc/resolv.conf, svuotandolo dei nameserver presenti, ed impedendo così l'accesso ad Internet, l'ho preventivamente fermato e disabilitato:

# systemctl stop NetworkManager
# systemctl disable NetworkManager

3) A questo punto ho inserito i dns per la risoluzione degli indirizzi nel file /etc/resolv.conf:

$ cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

I dns sono quelli di Google; ovviamente si possono inserire, se si preferisce, quelli di OpenDns o del proprio provider.

4) Il file di configurazione della connessione, ovvero:

$ cat /etc/ppp/peers/speedtch
# To connect to using this configuration file, do
#       pppd call speedtch

noipdefault
defaultroute
user "[email protected]" #  <== qui al posto di [email protected] bisogna mettere il proprio nome utente (per esempio, [email protected])
noauth
updetach
plugin pppoatm.so
# Following entry is country/ISP dependent
8.35

Nota: se il file fosse /etc/ppp/peers/pincopallino anziché /etc/ppp/peers/speedtch, bisognerebbe richiamarlo con "pppd call pincopallino".

5) Il file con la password per l'autenticazione:

# cat /etc/ppp/chap-secrets
"[email protected]" "*" "password"
# al posto di [email protected] bisogna mettere il nome utente, per esempio [email protected]
# al posto di password bisogna mettere la reale password

Nota: i permessi del file devono essere 600 in ottale: se non lo sono,

# chmod 600 '/etc/ppp/chap-secrets' 

6) Il file che attiva la connessione:

$ cat /usr/bin/speedtch
#!/bin/sh
echo "$0 executed on $(date) by $(whoami)" >/tmp/speedtch
/usr/bin/sleep 15
echo "pppd call speedtch..." >>/tmp/speedtch
/usr/sbin/pppd call speedtch >>/tmp/speedtch
echo "...done with status $?.">>/tmp/speedtch
echo "ifconfig INTERFACCIA up IP/24..." >>/tmp/speedtch
/usr/sbin/ifconfig INTERFACCIA up IP/24 >>/tmp/speedtch
echo "...done with status $?." >>/tmp/speedtch
echo "firewall-cmd --add-masquerade..." >>/tmp/speedtch
/usr/bin/firewall-cmd --add-masquerade >>/tmp/speedtch
echo "...done with status $?." >>/tmp/speedtch

Al posto di "INTERFACCIA" mettere il nome dell'interfaccia di rete ethernet (potrebbe essere wireless, ma in questo caso penso che adrebbe aggiunto qualche altro comando) che deve condividere la connessione (nel mio caso è p37p1), mentre al posto di "IP" bisogna inserire l'ip da attribuire all'interfaccia di rete (per esempio 192.168.0.1). Notare che gli altri computer che si connetteranno tramite il nostro devono avere come gateway l'ip scelto, come maschera di sottorete 255.255.255.0 (0 24), e come indirizzo ip uno che differisca solo nell'ultimo numero (se il nostro è 192.168.0.1, gli altri potranno essere 192.168.0.x, con x che può valere 2, 3, 4, ecc.).
Notare che "sleep 15" fa attendere 15 secondi prima di attivare la connessione ("pppd call speedtch"), in quanto, con la regola di udev che segue, lo script viene eseguito subito dopo aver caricato il firmware, mentre il modem sta ancora cercando la sincronia, e facendo fallire il tentativo di connessione se questo avviene troppo presto. Inoltre "firewall-cmd --add-masquerade" permette di condividere la connessione con altri computer, senza che vengano modificate le regole predefinite (vengono modificate le regole in esecuzione solo quando /usr/bin/speedtch viene eseguito). Infine, viene salvato nel file /tmp/speedtch l'output del comando, per verificare eventuali errori.

7) Ora creiamo un servizio di systemd (/etc/systemd/system/speedtch.service) che fa partire la connessione:

$ cat /etc/systemd/system/speedtch.service
[Unit]
Description=Start a connection with Speed Touch Alcatel

[Service]
Type=forking
TimeoutStartSec=60
ExecStart=/usr/bin/speedtch

[Install]
WantedBy=multi-user.target

Nota: "Type=forking" seve a rendere il servizio indipendente dal processo che lo ha generato, in modo che non venga ucciso come processo figlio da udev.

8) Infine, la regola di udev per far partire la connessione in automatico quando viene inserito il modem (/etc/udev/rules.d/99-speedtouch.rules):

$ cat /etc/udev/rules.d/99-speedtouch.rules
ACTION=="add", SUBSYSTEM=="atm", KERNEL=="speedtch*", RUN+="/usr/bin/systemctl start speedtch.service"

Et voilà! Appena inserisco il modem viene caricato il firmware, poi la regola di udev fa partire il servizio, che a sua volta, dopo aver aspettato 15 secondi che la sincronia adsl sia stata trovata, attiva la connessione, tira su la scheda di rete (visto che NetworkManager non lo fa), e dice al firewall di permettere la condivisione della connessione.

Ultima modifica di marcomotta (13-09-2015 16:49:50)


La filosofia è una disciplina con obiettivi, ma senza regole. La matematica è una disciplina con regole, ma senza obiettivi.
Un giorno ho incontrato un uomo che non aveva né obiettivi né regole. Studiava filosofia della matematica.

Non in linea

#7 13-09-2015 11:40:12

marcomotta
Moderatore
Da Roma
Registrato: 18-01-2009
Messaggi: 2'800
Sito web

Re: Connessione automatica a Speed Touch Alcatel USB

Moreno ha scritto:

Ciao

Non posso che farti i miei complimenti per l'impresa eroica in cui ti sei cimentato.

Ricordo ancora con terrore le mie peripezie con questo modem e la felicità provata il giorno in cui me ne sono liberato.

Spero ti sostituiscano alla svelta il router.


Ciao Ciao, Moreno

Guarda, a parte il fatto che creare un servizio di systemd è stato come entrare in un nuovo mondo, e che mi ci è voluto un po' per capire che i comandi eseguiti da udev vengono uccisi dopo qualche secondo se non terminano prima, (da cui la necessità di ricorrere ad un servizio di systemd), devo dire che:
1) La documentazione di ArchLinux è abbastanza buona ed aggiornata, ed applicabile al 90% a Fedora, e questo aiuta molto;
2) Sembra che il sistema sia già pronto ad usare il modem; basta inserire i files specifici di configurazione, e va. Niente più make, install e simili che funzionavano con la distribuzione "Pippo 2" e andavano in errore con "Pippo 3".

In un certo senso, mi è sembrato più facile di una volta: se qualcosa non va, non ti devi ricompilare la versione x della libreria tal dei tali (che, probabilmente, è incompatibile con le versioni aggiornate dei programmi installati), ma solo andare a googlare per capire perché "udev rule pppd die", e magari come "create systemd service". Certo, se uno ha usato fino a ieri Windows, sicuramente ha dei problemi, ma con qualche conoscenza, e qualche ricerca, non è impossibile risolvere (e spero che per i prossimi sia ancora più facile, leggendo il post precedente).

N.B. Lo avevo pagato 400.000 lire più di 15 anni fa; se lo avessi rivenduto usato, dopo diversi anni, mi avrebbero dato pochi soldi, per cui ho preferito tenerlo di scorta. E in questi giorni mi è tornato utile.


La filosofia è una disciplina con obiettivi, ma senza regole. La matematica è una disciplina con regole, ma senza obiettivi.
Un giorno ho incontrato un uomo che non aveva né obiettivi né regole. Studiava filosofia della matematica.

Non in linea

Piè di pagina