# 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 configuarlo.

# 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 (scopiazzato da qui)

    #!/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

- Huawei E220
- PPPoE Setup with pppd
- http://www.gentoo-wiki.info/Mobile_Phone
- Speeding up DNS with dnsmasq#Conserve_DNS_settings[broken link: invalid section]

Categories:

- Other hardware (Italiano)
- Modems (Italiano)

Hidden category:

- Pages with broken section links