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.
sudo apt-get install ppp wvdial sysfsutils
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 = 0sudo 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
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 = *- sudo nano /etc/ppp/peers/wvdial
Paste the following:
noauth
name wvdial
usepeerdns
noccp
novj
novjccomp
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 3Gecho -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"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.