Πως να χρησιμοποιήσετε το bluetooth κινητό σας με το Sakis3G
| Σημαντικό: Αυτό το άρθρο παρέχει σύνδεσμους και πληροφορίες σχετικά με μία παλιά έκδοση του Sakis3G script. Η σελίδα είναι διαθέσιμη μόνο για ιστορικούς σκοπούς. Παρακαλώ επισκευθείτε την τοποθεσία www.sakis3g.org για την τελευταία έκδοση του Sakis3G script. |
This post exists English too.
Το Sakis3G script μπορεί στην πράξη να χρησιμοποιήσει οποιοδήποτε 3G modem, και όχι μόνο USB modems. Ωραία. Πολλά από τα bluetooth κινητά τηλέφωνά μας επίσης προσφέρουν το modem τους μέσω bluetooth. Θα ήταν όμορφο να παρέχουμε 3G internet στο laptop μας ενώ είμαστε στο δρόμο, έχοντας καταχωνιασμένο το κινητό μας τηλέφωνο σε μια τσέπη.
Παρακολουθήστε το παρακάτω video (δείτε το στο YouTube) για να προετοιμαστείτε ψυχολογικά για την συνέχεια του οδηγού.
Περιεχόμενα
- Γίνετε root
- Εγκατάσταση εξαρτήσεων
- Ελέγξτε τις ικανότητες του τηλεφώνου
- Ρυθμίστε τη σύνδεση bluetooth
- Εγκατάσταση του Sakis3G
- Δοκιμή
- Απεγκατάσταση
Γίνετε root
Όπως και με τις περισσότερες διαδικασίες εγκατάστασης, χρειάζεστε ένα τερματικό με δικαιώματα διαχειριστή (root terminal). Εαν χρησιμοποιείτε sudo-based διανομή (όπως το Ubuntu) χρειάζεται να δώσετε "sudo bash". Εαν δεν χρησιμοποιείτε sudo-based διανομή (όπως το Debian), χρειάζεται να δώσετε "su -".
Sudo-based
$ sudo bash
Password:
#
Normal
$ su -
Password:
#
Εγκατάσταση εξαρτήσεων
Τα απαιτούμενα πακέτα, όπως παρουσιάζονται παρακάτω, αναφέρονται σε ονομάτα πακέτων για το Debian. Οι χρήστες άλλων διανομών πρέπει να εντοπίσουν τα ονόματα των πακέτων για την διανομή τους. Εαν χρησιμοποιείτε μια μοντέρνα διανομή με γραφικό περιβάλλον, είναι πολύ πιθανό πως τα απαιτούμενα πακέτα είναι ήδη εγκατεστημένα.
- Χρειαζόμαστε τα "rfcomm", "hcitool" και "sdptool" για να ρυθμίσουμε και τελικά να επιτύχουμε σύνδεση με το κινητό τηλέφωνο. Όλα παρέχονται από το πακέτο bluez-utils.
# apt-get install bluez-utils
- Εαν ο προσαρμογέας bluetooth που έχετε, βασίζεται σε Broadcom BCM203x chipset, χρειάζεται να ενεργοποιήσετε το non-free αποθετήριο και να εγκαταστήσετε το πακέτο bluez-firmware.
# apt-get install bluez-firmware
- Χρειάζεται επίσης να εγκαταστήσετε το πρόγραμμα "chat". Σε Debian συστήματα, το "chat" είναι διαθέσιμο, μαζί με τον pppd, από το πακέτο ppp:
# apt-get install ppp
Ελέγξτε τις ικανότητες του τηλεφώνου
Αυτό είναι το "σκληρότερο" βήμα. Κάποιοι από εμάς θα απογοητευτούν όταν ανακαλύψουν πως το κινητό τους τηλέφωνο δεν διαθέτει το modem του μέσω bluetooth. Ίσως να μπορούν ακόμα να χρησιμοποιήσουν το modem του κινητού τηλεφώνου μέσω απευθείας USB σύνδεσης (κάποια τηλέφωνα προσφέρουν επιλογές στο μενού τους για την διαφοροποίηση της συμπεριφοράς τους κατά την USB σύνδεση, εναλλάσσοντας από mass-storage σε modem), αλλά αυτός ο τρόπος σύνδεσης δεν αποτελεί αντικείμενο του παρόντος οδηγού.
Ενεργοποιήστε το bluetooth στο κινητό σας τηλέφωνο και σιγουρευτείτε πως είναι "ανιχνέυσιμο" (discoverable). Χρησιμοποιήστε το τερματικό διαχειριστή για να ανακαλύψετε την bluetooth διεύθυνση του τηλεφώνου σας:
# hcitool scan
Scanning ...
00:25:47:59:00:00 Myphone
#
Τώρα που γνωρίζετε την bluetooth διεύθυνση του τηλεφώνου σας (η δική μου είναι 00:25:47:59:00:00, θα πρέπει να τροποποιείτε κάθε εμφάνισή της με την δική σας διεύθυνση), μπορείτε να ελέγξετε τις δυνατότητές του:
# sdptool browse 00:25:47:59:00:00
Αυτό θα προκαλέσει τον κατάλογο των διαθέσιμων υπηρεσιών του τηλεφώνου σας, να εμφανιστούν στο τερματικό σας. Αναλόγως του μοντέλου του κινητού, αυτός ο κατάλογος μπορεί να είναι σύντομος ή αναπάντεχα μεγάλος (ένας μεγάλος κατάλογος υποδεικνύει πως πρόκειτε για τηλέφωνο με πολλά χαρακτηριστικά). Τώρα πρέπει να ελέγξετε την έξοδο προς ανακάλυψη μίας (ή περισσοτέρων) με τις παρακάτω κλάσεις:
- Dialup networking
- Serial Port
Εαν περισσότερες της μίας υπηρεσίες εμφανίστηκαν, δοκιμάστε τις υποψήφιες με την σειρά που εμφανίζονται στον παραπάνω κατάλογο (καί όχι με την σειρά που εμφανίζονται στην έξοδο του "sdptool"). Η παραπάνω λίστα είναι ταξινομημένη με τη σειρά που πρέπει να τις ελέγξετε. Κατόπιν, πρέπει να επαναλάβετε τα παρακάτω βήματα, μέχρι να εντοπίσετε την καλύτερη υποψήφια υπηρεσία για χρήση.
Αυτή είναι η σωστή υπηρεσία για το δικό μου τηλέφωνο:
Service Name: Dial-up networking
Service RecHandle: 0x10003
Service Class ID List:
"Dialup Networking" (0x1103)
"Generic Networking" (0x1201)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100
Σημειώστε το RFCOMM κανάλι από το οποίο παρέχεται η υπηρεσία (στο δικό μου τηλέφωνο παρέχεται από το κανάλι #1). Τώρα καλέστε το "rfcomm" πρόγραμμα, χωρίς ορίσματα, για να ανακαλύψετε την επόμενη διαθέσιμη συσκευή (σε περίπτωση που υπάρχουν ήδη άλλες συσκευές δεσμευμένες):
# rfcomm
rfcomm0: 00:1C:88:12:00:00 channel 1 clean
rfcomm1: 00:12:6F:02:00:00 channel 1 clean
#
Στην περίπτωσή μου, η επόμενη διαθέσιμη συσκευή είναι η "rfcomm2". Εάν το "rfcomm" δεν επέστρεψε κάτι, τότε η επόμενη συσκευή είναι προφανώς η "rfcomm0". Τώρα θα προσπαθήσουμε να δεσμευτούμε με αυτή τη συσκευή (σιγουρευτείτε πως αλλάξατε με την δική σας bluetooth διεύθυνση και RFCOMM κανάλι):
Η σύνταξη είναι: rfcomm bind <επόμενος διαθέσιμος αριθμός συσκευής> <bluetooth διεύθυνση> <rfcomm κανάλι>
# rfcomm bind 2 00:25:47:59:00:00 1
# rfcomm
rfcomm0: 00:1C:88:12:00:00 channel 1 clean
rfcomm1: 00:12:6F:02:00:00 channel 1 clean
rfcomm2: 00:25:47:59:00:00 channel 1 clean
# ls -l /dev/rfcomm*
crw-rw---- 1 root dialout 216, 0 2010-02-07 14:53 /dev/rfcomm0
crw-rw---- 1 root dialout 216, 1 2010-02-07 14:53 /dev/rfcomm1
crw-rw---- 1 root dialout 216, 2 2010-02-11 12:28 /dev/rfcomm2
#
Εαν η αντίστοιχη συσκευή (/dev/rfcomm2 στην περίπτωσή μου) δεν εμφανίστηκε στον /dev/ κατάλογο, φτιάξτε την χρησιμοποιώντας (όπου Χ είναι ο κατάλληλος για εσάς αριθμός):
# mknod /dev/rfcommX c 216 X (π.χ. mknod /dev/rfcomm0 c 216 0)
# chown root:dialout /dev/rfcommX (π.χ. chown root:dialout /dev/rfcomm0)
# chmod 660 /dev/rfcommX (π.χ. chmod 660 /dev/rfcomm0)
Όλα έχουν πλέον ρυθμιστεί για να κάνουμε την δοκιμή. Βεβαιωθείτε, μία ακόμα φορά, πως το τηλέφωνό σας έχει ακόμα ενεργό το bluetooth του (δεν είναι πλέον αναγκαίο να είναι και ανιχνεύσιμο), και δώστε την παρακάτω εντολή (σε αυτό το σημείο, το τηλέφωνο θα ζητήσει την άδειά σας για να επιτρέψει την σύνδεση):
# chat -e ABORT ERROR '' ATZ OK ATI OK "AT+CGSN=?" OK AT OK "AT+CGSN" OK AT OK >> /dev/rfcomm2 < /dev/rfcomm2
ATZ
OK
ATI
Nokia
OK
AT+CGSN=?
OK
AT
OK
AT+CGSN
35xxxxxxxxxxxxx
OK
AT
OK
#
Σας προτείνω να χρησιμοποιήσετε την παρούσα ευκαιρία για να θέσετε τον υπολογιστή σας σαν "αξιόπιστη" (trusted) συσκευή στο κινητό σας τηλέφωνο. Αυτό θα σας απαλλάξει από το να επιβεβαιώνετε κάθε φορά την σύνδεση με τον υπολογιστή.
Εαν υπήρξε ανταπόκριση, είναι καλό. Εαν επιπλέον λάβατε και "+CGSM" μετά την "ATI" είναι ακόμα καλύτερο (το δικό μου τηλέφωνο δεν ανέφερε σχετικά). Εάν λάβατε απάντηση "OK" μετά την "AT+CGSN=?", είναι επίσης "καλύτερο" (η απάντηση στο AT+CGSN αντιστοιχεί στον αριθμό IMEI του τηλεφώνου σας).
Ανεξάρτητα αν λάβατε απάντηση από το τηλέφωνο κατά την προηγούμενη προσπάθεια, πρέπει τώρα να απελευθερώσουμε την δεσμευμένη συσκευή:
# rfcomm release 2 (Βεβαιωθείτε πως αλλάξατε το "2" με τον δικό σας αριθμό συσκευής)
#
Τώρα προχωρήστε ως εξής:
- Εαν λάβατε απάντηση από το τηλέφωνο προηγουμένως, τότε έχετε εντοπίσει το σωστό RFCOMM κανάλι. Μπορείτε πλέον να προχωρήσετε στο επόμενο βήμα.
- Εαν δεν υπήρξε ανταπόκριση από το τηλέφωνο, χρειάζεται να δοκιμάσετε με το RFCOMM κανάλι τις επόμενης υποψήφιας υπηρεσίας. Δοκιμάστε "rfcomm bind" για το κανάλι της και επαναλάβεται την διαδικασία.
- Εαν δεν υπάρχει ανταπόκριση από το τηλέφωνο, ανεξάρτητα του χρησιμοποιούμενου RFCOMM καναλιού, τότε μάλλον το τηλέφωνό σας δεν προσφέρει τρόπο πρόσβασης στο modem του. Κρίμα.
Ρυθμίστε τη σύνδεση bluetooth
Ακολουθώντας τα προηγούμενα βήματα, έχουμε ήδη συλλέξει την bluetooth διεύθυνση του κινητού τηλεφώνου, το RFCOMM κανάλι του modem και τον αριθμό της επόμενης διαθέσιμης συσκευής. Σε αυτό το βήμα θα ρυθμίσουμε μόνιμα την σύνδεση, έτσι ώστε να μην απαιτείται το "rfcomm bind" μετά από κάθε επανεκκίνηση του υπολογιστή. Για αυτό το λόγο, χρειάζεται να προσθέσουμε μία νέα συσκευή στο αρχείο /etc/bluetooth/rfcomm.conf. Ανοίξτε το αρχείο και προσθέστε, στο τέλος του, το δικό σας αντίστοιχο της επόμενης παραγράφου:
rfcomm2 {
bind yes;
device 00:25:47:59:00:00;
channel 1;
comment "My phone";
}
ή, χρησιμοποιήστε την επόμενη "μακρά" εντολή (τροποποιώντας τις τιμές που εμφανίζονται με έντονο κείμενο):
# printf "\nrfcomm%d {\n\tbind yes;\n\tdevice %s;\n\tchanned %d;\n\tcomment \"%s\";\n}\n\n" "2" "00:25:47:59:00:00" "1" "My phone" >> "/etc/bluetooth/rfcomm.conf"
Καλού κακού, κάνετε και επανεκκίνηση το bluetooth:
# /etc/init.d/bluetooth restart
Εγκατάσταση του Sakis3G
Τώρα πρέπει να εγκαταστήσετε το Sakis3G script. Λεπτομερείς οδηγίες για εγκατάσταση είναι διαθέσιμες εδώ. Για αυτόν τον οδηγό χρειαζόμαστε επιπλέον μόνο το πακέτο sharutils:
# apt-get install sharutils
# cd /usr/bin
# wget 'http://sakis.tel4u.gr/sakis3g/legacy/sakis3g.gz'
# gunzip sakis3g.gz
# chmod +x sakis3g
Εξ ορισμού, το Sakis3G script δεν χρησιμοποιεί bluetooth συσκευές: πρέπει να το ρυθμίσουμε κατάλληλα. Ανοίξτε το αρχείο /usr/bin/sakis3g και τροποποιήστε την μεταβλητή BLUETOOTH_PHONE_rfcomm, ώστε να περιέχει την κατάλληλη rfcomm συσκευή, ή, χρησιμοποιήστε την παρακάτω "μακρά" εντολή (αλλάζοντας το rfcomm2 με την δική σας συσκευή):
# vi -c ":1,$ s/^#BLUETOOTH_PHONE_rfcomm=\(.*\)$/BLUETOOTH_PHONE_rfcomm=\\/dev\\/rfcomm2/g" -c ":wq" /usr/bin/sakis3g
Μοιάζει πως έχουμε πλέον ολοκληρώσει την ρύθμιση. Μένει ένα ακόμα βήμα: η δοκιμή:
Δοκιμή
Μπορούμε πλέον να δοκιμάσουμε όσα έχουμε κάνει μέχρι στιγμής. Επιστρέψτε στο τερματικό και δώστε:
# /usr/bin/sakis3g connect
Εαν η εντολή επέστρεψε χωρίς σφάλμα (δηλαδή, δεν επέστρεψε κάτι), είστε πλέον συνδεδεμένοι. Δοκιμάστε να κάνετε ping κάποιον προορισμό ή να ανοίξετε μία ιστοσελίδα (ενδεχομένως ο Firefox να είναι σε Offline mode, File->Work Offline για να το απενεργοποιήσετε). Εαν η εντολή επέστρεψε κάποιο σφάλμα (και το ίδιο το σφάλμα δεν είναι επαρκώς περιγραφικό):
- Δείτε αυτή τη σελίδα εάν επιστράφηκε "Unknown operator XXXXX".
- Διαβάστε εδώ και εδώ εάν το δίκτυό σας προσφέρει πολλά APNs (Access Point Names).
- Δοκιμάστε να εκτελέσετε το Sakis3G script χωρίς το όρισμα "connect", σε περίπτωση που το γραφικό περιβάλλον μπορεί να σας βοηθήσει περισσότερο να συνδεθείτε. Κατόπιν, μπορείτε να αντιγράψετε την συμπεριφορά του γραφικού περιβάλλοντος χρησιμοποιώντας μεταβλητές στη γραμμή εντολών.
- Εαν τίποτα από τα παραπάνω δεν βοήθησε, ίσως σας βοηθήσει η επίλυση προβλημάτων.
Εαν εξακολουθείτε να μην μπορείτε να συνδεθείτε, απεγκαταστήστε ακολουθώντας το επόμενο βήμα. Εαν τελικά συνδέεστε αξιόπιστα χρησιμοποιώντας την εντολή "sakis3g connect", σαν χρήστης αυτή τη φορά, δώστε την παρακάτω εντολή (ενώ παραμένετε συνδεδεμένοι):
$ /usr/bin/sakis3g desktop
Αυτό θα δημιουργήσει μία συντόμευση στην επιφάνεια εργασίας για καθημερινή χρήση.
Απεγκατάσταση
Ειλικρινά λυπάμαι εαν το Sakis3G script δεν κατάφερε να σας συνδέσει. Μπορείτε αν θέλετε να επικοινωνήσετε μαζί μου μέσω email (η email διεύθυνσή μου περιλαμβάνεται μεταξύ των πρώτων 10 γραμμών του script) ώστε να λύσουμε από κοινού το πρόβλημα. Εαν είστε αποφασισμένοι να συνεχίσετε με την απεγκατάσταση, ακολουθήστε τα παρακάτω βήματα:
- Διαγράψτε το Sakis3G script.
# rm -f /usr/bin/sakis3g
- Απεγκαταστήστε όσα πακέτα προσθέσατε μέχρι στιγμής (και δεν προϋπήρχαν).
- Αφαιρέστε την παράγραφο που προσθέσαμε στο /etc/bluetooth/rfcomm.conf.