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

This article is being considered for archiving.

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

- Huawei E220
- PPPoE Setup with pppd
- Domain name resolution#Overwriting of /etc/resolv.conf

Categories:

- Hardware (Italiano)
- Modems (Italiano)

Hidden category:

- Pages flagged with Template:Archive