资源描述:
《linux内核驱动之网络驱动(一)g驱动移植》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Linux内核驱动之网络驱动(一)3G驱动移植一开发环境简介二主要步骤三配置3G模块驱动和ppp网络协议栈首先进入makemenuconfig界面1配置3G模块驱动图1如上图1首先选择DeviceDrivers图2如上图2进入USBsupport图3进入USBsupport之后一直往下直到找到上图3并选择USB转串口图4最后选择USBdriverforGSMandCDMAmodems到此3G卡驱动已经添加完毕主要是添加了driver/usb/serial/option.c和driver/usb/serial/usb_wwan.c两个文件,尽管
2、驱动添加了,但是这仅仅只是一个usb转串口驱动,并不能作为网络设备直接使用,此时就需要ppp网络协议的支持,他将ttyUSB*等设备模拟成网络设备使用也即(/dev/ttyUSB0<---->ppp0)2添加ppp协议同样也是进入makemenuconfig界面图5首先同样也是进入驱动配置界面DeviceDrivers图6如上图6选择网络设备支持图7如上图7选择ppp到这一步驱动和协议就都已经配置成功了接下来就是编译下载到板子登入到linux,dmesg查看内核打印信息图8同时查看/dev/目录下已经创建了/dev/ttyUSB0
3、,/dev/ttyUSB1,/dev/ttyUSB2,/dev/ttyUSB3,/dev/ttyUSB4,/dev/ttyUSB5/dev/ppp等7个设备文件表明内核正确识别了EM820W3G模块四编写ppp拨号脚本由于该拨号脚本需要使用chat,pppd,等命令,所以需要下载ppp-2.4.4下载成功之后首先便是编译1编译ppp-2.4.4./configuremakeCC=arm-none-linux-gnueabi-gcc编译成功后将编译生成的chat,pppd,pppdump等命令拷贝到板子文件系统的/usr/sbin目录下边去2编
4、写拨号脚本在板子文件系统/etc/ppp/peers目录下边创建三个文件如下wcdma,chat-wcdma-connect,chat-wcdma-disconnectwcdma配置文件内容debugnodetach/dev/ttyUSB0115200usepeerdnsnoauthnoipdefaultnovjnovjccompnoccpdefaultrouteipcp-accept-localipcp-accept-remoteconnect'/usr/sbin/chat-s-v-f/etc/ppp/peers/chat-wcdm
5、a-connect'disconnect'/usr/sbin/chat-s-v-f/etc/ppp/peers/chat-wcdma-disconnect'wcdma-chat-connect配置文件内容TIMEOUT5ABORT'NOCARRIER'ABORT'ERROR'ABORT'NODIALTONE'ABORT'BUSY'ABORT'NOANSWER'''rATOKrATZOKrAT+CGDCONT=1,"IP
6、","3GNET",,0,0OK-AT-OKATDT*99#CONNECTdcwcdma-chat-disconnect配置文件内容ABORT"ERROR"ABORT"NODIALTONE"SAY"Sendingbreaktothemodem"''"K"''"+++ATH"SAY"Goodbay"五设置EM820W使能在拨号之前EM820W模块,需要先设置、SWstate和HWstate(W_DISABLE#)都为使能首先设置Hardwarestate使能echo1>/sys/cla
7、ss/gpio/3G0_DISABLE/valueecho1>/sys/class/gpio/3G1_DISABLE/value接着设置Softarestate使能echo“AT^RFSWITCH=1”>/dev/ttyUSB0echo“AT^RFSWITCH=1”>/dev/ttyUSB6最后使用命令查询EM820W模块是否使能成功使用如下命令cat/dev/ttyUSB0&cat/dev/ttyUSB6&echo“AT^RFSWITCH?”>/dev/ttyUSB0echo“AT^RFSWITCH?
8、”>/dev/ttyUSB6上述命令就能分别查询两个EM820W的状态^RFSWITCH:1,0格式是^RFSWITCH:SW,HW其中1表示SWstate,