Aug
18
2010
3g on Linux, Cosmote on the go

Απλά, όμορφα και ωραία. 10 λεπτά απομένουν μέχρι να έχετε το 3g έτοιμο στο linux-άκι σας.

Βήμα 1ο:

Η παρακάτω εντολή είναι για το Archlinux, προσαρμόστε την ανάλογα (δλδ εγκαταστήστε ArchLinux):

sudo pacman -S ppp usb_modeswitch

Βήμα 2ο:

Βάλτε το usb στον υπολογιστή/laptop σας.
Είναι σχεδόν σίγουρο, ότι θα το δει σαν block device (cd ή δίσκο).

Πληκτρολογήστε την εντολή: dmesg για να δείτε παραπάνω πληροφορίες.

Με την εντολή lsusb θα βρείτε το vendor και product id
Δείτε το αποτέλεσμα της δικής μου εντολής:

Bus 001 Device 004: ID 1bbb:f000 T & A Mobile Phones

Vendor ID: 1bbb ή καλύτερα 0×1bbb
Product ID: f000 ή καλύτερα 0xf000

Βήμα 3ο:

Τώρα πρέπει να μετατρέψουμε το usb-stick από block device σε modem (serial) device.
Πριν προχωρήσετε όμως, επιβεβαιώστε με την εντολή

ls -l /dev/tty* | grep -i usb

η διανομή σας, δεν το έχει ήδη κάνει (μπορεί hackers να το έχουν ήδη φτιάξει!)

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

sudo usb_modeswitch -W -v 0x1bbb -p 0xf000 -V 0x1bbb -P 0xf000

Βήμα 4ο:

Αφαιρέστε το usb-stick, μετρήστε μέχρι το 10 δυνατά (ναι - ναι πρέπει να μετρήσετε δυνατά) και ξανα-βάλτε το στον υπολογιστή/laptop σας.

Τώρα με την εξής εντολή:

ls -l /dev/tty* | grep -i usb

θα πρέπει να δείτε τις νέες συσκευές!

Βήμα 5ο:

Τώρα μένει απλά να ρυθμίσετε το ppp.
Πως γίνεται αυτό ρωτάτε; Όπως όλα τα πράγματα στο linux, εύκολα !

Δύο αρχεία πρέπει να δημιουργήσετε:

0001 : /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

Μεγάλη προσοχή στην 4η γραμμή που περιγράφει το device (σε εμένα είναι το /dev/ttyUSB2)

0010 : Και τώρα είμαστε έτοιμοι, να δημιουργήσουμε το 2ο αρχείο μας: /etc/ppp/cosmote.chat

ABORT BUSY
ABORT ERROR
REPORT CONNECT
TIMEOUT 10
‘’ AT
OK AT+CGDCONT=16,”IP”,”internet”
OK ATDT*99#

Βήμα 6ο:

Εάν έχετε φτάσει μέχρι εδώ, θα αναρωτιέστε ” Είναι δυνατόν να είναι τόσο μα τόσο απλά τα πράγματα στο linux ? “

Μα ΝΑΙ, είναι τόσο απλά κι εύκολα.

Και μάλιστα είστε σε θέση να περιηγηθείτε στο internet.

Αρκεί να πληκτρολογήστε την εξής εντολή:

sudo pon cosmote

