第五季2:STA模式USB-WIFI网卡移植与测试

本文详细介绍了在海思Hi3518E平台上移植MT7601U STA模式USB-WIFI驱动以及wpa_supplicant的过程,包括修改Makefile、config.mk文件,设置网卡名称,安装驱动,配置wpa_supplicant,以及进行网络测试和ORTP视频传输测试。同时,还展示了如何通过无线方式实现全程调试,包括设置虚拟机桥接、开发板配置和网络连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下内容源于朱有鹏课程,如有侵权,请告知删除。

参考博客

hisi3518ev200移植MT7601_fsczp的博客-CSDN博客

wpa_supplicant移植与使用_andylauren的博客-CSDN博客

Linux wpa_cli 调试方法_weixin_34168700的博客-CSDN博客

12 海思Hi3518E移植WIFI驱动(STA模式)_QtHalcon的博客-CSDN博客

内容总结

(1)HI2518E+WIFI做STA,PC做STA,外部路由器做AP,实现局域网内ortp视频传输。

(2)HI2518E+WIFI做STA,PC做STA,外部路由器做AP,实现局域网全程无线调试。

一、STA模式USB-WIFI网卡移植

1、修改Makefile文件

文件路径是MT7601_driver/sta/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/Makefile。

(1)注释掉之前的PLATFORM,然后在67行添加“PLATFORM = HISI_3518E”。

//省略部分代码,注释掉这些
#PLATFORM = BLPMP
#PLATFORM = MT85XX
#PLATFORM = MT53XX
#PLATFORM = NXP_TV550
#PLATFORM = MVL5
#PLATFORM = RALINK_3352
#PLATFORM = UBICOM_IPX8
#PLATFORM = INTELP6
#PLATFORM = MSTARTV

//添加下面代码
PLATFORM = HISI_3518E

(2)仿照相应的格式,在105行附近添加下面内容。

ifeq ($(PLATFORM),HISI_3518E)
LINUX_SRC = /home/xjh/iot/hisi_development/Hi3518E_SDK/Hi3518E_SDK_V1.0.3.0/osdrv/opensource/kernel/linux-3.4.y
CROSS_COMPILE = arm-hisiv300-linux-
export ARCH = arm
endif

(3)修改xxx.ko文件输出路径。即在Makefile文件440行附近修改如下,将来在/home/xjh/iot/hisi_development/hisi_rootfs/目录中得到mt7601Usta.ko文件。

ifneq ($(findstring 7601,$(CHIPSET)),)
         cp -f $(RT28xx_DIR)/os/linux/mt$(MODULE)sta.ko /home/xjh/iot/hisi_development/hisi_rootfs/ 2>/dev/null || :
 else
         cp -f $(RT28xx_DIR)/os/linux/rt$(MODULE)sta.ko /tftpboot 2>/dev/null || :
 endif

2、修改config.mk文件

文件路径是MT7601_driver/sta/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/config.mk。

(1)搜索HAS_WPA_SUPPLICANT,确认是否如下。

  24 # Support Wpa_Supplicant
  25 # i.e. wpa_supplicant -Dralink
  26 HAS_WPA_SUPPLICANT=y
  27 
  28 
  29 # Support Native WpaSupplicant for Network Maganger
  30 # i.e. wpa_supplicant -Dwext
  31 HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y

(2)仿照相应的格式,在987行附近添加下面内容。

 987 ifeq ($(PLATFORM),HISI_3518E)
 988 EXTRA_CFLAGS += $(WFLAGS)
 989 export EXTRA_CFLAGS
 990 endif

3、修改网卡名称为wlan

在MT7601_driver/sta/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/include/rtmp_def.h文件中修改内容如下。

1600 //#ifdef ANDROID_SUPPORT
1601 #define INF_MAIN_DEV_NAME               "wlan"
1602 #define INF_MBSSID_DEV_NAME             "wlan"
1603 //#else
1604 //#define INF_MAIN_DEV_NAME             "ra"
1605 //#define INF_MBSSID_DEV_NAME           "ra"
1606 //#endif /* ANDROID_SUPPORT */

4、安装驱动

(1)在MT7601_driver/sta/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/下执行“make”。

(2)安装mt7601Usta.ko文件,即在板载系统的/mnt目录下执行“insmod mt7601Usta.ko”。

注意先卸载mt7601Uap.ko模块(如果有的话),否则会报错。

