Installare modem Smartlink su Ubuntu Feisty 7.04

linmodemOggi è il giorno del rilascio ufficiale di Ubuntu Feisty Fawn 7.04, ma io sono già passato alla nuova release già da qualche giorno. Ho avuto quindi già modo di guardare un po’ le nuove impostazioni… e devo dire che non ho avuto dei grossi problemi.

Uno dei questi però è il riconoscimento del modem analogico 56k interno del mio notebook, che essendo un winmodem (purtroppo) ha bisogno dei driver Smartlink.

Nei repository di Ubuntu è già presente il pacchetto sl-modem-daemon che installa il demone “slmodemd” e gli script di avvio/chiusura. Purtroppo per far partire tale demone, abbiamo bisogno di due moduli aggiuntivi caricati nel kernel: slamr e ungrab_winmodem, che non sono installati automaticamente.

Vediamo come installarli e configurare il modem.

Edit 28/04/2007: aggiunto archivio precompilato per il kernel 2.6.20-15-generic (Feisty)

Edit 2/05/ 2007: con gli ultimi aggiornamenti degli archivi smartlink, i problemi sono stati risolti. Potete trovarli qui, come sempre.


Installiamo per prima cosa il pacchetto dai repository di Feisty:

sudo apt-get install sl-modem-daemon

dal sito http://linmodems.technion.ac.il/packages/smartlink/ scarichiamo i pacchetti
ungrab-winmodem.tar.gz e slmodem-2.9.11-20070204.tar.gz.

Estraiamo quindi entrambi i pacchetti in una cartella di appoggio, una per ciascuno.

Entriamo in quella in cui abbiamo scompattato ungrab-winmodem.tar.gz e prepariamoci per la compilazione.

Ricordo che per compilare dei sorgenti in Ubuntu dobbiamo aver installato nel sistema il pacchetto build-essential e gli header del kernel. Per essere sicuri di averli installati, provare

sudo apt-get install build-essential linux-headers-`uname -r`

Prima di passare alla compilazione con i consueti comandi make, dobbiamo fare una piccola modifica nel file ungrab-winmodem.c altrimenti ricevermo un errore.

Nel file ungrab-winmodem.c sostituire la riga

#include <linux/config.h>

con

#include <linux/tipc_config.h>

adesso si che possiamo compilare con i consueti

make
sudo make install

Una volta terminata la compilazione, possiamo caricare i due moduli nel kernel:

sudo modprobe ungrab_winmodem

Adesso passiamo all’altro archivio, slmodem-2.9.11-20070204.tar.gz. Entriamo nella directory in cui l’abbiamo scompattato, e digitiamo come sempre

make
sudo make install

Adesso carichiamo nel kernel anche il modulo slamr:

sudo modprobe slamr

Ricordarsi di inserire il nome di questi due moduli (ungrab_winmodem e slamr) nel file /etc/modules se vogliamo caricarli automaticamente all’avvio.

Adesso avviamo il demone slmodemd con il suo script di avvio:

sudo /etc/init.d/sl-modem-daemon restart

Fatto! A questo punto il vostro modem dovrebbe essere riconosciuto dal sistema e individuato da programmi come Wvdial, Gnome-PPP, KPPP.
Buona connessione…

Edit:

Aggiungo uno archivio precompilato che dovrebbe automatizzare l’installazione (solo per il kernel 2.6.20-15-generic)

slamr-2.6.20-15-generic.tar.gz

Per installare il tutto, basta scompattare l’archivio in una cartella, ed eseguire l’installazione con:

./setup

(grazie a Cristiano Nunes per il pacchetto)

A proposito Alessandro

