This article is currently available only in Greek Πριν από λίγο καιρό αγόρασα ένα πακέτο σύνδεσης Cosmote Internet On The Go, ώστε να έχω σύνδεση Internet παντού. Η μεγάλη πρόκληση ήταν να το κάνω να δουλέψει, παρά τις αντίθετες διαβεβαιώσεις του πωλητή στο κατάστημα Cosmote, με το Ubuntu Netbook Remix που έχω εγκαταστήσει εδώ και λίγο καιρό στο EeePC μου. Ενώ, θεωρητικά, ο Network Manager υποστηρίζει εγγενώς συνδέσεις 3G Internet, τα πράγματα χωλαίνουν λόγω του μη υποστηριζόμενου USB stick της Cosmote (ZTE MF636) και της εμμονής μου... να θέλω να έχω PIN στην SIM! Ο επιμένων, όμως, νικά!

Edit May 2012: Εδώ και κάνα χρόνο ή και παραπάνω το Ubuntu έχει drivers από τη μαμά του. Δεν χρειάζεται πλέον τίποτα απ'όσα αναφέρω εδώ.

Το πρόβλημα και η ιδέα για την λύση

Η πρώτη, φυσιολογική, απορία που έχει κανείς είναι γιατί δεν μπορεί απλά να βάλει το stick-άκι σε μια θύρα USB στο laptop μας που τρέχει Linux και να "παίξει" με την πρώτη. Η απάντηση είναι η ίδια τεχνολογία που επιτρέπει να το βάζουμε σε έναν υπολογιστή που τρέχει Windows και να εγκαθιστά αυτόματα τους drivers, το ZeroCD. Όλες οι συσκευές με αυτήν την τεχνολογία εμφανίζονται στο λειτουργικό σαν εξωτερικό CD-ROM μόλις τις τοποθετούμε στον υπολογιστή. Ο driver που εγκαθίσταται στα Windows από αυτό το εικονικό CD-ROM τους δίνει στην συνέχεια την δυνατότητα να "αλλάξουν" και να εμφανίζονται σαν GSM modem. Φυσικά δεν υπάρχει αντίστοιχος driver για Linux, αλλά υπάρχει το usb_modeswitch που επιτρέπει την αντίστοιχη λειτουργία στο Linux.

Επιπλέον, όλες οι λύσεις που έχουν κατά καιρό εμφανιστεί για την σύνδεση στο Internet μέσω τέτοιων stick προαπαιτούν την απενεργοποίηση του PIN. Αυτό το θεωρώ τραγικό σφάλμα, μιας και υπάρχει ογκοχρέωση, ενώ το να χαθεί το stick-άκι (ή να το "δανειστεί" κάποιος) δεν είναι διόλου απίθανο. Το PIN μπορεί, αν μη τι άλλο, να αποτρέψει ανεξέλεγκτες χρεώσεις. Ευτυχώς, υπάρχει το προγραμματάκι umtsmon το οποίο προσφέρει τι ίδιες δυνατότητες με το προγραμματάκι της Cosmote για τα Windows, ακόμη και το να στέλνεις SMS!

Τελικά, το μόνο που χρειάζεται είναι να εγκαταστήσουμε δυο προγραμματάκια και να τα ρυθμίσουμε για να συνεργάζονται αρμονικά. Ακούγεται απλό, αλλά προσοχή στις κακοτοπιές! Ο παρακάτω οδηγός θα σας βοηθήσει στην απρόσκοπτη εγκατάστασή τους και την σύνδεσή σας στο Internet. Οι οδηγίες είναι γραμμένες για το Ubuntu Linux Netbook Remix (έκδοση 9.04 "Jaunty Jackalope"), αλλά με μια μικρή προσαρμογή μπορούν να παίξουν σε οποιοαδήποτε διανομή. Έχουν δοκιμαστεί και με Ubuntu 9.04 Jaunty (πλήρης διανομή) αλλά και με το Mandriva Linux 2009.1.

Δοκιμή αναγνώρισης συσκευής

Το πρώτο βήμα είναι να δοκιμάσουμε αν η συσκευή αναγνωρίζεται από το Linux σωστά. Την τοποθετούμε σε μια θύρα USB, ανοίγουμε ένα παράθυρο τερματικού και μετά από 5-10 δευτερόλεπτα (μόλις ανάψει το πράσινο φωτάκι στην συσκευή) δίνουμε:

sudo lsusb

Η μια γραμμή από την έξοδο της εντολής πρέπει να γράφει κάτι σαν:

Bus 001 Device 008: ID 19d2:2000