/mnt # ls
RT2870AP.dat      mt7601Usta.ko     stream_chn0.h264
mt7601Uap.ko      sample_venc
/mnt # insmod mt7601Usta.ko
rtusb init rt2870 --->
===>rt2870_probe()!
--> RTMPAllocAdapterBlock


=== pAd = c2ed6000, size = 841592 ===

--> RTMPAllocTxRxRingMemory
<-- RTMPAllocTxRxRingMemory, Status=0
<-- RTMPAllocAdapterBlock, Status=0
NumEndpoints=8
BULK IN MaxPacketSize = 512
EP address = 0x84
BULK IN MaxPacketSize = 512
EP address = 0x85
BULK OUT MaxPacketSize = 512
EP address = 0x 8  
BULK OUT MaxPacketSize = 512
EP address = 0x 4  
BULK OUT MaxPacketSize = 512
EP address = 0x 5  
BULK OUT MaxPacketSize = 512
EP address = 0x 6  
BULK OUT MaxPacketSize = 512
EP address = 0x 7  
BULK OUT MaxPacketSize = 512
EP address = 0x 9  
RTMP_COM_IoctlHandle():pAd->BulkOutEpAddr=0x8
RTMP_COM_IoctlHandle():pAd->BulkOutEpAddr=0x4
RTMP_COM_IoctlHandle():pAd->BulkOutEpAddr=0x5
RTMP_COM_IoctlHandle():pAd->BulkOutEpAddr=0x6
RTMP_COM_IoctlHandle():pAd->BulkOutEpAddr=0x7
RTMP_COM_IoctlHandle():pAd->BulkOutEpAddr=0x9
STA Driver version-3.0.0.3
-->MT7601_Init():
Chip specific bbpRegTbSize=0!
Chip VCO calibration mode = 0!
NVM is EFUSE
Efuse Size=0x1d [Range:1e0-1fc] 
Endpoint(8) is for In-band Command
Endpoint(4) is for WMM0 AC0
Endpoint(5) is for WMM0 AC1
Endpoint(6) is for WMM0 AC2
Endpoint(7) is for WMM0 AC3
Endpoint(9) is for WMM1 AC0
Endpoint(84) is for Data-In
Endpoint(85) is for Command Rsp
Allocate a net device with private data size=0!
Allocate net device ops success!
The name of the new wlan interface is wlan0...
RtmpOSNetDevAttach()--->
<---RtmpOSNetDevAttach(), ret=0
<===rt2870_probe()!
usbcore: registered new interface driver rt2870
/mnt #

(2)将MT7601_driver/sta/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/RT2870STA.dat文件复制到开发板的/etc/Wireless/RT2870STA目录。此时不用修改里面的参数,后续可以配合wpa_supplicant来修改。注意这个目录和RT2870AP目录不一样,别放在RT2870AP目录,否则启动网卡时会报错:

#忽略部分输出
!!! rt28xx init fail !!!
rt28xx_open return fail!
ifconfig: SIOCSIFFLAGS: Operation not permitted

二、移植wpa_supplicant

1、源码下载与解压

(1)可以从网盘资源1111下载以下资源。

(2)或者从http://hostap.epitest.fi/wpa_supplicant/下载wpa_supplicant-2.5.tar.gz。

(3)或者从ftp://ftp.openssl.org/source/old/0.9.x/下载openssl-0.9.8za.tar.gz。之所以下载openssl,是因为wpa_supplicant依赖于openssl。

(5)使用tar -zxvf 命令解压wpa_supplicant-2.5.tar.gz、openssl-0.9.8za.tar.gz。

2、移植openssl

(1)给openssl打补丁。把MT7601_driver/sta/wpa_supplicant-2.5/patches/openssl-0.9.8za-tls-extensions.patch文件拷贝到MT7601_driver/sta/openssl-0.9.8za目录下,然后在MT7601_driver/sta/openssl-0.9.8za目录下执行:(后续怎么操作呢?)

patch -p1 < openssl-0.9.8za-tls-extensions.patch

(2)修改MT7601_driver/sta/openssl-0.9.8za/Makefile文件中相关参数的值。

CC=arm-hisiv300-linux-gcc
AR=arm-hisiv300-linux-ar $(ARFLAGS)  r
AD=arm-hisiv300-linux-ar $(ARFLAGS)  d
RANLIB=arm-hisiv300-linux-ranlib
INSTALLTOP=/tmp/openssl
OPENSSLDIR=/tmp/openssl

