Condividi:        

Il gusto di pistolare i sorgenti: Motorola SM56

Per tutti i tuoi problemi Linux entra qui e risolvili!

Moderatori: Anthony47, gunter, zendune

Il gusto di pistolare i sorgenti: Motorola SM56

Postdi zello » 26/04/07 12:34

Il mese scorso - stante che il mio modem si è fulminato durante un temporale - compro il winmodem in oggetto, per cui ovviamente non esistono drivers per linux (o meglio, esistono, ma sono relativi a kernels 2.4.x o 2.6.9, io ho un 2.6.20).
Ogni device pci è identificato da una coppia di numeri, il vendor id e il device id. Nel caso specifico il device id era 1057:3052 (0x1057 è Motorola).
Il device ID è specifico per produttore (nel senso che un altro produttore può usare il device id 3052 per un device che nulla potrebbe avere 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. Un po' di ricerca mi ha rivelato che il device id 3052 è usato per un vecchio winmodem smartlink supportato da slmodemd.
Mi sono scaricato i sorgenti di slmodemd e ho pistolato un po' in giro, fino a che nel file drivers/amrmo_init.c ho trovato dove sono elencati i device rilevati come gestibili. Ho aggiunto un bel:
Codice: Seleziona tutto
[zello@zello drivers]$ cat 1057_3052.patch
139,141d138
< /* Motorola */
< #define PCI_VENDOR_ID_MOTOROLA                        0x1057
<
237,238d233
<       {PCI_VENDOR_ID_MOTOROLA, PCI_DEVICE_ID_SL1900,     /* 1057:3052 */
<        PCI_ANY_ID, PCI_ANY_ID, 0, 0, SL1900_CARD},

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

Beh, sapete una cosa? Funziona.
Vi dico che sono soddisfazioni.
Il faut être toujours ivre. Tout est là : c'est l'unique question. Pour ne pas sentir l'horrible fardeau du Temps qui brise vos épaules et vous penche vers la terre,il faut vous enivrer sans trêve...
Avatar utente
zello
Moderatore
 
Post: 2351
Iscritto il: 06/05/02 13:44

Sponsor
 

Postdi iucaa » 26/04/07 13:28

Fossero tutti come te, ci potremmo levare dai marroni "...Indows" :lol: 8)
iucaa
Utente Senior
 
Post: 490
Iscritto il: 23/10/03 12:03
Località: Roma

Postdi gunter » 26/04/07 14:23

Bravo complimenti per l'impresa! ;) :eeh:
Avatar utente
gunter
Moderatore
 
Post: 3674
Iscritto il: 07/06/06 18:28
Località: Rovereto (tn)

Re: Il gusto di pistolare i sorgenti: Motorola SM56

Postdi slayer86 » 05/05/07 10:32

