Old:UMTS/GPRS: Internet col cellulare: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
 
(13 versioni intermedie di 6 utenti non mostrate)
Riga 1: Riga 1:
''Inserire qui la traduzione di [http://www.kernel.org/pub/linux/kernel/people/gregkh/lkn/lkn_pdf/appa.pdf questo] capitolo...''
{{Old}}
==Prefazione==


Questa è una guida introduttiva all'uso del cellulare come modem bluetooth.


__TOC__
Tale guida è utilizzabile anche per altri sistemi operativi (oltre Debian) dotati di kernel Linux.


Scaricare [da Internet, NdT], compilare, aggiornare e mantenere i sorgenti del kernel Linux coinvolge diversi passi, come questo libro illustra. Essendo per natura creature pigre, gli sviluppatori hanno creato alcuni programmi a supporto di queste attivit� di routine. Descriviamo alcuni di tali utili strumenti e le nozioni di base sul loro utilizzo.
I file che per essere editati necessitino dei privilegi di root, possono essere aperti (conoscendo la password) con il seguente comando:


Lo sviluppo del kernel Linux differisce per molti aspetti dal tradizioale processo di sviluppo software. Ad uno sviluppatore del kernel sono richieste alcune attivit� peculiari:
<pre>su -c "gedit nome_del_file_da_editare"</pre> su GNOME, e
<pre>su -c "kwrite nome_del_file_da_editare"</pre> su KDE.


* Applicare le modifiche ad un "bersaglio mobile" quale il kernel, a causa della pianificazione dei rilasci di sviluppo.
* Risolvere i conflitti nella fase di merge tra ci ha fatto rispetto a quanto fatto dagli altri sviluppatori.
* Esportare i suoi cambiamenti in un formato che permetta agli altri sviluppatori di incorporarli facilmente nel proprio lavoro.


==patch e diff==
In alternativa al comando su, è possibile usare sudo (appositamente configurato).
Questa sezione � basata su un articolo pubblicato originariamento su ''Linux Journal''.


Una delle modalit� pi� comuni per lavorare con il kernel � quella di usare i programmi ''patch'' e ''diff''. Per usare questi strumenti, sono necessarie due differenti directory: una "pulita" (clean) e una "di lavoro" (indicata con ''dirty'' in seguito). La directory clean contiene la versione originale del kernel, mentre quella di lavoro contiene le modifiche apportate dal programmatore alla stessa release.
==Software necessario==
Utilizzando ''patch'' e ''diff'' � possibile estrarre i cambiamenti apportati sul sorgente e portarli nella nuova release del kernel.


Per esempio, creiamo due directory contenenti l'ultima versione del kernel come descritto nel Capitolo 3.
Per l'utilizzo di un dispositivo bluetooth è necessario installare "The official Linux Bluetooth protocol stack", cioè BlueZ.
Successivamente bisognerebbe abilitare, anche, il supporto al Point-to-Point Protocol, più genericamente conosciuto come PPP, nel kernel. Ma di solito lo è già di default.


<pre>
===Sorgenti===
$ tar -zxf linux-2.6.19.tar.gz
:I sorgenti sono scaricabili come tarball sul sito http://www.bluez.org/download.html.
$ mv linux-2.6.19 linux-2.6.19-dirty
===Pacchetti===
$ tar -zxf linux-2.6.19.tar.gz
:I pacchetti delle blueZ dovrebbero essere contenuti nei cd/dvd della distribuzione, tuttavia - se così non fosse - sono scaricabili (per Debian GNU/Linux) all'indirizzo http://packages.debian.org/stable/admin/bluez-utils.
$ ls
linux-2.6.19/
linux-2.6.19-dirty/
</pre>


Ora � possibile apportare tutte le modifiche desiderate al sorgente presente nella directory di lavoro (dirty), lasciando inalterata quella clean. Dopo aver apportato le modifiche, si potr� creare una patch da inviare agli altri sviluppatori tramite i seguenti comandi:
:Installare anche il pacchetto ppp, che contiene gli script "pon" e "poff".


<pre>
==Configurare il bluetooth==
$ diff -Naur -X linux-2.6.19/Documentation/dontdiff linux-2.6.19/ \
Per permettere la comunicazione tra il PC e il cellulare è necessario accoppiare i due dispositivi. Durante questa fase è richiesto:
linux-2.6.19-dirty/ > my_patch
*Un pin;
</pre>
*Il MAC Address del dispositivo bluetooth;
*I parametri forniti dal provider;


Questo comando creer un file dal nome ''my_patch'' che conterr tutti i cambiamenti apportati al sorgente del kernel rispetto alla versione pulita presente nella directory clean. Tale file potr essere distribuito o inviato ad agli altri sviluppatori via email.


{{Box|Nota bene:|per utilizzare il bluetooth può essere necessario avviare il demone hcid; è possibile farlo col comando:
<pre># /usr/sbin/hcid</pre>
ed è buona norma farlo fare in automatico al boot.
La maggior parte delle distribuzioni, comunque, lo lancia automaticamente una volta installati i pacchetti inerenti il bluetooth.}}


===Nuove versioni del kernel===
===Il file <code>etc/bluetooth/pin</code>===
Al rilascio di una nuova versione del kernel, se si desidera portare i cambiamenti su questa nuova versione � necessario applicare la patch ad una versione ''pulita'' del kernel.
Le BlueZ-utils permettono di impostare il pin attrverso il file di configurazione <code>/etc/bluetooth/pin</code>
Questo pu� essere fatto seguendo questi passi:
* Creare la patch, come illustrato nell'esempio precedente.
* Utilizzare la patch ufficiale dal sito ''kernel.org'' e aggiornare la vecchia versione alla nuova release:


<pre>
Credo che il file pin nelle ultime versioni sia stato eliminato, giacché il pin è configurabile anche nel file <code>/etc/bluetooth/hcid.conf</code> sotto la voce di <code>passkey</code>; come mostrato nell'esempio sottostante.
$ cd linux-2.6.19
<pre>options {
$ patch -p1 < ../patch-2.6.20
  # ...
$ cd ..
  # tutte le opzioni...
$ mv linux-2.6.19 linux-2.6.20
  # ...
</pre>
  passkey "1234";
}</pre>


* Aggiornare la directory di lavoro rimuovendo la propria patch e, in seguito, applicando il nuovo aggiornamento:
In alternativa, al file <code>pin</code> o <code>hcid.conf</code>, si può gestire il pin con delle utility grafiche. Da segnalare è bluez-gnome (per chi usa GNOME) o kdebluetooth (per chi utilizza KDE).
<pre>
$ cd linux-2.6.19-dirty
$ patch -p1 -R < ../my_patch
$ patch -p1 < ../patch-2.6.20
$ cd ..
$ mv linux-2.4.19-dirty linux-2.6.20-dirty
</pre>


* Provare ad applicare la propria patch sul nuovo aggiornamento:
{{Box |Come scelgo il pin? |Il pin può essere scelto a piacere, purché durante l'accoppiamento col PC - sul cellulare - si inserisca il pin specificato all'interno del file <code>/etc/bluetooth/pin</code> o nella maschera grafica di bluez-gnome (o kdebluetooth)}}
<pre>
$ cd linux-2.6.20-dirty
$ patch -p1 < ../my_patch
</pre>


Se l'applicazione della patch provoca dei problemi, � necessario risolvere i conflitti creati (il comando ''patch'' informer� circa questi conflitti creando i file ''.rej'' e ''.orig'' per l'analisi e la correzioni da parte dello sviluppatore).
===Il MAC Address===
Questo processo di ''fusione'' (''merge'') pu� rappresentare la parte pi� difficile dell'intero processo se sono stati apportati cambiamenti a porzioni di codice che sono state modificate anche da altri.
Per accoppiare il cellulare bisogna essere a conoscenza del MAC Address. Per fare ciò si può usare il comando '''hcitool''' con il parametro <code>'''scan'''</code>


