The following is more of a documentation of my struggle with getting this to work than a how-to, so please read this thread first and use google and your brain a lot. I'm not liable for any damage done by following this post.
A lot of the things mentioned in this thread somehow didn't work for me. I have a 4G Systems XS Stick P14 (1c9e:f000 in CD mode, 1c9e:9605 in modem mode) with an O2 germany data plan.
Things that didn't work:
Modeswitching with udev and modem-modeswitch
automatic driver loading
automatic connection setup with NetworkManager (I installed modem manager, but it didn't work)
So I used usbmodeswitch and pppd.
First, I installed usbmodeswitch (NOT usb-modeswitch) and usb-modeswitch-data via opkg (I don't know whether you need to install pppd or whether it comes pre-installed with the Pandora. You might need to install it, too.).
(WARNING, WRITES ON NAND)
Code:
sudo opkg update
sudo opkg install usb-modeswitch-data
sudo opkg install usbmodeswitch
I plug in the stick and looked up its
vendor-id and
product-id:
sudo lsusb
> Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
> Bus 001 Device 007: ID
1c9e:
f000
Then modeswitch with:
sudo usb_modeswitch -c /etc/usb_modeswitch.d/
1c9e:
f000
Check lsusb output again:
sudo lsusb
> Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
> Bus 001 Device 007: ID
1c9e:
9605
Load the driver:
sudo modprobe usbserial vendor=0x
1c9e product=0x
9605
Check if everything worked:
ls /dev/ttyUSB*
> /dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2 /dev/ttyUSB3
Setup /etc/ppp/peers/umts:
Code:
# File /etc/ppp/peers/umts
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/umts"
defaultroute
/dev/ttyUSB3
115200
persist
debug
passive
noipdefault
usepeerdns
# Varies between carriers, some don't even need these.
user "o2"
password "o2"
Setup /etc/chatscripts/umts (Be sure to replace surfo2 according to your carrier. Google "<yourcarrier> APN"):
Code:
TIMEOUT 120
ABORT 'BUSY'
ABORT 'ERROR'
ABORT 'NO CARRIER'
' 'ATE1'
# Change according to your carrier
OK AT+CGDCONT=1,"IP","surfo2"
OK ATD*99***1#
# or OK ATD*99#
CONNECT \d\c
Also, if you use O2 germany, stay clear of using the internet APN and use surfo2.
Connect with:
sudo pon umts
Ping something to test the connection (Sometimes I need to run this a few times before it actually reaches something.):
ping -c3 openpandora.org
> 64 bytes from pithos.open-pandora.org (178.63.21.4): icmp_req=1 ttl=56 time=51.3 ms
> 64 bytes from pithos.open-pandora.org (178.63.21.4): icmp_req=2 ttl=56 time=49.7 ms
> 64 bytes from pithos.open-pandora.org (178.63.21.4): icmp_req=3 ttl=56 time=49.1 ms
>
> --- openpandora.org ping statistics ---
> 3 packets transmitted, 3 received, 0% packet loss, time 2002ms
> rtt min/avg/max/mdev = 49.112/50.069/51.312/0.938 ms
After I got this far I wrote a small bash-script I run manually everytime I want to go online with my surfstick:
Code:
#!/bin/bash
sudo killall pppd
sleep 1
sudo modprobe -r usbserial
sudo mknod /dev/ppp c 108 0
sudo usb_modeswitch -c /etc/usb_modeswitch.d/1c9e:f000
sleep 2
sudo modprobe usbserial vendor=0x1c9e product=0x9605
sleep 2
sudo pon umts