整体架构:
pppd call option & ----------↓---------- option脚本(设置PPP连接) ----------↓---------- chat脚本(进行AT呼叫和控制的脚本) ----------↓---------- ppp程序 ----------↓---------- 内核 ----------↓---------- EM770W U转串驱动 ----------↓---------- 硬件
1.EM770W介绍
EM770W是华为3G WCDMA模块,支持HSPA(HSPA data rate - 7.2 Mbps DL / 2 Mbps UL),更适合于无线视频服务器和监控器。
2.EM770W接口
mini PCIE,52个引脚。
其中引脚对外数据接口包含一个全串口UART1,一个四线串口UART2,一个USB2.0。
3.EM770W连接方式
与ARM 芯片连接有两种方式:
方式1:UART1,速度只能达到115.200KBPS,这与HSPA 速率明显跟不上,一般不用此方式进行连接,使用环境:小量数据传输。
方式2:USB,使用环境:适合大量数据传输,速率更快。
4.EM770W驱动
4.1 内核配置
LINUX-2.6.18 以上已有了EM770W 的驱动,配置路径。
-> Device Drivers x -> USB support (USB_SUPPORT [=y]) x -> USB Serial Converter support (USB_SERIAL [=y]) x -> Selects: USB driver for GSM and CDMA modems [=m]
4.2 ID修改
vi drivers/usb/serial/option.c
#define EM770W_OPTION_VENDOR_ID 0xxxxx #define EM770W_OPTION_PRODUCT_COLT 0xxxxx
0xxxxx是根据产品手册决定
static struct usb_device_id option_ids[] = { { … {USB_DEVICE(EM770W_OPTION_VENDOR_ID , EM770W_OPTION_PRODUCT_COLT) }, }
将ID号添加入ID结构体中
4.3 根据配置为*或者M决定直接编译入内核或者编译出内核再编译模块:make uImage编译内核,或者 再用make modules编译option.ko usb_wwan.ko
注意事项:先insmod usb_wwan.ko
再insmod option.ko
否则会出现
option: Unknown symbol usb_wwan_write (err 0) option: Unknown symbol usb_wwan_close (err 0) option: Unknown symbol usb_wwan_release (err 0) option: Unknown symbol usb_wwan_tiocmget (err 0) option: Unknown symbol usb_wwan_chars_in_buffer (err 0) option: Unknown symbol usb_wwan_write_room (err 0) option: Unknown symbol usb_wwan_disconnect (err 0) option: Unknown symbol usb_wwan_startup (err 0) option: Unknown symbol usb_wwan_set_termios (err 0) option: Unknown symbol usb_wwan_dtr_rts (err 0) option: Unknown symbol usb_wwan_open (err 0) option: Unknown symbol usb_wwan_tiocmset (err 0) insmod: cannot insert ‘option.ko‘: unknown symbol in module or invalid parameter
如果出现export duplicate symbol....错误,可能是内核没有剔除option、usb_wwan驱动,重新配置内核设置USB driver for GSM and CDMA modems为M,再编译烧录
5.PPP用户态应用程序
5.1 pppd移植
未完待续.....
时间: 2024-10-07 23:20:15