Ingegnere delle Telecomunicazioni con propensione al web2.0 ed il pallino della tecnologia; toscano & casentinese, vivo a Firenze
  • Thanks for this tutorial! Very good!

  • The driver not load in the startup!

  • I’ve inserted the precompiled archive for kernel 2.6.20-15-generic.
    Thanks to Cristiano!

  • Ciao sono Andrea,
    il webmaster del sito Free Penguin, ho visto il tuo spazio e mi è molto piaciuto,
    se vuoi potremo linkarci.

    Questo è il mio sito http://www.freepenguin.altervista.org , e tratta di GNU/Linux e del software libero.

    Saluti

    Andrea

  • Ciao Andrea,
    Ho già aggiunto il tuo sito al mio blogroll 😉

  • Roby

    Ciao Alex, complimenti e grazie per le guide che metti prontamente a disposizione 😉
    Io ho kubuntu feisty, il modem me l’ha riconosciuto, ma continua a darmi la scritta NO CARRIER (ho teleconomy …ho seguito la guida nel blog di trevino, ho provato con ppp, kppp e wvdial, inserendo carrier check=no e stupid mode=yes, oltre alle stringhe di inizializzazione suggerite, ma con tutti mi dà sempre il problema del carrier :S )
    Come posso risolvere? Grazie!!

  • Ciao Roby,
    anche io utilizzavo Teleconomy Internet prima di passare ad Eutelia, e non ti nego che ho avuto molti iniziali problemi a far andare la connessione.
    A suo tempo risolsi aggiornando i driver smartlink (scaricabili proprio dal sito che ho indicato nella guida… e configurandolo per bene).

    Inoltre la svolta fu utilizzare una stringa di inizializzazione come questa:

    ATQ0 V1 E1 X3 S0=0 +MS=90

    oppure questa:

    ATQ0 V1 E1 X3 S0=0 +MS=34

    Fammi sapere!

  • Roby

    Avevo istallato i driver seguendo la tua guida, poi configurato wvdial.conf seguendo quanto detto nel blog di trevino… le ho provate entrambe quelle stringhe (ho fatto anche molte prove con i comandi AT dal terminale di kppp) ma la risposta è sempre stata no carrier…
    boh, non so più cosa provare, ho anche pensato di formattare tutto per ripetere tutta la procedura dall’inizio.. ma se riuscissi a evitarlo sarei più contenta 😀

  • Dave

    Grande!!
    Sono passato dalla 6.10 alla 7.04 e non riuscivo in nessun modo a far funzionare il modem AC97. Avevo pensato anch’io ormai di formattare il pc (e non è detto che non lo faccia xé ho pasticciato così tanto da non sapere + cosa ho combinato …) e poi ho trovato la tua guida.

    Un’ultima domanda, se eseguo ‘sudo gnome-ppp’ funziona tutto, ma se eseguo gnome-ppp come utente normale non rileva neanche il modem: come posso fare?

    Grazie

  • Probabilmente sono stati settati dei permessi sbagliati al demone slmodemd. Non è che hai compilato il pacchetto col “sudo make” ?

    Comunque prova ad impostare i permessi utente al file /usr/bin/slmodemd…

  • Dave

    Ho utilizzato le tue indicazioni, ma non è detto che non abbia fatto casini prima … come ti dicevo ho provato di tutto ..
    Cmq, non ho trovato il file /usr/bin/slmodemd , ma il seguente:

    ~$ ls -l /usr/sbin/slmodemd
    -rwxr-xr-x 1 root root 1304487 2007-04-30 16:55 /usr/sbin/slmodemd

    Va bene così?

    P.S. Chiedo venia, ma si sono nuovo 😉

  • Dave

    Mi rispondo da solo!

    Sono andato a modificare le permission di /dev/pts/0 come segue:

    root@~$ ls -l /dev/ttySL0
    lrwxrwxrwx 1 root root 10 2007-05-01 22:24 /dev/ttySL0 -> /dev/pts/0
    root@~# ls -l /dev/pts/0
    crw-rw—- 1 root uucp 136, 0 2007-05-01 22:24 /dev/pts/0
    root@~# chmod 666 /dev/pts/0
    root@~# ls -l /dev/pts/0
    crw-rw-rw- 1 root uucp 136, 0 2007-05-01 22:24 /dev/pts/0

    Inoltre, ho notato che in /root/.wvdial.conf “Init = ATZ” mentre nel mio /home/’user’/.wvdial.conf “Init = ATX3” e l’ho cambiato con ATZ.

    Ora funziona tutto anche come user.

  • Ottimo Dave… immaginavo che il problema fosse di questo tipo! 😉

  • Francesco

    ragazzi scusate ma io ho seguito tutte le possibili discussioni riguardanti i winmodem,ma non sono riuscito a risolvere il mio problema….NO CARRRIER la risposta per la tentata connessione…a chiunque volesse aiutarmi farò sapere tutta la procedura da me seguita….Ciao e grazie anticipatamente!!!!

  • @Franceso
    Che stringa di connessione utilizzi?

  • Francesco

    Ho provato tutte le stringhe di connessione postate nella discussione, come versione di Ubuntu utilizzo la 7.04…ma non trovo soluzioni al problema!

  • Jenet

    Ragazzi ma questa procedura va bene per qualsiasi smartlink?? oppure ogni modem ha dei drivers differenti??io ho un modem esterno 56kb v92 trust usb modem

  • Jenet

    Ho usato l’archivio precompilato ma devo impostare il modulo slusb e italia invece di usa come devo fare??? cio che ottendo dopo il comando ./setup e’:
    driver=slamr
    Your country: USA

    Installing the Debian packages supporting autoloading
    (Lettura del database … 88014 file e directory attualmente installati.)
    Mi preparo a sostituire sl-modem-daemon 2.9.10+2.9.9d+e-pre2-5build1 (con sl-modem-daemon_2.9.10+2.9.9d+e-pre2-5build1_i386.deb) …
    Shutting down SmartLink Modem driver normally … no slmodemd daemon running.
    Unloading modem driver from kernel … slamr.
    Spacchetto il sostituto di sl-modem-daemon …
    Configuro sl-modem-daemon (2.9.10+2.9.9d+e-pre2-5build1) …
    Starting SmartLink Modem driver for: slamr0.
    Creating /dev/modem symlink, pointing to: /dev/ttySL0.

    Making folder /lib/modules/2.6.20-15-generic/extra
    Copying drivers to /lib/modules/2.6.20-15-generic/extra
    Checking driver install
    slamr.ko slusb.ko ungrab-winmodem.ko
    Finished installs.
    Informing the System

    Starting function tests, loading drivers:
    Running diagnostic:

    [ 1130.080000] slamr: module license ‘Smart Link Ltd.’ taints kernel.
    [ 1130.264000] slamr: SmartLink AMRMO modem.
    [ 1800.228000] slamr: SmartLink AMRMO modem.
    [ 3640.900000] slamr: SmartLink AMRMO modem.

    ports should be created by:
    slmodemd -c USA /dev/slamr0
    error: mdm setup: cannot open dev `/dev/slamr0′: No such device
    error: cannot setup device `/dev/slamr0′
    Checking for success
    Port creation with slmodemd failed.
    Read the Slamr.txt record, other 1st_Read.txt CountryList.txt wvdial.txt files and the sample wvdial.conf.

    COME DEVO FARE??? HELP

  • Giuseppe

    Ciao,
    sono un neofita di Ubuntu Feisty 7.04. Ho un pentium 3 con un modem Motorola SM56 PCI e non riesco a farlo funzionare anche seguendo le vostre istruzioni. Ho usato anche l’archivio precompilato di Cristiano Nunes ma senza risultati. Chi se la sente di spiegarmi passo passo come si fa?
    Grazie!

  • Hi

    I can’t be bothered with anything these days, but shrug. I just don’t have anything to say recently.

    Bye

  • fabio

    Ciao ragazzi.
    Ieri sera ho fatto degli aggiornamenti di ubuntu feisty 7.04.
    Da quando gli ho fatti non mi compare più l’opzione wireless tra i vari tipi di connessione.
    Sapete darmi qualche indicazione in proposito?
    Grazie infinite.
    Fabio

  • Premesso che questa non è la sezione giusta per questa domanda…
    probabilmente con gli aggiornamenti recenti hai aggiornato anche il kernel, per cui ti devi ricompilare il modulo del driver wireless per il nuovo kernel..
    Ciao.

  • C@rciofone

    Ciao Alexit, ottima guida, come sempre!
    E’ proprio quello che mi serve e mi permetto di fare un’aggiunta riguardo ai modem con chipset Motorola SM56 PCI e device id 1057:3052 (0x1057 è Motorola). Il device ID è specifico del produttore (nel senso che un altro produttore può usare il device id 3052 per un device che nulla ha a che fare con il modem Motorola SM56). Tuttavia, ho notato che altre volte Motorola ha usato chipsets non suoi mantenendo il device Id di chi glieli aveva forniti. Googolando ho trovato che il device id 3052 è usato per un vecchio winmodem smartlink supportato da slmodemd.
    Seguendo un post che ho trovato mi sono scaricato i sorgenti di slmodemd e cercando un pò in giro nel file drivers/amrmo_init.c ho trovato l’elenco dei device supportati. Ho aggiunto l’id hardware del mio modem Trust Motorola SM56 MD-1100:

    /* Motorola */
    #define PCI_VENDOR_ID_MOTOROLA 0x1057

    {PCI_VENDOR_ID_MOTOROLA, PCI_DEVICE_ID_SL1900, /* 1057:3052 */
    PCI_ANY_ID, PCI_ANY_ID, 0, 0, SL1900_CARD},

    (di fatto il motorola sm56 è assimilato allo smartlink che vi dicevo prima).

    Beh, sapete una cosa? Ha funzionato.
    Siccome questa guida l’ho trovata dopo, suppongo che usando direttamente i driver consigliati qui si possa ottenere il risultato sperato.
    Per maggiore comodità ho già modificato il pacchetto slmodem-2.9.11-20070204 introducendo le specifiche esposte. E’ scaricabile da qui: http://www.esnips.com/doc/96d6dea2-fe44-4239-b231-0b134171053e/slmodem-2.9.11-20070803

    Ciao 🙂

  • C@rciofone

    Addenda:
    Attenzione: con i Motorola Soft Modem 56k utilizzare solo il pacchetto slmodem-2.9.11-20070803 che ho linkato nel post precedente e il pacchetto ungrab-winmodem-20070505 o successivo reperibile qui: http://linmodems.technion.ac.il/packages/smartlink/ungrab-winmodem-20070505.tar.gz
    I pacchetti precedenti non contengono gli ID hardware necessari al corretto funzionamento. La modifica al file ungrab-winmodem.c è ancora necessaria. Al termine sarà necessario riavviare.
    Ciao

  • ciao!

    grande alex!
    ma il modem non mi viene ancora rilevato 🙁
    appare però nella lista dei “Restricted driver manager”.
    cosa significa?

    e perchè a me non parte?
    insomma un passo avanti c’è stato
    ma non lo rileva ancora!
    cosa mi suggerite di fare?

    (il suidicio non è compreso :D)

  • giosimar

    niente da fare: non riesco ad istallare questo dannatissimo modem!!!!

  • Complimenti per la guida AleXit! …ed ringrazio anche il contributo di C@rciofone perché anch’io possiedo di un modem Trust Motorola SM56 MD-1100 nel mio vecchio PC ringiovanito grazie ad UBUNTU ALTERNATE 7.04!

  • marco

    Kubuntu Feisty con kernel 2.6.20-15-generic

    Modem Trust MD-1100 56k V92 PCI
    (Chip Motorola Unknown device 3052)

    spulciando qua e là ho letto che il driver smartlink è compatibile con questa periferica. quindi ci ho provato..

    Come dalla tua guida ho installato da sorgenti l’ultima versione di sponibile di slamr e ungrab_winmodem (apportando la modifica in ungrab-winmodem.c).

    su KPPP ho modificato :
    stringa di inizializzazione 2 impostandola su ATX3+MS=90
    stringa di chiamata impostandola su ATX3DT

    ora navigo a 56k.

    grazie a tutti.
    spero che questo serva anche ad altri 🙂

  • marco

    ps. i pacchetti da me usati sono :
    ungrab-winmodem-20070505.tar.gz
    slmodem-2.9.11-20070813.tar.gz

  • Emanuele

    Ciao AleXit,

    complimenti per l’articolo! La configurazione del mio softmodem Smartlink-compatibile Netodragon MDV92XP (ScanModem lo identifica come 10b9:5459) è andata a buon fine per i driver, ma mi sta facendo penare moltissimo per far partire il collegamento di rete con wvdial. Mi chiedevo se potevi darmi una mano dal momento che sono alle prime armi con Linux (Ubuntu Gutsy 7.10).

    Questo è ciò che ottengo:
    emanuele@emanuele-desktop:~$ wvdial
    WvDial: WvDial: Internet dialer version 1.56
    WvModem: Cannot get information for serial port.
    WvDial: Initializing modem.
    WvDial: Sending: ATZ
    WvDial Modem: ATZ
    WvDial Modem: OK
    WvDial: Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 X3
    WvDial Modem: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 X3
    WvDial Modem: OK
    WvDial: Modem initialized.
    WvDial: Sending: ATDT0802201400
    WvDial: Waiting for carrier.
    WvDial Modem: ATDT0802201400

    il server (dopo la composizione) risponde con i tipici segnali acustici che non saprei come descrivere ma (suppongo) siano quelli con cui comunica il modem col server (passami la grossolaneria!). Purtroppo dopo circa 44-45 secondi, da quando ho udito il primo “fischio” di risposta del server, sul terminale appare (subito sotto quanto riportato prima):

    WvDial: Timed out while dialing. Trying again.
    WvDial: Sending: ATDT0802201400
    WvDial: Waiting for carrier.
    WvDial Modem: NO CARRIER
    WvDial Modem: ATDT0802201400
    WvDial: No Carrier! Trying again.
    WvDial: Sending: ATDT0802201400
    WvDial: Waiting for carrier.
    WvDial Modem: NO CARRIER
    WvDial Modem: ATDT0802201400
    WvDial: No Carrier! Trying again.

    La sequenza di queste stesse scritte è un loop senza fine. Quindi sono costretto a forzare l’interruzione del programma con Ctrl-c.

    wvdial.conf è questo:

    [Dialer Defaults]
    Init1 = ATZ
    Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 X3
    Modem Type = Analog Modem
    Baud = 460800
    New PPPD = yes
    Modem = /dev/ttySL0
    ISDN = 0
    Carrier Check = no
    Stupid Mode = yes
    Phone = 0802201400
    Password = *******************************
    Username = *******************************

    il collegamento è tramite provider Infinito, ma ho fatto delle prove anche con Libero (sempre da POP locale 080) con i medesimi risultati.

    Ho provato tantissime combinazioni della stringa Init2 utilizzando +MS=34 o +MS=90, sostituendo &D0 con &D2, eliminando &C1, &D2 e/o +FCLASS=0 (in tutte le combinazioni possibili), usando ATS11=40 o addirittura ricopiando la stringa di Init del file .inf dei miei driver Windows con cui il modem sta funzionando in questo momento:
    AT &F E0 X3 V1 &A3 &D2 &C1 S0=0
    Nulla da fare: il risultato è sempre quello descritto prima.

    Mi sapresti consigliare qualcosa?

    Grazie e scusa per il “papiro”!

    Emanuele

  • Emanuele

    AGGIUNTA. Dimenticavo: se ti va, puoi leggere di più sul mio problema all’indirizzo:
    http://forum.ubuntu-it.org/index.php/topic,152507.0.html

    Emanuele

  • francesco

    ciao a tt!!!!! sapete dirmi cm si fa a mettere la lingua italiana in linux 7.04??? rx grazie infinite!!!

  • @francesco

    sudo apt-get install language-support-it