tecosystems

How to Use an AT&T Ericsson F3507g Card on Ubuntu Intrepid

Share via Twitter Share via Facebook Share via Linkedin Share via Reddit

As could probably have been guessed by things like this, I’ve been more than a bit frustrated by my continuing inability to get the on board WWAN card in my new X301 – an Ericsson F3507g – working under Ubuntu. When I initially reviewed the machine, and later commented on the Ubuntu Intrepid compatibility, the Ericsson was one of the few pieces of hardware I couldn’t get to work. Which was unfortunate, as that has occasionally left me at the mercy of brutally inefficient and expensive hotel wireless.

Well, all of that is over as of yesterday. Using some instructions from the invaluable Thinkwiki.org, I not only got the card running, but was able to successfully connect to the AT&T network. Which is, frankly, awesome.

Anyway, here’s how I did it. Before I continue, though, please note that all credit for these scripts belongs with the Thinkwiki.org user Willsowerbutts. I’m just repackaging his excellent work for the benefit of fellow Ubuntu users and AT&T customers. The advantage of his approach, as well, is that it not only handles connectivity but the powering off of the card, which is something of a power hog.

Enjoy.

  1. sudo apt-get install ppp wvdial sysfsutils
  2. sudo nano /etc/sysfs.conf

    Paste the following:

    block/sda/queue/scheduler = noop
    devices/platform/thinkpad_acpi/bluetooth_enable = 0
    devices/platform/thinkpad_acpi/wwan_enable = 0
    class/leds/tpacpi::power/brightness = 0
  3. sudo nano /etc/pm/sleep.d/sysfsutils

    Paste the following:

    #!/bin/bash
    case $1 in
    (hibernate|suspend)
    ;;
    (thaw|resume)
    /etc/init.d/sysfsutils start
    ;;
    *) echo "somebody is calling me totally wrong."
    ;;
    esac

  4. sudo nano /etc/wvdial.conf

    Note that the “ISP.CINGULAR” portion is unique to the AT&T network; Willsowerbutts’ scripts have the proper APN strings for Tmobile and Vodafone. Anyway, paste the following:

    [Dialer 3G]
    Modem = /dev/ttyACM0
    Init1 = AT+CGDCONT=1,"IP","ISP.CINGULAR"
    Stupid mode = 1
    phone= *99#
    Username = *
    Password = *

  5. sudo nano /etc/ppp/peers/wvdial

    Paste the following:

    noauth
    name wvdial
    usepeerdns
    noccp
    novj
    novjccomp

  6. sudo nano /usr/local/bin/3g-dialup

    Paste the following:

    #!/bin/sh

    WWANDEVICE=/dev/ttyACM2

    ## Check we have appropriate permissions
    if [ `whoami` != "root" ]; then
    echo Run this script as root
    exit 0
    fi

    ## Enable the WWAN hardware
    echo -n "Powering up WWAN device .."
    echo 1 > /sys/devices/platform/thinkpad_acpi/wwan_enable
    while [ ! -c $WWANDEVICE ]; do sleep 0.5; echo -n "."; done
    echo " OK"

    echo -n "Initialising WWAN modem ..."
    /usr/sbin/chat -v "" "AT+CFUN=1" "+PACSP0" "AT" "OK" > $WWANDEVICE < $WWANDEVICE
    echo " OK"

    echo "Starting PPP -- hit Ctrl+C when finished"
    /usr/bin/wvdial 3G

    echo -n "Shutting down WWAN modem ..."
    /usr/sbin/chat -v "" "AT+CFUN=4" "OK" > $WWANDEVICE < $WWANDEVICE
    echo " OK"

    ## Disable the WWAN hardware, save power
    echo -n "Powering down WWAN device .."
    echo 0 > /sys/devices/platform/thinkpad_acpi/wwan_enable
    while [ -c $WWANDEVICE ]; do sleep 0.5; echo -n "."; done
    echo " OK"

  7. sudo chmod a+x /usr/local/bin/3g-dialup

Once all of that is done, you can connect to the AT&T network using the command sudo 3g-dialup, and disconnect with a CTL-C. You may get a few false starts where the card is unable to obtain an IP, but it will retry. You'll know that it's been successful when it grabs an IP and DNS. If the IP or DNS begins with 10.10, it's an internal connection and it will fail. Cancel out, and retry.

If anyone's been able to get this card working with the 3G GUI in NetworkManager, feel free to post the HowTo in the comments below. Until then, I'll count myself fortunate for having a command line solution.