(3)在MT7601_driver/sta/openssl-0.9.8za/目录下执行make,然后make install。

执行make install时报错如下:

smime.pod around line 272: Expected text after =item, not a number
smime.pod around line 276: Expected text after =item, not a number
smime.pod around line 280: Expected text after =item, not a number
smime.pod around line 285: Expected text after =item, not a number
smime.pod around line 289: Expected text after =item, not a number
POD document had syntax errors at /usr/bin/pod2man line 71.
make: *** [install_docs] 错误 1

这是因为OpenSSL与perl版本不兼容,解决方法是执行“rm -f /usr/bin/pod2man”,然后重新make与make install。

(4)安装好后,在/tmp/openssl目录有诸多文件,我们需要其中的lib和include目录。

root@ubuntu:/tmp/openssl# ls
bin  certs  include  lib  man  misc  openssl.cnf  private
root@ubuntu:/tmp/openssl# 

3、移植wpa_supplicant

(1)首先在MT7601_driver/sta/wpa_supplicant-2.5/wpa_supplicant目录下执行“cp defconfig ./.config”。

(2)然后修改.config,增加以下内容:

CC=arm-hisiv300-linux-gcc -L/tmp/openssl/lib
CFLAGS+=-I /tmp/openssl/include
LIBS+=-L/tmp/openssl/lib

(4)在MT7601_driver/sta/wpa_supplicant-2.5/wpa_supplicant目录下执行make。

此时报错如下:

../src/drivers/driver_nl80211.c:17:31: fatal error: netlink/genl/genl.h:没有那个文件或目录
 #include <netlink/genl/genl.h>
                               ^
compilation terminated.
make: *** [../src/drivers/driver_nl80211.o] 错误 1

解决方法在上述的.config文件中,将CONFIG_DRIVER_NL80211=y 注释掉。

(5)重新执行make,如果生成wpa_supplicant、wpa_cli,则移植成功完成。

其中wpa_supplicant是服务器端,wpa_cli是客户端。这是linux底下运用命令行管理无线网络的方式。


三、STA模式USB-WIFI网卡测试

1、部署wpa_supplicant

(1)将上面生成的wpa_supplicant、wpa_cli拷贝到开发板的/usr/bin目录。

(2)在板载系统上,创建/etc/wpa_supplicant.conf文件,并配置内容如下(注意去掉注释):

ctrl_interface=/var/run/wpa_supplicant

network={
ssid="XJH-ChinaNet-2.4G"//当前我房间的无线路由器的网络名字
scan_ssid=1
key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE//加密方式
pairwise=TKIP CCMP
group=CCMP TKIP WEP104 WEP40
psk="xie732787"//路由器的密码
}

2、STA模式USB-WIFI的设置

(1)在开发板/mnt目录下执行“insmod mt7601Usta.ko”,安装驱动mt7601Usta.ko。(如果之前已经安装,这步忽略。)

(2)设置开发板USB-WIFI网卡的静态IP地址。这里之所以设置静态IP,是因为还没有移植DHCP。这个USB-WIFI网卡最后要接入路由器,所以其网段要与实际路由器的网段一致。

SSID:    XJH-ChinaNet-2.4G
协议:    Wi-Fi 4 (802.11n)
安全类型:    WPA2-个人
网络频带:    2.4 GHz
网络通道:    10
链接速度(接收/传输):    72/72 (Mbps)
IPv6 地址:    240e:3b6:30f5:81e0:f2ef:8c53:d1e6:68ab
本地链接 IPv6 地址:    fe80::bac4:e6ab:a08d:e14c%6
IPv6 DNS 服务器:    fe80::1%6
fe80::1%6
IPv4 地址:    192.168.1.7           #笔记本的ip地址
IPv4 DNS 服务器:    192.168.1.1     #路由器的ip地址
制造商:    Realtek Semiconductor Corp.
描述:    Realtek RTL8821CE 802.11ac PCIe Adapter
驱动程序版本:    2024.0.10.209
物理地址(MAC):    0C-96-E6-67-5D-33

本人的无线路由器的地址信息如上,因此可以把开发板的USB-WIFI网卡的静态IP地址设置为192.168.1.211。

