Telefon komórkowy jako modem

W ostatnich latach w ramach popularyzacji internetu coraz tańsze stają się połączenia z internetem za pośrednictwem telefonów komórkowych. Większość nowoczesnych telefonów ma również modemy HSPA oferujące bardzo przyzwoite prędkości transferu (gorzej bywa z możliwościami sieci). W związku z tym dlaczego ich nie wykorzystywać?

W Linux’ie wbrew pozorom wcale nie stanowi to problemu. W przypadku większości dystrybucji nawet nie wymaga to instalowania dodatkowego oprogramowani. Jeśli do połączeń z siecią używamy NetworkManager’a to z reguły po podłączeniu telefonu do komputera, automatycznie potrafi on wykorzystać nasz telefon jako modem. Co jednak jeśli tak się nie stanie lub, tak jak ja, ktoś nie używa NetworkManager’a? Przedstawię tutaj dosyć niskopoziomową, ale bardzo prostą, metodę jak skonfigurować telefon, aby służył jako modem.

  1. podłączamy telefon do komputera za pomocą kabla dołączonego przez producenta i jeśli telefon poprosi, wybieramy odpowiednią opcję do połączeń (na Nokiach – PC Suit Mode)
  2. wpisujemy komendę
    dmesg | tail

    i poszukujemy linijek w stylu:

    [ 2203.751252] usb 1-3: Manufacturer: Nokia
    [ 2203.860250] cdc_acm 1-3:1.6: This device cannot do calls on its own. It is not a modem.
    [ 2203.860525] cdc_acm 1-3:1.6: ttyACM0: USB ACM device
    [ 2203.870469] usbcore: registered new interface driver cdc_acm
    [ 2203.870477] cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters
    [ 2203.875287] cdc_ether 1-3:1.8: usb0: register 'cdc_ether' at usb-0000:00:1d.7-3, CDC Ethernet Device, 5a:bc:25:c3:b9:1a
    [ 2203.875368] usbcore: registered new interface driver cdc_ether

    oznaczają one, że nasz modem został wykryty, w tym przypadku jako urządzenie /dev/ttyACM0; czasem może to być ttyACM z inna cyferką lub ttyUSB z jakąś cyferką

  3. następnie potrzebne nam będą następujące pliki:
    /etc/ppp/chatscripts/dzwonienie

    TIMEOUT 10
    ABORT 'BUSY'
    ABORT 'VOICE'
    ABORT 'ERROR'
    ABORT 'NO ANWSER'
    ABORT 'NO CARRIER'
    ABORT 'NO DIALTONE'
    ABORT '\nRINGING\r\n\r\nRINGING\r'
    '' \rAT
    TIMEOUT 15
    OK ATE1
    OK 'AT+cgdcont=6,"IP","internet"'
    OK "ATD*99***1#"
    CONNECT ''

    /etc/ppp/peers/urzadzenie:

    crtscts
    noauth
    connect "/usr/sbin/chat -v -f /etc/ppp/chatscripts/dzwonienie"
    ttyACM0
    460800
    defaultroute
    noipdefault
    ipcp-accept-remote
    ipcp-accept-local
    usepeerdns
  4. i to wszystko; połączenia dokonujemy jako root (bądź używając “sudo”) komendą:
    pppd call urzadzenie
  5. połączenie najprościej zakończyć zabijając pppd lub odłączając telefon od komputera


Nie zawsze jednak mamy przy sobie kabel do telefonu albo nie chcemy akurat go używać. Wtedy z pomocą przychodzi bluetooth (jeśli oczywiście mamy go w laptopie). Należy tylko pamiętać, że przepustowość bt jest na poziomie 2,1Mbps, tych z EDR (Enhanced Data Rate) 3,1Mbps, a najwolniejsze modemy HSPA mają przepustowość na poziomie 3,6Mbps. Mimo to, jeśli nie zamierzamy ściągać dużych plików lub wiemy, że operator nie jest  stanie dostarczyć na danym terenie maksymalnej prędkości warto korzystać z tego rozwiązania.

Konfiguracja połączenia internetowego wygląda tak samo jak w przypadku połączeń za pomocą kabla. Różnica jest tylko w połączeniu komputera z telefonem – musimy skonfigurować bluetooth:

  1. włączyć bluetooth w telefonie i w komputerze ;)
  2. komendą
    sdptool search DUN

    wyszukać nasz telefon; powinniśmy otrzymać coś w stylu:

    Inquiring ...
    Searching for DUN on 00:23:F1:00:AC:F6 ...
    Service Name: Dial-up Networking
    Service RecHandle: 0x2008003
    Service Class ID List:
      "Dialup Networking" (0x1103)
      "Generic Networking" (0x1201)
    Protocol Descriptor List:
      "L2CAP" (0x0100)
      "RFCOMM" (0x0003)
        Channel: 1
    Profile Descriptor List:
      "Dialup Networking" (0x1103)
        Version: 0x0101
  3. edytujemy plik /etc/bluetooth/rfcomm.conf tak aby zawierał mniej więcej coś takiego:
    rfcomm0 {
    bind yes;
    device 0C:DD:EF:9C:86:27;
    channel 1;
    comment "Nokia N900";
    }

    oczywiście należy wymienić adres urządzenia i kanał na te które uzyskaliśmy dzięki komendzie “sdptool”

  4. skopiować plik /etc/ppp/peers/urzadzenie np. jako /etc/ppp/peers/bt i zmienić w nim linijkę urządzenia na rfcomm0
  5. sparować telefon z komputerem; można to zrobić bądź używając graficznych narzędzi, bądź za pomocą poleceń:
    sudo hcitool cc 0C:DD:EF:9C:86:2
    sudo hcitool auth 0C:DD:EF:9C:86:2

    oczywiście znowu podając własny adres MAC urządzenia; jeśli nie wyskoczy nam prośba o PIN można spróbować komendy

    sudo passkey-agent --default /usr/bin/bluez-pin
  6. upewnić się, że mamy włączona obsługe bluetooth’a w systemie
    /etc/init.d/bluetooth start
  7. teraz pozostaje już tylko się połączyć, tak jak powyżej, za pomocą
    pppd call bt

No i tyle. Przyjemnego przeglądania internetu na wakacjach, w dowolnym miejscu. :)

Comment are closed.