Internet key Momo Design (Italiano)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Gnome-colors-add-files-to-archive.pngThis article is being considered for archiving.Gnome-colors-add-files-to-archive.png

Reason: Many style violations. (Discuss in Talk:Internet key Momo Design (Italiano))

Il Momo design è un 3.5G HSDPA USB modem usato per la navigazione in Internet. La sua installazione può risultare un po' ostica su Linux visto che i produttori non rilasciano driver specifici per Linux.

Hardware

Nel momento della connessione al pc dovremmo vedere con dmesg quanto segue:

cdc_acm 2-1:1.0: ttyACM0: USB ACM device
usbcore: registered new interface driver cdc_acm
cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters

Questo significa che il nostro modem sta lavorando su ttyACM0, una porta virtuale, ed è qui che dovremo configurarlo.

Prima di tutto

Accertarsi di avere installato pppd

# pacman -Qs ppp
local/ppp 2.4.4-9 (base)
A daemon which implements the PPP protocol for dial-up networking

avviare il modulo ppp-generic inserendolo nell'apposita riga di /etc/rc.conf

MODULES=(nvidia ppp-generic !usblp option) 

modificare il file /etc/resolv.conf con i vostri server DNS oppure quelli open come nell'esempio

nameserver 208.67.222.222
nameserver 208.67.220.220

Per rendere persistente la modifica anche dopo il riavvio

chattr +i /etc/resolv.conf

Connessione con wvdial

Packages

Installiamo il pacchetto wvdial se non è già presente

# pacman -S wvdial

Scripting

Andiamo a creare o modificare se esiste già il file /etc/wvdial.conf con il nostro editor preferito

[Dialer Defaults]
Modem = /dev/ttyACM0
ISDN = off
Modem Type = Analog
Modem Baud = 460800
Init2 = ATX3
Init3 = AT+COPS?
Init4 = AT+CGDCONT=1,"ip","datacard.tre.it"
Phone = *99#
Dial Attempts = 1
Dial Command = ATM1L3DT
Ask Password = off
Password = tre
Username = tre
Auto Reconnect = off
Abort on Busy = off
Carrier Check = on
Check Def Route = on
Abort on No Dialtone = on
Stupid Mode = on
Idle Seconds = 0
Auto DNS = off

L'esempio è per una connessione mediante provider 3 (modificare se necessario le seguenti righe)

Init4 = AT+CGDCONT=1,"ip","datacard.tre.it"
Phone = *99#
Password = tre
Username = tre

Connessione

Ora lanciando da root il comando wvdial dovremo effettuare la connessione.

# wvdial

Se non funzione provare da un altro terminale a dare il seguente comando per instradare le richieste verso Internet su ppp0.

# ip route add default dev ppp0

Connessione con ppp

Configurazione

Creiamo uno script che chiameremo /etc/ppp/peers/conn3 con questi dati all'interno

#!/bin/bash                                                                                                              
/dev/ttyACM0   #If using cdc-acm module                                                                                  
#demand         #Connessione a richiesta                                                                                 
debug        # Comment this off, if you don't need more info                                                             
# scripts to initialize the 3G / EDGE / GPRS modem                                                                       
connect '/usr/sbin/chat -v -f /etc/ppp/peers/connect-chat'                                                               
# AT commands used to 'hangup' the connection                                                                            
disconnect '/usr/sbin/chat -v -f /etc/ppp/peers/disconnect-chat'                                                         
460800      # Serial port line speed                                                                                     
crtscts    # hardware flow control for cable                                                                             
local        # Ignore carrier detect signal from the modem:                                                              
lcp-echo-failure 0
lcp-echo-interval 0
# IP addresses:
:0.0.0.0
# - accept peers idea of our local address and set address peer as 10.6.6.6
# (any address would do, since IPCP gives 0.0.0.0 to it)
# - if you use the 10. network at home or something and pppd rejects it,
# change the address
noipdefault        # pppd must not propose any IP address to the peer!
ipcp-accept-local    # Accept peers idea of our local address
defaultroute        # Add the ppp interface as default route to the IP routing table
#replacedefaultroute    # New route should be our default route to Internet
#usepeerdns        # User DNS returned by server
noauth            # The phone is not required to authenticate
# Most phone do not support compression, so turn it off.
noipv6
novj
nobsdcomp
novjccomp
nopcomp
noaccomp
# Username and password:
# If username and password are required by the APN, put here the username
# and put the username-password combination to the secrets file:
# /etc/ppp/pap-secrets for PAP and /etc/ppp/chap-secrets for CHAP
# authentication. See pppd man pages for details.
user "tre"        # Change this
persist            # Persistent connection
maxfail 99999        # Retry and retry and retry if failed...

Creiamo o modifichiamo /etc/ppp/pap-secrets

# Secrets for authentication using PAP
# client        server  secret                  IP addresses
tre     *       tre

Sempre presupponendo che la connessione sia fatta al provider 3

Creiamo o modifichiamo il file /etc/ppp/peers/connect-chat

ABORT BUSY
ABORT ERROR
ABORT 'NO CARRIER'
ABORT 'NO DIALTONE'
ABORT 'Invalid Login'
ABORT 'Login incorrect'
ABORT VOICE
ABORT 'NO ANSWER'
ABORT DELAYED
ABORT 'SIM PIN'
 ATZ
OK-AT-OK 'ATX3'
OK-AT-OK 'AT+COPS?'
OK-AT-OK 'AT+CGDCONT=1,"IP","datacard.tre.it"'
OK 'ATM1L3DT*99#'
TIMEOUT 120
CONNECT 
TIMEOUT 5
'~--' 

Creiamo o modifichiamo il file /etc/ppp/peers/disconnect-chat

#!/bin/sh
# send break exec /usr/sbin/chat -V -s -S    \
ABORT           "BUSY"          \
ABORT           "ERROR"         \
ABORT           "NO DIALTONE"   \
SAY             "\nSending break to the modem\n"        \
""              "\K"            \
""              "\K"            \
""              "\K"            \
""              "\d\d+++\d\dATH"        \
SAY             "\nPDP context detached\n"

Connessione

Ora con il comando

# pon conn3

la connessione dovrebbe avvenire (controllare con ifconfig se si attiva la rete ppp0)

Per praticità è possibile creare il seguente link simbolico

# ln -s /etc/ppp/peers/conn3 /etc/ppp/peers/provider

così sarà possibile connettersi con il semplice comando

# pon

Se non funzione provare da un altro terminale a dare il seguente comando per instradare le richieste verso Internet su ppp0.

# ip route add default dev ppp0

Regolazione dei dettagli

Verifica dello stato della connessione

Per verificare lo stato della connessione suggerisco questo escamotage: Creare un file dove salvare la risposta che da pppd al comando in /etc/ppp/peers/connect-chat OK-AT-OK 'AT+COPS?'

touch /var/log/monitorconn.log

Editare i seguenti due script: /etc/ppp/ip-up.d/monitorconnessione.sh

#!/bin/bash
echo "`grep 'COPS:' /var/log/ppp.log | tail --lines=1 | cut -c48-`" > /var/log/monitorconn.log

e /etc/ppp/ip-down.d/clearmonitorconnessione.sh

#!/bin/bash
echo "." > /var/log/monitorconn.log

Ora ogni volta che ci connetteremo il file /var/log/monitorconn.log verrà aggiornato con il provider di connessione e ogni volta che ci sconnetteremo verrà pulito. L'unica cosa è assicurarsi che all'accensione del pc il file sia pulito: aggiungere al file /etc/rc.sysinit la seguente riga

/bin/echo " " > /var/log/monitorconn.log ## per verificare connessione 3

Per far apparire il contenuto di /var/log/monitorconn.log in conky aggiungere al file di configurazione nella sezione TEXT

${color lightgrey}Network ppp0: ${exec cat "/var/log/monitorconn.log" | head --lines=1}

Links