Κι ανοίξτε τον αγαπημένο σας περιηγητή διαδικτύου (εννοείτε ότι μιλάμε για τον midori

Κι όταν θέλετε να σταματήσετε το 3g:

sudo poff cosmote
  1. Avatar di Σίμος Σίμος

    Wednesday, August 18, 2010 - 08:01:27

    Θα έπρεπε να λειτουργεί αυτόματα δίχως επιπλέον ρυθμίσεις.
    Τι GUI χρησιμοποιείς;

    Αν μπορείς να δοκιμάσεις με GNOME, μπορείς να επιβεβαιώσεις ότι το
    http://simos.info/blog/archives/1078
    λειτουργεί; Αν δεν λειτουργεί, τι χρειάζεται να αλλάξεις από τις ρυθμίσεις;

  2. Avatar di ebal ebal

    Wednesday, August 18, 2010 - 08:19:07

    Χρησιμοποιώ XFCE & ArchLinux.
    Χωρίς περιττές εφαρμογές ;)

    btw, ωραίο post !

  3. Avatar di stoilis stoilis

    Wednesday, August 18, 2010 - 08:56:11

    Χειροκίνητο PPP configuration για σύνδεση dial-up στο internet, εν έτη 2010; Τρελός θα είσαι… Πόνεσε το μυαλό μου μόνο που τα ξαναθυμήθηκα…

    Στείλε μου τις συντεταγμένες της σπηλιάς που μένεις, να σου φέρω ένα χαλάκι να κάθεσαι, να μην πουντιάσεις…

  4. Avatar di Kostas Boukouvalas Kostas Boukouvalas

    Wednesday, August 18, 2010 - 10:00:50

    Αυτό είναι τρελό για το εφαρμόσει κάποιος, στο Gnome με το που το θα συνδέσεις οχι usb stick αλλά το ίδιο το κινητό με usb καλώδιο ή μέσω bluetooth και κάνεις τις ρυθμίσεις στο Network Manager θα αρχίσει να τρέχει.

    Βασικά για Cosmote μπορώ να πω οτι με usb stick μοναχού από το Αγ. Όρος δε χρειάστηκαν καν ρυθμίσεις. Μόνο να μου πει το password το οποίο το ζήτησε ένα (java;) προγραμματίδιο ενσωματωμένο στο stick.

    Αλλά το post σου είναι σωστό και χρήσιμο για να ξέρει κάποιος πως δουλεύει αυτό το πράγμα. Το οτι εμείς ξέρουμε “αλλά πλέον γίνεται αυτόματα” δεν έχει καμία σημασία. Πρέπει πάντα να εξηγείται η εξέλιξη στην επόμενη γενιά για να αποφευχθεί ο κύκλος της βλακείας.

  5. Avatar di Kostas Boukouvalas Kostas Boukouvalas

    Wednesday, August 18, 2010 - 10:04:54

    …και φυσικά μου δίνεις την ευκαιρία να στηλιτεύσω τις εταιρείες που δεν πληροφορούν τους χρήστες του Mobile Internet πως δε χρειάζεται να αγοράσουν usb stick εφ’ όσον το κινητό τους υποστηρίζει τη γενιά προτύπων 3G.

    Αλλά τα €35 είναι €35 σωστά; ;-)

  6. Avatar di kargig kargig

    Wednesday, August 18, 2010 - 11:44:49

    Στο GNOME δουλεύει “αυτόματα” όταν το πακέτο usb_modeswitch έχει περασμένους του κανόνες για τα USB_IDs (vendor/product) του συγκεκριμένου USB dongle που χρησιμοποιεί κάποιος. Αν δεν τα έχει (είναι καινούργιο/διαφορετικό hardware revision) τότε την έκατσε την βάρκα και θα περιμένει “να κάνει update η διανομή του”…όταν και όποτε. Οπότε, για να το ξεκαθαρίσουμε το θέμα, δεν δίνει το GNOME την λύση αλλά ένα τρίτο πακέτο, το usb_modeswitch. Και το Network Manager χωρίς το usb_modeswitch δεν μπορεί να κάνει και πολλά για το συγκεκριμένο θέμα.

    Μια άλλη λύση σε αυτή την περίπτωση (unrecognized usb dongle) είναι να φτιάξει κάποιος κανόνες για το usb_modeswitch (ουσιαστικά udev κανόνες δηλαδή) ώστε να βλέπει και αυτά τα νέα IDs το λειτουργικό και να γυρνάει το mode του dongle από storage (και) σε serial control interface.

    Επίσης, για να κάνουν οι κατασκευαστές ακόμα πιο περίπλοκο το θέμα, δεν έχουν όλα τα usb dongles το ίδιο control tty. Κάποια έχουν το /dev/ttyUSB0 άλλα το /dev/ttyUSB1 και άλλα το /dev/ttyUSB2…το ποιό είναι το σωστό κάθε φορά (σε κάθε usb dongle) είναι θέμα trial and error.

    Το αν το λειτουργικό βλέπει ή όχι ένα USB stick δεν έχει παντελώς καμία σχέση με το Window Manager/Desktop Environment που χρησιμοποιεί κάποιος.

    Υ.Γ. το post του Σίμου απλά δηλώνει τα APNs των Ελληνικών ISPs, δεν είναι σε καμία περίπτωση λύση αν το OS δεν βλέπει το device “σωστά”. Είναι το 2ο βήμα που χρειάζεται για να συνδεθεί κάποιος (αυτό που ο Βαγγέλης το κάνει με το pppd δηλαδή χειροκίνητα)

  7. Avatar di Σίμος Σίμος

    Wednesday, August 18, 2010 - 15:00:45

    @kargig: Το κομμάτι που κάνει το NetworkManager/GNOME είναι να γνωρίζει τι ρυθμίσεις σύνδεσεις θέλουν οι πάροχοι στην Ελλάδα ώστε να μη χρειάζεται να τα βάλει ο χρήστης με το χέρι. Αν υπάρχει κάτι που πρέπει να διορθωθεί εκεί, θα ήθελα να το ξέρω, και έχω το ενδιαφέρον να το φτιάξω στο αποθετήριο.

    Πιστεύω ότι μπορείς να αναλάβεις να διαπιστώσεις αν το USB ID της συσκευής είναι ήδη καταχωρημένο στο αντίστοιχο αποθετήριο. Αν δεν υπάρχει, κάνε τις απαραίτητες ενέργειες για να μπει.

  8. Avatar di kargig kargig

    Wednesday, August 18, 2010 - 16:54:16

    @Σίμος: όχι δεν υπάρχει κάτι παραπάνω να κάνεις εσύ. Το κομμάτι του NetworkManager είναι αυτό που έχεις ήδη φτιάξει. Τα APNs/user-pass/dns settings χρειάζεται ο NetworkManager.
    Περισσότερα στοιχεία για την διαδικασία υπάρχουν στην σελίδα του usb_modeswitch, όπου και αναφέρει κάποια προβλήματα που εμφανίζονται με το NetworkManager.

    Επίσης αναφέρει, με αρκετά καλά λόγια, και ένα καινούργιο σχετικά εργαλείο, το Sakis3G, φτιαγμένο (προφανώς από το ονομά του)…από Έλληνα. Περισσότερα στο http://www.sakis3g.org

  9. Avatar di Σίμος Σίμος

    Thursday, August 19, 2010 - 09:35:06

    @kargig: Αυτό που χρειάζεται να γίνει είναι να επιβεβαιωθεί ότι οι συσκευές USB 3G που κυκλοφορούν στην Ελλάδα λειτουργούν στο Linux άμεσα, δίχως να χρειάζεται να εγκαταστήσει κάποιος ένα τρίτο πακέτο ή να χρειάζεται εργαλεία όπως το sakis3g.

    Το Linux χρησιμοποιεί το υποσύστημα udev για να εκτελέσει ειδικές εντολές όταν συνδέουμε συσκευές (hotplugging). Μπορείς να δεις στο /lib/udev/rules.d/61-* παραδείγματα όπου το σύστημα εκτελεί το πρόγραμμα ‘modem-switch’ αυτόματα όταν συνδέεις τη συσκευή (ανάλογα με το USB ID).

    Οτιδήποτε λιγότερο είναι σφάλμα (bug) και πρέπει να διορθωθεί.

  10. Avatar di Sakis Sakis

    Thursday, August 19, 2010 - 12:07:21

    Γεια σε όλους,
    είμαι ο συγγραφέας του Sakis3G.

    @ebal: Πράγματι οι εκδόσεις του Usb-ModeSwitch μέχρι και την 1.1.3 είχαν πρόβλημα με το συγκεκριμένο modem (1bbb:f000) και χρειάζεται η ιστορία με το unplug και το μέτρημα. Είχα κάνει bug report στον Josua και το πρόβλημα είναι διορθωμένο στην 1.1.4 (που εκδόθηκε μόλις στις 2010-08-17). Αυτό κάνει πλέον περιττά τα βήματα 2,3,4. Το 4ο βήμα είναι περιττό γιατί πλέον, ακόμα και για το Alcatel (1bbb:f000), το Usb-ModeSwitch δημιουργεί το symbolic link /dev/gsmmodem στο σωστό /dev/ttyUSB* device.

    @stoilis: Ο συγγραφέας ζεί στη σπηλιά του ArchLinux. Ο λόγος που αυτοί οι τύποι μοιάζουν με “ιθαγενείς”, είναι ιδεολογία για αυτούς (όπως στο Slackware): Δεν εγκαθιστούν τίποτα περισσότερο από ότι χρειάζεται. Οτιδήποτε επιπλέον του pppd είναι απλώς wrapper για τον pppd. Ακόμα και το wvdialconf είναι μέρος του wvdial που για τον σωστό ArchLinux user είναι ήδη περιττό.

    @Kostas Boukouvalas: Δυστυχώς ή ευτυχώς υπάρχουν υπολογιστές που για διάφορους λόγους δεν έχουν γραφικό περιβάλλον (θέμα διαθέσιμων πόρων, θέμα αποστολής του μηχανήματος πχ. server). Οι οδηγίες του συγγραφέα μπορούν να λειτουργήσουν ακόμα και σε headless μηχανήματα με 100MB filesystem. Ο NetworkManager απαιτεί:
    1. Γραφικό περιβάλλον,
    2. User interaction,
    3. Ένα σωρό εξαρτήσεις που αν τις χωρέσει κάποιος σε 100ΜΒ, θα είναι σίγουρα σε tar.bz3.

    @kargig: Σωστά τα λες (και σωστά την ψηλιάστηκες). Το πρόβλημα που είχε το Usb-ModeSwitch ουσιαστικά καθιστούσε άχρηστους τους udev κανόνες για το modem του Βαγγέλη. Για αυτό χρειαζόταν αυτά τα βουντού. Για να αστειευτούμε πάντως, μόνο ArchLinux user μπορούσε να βρεί τέτοιο work around (και να είναι και Έλληνας).

    @Σίμος #1: Για την εν λόγω συσκευή, πρέπει η έκδοση του Usb-ModeSwitch που είναι στο αποθετήριο, να γίνει upgrade σε 1.1.4. Μέχρι τότε πρέπει κάποιος να κάνει τα voodoo του συγγραφέα ή να μεταγλωττίζει το Usb-ModeSwitch από το source.

    @Σίμος #2: Όπως εξήγησε ο kargig, τα APN settings χρησιμοποιούνται αργότερα και είναι operator-dependant και όχι device-depentant, δεν υπάρχει κάποια έλλειψη εκεί.

    @Σίμος #3: Ακόμα και στο development tree του NetworkManager, υπάρχουν confirmed unresolved device-specific bugs. Με άλλα λόγια, υπάρχουν συσκευές που να χτυπιέσαι κάτω, δεν παίζουν με NetworkManager. Για αυτό το λόγο όμως έχουμε επιλέξει να είμαστε σε Linux. Για να έχουμε εναλλακτικές επιλογές. Δηλαδή, αν δεν παίζει το βασικό εργαλείο εργαλείο της διανομής, να υπάρχει και ένα τρίτο και ένα τέταρτο ακόμα. Ενδεικτικά: wvdial, comgt, VMC, Umtsmon, Wicd και τελευταίο το Sakis3G. Αν κάτι δεν παίζει με το NetworkManager δεν σημαίνει πως δεν παίζει με Linux. Και όπως προανέφερα, υπάρχουν περιπτώσεις που μπορεί ένα modem να παίζει με τον NetworkManager, αλλά να μην είναι εφικτό/δυνατό να χρησιμοποιηθεί λόγω άλλων περιορισμών.

    @Σίμος #4: Το modem-modeswitch είναι obsolete (δες http://markmail.org/message/k662fucn5ab2gfc5). Οι διανομές που το χρησιμοποιούν ακόμα πρέπει να απαλλαγούν από αυτό και στη θέση του να βάλουν το Usb-ModeSwitch.

    Το Sakis3G είναι ένα shell script που κάνει αυτόματα ότι χρειάζεται για να παίξει ένα USB ή Bluetooth modem, με μόνη εξάρτηση τον pppd.
    - Δεν έχει διαδικασία εγκατάστασης (απλώς το κατεβάζεις και chmod +x),
    - Δεν πειράζει τίποτα στο filesystem (παίζει ακόμα και αν το filesystem είναι read-only),
    - Είναι μόνο 210ΚΒ,
    - Δεν χρειάζεται configuration (κάνει τα πάντα detect εκτός από το PIN και το αν είσαι συμβόλαιο/κάρτα),
    - Παίζει ακόμα και αν δεν είναι εγκατεστημένο το Usb-ModeSwitch,
    - Παίζει από κονσολά ή γραφικό περιβάλλον,
    - Έχει embedded man pages,
    και άλλα πολλά που μπορείτε να δείτε στο site και στο wiki. Υπάρχει και βιντεάκι (http://www.youtube.com/watch?v=KD8qqhWODzo) που παρουσιάζει πόσο εύκολο είναι να συνδεθείς με Debian Lenny (το οποίο μάλιστα δεν έχει καν Usb-ModeSwitch).

    Δεν θα ευλογήσω τα γένια μου για το αν είναι καλύτερο ή όχι από τις άλλες εναλλακτικές επιλογές, αλλά με μια επίσκεψη στο forum του Sakis3G θα δείτε τι λένε οι χρήστες για αυτό.

    Σάκης, και καλως σας βρήκα.

  11. Avatar di Sakis Sakis

    Thursday, August 19, 2010 - 12:40:45

    Δυστυχώς δεν μπορώ να κάνω edit για να προσθέσω κάτι ακόμα.

    @ebal: Εκτός από την 1.1.4 πρέπει να βάλεις και τους νέους (και βελτιωμένους) udev rules: http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-20100817.tar.bz2 . Οι νέοι κανόνες παίζουν ακόμα και αν το modem είναι συνδεδεμένο κατά το boot.

    Μία ακόμα παρατήρηση, για να δούμε καλύτερα τη διαφορά του “Arch” way που περιγράφει ο Βαγγέλης, είναι πως με το παραπάνω setup και με την 1.1.4 έκδοση του Usb-ModeSwitch, θα χρειάζεται από 5-15 δευτερόλεπτα το πολύ για να συνδεθεί, από τη στιγμή που θα συνδέσει το modem.

    Όσοι απολαμβάνουν τους αυτοματισμούς του NetworkManager, χρειάζονται πάνω από 1 λεπτό για να συνδεθούν. Όποιος δεν το πιστεύει, ας χρονομετρήσει το σύστημά του, και μετά να μας πεί και ο Βαγγέλης πόσο του πέρνει.

  12. Avatar di kargig kargig

    Thursday, August 19, 2010 - 13:09:55

    @Σίμος: Οι συσκευές 3G που κυκλοφορούν στην ελλάδα είναι δεκάδες αυτή τη στιγμή και η κατάσταση θα “χειροτερεύει” όσο έρχονται καινούργιες συσκευές ή όσο οι κατασκευαστές κρατούν το ίδιο όνομα συσκευής και αλλάζουν τα USB IDs. Επίσης το πρόβλημα με τα USB IDs δεν το έχουμε μόνο εδώ στην Ελλάδα αλλά σε όλο το κόσμο.

    Όσον αφορά το bug report, το καλύτερο ήταν αυτό που έκανε ο Σάκης και έδωσε στο upstream το fix. Δεν βλέπω ποιο άλλο bug υπάρχει να διορθωθεί…

    Η λύση στα προβλήματα αυτά είναι οι διανομές να χρησιμοποιούν και να κρατουν ανανεωμένα τα σωστά εργαλεία, όποια και αν είναι αυτά.

    Δεν κατάλαβα επίσης γιατί αναφέρεις που είναι τα παραδείγματα για το udev :/ Είναι προφανές πως εκεί πρέπει να γίνουν οι αλλαγές, το είχα προτείνει και ως εναλλακτική λύση για το πρώτο κομμάτι του οδηγού του Βαγγέλη. Ο NetworkManager δεν έχει καμία σχέση μέχρι και το βήμα 3. Ο NetworkManager αντικαθιστά το βήμα 5 και μόνο.

    Όπως λέει και ο Σάκης, αν δεν παίζει κάτι στον NetworkManager δεν σημαίνει πως δεν παίζει γενικά. O NetworkManager είναι ένα abstraction layer που όμως συνεχίζει και χρειάζεται άλλα εργαλεία.

    Τώρα πότε θα βάλει η κάθε διανομή το νέο usb_modeswitch (1.1.4) για να παίζει και αυτό το Alcatel…μένει να το δούμε :)

    btw, congrats στον Βαγγέλη για το post και στον Σάκη για το tool του :) keep it up!

  13. Avatar di Kostas Boukouvalas Kostas Boukouvalas

    Thursday, August 19, 2010 - 16:13:07

    @Sakis

    Το δικό μου σχόλιο είναι απλά πείραγμα στον Βαγγέλη και κυρίως στις τέσσερις γραμμές:

    <i>”Εάν έχετε φτάσει μέχρι εδώ, θα αναρωτιέστε ” Είναι δυνατόν να είναι τόσο μα τόσο απλά τα πράγματα στο linux ? ”

    Μα ΝΑΙ, είναι τόσο απλά κι εύκολα.

    Και μάλιστα είστε σε θέση να περιηγηθείτε στο internet.”</i>

    Γιατί ξέρω το ύφος, τον τόνο και το ανεβοκατέβασμα της φωνής του και μπορώ να τον φανταστώ να τα λέει αυτά.

    χα χα χα

    Ειλικρινά όμως:

    Μιλάμε για Mobile Internet. Δε ξέρω κανέναν με headless μηχάνημα-server που θα σκεφτεί να βάλει mobile internet και μάλιστα με τη κατάσταση αυτή στις ταχύτητες… εκτός αν κοπεί σε κάποιον που έχει server στο εξοχικό η σύνδεση ADSL.

    Παρ’ όλα αυτά η τεχνική ανάλυση είναι εξαιρετικά χρήσιμη. Σίγουρα από εμένα έχεις κερδίσει ένα μικρό Donate στο project σου.

  14. Avatar di Sakis Sakis

    Thursday, August 19, 2010 - 17:30:55

    @Kostas: Γιατί το λες αυτό, μπορεί κάποιος να χρησιμοποιεί ένα headless low-power ARM-based Linux σύστημα (με μόνο 512ΜΒ storage), με wifi adapter σε Access Point mode (όπως αυτός εγώ: http://www.youtube.com/watch?v=6TF_kP8zRGE) για να παρέχει στο κινητό του, και στο netbook του, και σε κάθε συνεπιβάτη του, internet μέσω Wifi ή Bluetooth, καθ’ οδόν. Surfing, navigation με Google maps, VPN και ότι άλλο. Λέμε τώρα… μπορεί.

    Και εσύ σίγουρα έχεις κερδίσει ένα ευχαριστήριο μήνυμα στο mailbox σου.

  15. Avatar di Kostas Kostas

    Wednesday, May 25, 2011 - 10:20:04

    Πολύ χρήσιμο post!
    Ειδικά στην περίπτωση χρήσης σε εξειδικευμένες εφαρμογές όταν πχ δεν υπάρχει καν GUI. Ένας συνοπτικός και σαφής οδηγός. Εφάρμοσα τις οδηγίες όχι σε ArchLinux αλλά σε Voyage Linux 0.7 και ενώ συνδέθηκα και πήρα IP κανονικά, δεν έχω ουσιαστικά πρόσβαση στο internet. Κάποιο hint?