Ubuntu台式机如何用usb无线网卡共享网络
Walker Xu
由于工作需要,要在ubuntu台式机上搭建一个wifi热点,供手机联网,在这里记录一下,因为确实有很多坑。
usb无线网卡的选择,要满足两个条件,支持模拟AP功能,和支持linux系统或能找到对应芯片组的linux驱动。支持softAP android手机才能正常连接。测试工具只支持ubuntu,所以网卡只能工作在linux上。我选择了tenda u1和水星MW150UH两款usb无线网卡,并在京东下单,经过调试只有tenda u1可以正常使用,mw150uh暂时没有办法支持。
所以后边的实现都是基于tenda u1的。
驱动的安装,从光盘或官网上下载驱动,解压到本地
(1)不要管什么install脚本什么的,直接进入目录RTL8192EU_linux_v4.3.15_14701_BTCOEX20150615-41.20150715/driver/rtl8192EU_linux_v4.3.15_14701.20150715_BTCOEX20150615-41$
(2)编辑include/autoconf.h文件,打开宏CONFIG_IOCTL_CFG80211和RTW_USE_CFG80211_STA_EVENT,目的是打开softAP模式。
(3)然后make,编译成功后本地会生成8192eu.ko
(4)插上usb网卡,执行sudo insmod 8192eu.ko挂载驱动
(5)用ifconfig命令查看,网卡是否正确识别,正确识别的话,命令会输出如下信息
wlan0 Link encap:Ethernet HWaddr 50:2b:73:c0:3e:8e
UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
用iw list命令,查看挂载的网卡是否支持softAP功能,主要看supported interface modes,support rx frame,support tx frame是否包含AP。如果如下图显示证明支持softAP模式,可以继续下边的工作了。
Wiphy phy0
Band 1: Capabilities: 0x1862 HT20/HT40 Static SM Power Save RX HT20 SGI RX HT40 SGI No RX STBC Max AMSDU length: 7935 bytes DSSS/CCK HT40 Maximum RX AMPDU length 65535 bytes (exponent: 0x003) Minimum RX AMPDU time spacing: 16 usec (0x07) HT TX/RX MCS rate indexes supported: 0-15,32 Frequencies: * 2412 MHz [1] (20.0 dBm) * 2417 MHz [2] (20.0 dBm) * 2422 MHz [3] (20.0 dBm) * 2427 MHz [4] (20.0 dBm) * 2432 MHz [5] (20.0 dBm) * 2437 MHz [6] (20.0 dBm) * 2442 MHz [7] (20.0 dBm) * 2447 MHz [8] (20.0 dBm) * 2452 MHz [9] (20.0 dBm) * 2457 MHz [10] (20.0 dBm) * 2462 MHz [11] (20.0 dBm) * 2467 MHz [12] (20.0 dBm) (passive scanning,no IBSS) * 2472 MHz [13] (20.0 dBm) (passive scanning,no IBSS) * 2484 MHz [14] (disabled) Bitrates (non-HT): * 1.0 Mbps * 2.0 Mbps * 5.5 Mbps * 11.0 Mbps * 6.0 Mbps * 9.0 Mbps * 12.0 Mbps * 18.0 Mbps * 24.0 Mbps * 36.0 Mbps * 48.0 Mbps * 54.0 Mbps max # scan SSIDs: 9 max scan IEs length: 2304 bytes Coverage class: 0 (up to 0m) Supported Ciphers: * WEP40 (00-0f-ac:1) * WEP104 (00-0f-ac:5) * TKIP (00-0f-ac:2) * CCMP (00-0f-ac:4) Available Antennas: TX 0 RX 0 Supported interface modes: * IBSS * managed * AP * monitor * P2P-client * P2P-GO software interface modes (can always be added): * monitor interface combinations are not supported Supported commands: * new_interface * set_interface * new_key * new_beacon * new_station * set_bss * join_ibss * set_pmksa * del_pmksa * flush_pmksa * remain_on_channel * action * set_channel * connect * disconnect Supported TX frame types: * IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 Supported RX frame types: * IBSS: 0xd0 * managed: 0x40 0xd0 * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0 * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0 * P2P-client: 0x40 0xd0 * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0 WoWLAN support: * wake up on anything (device continues operating normally)
上边已经讲了如何安装tenda u1的驱动,以及如何判断该网卡是否正确识别和支持softAP,这只是实现网络共享的一小步,都说万事开头难,实际后边更难。我们一步步来。
首先不要听网上或者官方文档说的用hostpad,ap-hotspot,hack network manager等方式,绝对坑你没商量。第一步要做的就是检查你的ubuntu版本,必须升级到14.04或以上,不然不用看下文了,自己折腾去。
在ubuntu software center搜索network,找到kde-nm--connection-editor这个软件,安装。不要用系统自带的network manager,它不支持建立AP模式热点,kde-nm-connection-editor可以。
在终端命令行输入kde-nm-connection-manager启动配置界面,然后添加一系列操作如下图完成一个无线网络的添加。
4.这个时候只是创建了一个无线AP,要启动它还要,点开右上角ubuntu的网络连接,选择connect to hidden wi-fi network,然后选择我们之前创建的connection name,点connect,AP开启,快用android手机或苹果手机或电脑搜索下,连接看能否正常使用,经测试正常使用。