Per applicare correttamente questo processo di sviluppo, raccomando fortemente di utilizzare l'eccellente insieme di programmi ''patchutils'' (reperibile qui: ''http://cyberelk.net/tim/patchutils''). Questi programmi permettono di manipolare le patch facilmente e hanno risparmiato agli sviluppatori molte ore di tedioso lavoro.
<pre># hcitool scan</pre>
L'output del comando dovrebbe risultare simile a questo riportato di seguito
<pre>04:F0:65:92:A5:BE    NomeCellulare</pre>


----
===Accoppiare il dispositivo===
This is an indipendent translation of the book [http://www.kroah.com/lkn/ Linux Kernel in a Nutshell] by [http://www.kroah.com/log/ Greg Kroah-Hartman]. This translation (like the original work) is available under the terms of [http://creativecommons.org/licenses/by-sa/2.5/ Creative Commons Attribution-ShareAlike 2.5].
----


[[Categoria:Kernel]]
Editare il file <code>/etc/bluetooth/rfcomm.conf</code> come segue:
 
<pre>rfcomm0 {
  bind yes;
  device 04:F0:65:92:A5:BE;
  channel 1;
}</pre>
dove l'indirizzo che succede alla voce device è l'indirizzo MAC, precedentemente ricavato grazie a hctool.
 
È ora di procedere alla creazione del device <code>/dev/rfcomm0</code> e alla procedura di accoppiamento.
Per fare ciò basterà eseguire il comando:
<pre># rfcomm bind 0 04:F0:65:92:A5:BE 1</pre> che creerà <code>/dev/rfcomm0</code> e successivamente si potrà procedere all'associazione dei dispositivi dal cellulare, oppure dal pc col comando:
<pre>rfcomm connect 0 04:F0:65:92:A5:BE 1</pre>
 
==Gli script per la connessione==
 
Gli script di connessione sono rilasciati assieme a i parametri relativi ai maggiori gestori di telefonia mobile.
 
===Il file <code>/etc/chatscripts/provider</code>===
 
Bisogna editare il file <code>/etc/chatscripts/provider</code> come segue:
 
<pre>ABORT BUSY
ABORT 'NO CARRIER'
ABORT VOICE
ABORT 'NO DIALTONE'
ABORT 'NO DIAL TONE'
ABORT 'NO ANSWER'
ABORT DELAYED
 
'' ATZ
 
#Scegliere la riga corrispondente il proprio provider
#Per vodafone
OK-AT-OK AT+CGDCONT=1,"IP","web.omnitel.it"
#Per wind
OK-AT-OK AT+CGDCONT=1,"IP","internet.wind"
#Per tim
OK-AT-OK AT+CGDCONT=1,"IP","ibox.tim.it"
#Per 3HG
OK-AT-OK AT+CGDCONT=1,"IP","tre.it"
#Per 3HG con promozione NAVIGA3
OK-AT-OK AT+CGDCONT=1,"IP","naviga.tre.it"
 
OK-AT-OK ATDT_numero_
 
CONNECT ''</pre> e al posto di _numero_ va inserito il numero di telefono corrispondente alla marca del proprio cellulare:
 
<pre>Numeri: Nokia e Motorola: *99#
Siemens, Sharp e Panasonic: *99***1#
Samsung: *99***1*#
Ericsson e SonyEricsson *99***CID# (CID = N° profilo GPRS)
Altri: *99#</pre>
 
{{Box | ESEMPIO:|Con un Nokia la stringa col numero sarà: <code>'''OK-AT-OK ATDT*99#'''</code>}}
 
===Il file <code>/etc/ppp/peers/provider</code>===
 
Bisogna editare il file <code>/etc/ppp/peers/provider</code> come segue:
 
<pre>noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/provider"
/dev/rfcomm0
921600
defaultroute
noipdefault
usepeerdns
persist
ipcp-accept-remote
ipcp-accept-local
lcp-echo-interval 0
lcp-echo-failure 0</pre>
 
==Connettersi e Disconnettersi==
 
Per connettersi basta usare
<pre>$ pon</pre> e per disconnettersi <pre>$ poff</pre>
 
Per avere un output, sull'esito dell'operazione, si può usare (da root) il comando:
<pre># pon;plog</pre>
in modo da avere informazioni per risolvere eventuali problemi.
 
''Per qualsiasi cosa, non esitate a contattarmi.''

Versione attuale delle 15:28, 7 dic 2019

Emblem-important.png Attenzione. Questa guida è obsoleta. Viene mantenuta sul Wiki solo per motivi di natura storica e didattica.


Prefazione

Questa è una guida introduttiva all'uso del cellulare come modem bluetooth.

Tale guida è utilizzabile anche per altri sistemi operativi (oltre Debian) dotati di kernel Linux.

I file che per essere editati necessitino dei privilegi di root, possono essere aperti (conoscendo la password) con il seguente comando:

su -c "gedit nome_del_file_da_editare"

su GNOME, e

su -c "kwrite nome_del_file_da_editare"

su KDE.


In alternativa al comando su, è possibile usare sudo (appositamente configurato).

Software necessario

Per l'utilizzo di un dispositivo bluetooth è necessario installare "The official Linux Bluetooth protocol stack", cioè BlueZ. Successivamente bisognerebbe abilitare, anche, il supporto al Point-to-Point Protocol, più genericamente conosciuto come PPP, nel kernel. Ma di solito lo è già di default.

Sorgenti

I sorgenti sono scaricabili come tarball sul sito http://www.bluez.org/download.html.

Pacchetti

I pacchetti delle blueZ dovrebbero essere contenuti nei cd/dvd della distribuzione, tuttavia - se così non fosse - sono scaricabili (per Debian GNU/Linux) all'indirizzo http://packages.debian.org/stable/admin/bluez-utils.
Installare anche il pacchetto ppp, che contiene gli script "pon" e "poff".

Configurare il bluetooth

Per permettere la comunicazione tra il PC e il cellulare è necessario accoppiare i due dispositivi. Durante questa fase è richiesto:

  • Un pin;
  • Il MAC Address del dispositivo bluetooth;
  • I parametri forniti dal provider;


Info.png Nota bene:
per utilizzare il bluetooth può essere necessario avviare il demone hcid; è possibile farlo col comando:
# /usr/sbin/hcid

ed è buona norma farlo fare in automatico al boot. La maggior parte delle distribuzioni, comunque, lo lancia automaticamente una volta installati i pacchetti inerenti il bluetooth.


Il file etc/bluetooth/pin

Le BlueZ-utils permettono di impostare il pin attrverso il file di configurazione /etc/bluetooth/pin

Credo che il file pin nelle ultime versioni sia stato eliminato, giacché il pin è configurabile anche nel file /etc/bluetooth/hcid.conf sotto la voce di passkey; come mostrato nell'esempio sottostante.

options {
  # ...
  # tutte le opzioni...
  # ...
  passkey "1234";
}

In alternativa, al file pin o hcid.conf, si può gestire il pin con delle utility grafiche. Da segnalare è bluez-gnome (per chi usa GNOME) o kdebluetooth (per chi utilizza KDE).

Info.png Come scelgo il pin?
Il pin può essere scelto a piacere, purché durante l'accoppiamento col PC - sul cellulare - si inserisca il pin specificato all'interno del file /etc/bluetooth/pin o nella maschera grafica di bluez-gnome (o kdebluetooth)


Il MAC Address

Per accoppiare il cellulare bisogna essere a conoscenza del MAC Address. Per fare ciò si può usare il comando hcitool con il parametro scan

# hcitool scan

L'output del comando dovrebbe risultare simile a questo riportato di seguito

04:F0:65:92:A5:BE     NomeCellulare

Accoppiare il dispositivo

Editare il file /etc/bluetooth/rfcomm.conf come segue:

rfcomm0 {
  bind yes;
  device 04:F0:65:92:A5:BE;
  channel 1;
}

dove l'indirizzo che succede alla voce device è l'indirizzo MAC, precedentemente ricavato grazie a hctool.

È ora di procedere alla creazione del device /dev/rfcomm0 e alla procedura di accoppiamento. Per fare ciò basterà eseguire il comando:

# rfcomm bind 0 04:F0:65:92:A5:BE 1

che creerà /dev/rfcomm0 e successivamente si potrà procedere all'associazione dei dispositivi dal cellulare, oppure dal pc col comando:

rfcomm connect 0 04:F0:65:92:A5:BE 1

Gli script per la connessione

Gli script di connessione sono rilasciati assieme a i parametri relativi ai maggiori gestori di telefonia mobile.

Il file /etc/chatscripts/provider

Bisogna editare il file /etc/chatscripts/provider come segue:

ABORT BUSY
ABORT 'NO CARRIER'
ABORT VOICE
ABORT 'NO DIALTONE'
ABORT 'NO DIAL TONE'
ABORT 'NO ANSWER'
ABORT DELAYED

'' ATZ

#Scegliere la riga corrispondente il proprio provider
#Per vodafone
OK-AT-OK AT+CGDCONT=1,"IP","web.omnitel.it"
#Per wind
OK-AT-OK AT+CGDCONT=1,"IP","internet.wind"
#Per tim
OK-AT-OK AT+CGDCONT=1,"IP","ibox.tim.it"
#Per 3HG
OK-AT-OK AT+CGDCONT=1,"IP","tre.it"
#Per 3HG con promozione NAVIGA3
OK-AT-OK AT+CGDCONT=1,"IP","naviga.tre.it"

OK-AT-OK ATDT_numero_

CONNECT ''

e al posto di _numero_ va inserito il numero di telefono corrispondente alla marca del proprio cellulare:

Numeri: Nokia e Motorola:		*99#
	Siemens, Sharp e Panasonic:	*99***1#
	Samsung:			*99***1*#
	Ericsson e SonyEricsson		*99***CID# (CID = N° profilo GPRS)
	Altri:				*99#
Info.png ESEMPIO:
Con un Nokia la stringa col numero sarà: OK-AT-OK ATDT*99#


Il file /etc/ppp/peers/provider

Bisogna editare il file /etc/ppp/peers/provider come segue:

noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/provider"
/dev/rfcomm0
921600
defaultroute
noipdefault
usepeerdns
persist
ipcp-accept-remote
ipcp-accept-local
lcp-echo-interval 0
lcp-echo-failure 0

Connettersi e Disconnettersi

Per connettersi basta usare

$ pon

e per disconnettersi

$ poff

Per avere un output, sull'esito dell'operazione, si può usare (da root) il comando:

# pon;plog

in modo da avere informazioni per risolvere eventuali problemi.

Per qualsiasi cosa, non esitate a contattarmi.