giovedì 7 giugno 2012

Come fare per collegare correttamente via USB al fine di trasferire file tra il cellulare e un sistema Gnu/Linux, nello specifico su Slackware.

A causa di una serie di motivi, collegare i cellulari Nokia, sia attraverso il cavo USB che via Bluetooth su Slackware e sostanzialmente su tutti i sistemi GNU/Linux, può generare una serie di problemi. Per questa ragione in questo tutorial vedremo un esempio di come fare per collegare correttamente via USB al fine di trasferire file tra il cellulare e un sistema Gnu/Linux, nello specifico su Slackware. 

Prima di ogni cosa è necessario essere sicuri di avere nel sistema l’utility di base che consentirà lo scambio di file tra cellulare e pc come se stessimo facendo uso di un comune applicativo ftp per lo scambio di file. [...]L’applicativo in questione è Obextool (grafico) che comprende ObexFtp (testuale) con relativeopenobex-apps.

NB: l’how-to è scritto per Slackware 12.1 e versioni superiori, in cui il pacchetto openobex-apps e anche obexftp è già presente di suo. Se per una ragione qualunque non dovesse essere così, si potrà reperire con facilità dal web e nel caso specifico per Slackware anche già inserito per l’uso.

Il primo passo, accertata la presenza di obexftp e affini, ci assicureremo che il kernel riconosca il cellulare come un normale dispositivo di scambio di file in USB.

NB: affinchè l'operazione possa avere una buona riuscita, bisognerà considerare che tutto il procedimento si basa sul demoneudev. Se non fosse stato abilitato di default all’avvio di Slackware sarà bene dapprima verificare la sua presenza e in caso contrario startarlo da user root:
  • Codice: ~# ps x | grep udev 1002 ? S<s 0:02 /sbin/udevd --daemon

se non restituisce il processo provvediamo a startarlo:
  • ~# /etc/rc.d/rc.udev start
Adesso colleghiamo il cavetto USB da  semplice utente e digitiamo:
  • ~$ dmesg
che dovrebbe restituire un uscita simile a questa:
  • Codice:usb 4-1: new full speed USB device using uhci_hcd and address 2 usb 4-1: configuration #1 chosen from 1 choice cdc_acm 4-1:1.8: ttyACM0: USB ACM device usbcore: registered new interface driver cdc_acm drivers/usb/class/cdc-acm.c: v0.25:USB Abstract Control Model driver for USB modems and ISDN adapters
Assicurandoci che il cellulare Nokia sia stato riconosciuto come dispositivo USB provvederemo a riconoscere il device di appartenenza:
  • ~$ /sbin/lsusb
  • Codice:Bus 005 Device 001: ID 0000:0000 Bus 004 Device 002: ID 0421:043a Nokia Mobile Phones N70 USB Phone Parent Bus 004 Device 001: ID 0000:0000 Bus 003 Device 001: ID 0000:0000 Bus 002 Device 001: ID 0000:0000 Bus 001 Device 003: ID 0c45:602c Microdia Clas Ohlson TWC-30XOP WebCam Bus 001 Device 001: ID 0000:0000
Avendo accertato che il cellulare è montato sul Device 002 identificato da udev come dev ttyACM0 , dovremo verificare come buona prassi vuole, da utente root, quali sono i permessi e il gruppo assegnati di default dal sistema a questo device. Tale complicanza potrebbe tornarci utile successivamente.
  • ~# ls -al /dev/ttyACM0 crw-rw---- 1 root uucp 166, 0 2009-05-17 22:35 /dev/ttyACM0
Dopo avere verificato i permessi come utente root appartenente al gruppo uucp ed identificato il device, dovremo comunicare ad udev quale dispositivo è collegato. Per fare quanto detto, dovremo attrezzarci di due valori: dell’ IdProduct e dell’IdVendor del cellulare Nokia che vogliamo collegare.
I due valori sono riconosciuti dal sistema già dal precedente comando “/sbin/lsusb” che ci ha restituito:
  • 0421:043a
Spuntiamo dove preferiamo i due valori sottolineati in rosso. Trovati i due valori dovremmo comunicare ad udev che una volta collegato il dispositivo non dovranno esserci problemi di permessi.

NB: in casi generali udev permetterà di vedere il dispositivo e quindi la transazione FTP solo all’utente root. Per evitare tutto questo, e far si che il normale user posso eseguire le transazioni da pc a cellulare e viceversa, aggiungeremo una regola ad udev nella directory /etc/udev/rules.d/ con il nostro editor preferito, essendo già precedentemente muniti dei valori id”Vendor & Product” del cellulare come segue:
  • ~# vi /etc/udev/rules.d/80-nokia.rules ACTION!="add", GOTO="nokia_rules_end" #SUBSYSTEM!="usb_device", GOTO="nokia_rules_end" LABEL="nokia_rules_start" ATTR{idVendor}=="0421", ATTR{idProduct}=="043a", OWNER="root", GROUP="users", MODE="0660" LABEL="nokia_rules_end"
