A bit off-topic, but I was able to adapt the Konekt Modem Tutorial, specifically the AT Commands with E303 to another platform, the Intel Galileo (mostly now replaced by the Edison). This was mostly straightforward, after building the Yocto-Linux kernel so I could get extra packages: needed to install usb-modeswitch and udev among other things. One place requiring extra work: /dev/ttyUSB0 wasn’t automatically created, I had to do this:
modprobe usbserial vendor=0x12d1 product=0x1001
Also, for testing (say with wget) it’s nice to set a DNS server, such as 18.104.22.168, in /etc/resolv.conf since the PPP daemon didn’t do this for me automatically.
I’m not sure how best to automate all the steps, which would seem to include
- running the usb-modeswitch command
- doing the modprobe command
- connecting to /dev/ttyUSB0 to inject the Hayes commands
- launching the ppp daemon
- stopping the ppp daemon after using the link
- again connecting to /dev/ttyUSB0 to hang up
Critical additions to the above would be pauses to let the commands take effect. I sure hope getting new firmware onto the Dash Pro will make this complexity go away.
Note added 11/15/2015
My Intel Galileo won’t boot with the Huawei E303 attached because it tries to find a linux kernel image on its SD card (attaching the Huawei later is OK) – this is a showstopper for my purposes. Here’s the workaround.
After connecting to the E303 as a modem, use the command AT^u2diag? to see how the default is currently set: it was 119 for me (after running modeswitch of course). Then run AT^u2diag=0 to change the default. Power everything off (including the E303). When you reboot, the E303 will come up as a modem, so no need to ever run modeswitch again. Some details of importance:
- that ‘^’ character in AT^u2diag really is the ‘^’ character (not a meta-char)
- the vendor/device changes after doing the AT^u2diag=0 and reboot: it becomes 12d1:1c05 (in my case, that meant needing to change the modprobe command)