UNPKG

arch-wiki-md-repo

Version:

All arch-wiki articles in markdown format, updated every two days.

316 lines (229 loc) 8.86 kB
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. ## Contents * [1 Hardware](#Hardware) * [2 Prima di tutto](#Prima_di_tutto) * [3 Connessione con wvdial](#Connessione_con_wvdial) * [3.1 Packages](#Packages) * [3.2 Scripting](#Scripting) * [3.3 Connessione](#Connessione) * [4 Connessione con ppp](#Connessione_con_ppp) * [4.1 Configurazione](#Configurazione) * [4.2 Connessione](#Connessione_2) * [5 Regolazione dei dettagli](#Regolazione_dei_dettagli) * [5.1 Verifica dello stato della connessione](#Verifica_dello_stato_della_connessione) * [6 Links](#Links) # 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](http://www.gentoo-wiki.info/Mobile_Phone)) ``` #!/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 " Sending break to the modem " \ "" "\K" \ "" "\K" \ "" "\K" \ "" "\d\d+++\d\dATH" \ SAY " PDP context detached " ``` ## 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](/index.php/Huawei_E220 "Huawei E220") * [PPPoE Setup with pppd](/index.php/PPPoE_Setup_with_pppd "PPPoE Setup with pppd") * [http://www.gentoo-wiki.info/Mobile_Phone](http://www.gentoo-wiki.info/Mobile_Phone) * [Speeding up DNS with dnsmasq#Conserve_DNS_settings](/index.php/Speeding_up_DNS_with_dnsmasq#Conserve_DNS_settings "Speeding up DNS with dnsmasq")