Hits :
6192
FAQ :: 3G on Linux
Ας πάρουμε τα πράγματα από την αρχή.
Τι είναι το 3G;
Αποτελεί ακρωνύμιο του:
Third Generation[link1] ή στα ελληνικά Τρίτη Γενιά. Δηλώνει έναν διεθνή τρόπο επικοινωνίας με το διαδίκτυο μέσω κινητής τηλεφωνίας (δίκτυο gsm). Δεν χρειάζεται να γνωρίζουμε κάτι παραπάνω. Το μόνο που μας ενδιαφέρει να καταλάβουμε είναι, ότι για να έχουμε internet πρέπει να υπάρχει σήμα της εκάστοτε εταιρείας (Mobile Service Provider).
Τρία είναι τα δίκτυα κινητής τηλεφωνίας στην Ελλάδα Cosmote (20201), Vodafone (20205), Wind (20210). Μέσω αυτών των δικτύων παρέχουν τις υπηρεσίες τους και άλλες εταιρίες κινητής τηλεφωνίας (ως MVNOs, Mobile Virtual Network Operators) όπως η Q (απορροφημένη πλέον πλήρως από τη Wind), Momad και Frog.
top
Τι χρειαζόμαστε για να συνδεθούμε;
Χρειαζόμαστε μία κάρτα sim που να έχει ενεργοποιημένη την υπηρεσία 3g. Ο ευκολότερος τρόπος σύνδεσης με τον υπολογιστή μας (μα όχι κι ο μοναδικός) είναι μέσω μίας usb συσκευής. Το usb 3g stick λοιπόν, είναι στην πραγματικότητα ένα GSM modem το οποίο μας συνδέει στο 3g gsm δίκτυο του εκάστοτε provider, κι από εκεί στο internet.
top
Πως λειτουργεί το usb 3g stick;
Το μεγαλύτερο πρόβλημα των συσκευών είναι ότι ΔΕΝ αναγνωρίζονται αυτόματα (hardware) από το λειτουργικό σύστημα. Η επίλυση αυτού του προβλήματος στα windows, γίνεται μέσω των drivers. Οι drivers είναι προγράμματα που προσθέτουν λειτουργικότητα στο σύστημα ώστε να αναγνωρίζει το λειτουργικό την εκάστοτε νέα συσκευή. Στο linux δεν χρειάζεται να γίνει ακριβώς αυτό. Ο πυρήνας θα την αναγνωρίσει ως συσκευή, αλλά δεν θα γνωρίζει τι συσκευή είναι ή τι πρέπει να κάνει μαζί της ή ακόμα και πως να επικοινωνήσει μαζί της.
Τα usb 3g strick προσομοιώνουν ένα block device στον υπολογιστή μας. Με λίγα λόγια το λειτουργικό μας, αναγνωρίζει την συσκευή ως cdrom. Αυτό γίνεται τόσο στα windows όσο και στο linux. Και μέσα στο cd υπάρχει ο windows driver για να γίνει εγκατάσταση και πλέον η συσκευή να αναγνωριστεί ως 3g και να δουλέψει ως GSM modem.
Αυτή η τεχνολογία ονομάζεται
ZeroCD.
top
Πως λειτουργεί στο Linux;
Καθημερινά δημιουργούνται νέες συσκευές. Για να μην τροποποιούν τον πυρήνα για κάθε νέα συσκευή, οι kernel developers έγραψαν ένα ξεχωριστό υποσύστημα που έχει αναλάβει την αυτόματη αναγνώριση και παραμετροποίησης του συστήματος. Το υποσύστημα ονομάζεται
udev[link2] και χρησιμοποιεί κανόνες (rules) για την αυτόματη αναγνώριση μίας νέας συσκευής.
Στο σύστημά μας εκτελείτε ως δαίμονας, κι όποτε τοποθετούμε μία νέα συσκευή, θα προσπαθήσει αυτόματα να υλοποιήσει τους εκάστοτε κανόνες που έχει για να κάνει να δουλέψει σωστά η συσκευή που μόλις εγκαταστήσαμε στην διανομή μας. Η διαδικασία αυτή αναφέρεται κι ως
Hotplugging, δλδ hot plug in, που δηλώνει ακριβώς αυτό: η αναγνώριση και λειτουργία μήπως συσκευής κατά την άμεση τοποθέτησή της στον υπολογιστή μας.
Με λίγα λόγια, οι χρήστες δεν χρειάζεται να κάνουν απολύτως τίποτα. Απλά τοποθετούν την συσκευή τους στο σύστημά τους κι όλα τα υπόλοιπα, τα αναλαμβάνει ο πυρήνας με την χρήση του
udev.
top
Που βρίσκονται οι udev κανόνες;
Στις εξής διαδρομές:
/lib/udev/ &
/etc/udev/
top
Εάν δεν την αναγνωρίσει αυτόματα;
Είναι όμως πιθανό, το udev να μην είναι σε θέση να αναγνωρίσει αυτόματα ή να μην έχει τους κατάλληλους κανόνες για την συσκευή που μόλις συνδέσαμε στον υπολογιστή μας. Εάν λοιπόν το 3G GSM Usb Modem μας, δεν αναγνωριστεί αυτόματα θα πρέπει να το κάνουμε εμείς με το χέρι.
Για να μην χρειαστεί να μάθουμε της χρήση των κανόνων του udev (είναι περίπλοκοι), θα πρέπει να κάνουμε χρήση του προγράμματος
usb mode switch[link3]. Το
usb_modeswitch αναλαμβάνει να δημιουργήσει αυτούς του νέους κανόνες στο udev.
Εκτός από το usb_modeswitch, χρειάζεται να γνωρίζουμε δύο πράγματα από την συσκευή μας.
- Το Vendor ID &
- To Product ID
Δύο στοιχεία που χαρακτηρίζουν την συσκευή μας στο σύστημά μας.
top
Πως εγκαθιστώ το usb_modeswitch;
Το πιθανότερο είναι να υπάρχει ήδη στο αποθετήριο της διανομής σας. Οποιαδήποτε έκδοση μετά την
>= 1.1.2 μας κάνει.
Εάν δεν υπάρχει στα αποθετήρια τότε κατεβάστε το πρόγραμμα από εδώ:
http://www.draisberghof.de/usb_modeswitch/.
Εάν αποφασίσετε να κάνετε την εγκατάσταση από τον πηγαίο κώδικα, ρίξτε πρώτα μια ματιά
Αναφέρονται αναλυτικές οδηγίες στο παραπάνω site.
Εάν έχετε:
sudo pacman -S usb_modeswitch
sudo apt-get install usb_modeswitch
sudo yum install usb_modeswitch
Προσοχή Πιθανά να είναι γραμμένο κι ως εξής: usb-modeswitch ή και διαφορετικά.
top
Εγκατάσταση από πηγαίο κώδικα
Για την εγκατάσταση από πηγαίο κώδικα, χρειάζεται να έχετε εγκαταστήσει τον gcc compiler, και τους development headers των libc6 και libusb (ή libusb-compat εάν η διανομή σας χρησιμοποιεί την libusb 1.0 ή νεότερη):
$ wget -c http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-1.1.4.tar.bz2 http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-20100817.tar.bz2
$ tar xvf usb-modeswitch-1.1.4.tar.bz2
$ tar xvf usb-modeswitch-data-20100817.tar.bz2
$ cd usb-modeswitch-1.1.4
$ make
$ sudo make install
$ cd ../usb-modeswitch-data-20100817
$ make
$ sudo make install
(Οι εκδόσεις
1.1.4 και
20100817 ήταν οι τρέχουσες κατά τη διάρκεια συγγραφής του παρόντος, τροποποιήστε ανάλογα)
top
Πως εντοπίζω τα Vendor & Product ID της συσκευής μου;
Μέσω της εντολής:
lsusb
Το αποτέλεσμα στην δική μου περίπτωση είναι το εξής:
Bus 001 Device 004: ID 1bbb:f000 T & A Mobile Phones
Μας ενδιαφέρει το ID, δλδ το
1bbb:f000 στην παραπάνω περίπτωση.
Vendor ID: 1bbb ή καλύτερα:
0x1bbb
Product ID: f000 ή καλύτερα:
0xf000
top
Πως δημιουργώ τους νέους udev κανόνες μέσω του usb_modeswitch;
Με την χρήση της παρακάτω εντολής, θα πρέπει όμως να είστε πολύ προσεκτικοί.
Θα πρέπει να ορίσετε τα αντίστοιχα Vendor & Product ID:
sudo usb_modeswitch -W -v 0x1bbb -p 0xf000 -V 0x1bbb -P 0xf000
Αντικαταστήστε τα 0x1bbb & 0xf000 με τα αντίστοιχα δικά σας.
top
Αυτό θα το κάνω κάθε φορά;
Όχι, χρειάζεται να γίνει μόνο μία φορά.
Εάν έχουμε έκδοση 1.1.2 ή μεγαλύτερη πρέπει να έχει δημιουργηθεί η εξής συσκευή:
/dev/gsmmodem
Εάν δεν έχει δημιουργηθεί, τότε αφαιρέστε την usb συσκευή για λίγα δευτερόλεπτα και ξανασυνδέστε την.
Για να δείτε εάν υπάρχει η παραπάνω συσκευή, γράψτε την εξής εντολή:
ls -l /dev/gsmmodem
top
Εάν το έχω συνδεδεμένο κατά την εκκίνηση;
Για να μπορεί το
udev να αναγνωρίσει την usb 3g συσκευή μας κατά την εκκίνηση του συστήματός μας, θα πρέπει να έχουμε εγκαταστήσει τους κανόνες του Usb Mode Switch μεγαλύτερης ή ίσης της έκδοσης: 20100817.
top
Πως συνδέομαι στο internet;
Από την στιγμή που είναι ένα gsm modem, η απάντηση είναι εξαιρετικά απλή: Κάνουμε μία dial σύνδεση !
Η σύνδεση με τον πάροχο γίνεται μέσω ενός πρωτοκόλλου που λέγεται P-t-P (Point to Point).
Τέτοια λογισμικά ονομάζονται dialers.
top
Πως γίνεται η σύνδεση;
Υπάρχουν αρκετοί τρόποι!
Γραφικό περιβάλλον:
Μέσω του
NetworkManager[link4] (προτεινόμενη έκδοση 0.8+).
Ένα πολύ καλό post με συγκεκριμένες ρυθμίσεις, είναι το εξής:
http://simos.info/blog/archives/1078
Μπορούμε επίσης να χρησιμοποιήσουμε και τα εξής αξιόλογα προγράμματα:
kppp[link5]
gnome-ppp[link6]
Εάν φυσικά δεν θέλουμε να χρησιμοποιήσουμε κάποιο γραφικό πρόγραμμα διαχείρισης συνδέσεων ή δικτύου,
μπορούμε πάντα να το τερματικό και την κονσόλα μας.
Δύο προγράμματα μπορούν να κάνουν αυτή την δουλειά:
a.
ppp[link7]
b.
wvdial[link8]
Ρυθμίζοντας το pppd
Το pppd όπως έχουμε προαναφέρει είναι ένας ppp dialer.
Αποτελεί μία από τις καλύτερες προτάσεις/λύσεις γιατί
Πρέπει να δημιουργήσουμε δύο αρχεία:
- /etc/ppp/peers/cosmote &
- /etc/ppp/cosmote.chat
Με το εξής περιεχόμενο:
/etc/ppp/peers/cosmote
connect "/usr/sbin/chat -v -f /etc/ppp/cosmote.chat"
noipdefault
defaultroute
/dev/gsmmodem
460800
noauth
debug
novj
usepeerdns
nodeflate
nobsdcomp
/etc/ppp/cosmote.chat
ABORT BUSY
ABORT ERROR
REPORT CONNECT
TIMEOUT 10
'' AT
OK AT+CGDCONT=16,"IP","internet"
OK ATDT*99#
Για να συνδεθούμε:
sudo pon cosmote
Για να αποσυνδεθούμε:
sudo poff cosmote
top
Τι ρυθμίσεις χρειάζονται για το wvdial:
Ρίξτε μια ματιά εδώ:
wvdial & umtsmon[link9]
top
Υπάρχει εναλλακτικός τρόπος;
Ναι, υπάρχει ένα πρόγραμμα (και μάλιστα από Έλληνα) που τα κάνει όλα:
sakis3g[link10]
Αναλαμβάνει να κάνει τα πάντα για εσάς!
top
[link2] http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html
[link3] http://www.draisberghof.de/usb_modeswitch
[link4] http://projects.gnome.org/NetworkManager
[link5] http://en.wikipedia.org/wiki/Kppp
[link6] http://en.wikipedia.org/wiki/Gnome-ppp
[link7] http://ppp.samba.org
[link8] http://alumnit.ca/wiki/index.php?page=WvDial
[link9] http://www.void.gr/kargig/blog/2009/07/08/vodafone-cosmote-3g-on-linux-wvdial-and-umtsmon/
[link10] http://www.sakis3g.org/