zello ha scritto:Il mese scorso - stante che il mio modem si è fulminato durante un temporale - compro il winmodem in oggetto, per cui ovviamente non esistono drivers per linux (o meglio, esistono, ma sono relativi a kernels 2.4.x o 2.6.9, io ho un 2.6.20).
Ogni device pci è identificato da una coppia di numeri, il vendor id e il device id. Nel caso specifico il device id era 1057:3052 (0x1057 è Motorola).
Il device ID è specifico per produttore (nel senso che un altro produttore può usare il device id 3052 per un device che nulla potrebbe avere 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. Un po' di ricerca mi ha rivelato che il device id 3052 è usato per un vecchio winmodem smartlink supportato da slmodemd.
Mi sono scaricato i sorgenti di slmodemd e ho pistolato un po' in giro, fino a che nel file drivers/amrmo_init.c ho trovato dove sono elencati i device rilevati come gestibili. Ho aggiunto un bel:
Codice: Seleziona tutto
[zello@zello drivers]$ cat 1057_3052.patch
139,141d138
< /* Motorola */
< #define PCI_VENDOR_ID_MOTOROLA                        0x1057
<
237,238d233
<       {PCI_VENDOR_ID_MOTOROLA, PCI_DEVICE_ID_SL1900,     /* 1057:3052 */
<        PCI_ANY_ID, PCI_ANY_ID, 0, 0, SL1900_CARD},

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

Beh, sapete una cosa? Funziona.
Vi dico che sono soddisfazioni.


Ciao sono nuovo in questo forum questo è il primo msg e credo che la tua esperienza potrebbe aiutarmi a risolvere il mio problema.
In pratica ubuntu 7.04 con kernel 2.6.20 non mi riconosce il modem 56k del mio portatile che guarda caso è proprio un sm56 della motorola...
Ti dico subito che dopo un pò di spataccamenti e installando sl-modem-daemon sono riuscito a farlo riconoscere a gnome-ppp il problema è che ora quando mi connetto o lancio wvdial mi da questo msg di errore:
--> Ignoring malformed input line: ";Do NOT edit this file by hand!"
--> WvDial: Internet dialer version 1.56
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Modem initialized.
--> Sending: ATM1L3DT7020187187
--> Waiting for carrier.
ATM1L3DT7020187187
NO CARRIER
ERROR
--> No Carrier! Trying again.
--> Maximum Attempts Exceeded..Aborting!!
--> Disconnecting at Fri May 4 20:05:01 2007


credo che sia dovuto al problema corretto con la porzione di codice da te scritta tuttavia se io correggo nei sorgneti come da te proposto poi dovrei compilare i driver nuovamente e qui vado incontro ad un bug noto che non mi riconosce un costante dichiarata all'interno degli header file del kernel... spero che tu possa aiutarmi perchè attualmente sono senza connessione su linux e non posso sfruttarlo pernulla grazie
slayer86
Newbie
 
Post: 3
Iscritto il: 04/05/07 22:47

Postdi zello » 05/05/07 23:53

Ti dico: l'errore non sembrerebbe lo stesso (parrebbe che non rilevi la portante, non che non riconosca il modem). Comunque possiamo provare.
Punto primo: che modem Motorola hai? Io ho questo:
Codice: Seleziona tutto
[zello@zello zello]$ lspci -n | grep 1057
00:0a.0 Class 0703: 1057:3052 (rev 04)

(lspci lista i device pci del computer, -n fa restituire i Pci id, grep limita la videata ai soli device Motorola). Postami il tuo output.
Secondo: wvdial non funziona; hai provato un altro dialer (che so, kppp)?
Ora non posso darti l'esempio da qui (per l'ottimo motivo che per farlo dovrei killare slmodemd, e dopo mi cade la connessione), però:
- se uccidi slmodemd e
- lo riavvii da console con le opzioni di debug e di log attive (slmodemd -d9 -l9 --country=ITALY)
- puoi poi aprire un altro terminale, mandare messaggi al modem, e vedere cosa ti risponde come output (per esempio, echo ATZ > /dev/ttySL0 dovrebbe portare un qualcosa di simile ad OK nel log dell'altra finestra, echo ATX3DTnumerotelefono > /dev/ttySL0 dovrebbe far comporre il numero, e così via).
Naturalmente, in /dev/ appare il device slamr0 (che è il device del modem), vero?
Codice: Seleziona tutto
[zello@zello zello]$ ls -l /dev/slamr0
crw-rw----  1 root uucp 242, 0 mag  5 22:57 /dev/slamr0


Curioso il tuo problema di compilazione del kernel (il ché, ce ne fosse mai bisogno, rafforza la mia convinzione che gli unici kernel da utilizzare siano i vanilla di http://www.kernel.org, e tutte le customizzazioni delle varie distro siano fondamentalmente delle boiate); io non posso mandarti i drivers compilati, perché sono compilati contro il mio kernel (che è un 2.6.21, vanilla, preempt, con dimensione dello stack di 8kb), e con il tuo non andrebbero quasi di sicuro.
Il faut être toujours ivre. Tout est là : c'est l'unique question. Pour ne pas sentir l'horrible fardeau du Temps qui brise vos épaules et vous penche vers la terre,il faut vous enivrer sans trêve...
Avatar utente
zello
Moderatore
 
Post: 2351
Iscritto il: 06/05/02 13:44

Postdi slayer86 » 06/05/07 12:57

Allora ho provato a fare come mi hai detto e ti elenco subito i problemi a cui sono andato incontro...
tra i miei device pci non ce n'è nessuno con id 1057(quindi apparentmente non ho un modem motorola) quindi per capire che modem ho montato ho usato scanModem questo è l'output:

SomeName, YourCountry Ubuntu 7.04 kernel 2.6.20-15-generic
-------------------------- System information ----------------------------
CPU=i686, Ubuntu 7.04
Linux version 2.6.20-15-generic (root@palmer) (gcc version 4.1.2 (Ubuntu 4.1.2-0ubuntu4)) #2 SMP Sun Apr 15 07:36:31 UTC 2007
scanModem update of: 2007_April_23
The modem symbolic link is /dev/modem -> ttySL0

USB modem not detected by lsusb

Modem or host audio card candidates have firmware information:

PCI slot PCI ID SubsystemID Name
---------- --------- --------- --------------
00:1b.0 8086:27d8 1043:1123 Audio device: Intel Corporation 82801G

...

spero di aver selezionato la parte interesante del file di log.
Poi ho controllato se in dev è presente slamr0 e non mi pare di averlo visto :) quindi di bene in meglio...
Infatti killando slmodemd quando poi provo a lanciarlo con opzioni di log attive mi dice che non esiste dev/slamr0...

Secondo me il problema è tutto nel fatto che il mio non è un modem motorola a questo punto e che sotto windows sfrutta i driver motorola ma inrealtà è compreso nel chip audio (mi pare di aver capito ma potrebbe essere una stronzata colossale) quaesto mi porta ad una ulteriore considerazione riguardo ai componenti che vengono montati sus ti minchia di portatili ma era così complicato mettere un modem analogico decente??? mah :(
slayer86
Newbie
 
Post: 3
Iscritto il: 04/05/07 22:47

Postdi zello » 07/05/07 15:38

Il device è una scheda Intel ICH7, di quelle che usano i codec AC97 (e che sono gestite da alsa via snd-intel8x0)
Il subdevice invece non è noto (nel senso: anche cercando su internet, pare che ce l'abbia solo tu, o quasi).
Io proverei l'accoppiata ALSA+slmodemd, dovresti trovare le istruzioni con i sorgenti slmodemd (che va compilato con il supporto ALSA).
Il faut être toujours ivre. Tout est là : c'est l'unique question. Pour ne pas sentir l'horrible fardeau du Temps qui brise vos épaules et vous penche vers la terre,il faut vous enivrer sans trêve...
Avatar utente
zello
Moderatore
 
Post: 2351
Iscritto il: 06/05/02 13:44

Postdi slayer86 » 07/05/07 18:44

Grazie proverò a fare in questo modo ti farò sapere come va a finire...
slayer86
Newbie
 
Post: 3
Iscritto il: 04/05/07 22:47

Re: Il gusto di pistolare i sorgenti: Motorola SM56

Postdi gabris » 18/05/07 10:24

zello ha scritto:Beh, sapete una cosa? Funziona.
Vi dico che sono soddisfazioni.


ho il tuo stesso modem interno, non ho modificato il file .c che hai menzionato perchè riporta già le modifiche da te effettuate.
nonostante questo quando lancio:
$ slmodemd /dev/slamr0
mi ritorna:
error: mdm setup: cannot open dev `/dev/slamr0': No such device
error: cannot setup device `/dev/slamr0'

Con il modem USB invece funziona.
Qualcuno ha qualche idea del perchè?

Grazie mille
gabris
Newbie
 
Post: 1
Iscritto il: 18/05/07 10:12

Postdi zello » 19/05/07 13:52

generalmente, il device /dev/slamr0 viene cancellato ad ogni riavvio.
A manoni, si farebbe più o meno così:
1) creo il device:
Codice: Seleziona tutto
[root@zello dev]# mknod -m 660 /dev/slamr0 c 242 0
[root@zello dev]# chgrp uucp /dev/slamr0

(da me il gruppo uucp è quello che può accedere a internet)
2) carico il driver
Codice: Seleziona tutto
[root@zello dev]# modprobe slamr

3) avvio slmodemd
Codice: Seleziona tutto
[root@zello dev]# slmodemd -country=ITALY /dev/slamr0
SmartLink Soft Modem: version 2.9.11 Apr 29 2007 12:44:42
symbolic link `/dev/ttySL0' -> `/dev/pts/1' created.
modem `slamr0' created. TTY is `/dev/pts/1'
Use `/dev/ttySL0' as modem device, Ctrl+C for termination.

In realtà, ho aggiunto volgarmente a /etc/modprobe.conf le seguenti linee
Codice: Seleziona tutto
[zello@zello tmp]$ grep slam /etc/modprobe.conf
alias char-major-242 slamr
install slamr /sbin/modprobe --ignore-install slamr ; test -e /dev/slamr0 || (/bin/mknod -m 660 /dev/slamr0 c 242 0 2>/dev/null && chgrp uucp /dev/slamr0)
remove slamr /sbin/modprobe -r --ignore-remove slamr

che fanno più o meno la stessa roba (ci sarà un modo più elegante per farlo con udev, ma io di udev non ne capisco una mazza).
In più, ho uno script di avvio copiato dalla sottodirectory scripts dei sorgenti di slmodemd in init.d, e attivato agli initlevel 2-3-4-5 (e che viene chiuso agli initlevels 1 e 6).
Il faut être toujours ivre. Tout est là : c'est l'unique question. Pour ne pas sentir l'horrible fardeau du Temps qui brise vos épaules et vous penche vers la terre,il faut vous enivrer sans trêve...
Avatar utente
zello
Moderatore
 
Post: 2351
Iscritto il: 06/05/02 13:44

Postdi zello » 19/05/07 14:00

Ah, inoltre potresti dover usare ungrab-winmodem (se il modem viene "catturato" da un altro driver, bisogna prima di fatto farglielo rilasciare); ho letto da qualche parte che - dopo la mia modifica - qualcuno ha dovuto anche pistolare i sorgenti di ungrab-winmodem, ma ora dovrebbero essere a posto.
Non me ne sono preoccupato solo perché da me non è necessario; anche la riga di modprobe.conf va a questo punto modificata:
Codice: Seleziona tutto
nstall slamr modprobe –ignore-install ungrab-winmodem ; modprobe –ignore-install slamr; test -e /dev/slamr0 || (/bin/mknod -m 660 /dev/slamr0 c 242 0 2>/dev/null && chgrp uucp /dev/slamr0)
Il faut être toujours ivre. Tout est là : c'est l'unique question. Pour ne pas sentir l'horrible fardeau du Temps qui brise vos épaules et vous penche vers la terre,il faut vous enivrer sans trêve...
Avatar utente
zello
Moderatore
 
Post: 2351
Iscritto il: 06/05/02 13:44

Postdi anker » 20/06/07 17:49

Di grazia si potrebbe avere anche il link al driver???Grazie! ;D
anker
Newbie
 
Post: 2
Iscritto il: 20/06/07 17:33

Postdi hypnotherapist » 25/08/07 11:33

anche io ho lo stesso problema!
invoco aiuto dai "maitre a penser"!
hypnotherapist
Newbie
 
Post: 1
Iscritto il: 25/08/07 11:26

Postdi zello » 27/08/07 11:26

http://linmodems.technion.ac.il/packages/smartlink/

Scaricare sia ungrab-winmodem (2007-05-05, dovrebbe essere l'ultimo) sia slmodemd (2007-08-13).
Il faut être toujours ivre. Tout est là : c'est l'unique question. Pour ne pas sentir l'horrible fardeau du Temps qui brise vos épaules et vous penche vers la terre,il faut vous enivrer sans trêve...
Avatar utente
zello
Moderatore
 
Post: 2351
Iscritto il: 06/05/02 13:44

Re: Il gusto di pistolare i sorgenti: Motorola SM56

Postdi zello » 26/03/08 00:04

Se qualcuno deve compilare slmodem o ungrab-winmodem sotto il kernel 2.6.24 mi scriva due righe, nel mentre i maintainers ufficiali dei pacchetti verificano le patches che ho loro sottoposto (*)

(*) a volte bastano 3 righe 3 di modifiche ad un sorgente e ti senti un Dio...
Il faut être toujours ivre. Tout est là : c'est l'unique question. Pour ne pas sentir l'horrible fardeau du Temps qui brise vos épaules et vous penche vers la terre,il faut vous enivrer sans trêve...
Avatar utente
zello
Moderatore
 
Post: 2351
Iscritto il: 06/05/02 13:44

Re: Il gusto di pistolare i sorgenti: Motorola SM56

Postdi limbo3 » 02/08/09 23:22

Salve, seguendo le sue preziossime istruzioni sono riuscito ad installare il mio modem Motorola SM56. Tutto funziona tranne quando provo a scaricare qualcosa di leggermente pesante (diciamo 1 MB circa) oppure per esempio a vedere un video su youtube perchè allora dopo un po' improvvisamente il modem si disconnette e in log mi ritrovo con i seguenti messsaggi:
No response to 4 echo-requests
Aug 2 18:45:18 MyComputer0 pppd[21399]: Serial link appears to be disconnected.
Aug 2 18:45:18 MyComputer0 pppd[21399]: Connect time 35.0 minutes.
Aug 2 18:45:18 MyComputer0 pppd[21399]: Sent 641214 bytes, received 7943308 bytes.
Aug 2 18:45:24 MyComputer0 pppd[21399]: Connection terminated.
Aug 2 18:45:24 MyComputer0 pppd[21399]: Modem hangup
Aug 2 18:45:24 MyComputer0 pppd[21399]: Exit.

Se invece navigo per pagine leggere tutto funziona.

Perchè?
limbo3
Newbie
 
Post: 1
Iscritto il: 02/08/09 23:09


Torna a Software Linux


Topic correlati a "Il gusto di pistolare i sorgenti: Motorola SM56":


Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti