您好,欢迎光临本网站![请登录][注册会员]  
文件名称: USB WIFI网卡在X210(linux)上的移植和使用笔记
  所属分类: Linux
  开发工具:
  文件大小: 2mb
  下载次数: 0
  上传时间: 2019-06-28
  提 供 者: weixin_********
 详细说明:此文件详细记录和讲述了MT76001网卡驱动在s5pv210中的移植过程和部分理论讲解,是linu驱动开发的初级、中级驱动工程师 wifi网卡移植很好的参考手册。3项目各项材料的准备和确认 31、开发环境搭建和确认 (1) 14.04 (2)内核源码树 使用之前搭建的环境,如下图所小: ootoubuntu: -4 cd rootfs/ bin picture tc linuxrc opt sbin testproject usr dev driver test Lib mnt proc sys tmp var rootaubuntu -/roots# cd oot ubuntu:一15 decodeporting etc backup ootfs winshare x210 bsp ubuntu: - f cd x210 bsp/ ooteubuntu: -/X210 bspi kernel x2l0kerneL, tar. bz2 ootaubunt lo bspi cd kerneL/ arch drivers Kbuild modules, builtin scripts vmLinux block firmware kernel moduLes, order securit COPYING Lib ModuLe symmers sound COPYING. txt include MAINTAINERS net System map CREDITS init Makefile README tools crypto in主trd,ing, cpio mk REPORTING-BUGS usr Documentation ipc samples irt x210 bsp/ker 我搭建的坯境在 AstonUbuntu180408中,如卜图: astonubuntu: -/porting_x210/rootfs/rootfss ls bin driver test lib mytestprojet proc sbin tmp var dev ete Linuxrc opt root sys usr astonQubuntu: - /x210v3 bsp/qt x210v3/kernels ls h drivers kbuild modules, order sound bLock firmware kernel net tools COPYING Lib README usr COPYING. txt include MAINTAINERS REPORTING-BUGs virt CREDITS init Makefile sanp Les crypto initrd. img. cpio nk scrIpts Documentation LpC security 移植相关的这些知识在嵌入式linuκ核心课稈的第二部分: Uboot和内核移栢,2.15、内核的 配置和编译原理 (3)开发板提供的官方 linux+QT4.8镜像 关于刷机看ARM裸机的第三部分,文件路径为:F:丶s5pv210\不同版本开发板刷机看这 里2103S镜像Ⅶinux+QT48 刷机步骤参考《ARM裸机笔记》 主要步骤为 (1)使用dnw软件刷: 210 usb, bin,地址是oxd0020010 uboot bin,地址是0x23e0000(此 uboot bin路径一定是F:s5pV210不同版本开发板刷 机看这里Ⅸ210V3S镜像inux+QT48中的 uboot bin。否则 rootfs_qt4.ext3会下载失败) (2)在 Securecetr终端依次输入 fdisk -c0 (此命令是用来分区的) fastboot(可以得到分区表) (3)在 windows电脑终端进入刷机命令 fastboot flash bootloader imageluboot bin 烧 uboot。写入 bootloader分区 fastboot flash kernel image \zlmage-gt 烧‖ inux kernel。写入 kernel分区 fastboot flash system image\rootfs qt4. ext3 烧 android rom。写入 system分区 fastboot -w 清空data、 cache、 sdcard三个分区 分区如下: x210+ fastboot PArtition tab le on MDYi] ptn o name=boot loader start=OXo len=N/A (use hard-coded info. (cmd: mov1)) tn 1 nam start=\/A Ten=\,'A (use hard-coded info. (cm d: mov) ptn 2 name= ramdisk' start=N/A len-0X30000C(-3072KB e hard-coded info. (cmd: movi)) ptn 4 name- system, start- 0 en20x2024800007-26449Ke n 5 name= cache start-0x20FA960. Ten-0X6751800(-105798KB) ptn 6 name= userdata start=0x276FAEoO Ten-OXC3CC2A00 (-3207946KB) 注意我存放的路径 刷完后,在 Securecetr会提示 sussessed等字样。 (4)把启动开关拨到远离USB口的一端。设置环境变量从本地开发板中启动 set bootcmd'movi read kernel 30008000; bootm 30008000 set bootargs console=ttySAC2, 115200 root=/dev /mmcblkOp2 rw init=/ linuxrc rootfstype=ext3 x710v3 login: root Passion PotPlayer vN43项目各项材料的准备和确认mp4 G Serial-COM6-SecureCRT 京科F编音VQ)传B本)工且0)#E 困塑不鹛号号會曾會圖 I Serial-COM sh: print: command not found Rootx210v3# 1 Rootx210v3 LrootCx210v3,]# pwd 「rootx210v3/1#1s Settings etc linuxrcG root home lost+found/ opt, lib/ medla proc Soln USr (4)nfs服务器和文件夹形式的 rootfs 为开发板设置|P地址,然后要能够ping通 Ubuntu, rootx210v3/# ifconfig eth0 192.168. 1.10 nfs服务器是之前搭建好的,这里直接挂载就可以使用。 mount-t nfs-o nolock 192.168. 1.141: home/ aston/porting_x210/rootfs/rootfs / opt 表示把 Ubuntu中的/home/ aston/ sorting x210/ots/ rootfs日录挂载到开发板中的/opt日录 32、网卡驱动源码确认 (1)DPO MT7601U LinuXSTA 3.0.0.4 20130913. tar. bz2 3004是MTK公司内部给这个源码的版本,并不代表lnux内核的版本。提供时间是20130913 通过共享文件夹的形式和 Ubuntu共亨。 astonaubuntu: /mnt/hgfs/winshare/s5pv210/MT7601s ls DPO MT761 U LLOUxSTA3,⊙,,42⊙13⊙913,tar,bz2 33、USBW|F网卡硬件确认 (1)网卡基本信息介绍 (2)susb查看网卡的ⅥD和PD 如果inuXⅹ系统启动之后,我们给开发板插了一个USB设备,那么lnux系统是能够自动识别 到的,我们可以使用susb命令来查看: Lrootox210v3 opt]# lsusb Hus 001 Device 001: ID 1d6b:0002 Bus 001 Device 002: ID 05e3: 0608 Bus 001 Device 003: ID 148f: 7601 [x210v3 opt]# 如果看到了第三行|D,表示我们的w网卡是没问题的,ID中148f表示网卡的D,7601 表小PID。 ⅥID和PID是usb规范中的两个概念,MD表示 Vendor(厂商),是厂商ID,P|D是产 品D,我们就是通过ⅦD和PD来确定∪SB是哪个厂商生产的,及每个UsB的|D是不同的, 然后我们重新配置编译内核 make x210ii gt defconfig make-j8 确保内核没有问题。 4驱动源码修改及编译 41、确认USB的ⅥD和PID 在 Ubuntu中新建目录如下,并且拷贝源码到新建目录中 aston ubuntu: -/porting x210/rootfsrootfs/md7601 wifis cp/mnt/hgfswinshare/s5pv216/MT7601DPO MT7601U LiOUXSTA3.,9,42013913,tar,b22: aston ubuntu: -/porting_x210rootfs/rootfs/md7601-wiftsLS 程L5尚未安装。您可以使用以下命令安装 sud。 apt-get instaLl 新建日录 aston (ubuntu: /porting x210/rootfs/rootfs/md7601 wifis ls DPo NT7601U Ltny 解压源码后先 make clean (1)源码包中 rtusb dey id.c文件 先确保源码中有 rtusb dev id数组,这个数组在哪儿呢?我们不确定,使用grep搜索一下 astongubuntu /porting_x210/rootfs/rootfs/md7601_wifi/DPO-MT7601U_LinuxsTA_3. 0.0.4_201309135 grep"rtusb dev id*-nr common/rtusb dev id, c: 37: USB DEVICE_ ID rtusb dev td[]-[ common /rtusb dey id c: 50: INT const rtusb usb id Len sizeof (rtusb dev id)/sizeof(UsB DEVICE ID); ev id C: 51: MODULE DEVICE TABLE(usb, rtusb dev id: / module table USB DEVICE ID rtusb dev id[=[ #ifdef rt6570 { USB DEVICE(0x1480×6570),/* Ralink6570*/ #endif /*RT6570 */ USB DEV|CE(0x148f,0×7650)}/MT7650*/ #ifdef mt7601U [USB_DEVICE(0x148f, 0x6370)),/*Ralink 6370 */ USB DEVICE(0x148f0×7601),/*MT6370*//我们使用的是这个 (USB DEVICE(0x 148f, Ox760b)1, #endif /* MT7601U*/ U Terminating entry * 如果这里没有MI7601U相关元素的定义,我们用在MT7601U驱动中时就需要添加 { USB DEVICE(0×148,0×7601) 4.2、修改 Makefile 2RT28x×MODE=STA 3 els 网卡的工作模式 4 RT28XX MODE - S(WIFI MODE) 7 ife (S(TARGET),) 日 TARGET= LINUX 9 endif 驱动台是lnux 10 11 ife (s(cHIPSET),) 12 CHIPSET=7081U片 15 MODULE -S(ward 1, S(CHIPSET)) (1)平台换成:三星 PLATFORME SMDK 48 #PLATFORM= RALINK 3052 49 PLATFORM SMDK 50 PLATFORM= RM SMDK表小是三星的 (2)内核源码树路径设置 LINUX SRO=/inux内核源码树 (3)交叉工具链路径设置 CROSS COMPILE=∥交叉编译环境 275 ife (S(PLAT FORM), SMDK) 276 #LINUX SRC=/home/bhushan/itcenter/may28/linux-2.6-samsun 277 #CROSS COMPILE=/usr/Local/arm/4. 2.2-eabt/usr/bin/arn-Ltnux 278 LINUX SRC=/home/gigi/x218bsp/ kernel内核源码树的目录 279 CROSS COMPILE arm-Linux 280 endif 交叉编译工具链 我们的 Ubuntu中内核源码树的目录如下: ootubuntu: -/ x210v3_bsp/qt_x210v3/kernel# pwd oz Documentation LpC es virt /root/x210v3 bsp/qt_x210v3/kernel 交叉编译工具链如下 rootubuntu: /x210v3_bsp/qt_x210v3/kerneL# cd /usr/locaL/arm/arm.2009q3/bin/ rootaubuntu: /usr /locaL/arm/arm-2009q3/bin# 1s arm-lLinux-addr2line arnm-Linux-objdr dTm-00n ne-Linux-gnueabi-gcov Linux-al arm-Linux- ranLtb arm-none-Linux-gnueabL-gdb carm-Linux-as ar四= Linux- readelf arm-none-linux-gnueabi-gdbtui :arm-Linux-c++ arm-Linux-size arm-none-Linux-gnueabt-gprof arm-Ltnux-C++rLLt arnm-Ltnux-sprLte arm-none-Linux-gnueabl-Ld arm-Linux-cpp arn-Linux-strings arm-none-Linux-gnueabi-nn larm-Linux-9++ arm-Linux-strip arm-none-Linux-gnueabt-objcopy ar网- Linux-gcc arm-none-Linux-gnueabi-addr2line arm-none-Linux-gnueabi-objdump yarm-Linux-gcc-4.4.1 arm-none-Linux-gnueabt-ar arm-none-Linux-gnueabi-ranlib ar門- Linux-gcov arnm-none-Linux-gnucabi-as arm-nonc-linux-gnucabi-readelf carm-linux-gdb arm-none-linux-gnueabL-C++ arm-none-Linux-gnueabi-size arm-Linux-gdbtut arm-none-Linux-gnueabl-c++filt arm-none-Linux-gnueabi-sprite :arm-Linux-gprof arm-none-Linux-gnueabi-cpp arm-none-Linux-gnueabi-strings ar两-1inux-1d arm-none-Linux-gnueabt-g++ arm-none-Linux-gnueabi-strip ar- Linux=n网 arm-none-linux-gnueabt-gcc mk-arm-Linux, sh arm-linux-objcopy arm-none-linux-gnueabi-gCc-4.4.1 rootubuntu: /usr/local/arm/arm-2009q3/bin# echo SPATH usr/local/arm/arm-2009q3/bin: /usr/local/sbin: /usr/Local/bin: /usr/sbin: /usr/bin: / sbin: /bin: / . sr/games: /usr/Local/games":/usr/local/arm/arm-2009q3/bin 我们之前就建立了符号链接,同时也导出到了环境变量。 设置成我们的如下 .75 ife (S(PLATFORM), SMDK) 276 #LINUX SRC=/home/bhushan/itcenter/may28/Linux-2.6-samsung 7 HCRO COMPILE= /usr/local/arm/4.2.2-eabi/usr/bin/arm-Linux 278 LINUX SRC =/root/x210v3 bsp/qt x210v3/kernel 279 CROSS COMPILE arr-Linux 280 endt 我们使用符号链接(使用符号链接和绝对烙径都可以) 43、修改网卡名字(可选) (1)常用无线网卡名称:rax、wanx (2)修改 include/ rtmp def. h文件 #define inf MAIN dev namer #define ine essid dey namer 1600 #ifdef ANDROID SUPPORT 1601 #define INF MAIN DEV MAME 圆 1602 #define INF MBSSID DEV NAME wLan 16⊙3 604 #define INF MAIN DEV NAME 1605 #define INF MBSSID DEV NAME 1606并end ANURO⊥ 0 sUPPO 如果不知道这个名字在哪儿,一股的我们可以使用gep命令搜索“ra”或“wan”。 44、添加 wpa supplicant支持 确保coη Ifig. mk文件中wPA_ SUPPLICANT=y∥/表小支持这种特性。 astondubuntu: -/porting x210/rootfs/ rootfs/nd7601 wifi/DPo MT7601U LinuxSTA 3.0.0.4 201309135 find- namc " config. rk 24# Support Wpa Supplicant 5# i.e. wpa supplicant - Dralink 26 HAS WPA SUPPLICANT 4.5、编译生成驱动模块 (1)清理&编译 make clean & make-j2 生成os/inux/mt760」 Usta ko就是驭动模块 rootubuntu: /home/aston/porting_ x210/rootfs/ rootfs/md7601 wifi/DPo MT7601U_ LinUxSTA 3.0.0.420130913* ls os/linux/ br ftpc Kconfig. ste. soc Makefile, ap, soc mt7601Usta. od.c rt nain dev, o t usb util f980211.c Makefile Makefile It7501usta. mod. o t usb util cfg80211drv. c Makefile. 4 MakefiLe. cLean profile.c config.mk Makefile. 4-netif Makefile libautoprovision 6 rt linuxc profiLe.o config. mk bak Makefile. 4.util Makefile. sta. soc rt linux. cw nf Ppa. c Makefile.6 rt rbus_ pct drv. c usb main dev.c modules. order rt飞nuⅹ.6 usb main dev. o Kconfig.ap.s Makefile. 5. netif Modu rt linux symb rt usb yr bolt kconfig ap.usb Makefile. 5.utilmt7601Usta ko rotuntu:/hone/estonlprttngxzis/o0s/md7ertft/PoN7eULtnusTA3.0,6,4201306913/sc usb. o 可以通过 modinfo mt7601 Usta ko查看这个ko文件的信息: rootaubuntu: / home/as ton/porting. x210/rootfs/rootfs/ md/601 wifi/DPo M[7601U_ LinuxSIA 30.0.4_ 20130913/os/Lin.x# modl fo mt7601usta ko hone/aston/portng.x219rtsred00utu/pw7unxsA3.0.04291975 verslon 3.8.8.3 description: RT2870 Wireless Lan Linux Driver author Paul Lin paulLina tech, com> license: GPL silverston B2632B02D7AD40A63B7209E usb: v148FP760Bd*dc*dsc*dp*ic*isc*ip* alias: usb: v148Fp7601d*dc*dsc*dp*ic*isc*ip* alLas: usb: v148Fp6370d*dc*dsc*dptictisckipt usb: v148Fp7650d*dc*dsc*dp*ic*isc* ip* 2.6. 35.7 preempt nod unload ARMv7 ac:rt28xx: wireless nac addr (charp) root ubuntu: hone/as ton/porting x210/rootfs/rootfs/md7601 wifi/DPo NT7601U_LinuxSTA 3.0.0. 4 20130913/os/LinUx# 上面的 vermagIC要和我们开发板上跑的inux系统的 vermagIC一样,否则这个程序在开发板 上运行不了,如果不一样该怎么办呢?我们需要把我 Ubuntu中的内核源码树中编译出来的 ZImage文件烧录到开发板中。然后丌发板中lnux系统和 vermagIC和这个驱动程序的 vermagIC 就一样了 5 USB WIE网卡驱动源码简单分析 51、关键点1:把握深度适可而止 在S中新建工程。 先去看入口在什么地方,在S中搜索 module init可以找到入口,osⅦ inux \usb main dev.c 16:/* Init drivcr module & 517EINT iit rtusb init(woid) 518: pritkrtusb init %5--->\n RTMP DRV NAME); return usb register (&rtusb driver)j /uEb内核驱动构提供的。注册 usb driver 521 522 225:/ UeInit driver modu⊥e等/ 524E VOID exit rtusb exit(vaid 25: 525 usb dereg-sterf&rtusb driver); 28:F printk("(---r-usb exit\1"); 529 0: module init(rtusb init) 531: module exit(tush exit) 进λ rtusb driver结构,有两个结构,经分析两个结构是使用条件编译来决定使用哪一个的, 我们使用的是第二个。 361 62. struct usb driver rtusb driver 365-」#ifL工 NUX VERSION_coDE《 KERNEL VERSION(2,E,15 364: Owner THIS MODULE 365: #endif 3b5 name=阳 P JRV NAME .probe =rtusb probe, 368 dis connect=rtusb disconnect 1d table=tusa dev td 37 371#ifdef CoNFIG 372-*ifdef USB_ SUPPORT__ SUSPEND supports autosuspend-1 374:#endif /*USBSUPPORT_SELECTIVE_SUSPEND*/ 375 suspend rt2870 suspend rt2870 resume 3//: endit /< CUNFIG_PM */ 378: supports autosuspend =1r 379 name我们暂时不好分析,暂时不管, probe在驱动注册成功后被调用, disconnect在拔出 USB网卡后被调用, id table是用来匹酉wifi网卜的,我们进入 rtusb dev id commonrtusb dev id c 6:* mocule table =/ 17: IsR_FVTrF_TD tush_dev_id[]=t 38:# ide rt657日 39 LSB DEVICE(0x148f,0x6578)1, /* Ralink 6570 *y 49:# cdif RT百579 当VLC[x148,/6b)}:/第HI/b5深 42:-tifdef MT7601U LSB_ DEVICE(0x148f,0x6378)1,/+ Ralink 5378*/ 44 USB_ DEVICE(9x148f, 0x7681)3,/* MT 6370*/ USB_ DEVICE(Ox148F,0x768b)3, 40: #endif /F MT7Ga10 +/ I/* Terminating entry s 48: 发现这个数组里面有我们网卡的D,但是宏定义MT7601U在S中却找不到,我们可以到lnux 中的网卡驱动源码中搜索这个宏,如果搜索出来的宏太多,可以先 make clean,然后grep "MT7601U"*-nR otubuntu:/hore!asto/portng_×21/ro。ts/rootfs/ndl601ktfvDpUM1661ULtnuxA3.6.6.428139139rep"M/631U hips/mt7601. c: 1723: VOLD MT7601UsbAsicRadiooff(rIMP ADAPTER *pAd, UCHAR stage) /mt7601. c: 1785: VOID MT7601UsbAsicRadioon(RTMP ADAPTER *pAd, UCHAR 5tage) pchipops->AsicRadioon UsbAsicRadiocn chipops->AsicRadiooff 801UsbAsicRadiooff hips/mt7 ak: 1723: VOID MT7601UsbAsicRadiooff(RTMP ADAPTER *pAd, UCHAR Stage) hips/mt7651 c bak: 1785: VOID MT7 ADAPTE htps/mt7601 pchtpops-AstCRadloon MT7601usbAstCRadtoon 3403 pChLpops->AsicRadiooff MT7601UsbAsicRadiooff 四 bak: 131: tendif/* MT7601U d. c: 42: fdef 4: #endif MT7601U 110:1WPDMA GLO CFG MT76010 not support WPDM 74:WF LAGS +=-DMT7601U-DMT7601-DRLT MAC -DRLT RF-DRTMP MAC USB-DRTMP USB SUPPORT-DRTMP TIME R_TASK_SUPPORT-DRX_DMA_SCATTER-DVCOR ECAL_SUPPORT-DRTMP_EFUSE_SUPPORT.DNEW_MBSSID_MODE-DRTMP_INTERNAL_TX_ALC -DC ONFIG ANDES SVPPORT-DDPD CALIBRATI ON SUPPORT e, 6: 518: #endif / Mr7601u / 匹配到二进制文件 TOOlS/b1nh 这个宏是在 config. mk中定义的,是通过DMT7601U定义的,是在配置的时候,在命令行用 DMT7601U这种方式传递一个宏给我们的整个系统,就是通过这种方式把MT7601U整个宏 传进来的,所以上上图中的那个宏是成立的。 6WF|网卡的配置过程1 61、 iwconfig工具集的介绍和使用演示 ootubuntu: /home/aston/ portingx210/rootfs/rootfs/home# cp ./'nd7601_wifi/DPD_M T7601U_LinuxSTA3.0.0.4_20130913/os/linux/mt7601Usta kD root(ubuntu: /home/astonporting_ x210/rootfs/rootfs/home# ls rt7601Usta, ko 首先ping通开发板inux和PC虚拟机lnux 然后挂载 mount-tnfs- o nolock192.168.1141:/home/ aston/ porting x210/ rootfs/rots/opt 在 Ubuntu中编译内核后,然后在开发板中通过挂载找到ko文件。复制到开发板中的/home 目录中去 然后装载模块: Trootaaston210 homel# Is mt7601ustako 广oot包 aston210home]# insmod mt7601U5ta.ko 973.325848] rtusb init rt2870--> 973.3288001===>rt2870 probe()! >RIMPATloCAdapter Block 973.335329 973.33 pAd=e0b02000,Size=844440 973.335340 973.343648|--> RTMPAIloCTXRXRingMemory 973.3490541<--RTMPAllocTXRXRingMemory, status-O 973.3528751< RTMPATlocAdapterBlock, status=0 73. 356796] NumEndpoints=8 973.359477] BULK IN MaxPacketsize= 512 973.363290] EP address=0x84 973.36 BUL K IN MaxPacketsize= 512 973.370051] EP address=0x85 984 BULK OUT M axPacketsize= 512 973.376894 EP address= Ox 8 973. 380013 BULK OUT MaxPacketsize =512 973. 384038 EP address = Ox 4 973. 3870331 BULK OUT NaxPacketsize=512 973. 390935 EP address= 0X 5 973.394052 BULK OUT MaxPacketsize= 512 973.397951 EP address Ox 6 973.401071 BULK OUT NaxPacketsize =512 973. 404970 EP address 0X 7 973.408082 BULK OUT MaxPacketsize 512 11989 EP address= 0x g 973.415112 RTMP_COM_Ioct IHand le(: pAd->Bu l koutEpAddr-Ox8 973.420484 RTMP_COM_Ioct IHand pAd->Bu I koutEpAddr=0X4 973.425855]RTA COM_Ioct lHandle(): pAd->Bu I koutEpAddr=0x5 973.4312311 RTMP_COM_Ioct Handle(): pAd->Bu lkoutEpAddr=0x6 973.436602] RTMP_COM_IoctIHandle(: pAd->BulkoutEpAddr=0X7 973.441973] RTMP_COM_Ioct T Handle(): pAd->BulkoutEpAddr-0x9 973. 447349 STA Driver version-3 0.0.3 973.451501]->MT7601 Init(: 973.] Chip specific bbpRegTbsize-0! 4 58008] Chip vco calibration mode 9/3. 4623/41 NMM is EFLSE 973. 464595] Efuse Size-0xld [Range: le0-IfcI 9 Endpoint(e) i5 for In band Command 973. 473279 Endpoint(4) is for WMMO ACO 7076] Endpoint(5) is for WMMO AC 973.4808831 Endpoint (e) is for WMMO AC2 973.484696] Endpoint(7) is for WMMO AC3 EndpoInt 973. 492324 Endpoint(e4)is for Data-In 973.4961341 Endpoint(85)is for command hsQate data size=0 973.500295 cate a net device with priv 973. 505858] Allocate net device ops success! 3. 510092 The name of the new ra interface is ra0. 973. 515205 RtmpoSNetDevAttacho 973.522756<---RtmposNetDevAttachO, ret-O 973.526350 rt287C_probe(! 973.529595 usbcore: registered new inter face driver rt2870 [rootaas ton210 home]#
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 输入关键字,在本站1000多万海量源码库中尽情搜索: