查看: 4454|回复: 0

OpenWRT添加无线USB网卡(附详细代码)

[复制链接]
  • TA的每日心情
    开心
    2014-4-21 09:44
  • 签到天数: 26 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2017-7-5 13:23:09 | 显示全部楼层 |阅读模式
    分享到:
    说明
    要完成网线网卡的驱动需要在内核中添加驱动,同时还需要将固件放入rootfs中正确的位置,如果需要固件的话。

    内核驱动添加
    因为内核中对常规的USB网卡均支持,所以直接添加即可, 例如下面是对9170的支持:

    TIM截图20170705131628.png

    Firmware添加
    在menuconfig中直接添加:
    TIM截图20170705131806.png

    启动确认启动后,我们需要等待rootfs完成后再插入, 这样子可以比较容易看到log, 对于TPLink的其中一款,对应的log如下:
    1. [ 1015.718981] usb 1-1.2.4: new high-speed USB device number 9 using ci_hdrc
    2. [ 1015.978998] usb 1-1.2.4: reset high-speed USB device number 9 using ci_hdrc
    3. [ 1016.136841] usb 1-1.2.4: driver   API: 1.9.7 2012-12-15 [1-1]
    4. [ 1016.145314] usb 1-1.2.4: firmware API: 1.9.6 2012-07-07
    5. [ 1016.497852] ath: EEPROM regdomain: 0x809c
    6. [ 1016.497905] ath: EEPROM indicates we should expect a country code
    7. [ 1016.497942] ath: doing EEPROM country->regdmn map search
    8. [ 1016.497976] ath: country maps to regdmn code: 0x52
    9. [ 1016.498010] ath: Country alpha2 being used: CN
    10. [ 1016.498040] ath: Regpair used: 0x52
    11. [ 1016.500103] ieee80211 phy3: Selected rate control algorithm 'minstrel_ht'
    12. [ 1016.510419] input: phy3 WPS Button as /devices/soc0/soc.0/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4:1.0/ieee80211/phy3/input4
    13. [ 1016.526387] evbug: Connected device: input4 (phy3 WPS Button at ieee80211/phy3/input0)
    14. [ 1016.526430] usb 1-1.2.4: Atheros AR9170 is registered as 'phy3'
    复制代码
    从log看,加载了对应的固件。配置country code。这个FW位于:
    1. root@(none):/# ls /lib/firmware/carl9170-1.fw -lu-rw-r--r--    1 root     root         13388 Feb  1 02:53 /lib/firmware/carl9170-1.fwroot@(none):/#
    复制代码
    因为这个网卡具备WPS功能,有一个按键,所以有一个input设备。
    对于另外一个USB网卡:
    1. [ 1022.368886] usb 1-1.2.1: new high-speed USB device number 10 using ci_hdrc
    2. [ 1022.608872] usb 1-1.2.1: reset high-speed USB device number 10 using ci_hdrc
    3. [ 1022.740356] ieee80211 phy4: rt2x00_set_rt: Info - RT chipset 3070, rev 0201 detected
    4. [ 1022.804614] ieee80211 phy4: rt2x00_set_rf: Info - RF chipset 0005 detected
    5. [ 1022.813948] ieee80211 phy4: Selected rate control algorithm 'minstrel_ht'
    复制代码
    然后就可以看到对应的网卡设备了:
    1.     wlan0     Link encap:Ethernet  HWaddr 7c:dd:90:b2:73:b1  
    2.               BROADCAST MULTICAST  MTU:1500  Metric:1
    3.               RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    4.               TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    5.               collisions:0 txqueuelen:1000
    6.               RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

    7.     wlan1     Link encap:Ethernet  HWaddr 94:0c:6d:7c:12:f6  
    8.               BROADCAST MULTICAST  MTU:1500  Metric:1
    9.               RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    10.               TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    11.               collisions:0 txqueuelen:1000
    12.               RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    复制代码
    网卡功能查询
    使用USB网卡来做AP那么就需要确定时候具备AP功能

    使用iw list命令, 然后找到对应的modes:
    1. Supported interface modes:
    2.                  * IBSS
    3.                  * managed
    4.                  * AP
    5.                  * AP/VLAN
    6.                  * monitor
    7.                  * P2P-client
    8.                  * P2P-GO

    9.        Supported interface modes:
    10.                  * IBSS
    11.                  * managed
    12.                  * AP
    13.                  * AP/VLAN
    14.                  * WDS
    15.                  * monitor
    复制代码
    因此可以确定两个网卡均具备AP模式, 还有一个具备monitor模式。生成了Network Interface后,接下来我们将完成AP功能。

    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-26 21:28 , Processed in 0.112044 second(s), 16 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.