Internet przez komórkę pod Linuxem

Zazwyczaj jak korzystam z Internetu na laptopie, to albo w domu, albo gdzieś gdzie jest sieć bezprzewodowa. Czasami jednak pojawiają się sytuacje, w których potrzebuję dostępu do Internetu w miejscach, w których nie łapię żadnej sieci bezprzewodowej i nie ma gdzie się wpiąć kablem. Z pomocą przychodzi GPRS.

Co jest potrzebne żeby uruchomić GPRS pod Linuxem:

  1. telefon, który obsługuje tę technologię komunikacyjną
  2. włączoną opcję połączeń z Internetem przez kabel USB (w SE k800i ustawienia->łączność->USB->Włącz)
  3. kabel do telefonu lub blutetooth (przez IrDA chyba też się da)
  4. skompilowany i załadowany moduł jądra do obsługi modemów przez USB (USB_ACM)
  5. program global 3g

Modem w jajku

Po podłączeniu telefonu do komputera przez kabel, w katalogu /dev, powinny znajdować się pliki ACM*. Jeżeli są, to znaczy że moduł USB_ACM jest załadowany. W przeciwnym wypadku, najpierw można spróbować załadować go ręcznie (być może z jakiegoś powodu nie powiodło się automatyczne ładowanie):

# modprobe cdc_acm

Jeżeli to nie pomogło, to trzeba skompilować moduł USB_ACM. Nie będę opisywał szczegółowo jak to się robi, bo to temat na osobny wpis. W Internecie jest dużo informacji o kompilacji jądra. Podpowiem tylko gdzie i jakiej opcji w menu konfiguracyjnym trzeba szukać:

Location:
    -> Device Drivers
      -> USB Support
        -> Support for Host-side USB 
          -> USB Modem (CDC ACM) support

Po skompilowaniu modułu, powinien on automatycznie ładować się gdy telefon zostanie podłączony do komputera.

Połączenie ze światem

Czas na punkt kulminacyjny. Do połączenia użyłem świetnego programu Global 3G Jego wielkimi zaletami są wbudowane ustawienia do najpopularniejszych operatorów sieci komórkowych (w tym także polskich) oraz sterowniki do wielu telefonów. W konfiguracji programu wybrałem swojego operatora z listy dostawców, natomiast z listy urządzeń odpowiedni telefon. Posiadam Sony Ericsson k800i, który widnieje na liście obsługiwanych urządzeń, ale jak go wybrałem, to nie łączył się z Internetem. Dopiero jak wybrałem opcję "Sony Ericsson - Standard Models (2)", to zadziałało. W przypadku połączenia telefonu przez kabel, jako port trzeba wybrać USB -> ACM0 lub ACM1 jeżeli nie zadziała. Piszę tylko o kablu, bo nie próbowałem łączyć się przez blutetooth.

To by było na tyle jeśli chodzi o konfigurację. Wystarczy kliknąć "połącz" i wrota Internetu otworzą się przed nami. Wolnego, bo wolnego, ale w sytuacji awaryjnej wystarczy. Polecam wyłączyć w przeglądarce pobieranie obrazków, animacji, javascriptu i apletów javy. Niestety jest jeden szkopuł. Global 3G w darmowej wersji przed nawiązaniem połączenia z Internetem, zmusza nas do odczekania 6 minut (tylko za pierwszym razem w ciągu pojedynczego uruchomienia programu) i nie pamięta konfiguracji. Jeżeli chcemy pozbyć się tej uciążliwości, to trzeba zakupić od autora płatną wersję za 29 zł. Wydaje mi się, ze nie są to duże pieniądze i czuję, że fajnie jest zapłacić komuś drobną kwotę za dobrze wykonaną robotę.

Komentarze

  1. 28 maja 2009 | #

    Dla tych, co wolą troszkę więcej(?) raz poklepać, a potem mieć święty spokój opis dla bluetooth i plus

  2. 28 maja 2009 | #

    ło, to z ciekawości się spytam – czy NetworkManager nie obsługuje tego typu połączeń?

    Ja akurat korzystam z play online, czyli w sumie modemu GPRS/HSDPA podłączonego via usb :]

  3. 28 maja 2009 | #

    Mojego samsunga d880 network manager 0.7.1 obsługuje, trzeba było tylko wpisać apn w ustawieniach.

  4. MeLON
    28 maja 2009 | #

    @radmen: NM w wersji 7.X obsługuje na pewno Ethernet przez USB (nie pamiętam nazwy sterownika). Jeśli telefon obsługuje taki profil dostępu (np. SE k7701) po wpięciu go do kompa i wybraniu trybu NM pobiera adres przez dhcp i sieć hula. Przez Bluetooth jest ciut trudniej :). Trzeba z roota odpalić sekwencję poleceń:
    pand -s; sleep 5; dhclient bnep0
    lub ekwiwalent i hula bezprzewodowo.

  5. Michał Górny
    28 maja 2009 | #

    Od kiedy włączenie USB odpowiada kompilacji cdc-acm?

  6. 28 maja 2009 | #

    Przez kabel USB wystarczy w tej chwili tylko podłączyć telefon i kliknąć w połączenie. Tak samo z większością modemów komórkowych. Niektóre dystrybucje (np. Ubuntu) patchują NM dodając małego kreatora, gdzie wybiera się operatora sieci.
    Bluetooth natywnie obsługuje NM 0.8 (http://blogs.gnome.org/dcbw/2009/05/22/a%e2%80%a2b%e2%80%a2c-delicious/ ), na razie można używać prostego skryptu który łączy RFCOMM i dodaje urządzenie do bazy HAL.

  7. 28 maja 2009 | #

    No to muszę doprecyzować – nie mam zainstalowanego NetworkManagera, do połączeń z siecią przewodową i bezprzewodową używam wicd. Dlatego też korzystam z Global 3G.

    @Michał Górny: gdzie napisałem, że cdc_acm trzeba skompilować, żeby włączyć USB?

  8. Michał Górny
    28 maja 2009 | #

    @jaro: Nie. Napisałeś, że cdc_acm trzeba skompilować, a potem wskazałeś opcję odpowiadającą USB.

  9. 28 maja 2009 | #

    Fakt, zjadło mi gdzieś ostatnią opcję. Dzięki.

Napisz komentarz