/mnt # ifconfig wlan0 up
#省略部分输出
RTUSBBulkReceive!
<==== rt28xx_init, Status=0
==> RTMPEnableRxTx
==>  DMAIdle, GloCfg=0x40000050
<== RTMPEnableRxTx
0x1300 = 00064300
RTMPDrvOpen(1):Check if PDMA is idle!
==>  DMAIdle, GloCfg=0x40000050
Driver auto reconnect to last OID_802_11_SSID setting - 11n-AP, len - 6
RTMPDrvOpen(2):Check if PDMA is idle!
CntlOidSsidProc():CNTL - 0 BSS of 0 BSS match the desire (6)SSID - 11n-AP
CNTL - All roaming failed, restore to channel 1, Total BSS[00]
==>  DMAIdle, GloCfg=0x40000050
/mnt # ifconfig wlan0 192.168.1.211
/mnt # ifconfig
eth0      Link encap:Ethernet  HWaddr 52:A6:95:FB:AF:7A  
          inet addr:192.168.1.11  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3942 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1911 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:4780527 (4.5 MiB)  TX bytes:149290 (145.7 KiB)
          Interrupt:12 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:780 (780.0 B)  TX bytes:780 (780.0 B)

wlan0     Link encap:Ethernet  HWaddr 1C:BF:CE:2C:B2:5E  
          inet addr:192.168.1.211  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5290 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:1646173 (1.5 MiB)  TX bytes:0 (0.0 B)

/mnt # 

(3)开发板作为STA接入到路由器。在开发板/mnt目录下执行以下命令,其中-dd表示打开调试信息,&表示让其工作在后台。这行命令表示让wpa_supplicant 工作起来。

/mnt # wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf -dd &
#省略部分输出
EAPOL: External notification - portValid=1
EAPOL: External notification - EAP success=1
EAPOL: SUPP_PAE entering state AUTHENTICATING
EAPOL: SUPP_BE entering state SUCCESS
EAP: EAP entering state DISABLED
EAPOL: SUPP_PAE entering state AUTHENTICATED
EAPOL: Supplicant port status: Authorized
EAPOL: SUPP_BE entering state IDLE
EAPOL authentication completed - result=SUCCESS
RTM_NEWLINK: operstate=1 ifi_flags=0x11043 ([UP][RUNNING][LOWER_UP])
RTM_NEWLINK, IFLA_IFNAME: Interface 'wlan0' added
WEXT: if_removed already cleared - ignore event
SYNC - AP changed N OperaionMode to 0
EAPOL: startWhen --> 0
EAPOL: disable timer tick
MT7601AsicTemperatureCompensation::Change to TEMPERATURE_MODE_HIGH
SYNC - AP changed B/G protection to 1
SYNC - AP changed N OperaionMode to 3
SYNC - AP changed B/G protection to 0
SYNC - AP changed N OperaionMode to 1
SYNC - AP changed N OperaionMode to 0
SYNC - AP changed B/G protection to 1
SYNC - AP changed N OperaionMode to 3
SYNC - AP changed B/G protection to 0
SYNC - AP changed N OperaionMode to 0
SYNC - AP changed N OperaionMode to 1
SYNC - AP changed B/G protection to 1
#这是动态的输出,需要按下回车继续下一步

(4)使用命令“wpa_cli -i wlan0 status”查看连接状态。

/mnt # wpa_cli -i wlan0 status
EAPOL: EAP Session-Id not available
CTRL-DEBUG: ctrl_sock-sendto: sock=7 sndbuf=163840 outq=0 send_len=200
bssid=28:93:7d:25:a5:bd
freq=0
ssid=XJH-ChinaNet-2.4G
id=0
mode=station
pairwise_cipher=CCMP
group_cipher=TKIP
key_mgmt=WPA2-PSK
wpa_state=COMPLETED
ip_address=192.168.1.211
address=1c:bf:ce:2c:b2:5e
/mnt #

(5)测试连接效果

因为开发板有两个网卡,无线网卡和有线网卡,因此ping的时候要通过“-I”来指定使用哪个网卡;或者使用命令“ifconfig eth0 down”把有线网卡关闭,从而自动使用无线网卡(推荐)。

1)ping通路由器或者说网关,使用“ping -I wlan0 192.168.1.1”。

2)想要ping通外网时,先要使用命令“route add default gw 192.168.1.1 dev wlan0”添加网关信息(即路由器的ip),然后可以测试“ping -I wlan0 8.8.8.8”(google的dnw server)。因为没有添加DNS,所以不能直接类似ping www.baidu.com.cn这种形式。

3、ORTP视频传输测试