Το σημαντικό κομμάτι είναι το ID 19d2:2000 που πάει να πει ότι βλέπει την συσκευή σαν εξωτερικό CD-ROM. Αν ο κωδικός αυτός είναι 19d2:0031 τότε το επόμενο βήμα δεν απαιτείται και μπορείτε να το παρακάμψετε.

Εγκατάσταση usb_modeswitch

Σε ένα παράθυρο τερματικού δίνουμε:

wget http://www.draisberghof.de/usb_modeswitch/usb_modeswitch-1.0.5.tar.bz2 
tar xjf usb_modeswitch-1.0.5.tar.bz2 
cd usb_modeswitch-1.0.5 
sudo make install 
	sudo chmod u+s /usr/sbin/usb_modeswitch

Στην συνέχεια, θα μεταβάλλουμε το αρχείο ρυθμίσεών του δίνοντας sudo gedit /etc/usb_modeswitch.conf και αντικαθιστώντας όλα τα περιεχόμενα του αρχείου με τα παρακάτω:

########################################################
# ZTE MF628+ (tested version from Telia / Sweden) 
# ZTE MF626 
# ZTE MF633 
# ZTE MF636 (aka "Telstra / BigPond 7.2 Mobile Card") 
# 
# Contributor: Joakim Wennergren
DefaultVendor= 0x19d2 DefaultProduct= 0x2000
TargetVendor= 0x19d2 TargetProduct= 0x0031
# only for reference and 0.x versions 
MessageEndpoint=0x01
MessageContent="55534243123456782000000080000c85010101180101010101000000000000"
# if that command doesn't work, try the other ("eject")
;MessageContent="5553424312345678000000000000061b000000030000000000000000000000"

Το επόμενο βήμα είναι να ενεργοποιήσουμε την αυτόματη μεταγωγή της συσκευής σε κατάσταση GSM modem κάθ φορά που την συνδέουμε. Σε διαφορετική περίπτωση θα έχουμε σημαντικό πρόβλημα για να συνδεθούμε. Δίνουμε sudo gedit /etc/udev/rules.d/50-ZTE.rules και εισάγουμε τα παρακάτω στο αρχείο:

SUBSYSTEM=="usb", SYSFS{idProduct}=="2000", SYSFS{idVendor}=="19d2", RUN+="/usr/sbin/usb_modeswitch" 
SUBSYSTEM=="usb", SYSFS{idProduct}=="0031", SYSFS{idVendor}=="19d2", RUN+="/sbin/modprobe usbserial vendor=0x19d2 product=0x0031", MODE="666", GROUP="dialout"

Τέλος, πρέπει να ενημερώσουμε το υποσύστημα υλικού ότι η συσκευή που ορίσαμε είναι USB modem. Γι' αυτό δίνουμε στο τερματικό

sudo gedit /usr/share/hal/fdi/information/20thirdparty/20-zte.fdi

και εισάγουμε τα παρακάτω στο αρχείο:

<?xml version="1.0" encoding="UTF-8"?> 
<deviceinfo version="0.2"> 
	<device> 
		<match key="info.category" string="serial">
			<match key="@info.parent:usb.vendor_id" int="0x19d2"> 
			<!-- ZTE MF638 HSDPA USB dongle --> 
				<match key="@info.parent:usb.product_id" int="0x0030"> 
					<match key="@info.parent:usb.interface.number" int="3"> 
						<append key="modem.command_sets" type="strlist">GSM-07.07</append> 
						<append key="modem.command_sets" type="strlist">GSM-07.05</append>
					</match> 
				</match> 
			</match> 
		</match> 
	</device> 
</deviceinfo>

Για να ενεργοποιηθούν οι αλλαγές κάνουμε επανεκκίνηση. Μόλις ξαναξεκινήσει ανοίγουμε και πάλι ένα τερματικό και δίνουμε την εντολή sudo lsusb. Μια από τις γραμμές πρέπει να μοιάζει κάπως έτσι:

Bus 001 Device 008: ID 19d2:0031

Το σημαντικό κομμάτι είναι το ID 19d2:0031 που πάει να πει ότι βλέπει την συσκευή σαν GSM modem. Αν δεν το βλέπετε αυτό, δοκιμάστε να κάνετε επανεκίννηση με το stick της Cosmote ήδη τοποθετημένο στην θύρα USB και ελέγξτε ότι έχετε ακολουθήσει τις παραπάνω οδηγίες προσεκτικά.

Εγκατάσταση umtsmon

Με τα παρακάτω θα εγκαταστήσουμε το umtsmon που αναπληρώνει την εφαρμογή - panel - της Cosmote για σύνδεση στο Internet. Ανοίγουμε ένα τερματικό και δίνουμε τα παρακάτω:

apt-get install qt3-dev-tools libusb-dev g++ 
wget http://downloads.sourceforge.net/project/umtsmon/umtsmon/umtsmon-0.9/umtsmon-0.9.src.tar.gz?use_mirror=garr 
tar xvzf umtsmon-0.9.src.tar.gz 
cd umtsmon-0.9 
make lupdate umtsmon.pro lrelease umtsmon.pro 
sudo mkdir -p /usr/share/umtsmon/translations/ 
sudo cp i18n/*.qm /usr/share/umtsmon/translations/ 
sudo cp umtsmon /usr/local/bin 
sudo cp images/128/umtsmon-128x128.png /usr/share/icons/

Παρ'όλο που εγκαταστήσαμε το umtsmon, η ρύθμισή του δεν έχει ολοκληρωθεί ακόμη! Ο λόγος είναι λίγο παλαβός... Εξορισμού, το umtsmon προσπαθεί να ανιχνεύσει την σωστή σειριακή θύρα USB στην οποία "ακούει" το GSM modem μας. Δυστυχώς, αυτό ακούει στην δεύτερη σειριακή θύρα που έχει δημιουργηθεί, με αποτέλεσμα ένα από τα εξής δυσάρεστα:

  • Να κολλήσει ο υπολογιστής κατά την εκκίνηση της εφαρμογής
  • Να μην μπορεί να ανιχνεύσει την συσκευή
  • Να ανιχνεύσει την συσκευή, να πάμε να συνδεθούμε και να μην συνδέεται με τίποτα
  • Να ανιχνεύσει την συσκευή, να πάμε να συνδεθούμε και να κολλάει ο υπολογιστής

Ε, αυτή είναι η κακοτοπιά που έλεγα στην αρχή! Πρέπει να φτιάξουμε έναν εκκινητή εφαρμογής που να υποχρεώνει το umtsmon να χρησιμοποιεί την τελευταία σειριακή θύρα που παρέχει το stick. Γι' αυτό, χωρίς να αλλάξουμε κατάλογο δίνουμε gedit umtsmon.desktop> και βρίσκουμε την γραμμή: Exec=umtsmon Την αλλάζουμε σε: Exec=umtsmon -s /dev/ttyUSB1 Σώζουμε το αρχείο και επιστρέφοντας στο τερματικό δίνουμε: sudo cp umtsmon.desktop /usr/share/applications/

Τώρα μπορούμε να πάμε στο μενού εφαρμογών, στην κατηγορία Διαδίκτυο, και να εκκινήσουμε το umtsmon.

Συνδέουμε το stick της Cosmote και περιμένουμε περίπου 15-20 δευτερόλεπτα (τόσο θέλει για να ξεκινήσει, να αλλάξει σε κατάσταση GSM modem και να ανιχνεύσει τα δίκτυα κινητής). Αν όλα πήγαν καλά, ξεκινώντας το mtsmon θα ζητήσει το PIN. Μετά την εισαγωγή του, αν φυσικά υπάρχει κάλυψη από το 3G δίκτυο, το φωτάκι θα γίνει μπλε και στο παράθυρο του umtsmon θα δούμε να γράφει C-OTE. Μπράβο, είμαστε σχεδόν έτοιμοι.

Το προτελευταίο βήμα είναι η δημιουργία ενός προφίλ σύνδεσης. Αυτό χρειάζεται να γίνει μια και μόνο φορά. Πατάμε στο μενού Connection, Manage profiles και στο παραθυράκι που εμφανίζεται επιλέγουμε Add Profile. Δϊνουμε ότι Profile name θέλουμε. Προσοχή, δέχεται μόνο λατινικούς χαρακτήρες (πεζούς και κεφαλαίους) και αριθμούς. Κενά, παύλες κλπ δεν είναι αποδεκτά. Στην συνέχεια μας επιτρέφει στην προηγούμενη οθόνη. Κάνουμε κλικ στο νέο προφίλ που δημιουργήσαμε και επιλέγουμε Edit Profile. Η μόνη αλλαγή που απαιτείται είναι η αλλαγή του APN σε internet. Πατάμε Save και μετά OK. Αυτό ήταν.

Κάθε φορά που θέλουμε να μπούμε στο Internet θα επιλέγουμε το εικονίδιο με τους συνδεδεμένους υπολογιστές στην αρχική οθόνη του umtsmon.

Προσοχή: Ο Firefox θα νομίζει ότι είναι εκτός σύνδεσης και δεν θα εμφανίζει καμία σελίδα. Για να το προσπεράσουμε αυτό, μετά από κάθε σύνδεση στο Cosmote Internet On The Go με το ανοίγουμε τον Firefox θα επιλέγουμε Αρχείο και θα ξετικάρουμε το "Εργασία χωρίς σύνδεση".

No comments