最近參與了一個無線網(wǎng)卡撥號上網(wǎng)的項(xiàng)目, 收獲頗多。
對市面上的無線網(wǎng)卡一般都要在客戶端安裝對應(yīng)的網(wǎng)卡驅(qū)動,所以一旦換一款網(wǎng)卡就要安裝一款對應(yīng)的網(wǎng)卡驅(qū)動。然后對于一臺路由器設(shè)備而言安裝一個無線網(wǎng)卡驅(qū)動那就是不好辦的事了,所以市面上的路由器一般都有表明它只支持哪幾款無線網(wǎng)卡上網(wǎng),這是在開發(fā)路由器時把這些無線網(wǎng)卡驅(qū)動給裝好。
而linux系統(tǒng)是自帶大部分的無線網(wǎng)卡驅(qū)動,也就是說Linux本身支持大部分無線網(wǎng)卡驅(qū)動。所以如果路由器使用的操作系統(tǒng)是Linux,那對于一款3G網(wǎng)卡撥號上網(wǎng)的modem,我們就只用像在linux下配置好的撥號配置就行了。 唯一比較麻煩的事,我們需要去嘗試哪個tty設(shè)備是你插上去的usb modem產(chǎn)生的。當(dāng)我們把一款usb無線網(wǎng)卡插在路由器的USB口上時,linux會產(chǎn)生usb tty設(shè)備文件(control tty, data tty),我們需要在配置中需要逐個嘗試,匹配上了剩下的就是撥號腳本的事,4G無線網(wǎng)卡也同理。
實(shí)現(xiàn)的大概思路:一個線程監(jiān)聽usb modem的熱插拔,一旦插上或拔掉usb modem, linux內(nèi)核就會發(fā)出kevent, 捕獲該event, 將它放入一個處理隊(duì)列中。另一個線程對隊(duì)列中的事件進(jìn)行處理。處理就是上述逐個匹配對應(yīng)的tty設(shè)備,匹配上了之后就是三層撥號的工作的,選擇的是PPP撥號還是direct-ip撥號,這些都可以用shell 腳本來實(shí)現(xiàn)。
新聞熱點(diǎn)
疑難解答
圖片精選