(1)基于第三季1:ORTP库的移植与局域网视频传输的工作,在mpp/sample/common/sample_common_ven.c中,修改LOCAL_HOST_IP 为192.168.1.7,这个IP地址是笔记本无线接入时自动分配的。

(2)在mpp/sample/venc目录下编译得到sample_venc文件。

(3)将sample_venc文件拷贝到虚拟机/home/xjh/iot/hisi_development/hisi_rootfs/目录中,系统启动后这个目录会挂载到板载系统的/mnt目录,将板载系统的/mnt/sample_venc文件拷贝到板载系统的/tmp目录中。为了验证是无线传输,需要使用“ifconfig eth0 down”关闭有线网卡,然后在/tmp目录下执行“./sample_venc 0”,输入c。

(4)在PC端,将有线网卡的IP设置成无线IP不同网段(我这里恰巧是同一网段了,有线网卡的静态IP是192.168.1.10,这导致没有实时画面,后来将有线网卡的IP改为192.168.2.10之后就有画面了)。

(5)VLC播放器中选择媒体,打开文件,选择sdp文件(提取码ms4a)(注意修改sdp中c=IN IP4 192.168.1.7)。如果能看到有延迟的实时画面,则说明测试成功。

四、全程无线调试

1、操作原理

(1)虚拟机桥接到无线网卡,虚拟机、PC、开发板三者都做STA,连接同一个AP。

(2)开发板事先移植部署好USB WIFI驱动、wpa_supplicant等。

(3)开发板/etc/profile中设计好配置WIFI启动、连接AP、静态IP等。

(4)在开发板/etc/profile中设置,让虚拟机无线挂载到开发板。

2、操作步骤

(1)先确认开发板已经部署USB-WIFI驱动、wpa_supplicant工具(即上面的二三步骤)。注意有线挂载时就要把mt7601Usta.ko这个驱动拷贝到开发板/home目录下,因为无线挂载的前提是安装这个驱动,如果不从开发板/mnt目录拷贝到/home目录,就找不到这个文件了。

(2)将虚拟机桥接到无线网卡,然后在etc/network/interfaces文件中修改IP如下(为了区别之前的有线网卡IP,这里特意修改为192.168.1.123。另外这里之所以用static而不是dhcp,是为了与开发板/etc/profile中的固定设置对应起来),然后“ifdown eth0”再“ifup eth0”,此时虚拟机的“无线网卡”IP地址就为192.168.1.123,可以ping通外网与上网。

# interfaces(6) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
#iface eth0 inet dhcp
address 192.168.1.123
netmask 255.255.255.0
gateway 192.168.1.1
root@ubuntu:/# ifdown eth0
root@ubuntu:/# ifup eth0
root@ubuntu:/# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=139 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=116 time=16.4 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=116 time=17.8 ms
^C
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 16.433/58.100/139.977/57.899 ms
root@ubuntu:/# ifconfig
eth0      Link encap:以太网  硬件地址 00:0c:29:a0:0e:00  
          inet 地址:192.168.1.123  广播:192.168.1.255  掩码:255.255.255.0
          inet6 地址: fe80::20c:29ff:fea0:e00/64 Scope:Link
          inet6 地址: 240e:3b6:30f5:81e0:20c:29ff:fea0:e00/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:246216 错误:7 丢弃:0 过载:0 帧数:0
          发送数据包:262957 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:35100104 (35.1 MB)  发送字节:272290315 (272.2 MB)
          中断:19 基本地址:0x2000 

lo        Link encap:本地环回  
          inet 地址:127.0.0.1  掩码:255.0.0.0
          inet6 地址: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  跃点数:1
          接收数据包:20826 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:20826 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:0 
          接收字节:2247838 (2.2 MB)  发送字节:2247838 (2.2 MB)

root@ubuntu:/# 

(3)在开发板/etc/profile文件中修改(添加)

cd /ko
./load3518e -i -sensor ar0130 -osmem 32 -total 64

insmod /home/mt7601Usta.ko
ifconfig wlan0 up
ifconfig wlan0 192.168.1.211
wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf &
route add default gw 192.168.1.1 dev wlan0

mount -t nfs -o nolock 192.168.1.123:/home/xjh/iot/hisi_development/hisi_rootfs /mnt

cd /mnt

(4)使用reboot命令重启开发板,看效果。

如果顺利完成,则可以在开发板的/mnt目录下看到虚拟机/home/xjh/iot/hisi_development/hisi_rootfs目录下的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天糊土

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值