[原创]基于Zybo SDIO WiFi模块调试
采用的是RTL8189 SDIO 模块,介绍如下
The Realtek RTL8189ES-VB-CG is a highly integrated single-chip 802.11n Wireless LAN (WLAN) network SDIO interface (SDIO 1.1/ 2.0/ 3.0 compliant) controller. It is a WLAN MAC, a 1T1R capable WLAN baseband, and WLAN RF in a single chip. The RTL8189ES-VB provides a complete solution for a high-throughput performance integrated wireless LAN device.
The RTL8189ES-VB WLAN baseband implements Orthogonal Frequency Division Multiplexing (OFDM) with 1 transmit and 1 receive path and is compatible with the IEEE 802.11n specification. Features include one spatial stream transmission, short guard interval (GI) of 400ns, spatial spreading, and transmission over 20MHz and 40MHz bandwidth.
For legacy compatibility, Direct Sequence Spread Spectrum (DSSS), Complementary Code Keying (CCK) and OFDM baseband processing are included to support all IEEE 802.11b and 802.11g data rates. Differential phase shift keying modulation schemes, DBPSK and DQPSK with data scrambling capability, are available, and CCK provides support for legacy data rates, with long or short preamble. The high-speed FFT/IFFT paths, combined with BPSK, QPSK, 16QAM, and 64QAM modulation of the individual subcarriers and rate compatible punctured convolutional coding with coding rate of 1/2, 2/3, 3/4, and 5/6, provide higher data rates of 54Mbps and 150Mbps for IEEE 802.11g and 802.11n OFDM respectively.
The RTL8189ES-VB WLAN Controller builds in an enhanced signal detector, an adaptive frequency domain equalizer, and a soft-decision Viterbi decoder to alleviate severe multi-path effects and mutual interference in the reception of multiple streams. Robust interference detection and suppression are provided to protect against Bluetooth, cordless phone, and microwave oven interference.
Efficient IQ-imbalance, DC offset, phase noise, frequency offset, and timing offset compensations are provided for the radio frequency front-end. Selectable digital transmit and receive FIR filters are provided to meet transmit spectrum mask requirements and to reject adjacent channel interference, respectively.
The RTL8189ES-VB WLAN Controller supports fast receiver Automatic Gain Control (AGC) with synchronous and asynchronous control loops among antennas, antenna diversity functions, and adaptive transmit power control function to obtain the better performance in the analog portions of the transceiver.
The RTL8189ES-VB WLAN MAC supports 802.11e for multimedia applications, 802.11i for security, and 802.11n for enhanced MAC protocol efficiency. Using packet aggregation techniques such as A-MPDU with BA and A-MSDU, protocol efficiency is significantly improved. Power saving mechanisms such as Legacy Power Save, and U-APSD, reduce the power wasted during idle time, and compensates for the extra power required to transmit OFDM. The RTL8189ES-VB provides simple legacy and 20MHz/40MHz co-existence mechanisms to ensure backward and network compatibility.
wpa & hostapd工具,解压驱动wpa工具
[#127#16:44:45 FPGADeveloper@ubuntu ~/Public_Tools]$tar zxvf *.tar.gz wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/ wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/ wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/ChangeLog wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/defconfig wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/wpa_passphrase.c wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/main_winsvc.c wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/README-WPS wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/main.c wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/notify.h wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/config_ssid.h wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/ctrl_iface_udp.c wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/wpa_supplicant.c wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/config_none.c wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/ctrl_iface_named_pipe.c wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/win_if_list.c wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/pf/ wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/pf/wpa_supplicant.PRI wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/pf/wpa_supplicant.IAD wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/pf/wpa_supplicant.IMB wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/pf/wpa_supplicant.SearchResults wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/pf/wpa_supplicant.IAB wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/pf/wpa_supplicant.WK3 wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/pf/wpa_supplicant.PO wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/pf/wpa_supplicant.PFI wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/pf/wpa_supplicant.PS wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/pf/wpa_supplicant.IMD wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant/pf/wpa_supplicant.PR .... [#133#16:46:41 FPGADeveloper@ubuntu ~/Public_Tools/wpa_supplicant_hostapd-0.8_rtw_r7475.20130812]$cd wpa_supplicant/ [#135#16:46:44 FPGADeveloper@ubuntu ~/Public_Tools/wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant]$make CC=arm-xilinx-linux-gnueabi-gcc CC config.c CC notify.c CC bss.c CC eap_register.c CC ../src/utils/common.c CC ../src/utils/wpa_debug.c CC ../src/utils/wpabuf.c CC ../src/utils/os_unix.c CC ../src/utils/eloop.c CC config_file.c CC ../src/rsn_supp/wpa.c CC ../src/rsn_supp/preauth.c CC ../src/rsn_supp/pmksa_cache.c ...
编译hostapd工具,目录切换至hostapd下
[#140#16:47:33 FPGADeveloper@ubuntu ~/Public_Tools/wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/hostapd]$ls Android.mk config_file.h dump_state.c eap_testing.txt hostapd.accept hostapd.deny hostapd.vlan Makefile src bsd_hostapd.conf ctrl_iface.c dump_state.h hlr_auc_gw.c hostapd_cli.1 hostapd.eap_user hostapd.wpa_psk nt_password_hash.c wired.conf ChangeLog ctrl_iface.h eap_register.c hlr_auc_gw.milenage_db hostapd_cli.c hostapd.radius_clients logwatch README config_file.c defconfig eap_register.h hostapd.8 hostapd.conf hostapd.sim_db main.c README-WPS [#141#16:47:33 FPGADeveloper@ubuntu ~/Public_Tools/wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/hostapd]$make CC=arm-xilinx-linux-gnueabi-gcc make[1]: Entering directory `/home/hsfpga2016/Public_Tools/wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/src/drivers' rm -f *~ *.o *.d rm -f build.wpa_supplicant build.hostapd make[1]: Leaving directory `/home/hsfpga2016/Public_Tools/wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/src/drivers' CC main.c CC config_file.c CC ../src/ap/hostapd.c ../src/ap/wpa_auth_glue.c: In function 'hostapd_wpa_auth_send_ether': ../src/ap/wpa_auth_glue.c:351:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable] CC ../src/ap/wpa_auth_glue.c CC ../src/ap/drv_callbacks.c CC ../src/ap/ap_drv_ops.c CC ../src/ap/utils.c CC ../src/ap/authsrv.c CC ../src/ap/ieee802_1x.c CC ../src/ap/ap_config.c CC ../src/ap/ieee802_11_auth.c CC ../src/ap/sta_info.c CC ../src/ap/wpa_auth.c CC ../src/ap/tkip_countermeasures.c CC ../src/ap/ap_mlme.c CC ../src/ap/wpa_auth_ie.c CC ../src/ap/preauth_auth.c CC ../src/ap/pmksa_cache_auth.c CC ../src/drivers/drivers.c
安装驱动
zynq> insmod wlan.ko [ 269.010636] RTL871X: module init start [ 269.014319] RTL871X: rtl8189es v4.3.18.2_17395.20160422 [ 269.019606] RTL871X: build time: Sep 3 2016 11:00:52 [ 269.025371] RTL871X: CHIP TYPE: RTL8188E [ 269.029669] RTL871X: rtw_hal_config_rftype RF_Type is 3 TotalTxPath is 1 [ 269.036382] RTL871X: Chip Version Info: CHIP_8188E_Normal_Chip_TSMC_D_CUT_1T1R_RomVer(0) [ 269.044674] RTL871X: EEPROM type is E-FUSE [ 269.048742] RTL871X: =>_CardEnable [ 269.058738] RTL871X: SetHwReg8188E: bMacPwrCtrlOn=1 [ 269.063536] RTL871X: <=_CardEnable [ 269.066989] RTL871X: _ReadPROMContent: 9346CR=0x20, Boot from EFUSE, Autoload OK [ 269.074684] RTL871X: =>_InitPowerOn_8188ES [ 269.078743] RTL871X: =>_CardEnable [ 269.082086] RTL871X: =>_CardEnable bMacPwrCtrlOn == _TRUE do nothing !! [ 269.088736] RTL871X: <=_CardEnable [ 269.092601] RTL871X: <=_InitPowerOn_8188ES [ 269.096754] bFWReady == _FALSE call reset 8051... [ 269.102229] RTL871X: =====> _8051Reset88E(): 8051 reset success . [ 269.125363] RTL871X: efuse_read_phymap_from_txpktbuf bcnhead:0 [ 269.132490] RTL871X: efuse_read_phymap_from_txpktbuf len:162, lenbak:162, aaa:162, aaabak:162 [ 269.152826] RTL871X: efuse_read_phymap_from_txpktbuf read count:160 [ 269.159319] RTL871X: EEPROM ID=0x8129 [ 269.162902] RTL871X: Hal_ReadPowerSavingMode88E...bHWPwrPindetect(0)-bHWPowerdown(0) ,bSupportRemoteWakeup(0) [ 269.172900] RTL871X: ### PS params=> power_mgnt(0),usbss_enable(0) ### [ 269.179476] RTL871X: ======= Path 0, Channel 2 ======= ... ... [ 269.815533] RTL871X: rtw_ndev_init(wlan0) if1 mac_addr=a0:f4:59:dc:ed:ce [ 269.862445] RTL871X: module init ret=0
如果在运行log中,未出现上述过程,需要检测卡槽是否松动。
将SD转接板插入SD插槽,待Kernel加载完成,系统识别到外设,并在Term中出现下述log,如下所示:
zynq> ifconfig wlan0 up [ 1436.394536] RTL871X: +871x_drv - drv_open, bup=0 [ 1436.399204] RTL871X: +rtl8188es_hal_init [ 1436.403113] RTL871X: FW does not exit before power on!! [ 1436.408283] RTL871X: =>_InitPowerOn_8188ES [ 1436.412335] RTL871X: =>_CardEnable [ 1436.415723] RTL871X: =>_CardEnable bMacPwrCtrlOn == _TRUE do nothing !! [ 1436.422350] RTL871X: <=_CardEnable [ 1436.426032] RTL871X: <=_InitPowerOn_8188ES [ 1436.430409] RTL871X: PowerOnCheck: val_mix:0x0000063f, res:0x0000063f [ 1436.436771] RTL871X: PowerOnCheck: 0x100 the result of cmd52 and cmd53 is the same. [ 1436.444666] RTL871X: PowerOnCheck: 0x1B8 test Pass. [ 1436.449490] RTL871X: Power on ok! [ 1436.453190] RTL871X: _init_available_page_threshold(): Enable Tx FIFO Page Threshold H:0x4f4f,N:0x4f4f,L:0x5454 [ 1436.463677] RTL871X: rtl8188e_FirmwareDownload fw:NIC, size: 15028 [ 1436.469801] RTL871X: rtl8188e_FirmwareDownload: fw_ver=17 fw_subver=0000 sig=0x88e1, Month=15, Date=19, Hour=94, Minute=3a [ 1436.864571] RTL871X: polling_fwdl_chksum: Checksum report OK! (1, 0ms), REG_MCUFWDL:0x00030005 [ 1436.874118] RTL871X: =====> _8051Reset88E(): 8051 reset success . [ 1436.880334] RTL871X: _FWFreeToGo: Polling FW ready OK! (1, 10ms), REG_MCUFWDL:0x000300c6 [ 1436.888365] RTL871X: FWDL success. write_fw:1, 410ms [ 1437.177802] ==> rtl8188e_iol_efuse_patch [ 1437.238397] RTL871X: HalDetectPwrDownMode(): PDN=0 [ 1437.243109] RTL871X: Set RF Chip ID to RF_6052 and RF type to 3. [ 1437.305829] RTL871X: pDM_Odm TxPowerTrackControl = 1 [ 1437.504182] RTL871X: DISABLE_BB_RF=0 [ 1437.507714] RTL871X: IS_HARDWARE_TYPE_8188ES=1 [ 1437.512321] RTL871X: -rtl8188es_hal_init [ 1437.516165] RTL871X: rtl8188es_hal_init in 1110ms [ 1437.526000] RTL871X: wlan0Port-0 set opmode = 2 [ 1437.531190] RTL871X: Using the default RF gain. [ 1437.535645] RTL871X: MAC Address = a0:f4:59:dc:ed:ce [ 1437.541007] RTL871X: start rtl8188es_xmit_thread [ 1437.545645] RTL871X: -871x_drv - drv_open, bup=1
SD相关驱动后续将加载驱动,运行相关命令,将模块配置成STA模式。
zynq> iwlist wlan0 channel wlan0 13 channels in total; available frequencies : Channel 01 : 2.412 GHz Channel 02 : 2.417 GHz Channel 03 : 2.422 GHz Channel 04 : 2.427 GHz Channel 05 : 2.432 GHz Channel 06 : 2.437 GHz Channel 07 : 2.442 GHz Channel 08 : 2.447 GHz Channel 09 : 2.452 GHz Channel 10 : 2.457 GHz Channel 11 : 2.462 GHz Channel 12 : 2.467 GHz Channel 13 : 2.472 GHz Current Frequency:2.412 GHz (Channel 1)
zynq> iwlist wlan0 rate wlan0 4 available bit-rates : 1 Mb/s 2 Mb/s 5.5 Mb/s 11 Mb/s
zynq> iwconfig wlan0 mode Managed [ 3142.219190] RTL871X: set_mode = IW_MODE_INFRA [ 3142.223694] RTL871X: wlan0Port-0 set opmode = 2
由于此网络没有加密,可以采用iwconfig进行通讯
zynq> iwlist wlan0 scan [ 2987.294841] RTL871X: SetHwReg8188E:(HW_VAR_CHECK_TXBUF)TXBUF Empty(1) in 0 ms [ 2988.612835] RTL871X: survey done event(2e) band:0 for wlan0 [ 2988.618369] RTL871X: rtw_indicate_scan_done(wlan0) wlan0 Scan completed : Cell 01 - Address: 0C:**:68:3D:5E:2D ESSID:"Zynq_WiFi" Protocol:IEEE 802.11bgn Mode:Master Frequency:2.412 GHz (Channel 1) Encryption key:on Bit Rates:150 Mb/s Extra:rsn_ie=30140100000fac040100000fac040100000fac020000 IE: IEEE 802.11i/WPA2 Version 1 Group Cipher : CCMP Pairwise Ciphers (1) : CCMP Authentication Suites (1) : PSK Quality=100/100 Signal level=100/100 Extra:fm=0003
zynq> iwconfig wlan0 essid "zynqWiFi" [ 3375.114669] RTL871X: =>rtw_wx_set_essid [ 3375.118625] RTL871X: ssid=zynqWiFi, len=8 [ 3375.122581] RTL871X: set ssid [zynqWiFi] fw_state=0x00000008 [ 3375.128229] RTL871X: Set SSID under fw_state=0x00000008 [ 3375.133420] RTL871X: [by_bssid:0][assoc_ssid:zynqWiFi][to_roam:0] new candidate: zynqWiFi(98:fa:e3:fe:5d:38, ch6) rssi:-46 [ 3375.144455] RTL871X: rtw_select_and_join_from_scanned_queue: candidate: zynqWiFi(98:fa:e3:fe:5d:38, ch:6) [ 3375.153996] RTL871X: link to new AP [ 3375.157476] RTL871X: [HT] HAL Support STBC = 0x01 [ 3375.162140] RTL871X: [HT] Declare supporting RX STBC_1R [ 3375.167398] RTL871X: rtw_chk_start_clnt_join(wlan0) req: 6,0,0 [ 3375.167404] RTL871X: <=rtw_wx_set_essid, ret 0 [ 3375.179041] RTL871X: rtw_chk_start_clnt_join(wlan0) union: 6,0,0 [ 3375.234515] RTL871X: OnBeacon: beacon keys ready [ 3375.239071] RTL871X: link to new AP [ 3375.242525] RTL871X: start auth [ 3375.245654] RTL871X: issue_auth [ 3375.253414] RTL871X: OnAuthClient [ 3375.256644] RTL871X: auth success, start assoc [ 3375.261105] RTL871X: network.SupportedRates[0]=82 ... [ 3375.312718] RTL871X: network.SupportedRates[11]=6C [ 3375.317508] RTL871X: bssrate_len = 12 [ 3375.338755] RTL871X: OnAssocRsp [ 3375.341825] RTL871X: report_join_res(1) [ 3375.345636] RTL871X: rtw_joinbss_update_network [ 3375.350173] RTL871X: +rtw_update_ht_cap() [ 3375.354173] RTL871X: rtw_alloc_macid(wlan0) if1, hwaddr:98:fa:e3:fe:5d:38 macid:0 [ 3375.361623] RTL871X: rtw_joinbss_update_stainfo [ 3375.366128] RTL871X: supp_mcs_set = ff, 00, 00, rf_type=3, tx_ra_bitmap=00000000000fffff [ 3375.374208] RTL871X: ### Set STA_(0) info ### [ 3375.378548] RTL871X: assoc success [ 3375.381991] RTL871X: HW_VAR_BASIC_RATE: 0x15f -> 0x15f -> 0x15f [ 3375.388334] RTL871X: WMM(0): 0, a42b [ 3375.391935] RTL871X: WMM(1): 0, a44f [ 3375.395538] RTL871X: WMM(2): 0, 5e4322 [ 3375.399338] RTL871X: WMM(3): 0, 2f3222 [ 3375.403008] RTL871X: wmm_para_seq(0): 0 ... [ 3375.414464] RTL871X: wmm_para_seq(3): 3 [ 3375.418305] RTL871X: HTOnAssocRsp [ 3375.421902] RTL871X: ODM_Get_Rate_Bitmap ==> rssi_level:0x00, WirelessMode:0x0b, rate_bitmap:0x000ff005 [ 3375.431237] RTL871X: UpdateHalRAMask8188E => mac_id:0, rate_id:0, networkType:0x0b, mask:0x000fffff [ 3375.431237] ==> rssi_level:0, rate_bitmap:0x000ff005 [ 3375.445391] RTL871X: ### MacID(31),Set Max Tx RPT MID(32) [ 3375.450815] RTL871X: ### rtl8188e_set_FwMediaStatus_cmd: MStatus=1 MACID=0 [ 3375.458304] RTL871X: SetHwReg8188E(wlan0): [HW_VAR_MACID_WAKEUP] macid=0, org reg_0x48c=0x00000000 [ 3375.467788] RTL871X: rtl8188e_set_FwJoinBssReport_cmd mstatus(1) [ 3375.474167] RTL871X: rtw_hal_set_fw_rsvd_page wowlan_in_resume: 0 [ 3375.480215] RTL871X: rtw_hal_set_fw_rsvd_page PageSize: 128, RsvdPageNUm: 8 [ 3375.487148] RTL871X: LocPsPoll: 2 [ 3375.490424] RTL871X: LocNullData: 3 [ 3375.493896] RTL871X: LocQosNull: 4 [ 3375.497522] RTL871X: rtw_hal_set_fw_rsvd_page: Set RSVD page location to Fw ,TotalPacketLen(570), TotalPageNum(5) [ 3375.507722] RTL871X: RsvdPageLoc: ProbeRsp=0 PsPoll=2 Null=3 QoSNull=4 BTNull=0 [ 3375.515371] RTL871X: wlan0: 1 DL RSVD page success! DLBcnCount:1, poll:1 [ 3375.522298] RTL871X: Set RSVD page location to Fw. [ 3375.532040] RTL871X: =>mlmeext_joinbss_event_callback - End to Connection without 4-way [ 3375.546082] RTL871X: ODM_Get_Rate_Bitmap ==> rssi_level:0x01, WirelessMode:0x0b, rate_bitmap:0x000f0000 [ 3375.555436] RTL871X: UpdateHalRAMask8188E => mac_id:0, rate_id:0, networkType:0x0b, mask:0x000fffff [ 3375.555436] ==> rssi_level:1, rate_bitmap:0x000f0000 [ 3389.537443] RTL871X: SetHwReg8188E(wlan0): [HW_VAR_MACID_WAKEUP] macid=0, org reg_0x48c=0x00000000
zynq> udhcpc -i wlan0 udhcpc (v1.20.1) started Sending discover... Sending select for 192.168.43.103... Lease of 192.168.43.103 obtained, lease time 3600 deleting routers route: SIOCDELRT: No such process adding dns 192.168.43.1
zynq> iwconfig [ 3423.674137] RTL871X: rtw_wx_get_rts, rts_thresh=2347 [ 3423.679071] RTL871X: rtw_wx_get_frag, frag_len=2346 wlan0 IEEE 802.11bgn ESSID:"zynqWiFi" Nickname:"<WIFI@REALTEK>" Mode:Managed Frequency:2.437 GHz Access Point: 98:FA:E3:FE:5D:38 Bit Rate:72.2 Mb/s Sensitivity:0/0 Retry:off RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality=100/100 Signal level=100/100 Noise level=0/100 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 lo no wireless extensions. eth0 no wireless extensions.
至此可以访问外网
zynq> ping baidu.com PING baidu.com (220.181.57.217): 56 data bytes 64 bytes from 220.181.57.217: seq=0 ttl=52 time=232.920 ms 64 bytes from 220.181.57.217: seq=1 ttl=52 time=168.322 ms 64 bytes from 220.181.57.217: seq=2 ttl=52 time=114.563 ms 64 bytes from 220.181.57.217: seq=3 ttl=52 time=140.901 ms ... 64 bytes from 220.181.57.217: seq=221 ttl=52 time=97.628 ms 64 bytes from 220.181.57.217: seq=222 ttl=52 time=95.745 ms ^C --- baidu.com ping statistics --- 223 packets transmitted, 223 packets received, 0% packet loss round-trip min/avg/max = 89.159/144.236/474.732 ms zynq> ifconfig wlan0 Link encap:Ethernet HWaddr A0:F4:59:DC:ED:CE inet addr:192.168.43.103 Bcast:192.168.43.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:258 errors:0 dropped:4 overruns:0 frame:0 TX packets:245 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:29216 (28.5 KiB) TX bytes:28404 (27.7 KiB)
欢迎转载 注明出处
交流邮箱:cx_info@163.com