Phidget SBC – Huawei E1752 3G USB modem – Part2
Well, the segmentation fault when running any network releated commands, was due to a issue in getaddrinfo.c in the uClibc library. When I applied a patch found on the maillist at busybox.net it worked.
It sounds really simple, but there was a lot of trying and failing before I got it right. It short steps, this is what I did.
Step1 – Download source from Phidget.com and do an initial
#>make && make clean
Step2 – Applied the patch for getaddrinfo.c
Step3 – Added usb_modeswitch as a package from busybox
Step4 – Main configuration
– Target options –> Phidget SBC Support –> Choose a release type (full)
– Package Selection for the target
Step5 – Linux kernel configuration
(m) Usb Serial Convert support – #Change from compiled into kernel to module
(*) Generic Serial
(m) Usb Driver GSM and CDMA modems
Step6 – Create the final build
Flash the SBC, and you will have support for your 3G modem. You also need to change your usb_modeswitch.conf to include the switch for E1752. I also recommend to make a udev rule for an automatically switch.
Now you should have support for you Huawei E1753 Modem, now it was time to setup opp pppd. I found a really good thread on a Norwegian forum, witch had some detail information regarding pppd and chat scripts. With some modifications this worked as a charm on my setup.
The end result:
# uname -a
Linux Pilot 18.104.22.168 #3 PREEMPT Fri Jan 22 08:09:47 CET 2010 armv4tl unknown
Bus 001 Device 005: ID 12d1:1001 #This is the Huawei E1753 3G Modem
# pppd call netcom
# ping dev.n0ll.com
PING dev.n0ll.com (22.214.171.124): 56 data bytes
64 bytes from 126.96.36.199: seq=0 ttl=50 time=391.774 ms
64 bytes from 188.8.131.52: seq=1 ttl=50 time=390.239 ms
64 bytes from 184.108.40.206: seq=2 ttl=50 time=385.180 ms
64 bytes from 220.127.116.11: seq=3 ttl=50 time=380.198 ms
64 bytes from 18.104.22.168: seq=4 ttl=50 time=395.199 ms
— dev.n0ll.com ping statistics —
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 380.198/388.518/395.199 ms
Still some small scripting to have an automatic process connecting to the internet. Like default routing, resolve and dial only when I want to send my data (probably going to use cron for that). But the base system seams to work now, just need to add the sensors and start collecting data!