NB: in tutte le altre distribuzioni l’aggiunta della regola udev per identificare il dispositivo prevede come parametro GROUP=”" l’appartenenza al gruppo dialout. Date le differenze di presenza del gruppo in Slackware utilizzeremo semplicemente il gruppo users.
Nota da non sottovalutare: é buona norma essere certi che il proprio utente sia appartenente ai gruppi generici di sfruttamento di periferiche che in casi generali dovrebbero risultare come i seguenti:

  • Codice:~ $ id uid=1000(...) gid=100(users) gruppi=5(tty),7(lp),11(floppy),17(audio),18(video),19(cdrom),81(messagebus),82(haldaemon),83(plugdev),93(scanner),100(users)
In caso contrario provvederemo ad aggiungere il nostro utente ai gruppi citati sopra e a refreshare l’aggiunta dell’utente ai gruppi citati:
  • Codice:~# usermod -G floppy,audio,video,cdrom,haldaemon,plugdev,scanner,tty,uucp mio_utente ~# newgrp nostro_gruppo_di_appartenenza_utente esempio: ~# newgrp users
Una volta salvato il file con la regola udev e il gruppo users abilitato alle transazioni con obexftp provvederemo a staccare il cavetto usb e restartare udev.
  • Codice:~# /etc/rc.d/rc.udev restart
Restartato il demone udev, riattaccheremo il cavetto USB e verificheremo la connessione tra Slackware e il nostro Nokia da terminale come segue:
  • Codice:~$ obex_test -u Using USB transport, querying available interfaces Interface 0: Nokia Nokia N70 SYNCML-SYNC Interface 1: Nokia Nokia N70 PC Suite Services Use 'obex_test -u interface_number' to run interactive OBEX test client
Verificato il riconoscimento da obex verificheremo se la transazione da utente via terminale è già disponibile:
  • Codice:~$ obexftp -u 1 -c C: -l If USB doesn't work setup permissions in udev or run as superuser. Connecting...done Sending "C:"... done Receiving "(null)"... <?xml version="1.0"?> <!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd" [ <!ATTLIST folder mem-type CDATA #IMPLIED> <!ATTLIST folder label CDATA #IMPLIED> ]> <folder-listing version="1.0"> <parent-folder /> <folder name="cache" modified="20070821T120632Z" user-perm="RWD" mem-type="DEV"/> <folder name="Data" modified="20081118T024304Z" user-perm="RWD" mem-type="DEV"/> <folder name="Nokia" modified="20060101T020012Z" user-perm="RWD" mem-type="DEV"/> <folder name="Notepad" modified="20081113T010836Z" user-perm="RWD" mem-type="DEV"/> <file name="BlasterSettings" size="73" modified="20070919T140206Z" user-perm="RWD"/> <file name="CellTrack" size="47" modified="20070914T215856Z" user-perm="RWD"/> <file name="DSPROFILEEDITOR.EXE" size="3881" modified="20070822T095218Z" user-perm="RWD"/> <file name="MP" size="47" modified="20070920T222404Z" user-perm="RWD"/> <file name="PDPhotoLibCache.txt" size="16" modified="20090509T213150Z" user-perm="RWD"/> <file name="Photo Express M-Style" size="42" modified="20070904T160312Z" user-perm="RWD"/> <file name="PowerMP3" size="46" modified="20070902T191346Z" user-perm="RWD"/> </folder-listing>done Disconnecting...done
NB: la prima stringa “If USB doesn’t work setup permissions in udev or run as superuser.” è un messaggio di warning, che normalmente deve restituire udev. Non pregiudica il funzionamento e il trasferimento dei file tra i dispositivi.

Finalmente vedremo il contenuto della memoria del nostro cellulare Nokia e da questo momento potremo effettuare via obexftp le transazioni come se stessimo usando un normale applicativo FTP.
Come da esempio seguente utilizzeremo:
  • Codice:-p (PUT) per l'upload -g (GET) per il download $ obexftp -u 1 -c 'E:/muvee' -p esempio.3gp $ obexftp -u 1 -c 'C:/Nokia/Sounds/Digital' -g 'Sound.amr'
Chiaramente può essere utile nel caso del trasferimento di una gran mole di file, utilizzare un interfaccia grafica che eviti di farci digitare perennemente e/o per 10 minuti di fila, sempre gli stessi comandi.

Nessun commento:

Posta un commento

Licenza Creative Commons
Questo opera è distribuito con licenza Creative Commons Attribuzione - Non commerciale - Non opere derivate 3.0 Unported.