最近参与了一个无线网卡拨号上网的项目, 收获颇多。

对市面上的无线网卡一般都要在客户端安装对应的网卡驱动,所以一旦换一款网卡就要安装一款对应的网卡驱动。然后对于一台路由器设备而言安装一个无线网卡驱动那就是不好办的事了,所以市面上的路由器一般都有表明它只支持哪几款无线网卡上网,这是在开发路由器时把这些无线网卡驱动给装好。

而Linux系统是自带大部分的无线网卡驱动,也就是说Linux本身支持大部分无线网卡驱动。所以如果路由器使用的操作系统是Linux,那对于一款3G网卡拨号上网的modem,我们就只用像在linux下配置好的拨号配置就行了。 唯一比较麻烦的事,我们需要去尝试哪个tty设备是你插上去的usb modem产生的。当我们把一款usb无线网卡插在路由器的USB口上时,linux会产生usb tty设备文件(control tty, data tty),我们需要在配置中需要逐个尝试,匹配上了剩下的就是拨号脚本的事,4G无线网卡也同理。

实现的大概思路:一个线程监听usb modem的热插拔,一旦插上或拔掉usb modem, linux内核就会发出kevent, 捕获该event, 将它放入一个处理队列中。另一个线程对队列中的事件进行处理。处理就是上述逐个匹配对应的tty设备,匹配上了之后就是三层拨号的工作的,选择的是PPP拨号还是direct-IP拨号,这些都可以用shell 脚本来实现。

 

版权声明:本文为cy426原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/cy426/p/3662008.html