yocto工程部署

yocto工程构建

概述

本次工程使用repo管理,代码仓库存在于github和gitcode。

├── build    //工程编译目录和download目录
│   └── conf  //工程编译目配置,生成
├── opensource  //yocto开源meta
│   └── meta-openembedded
├── poky  //yoctopoky
│   ├── bitbake
│   ├── contrib
│   ├── documentation
│   ├── LICENSE
│   ├── LICENSE.GPL-2.0-only
│   ├── LICENSE.MIT
│   ├── MAINTAINERS.md
│   ├── Makefile
│   ├── MEMORIAM
│   ├── meta
│   ├── meta-poky
│   ├── meta-selftest
│   ├── meta-skeleton
│   ├── meta-yocto-bsp
│   ├── oe-init-build-env
│   ├── README.hardware.md -> meta-yocto-bsp/README.hardware.md
│   ├── README.md -> README.poky.md
│   ├── README.OE-Core.md
│   ├── README.poky.md -> meta-poky/README.poky.md
│   ├── README.qemu.md
│   └── scripts
├── setup   //工程配置目录。
│   ├── configs //工程配置
│   ├── README.md
│   └── scripts//工程配置脚本
└── source
    └── linux//工程源码

下载工程

1.repo仓库

repo init -u git@gitcode.net:linux-ps/manifest.git -b master --repo-url=https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/

下载manifest,描述了工程的结构:

  <project name="chenheyun-github/poky" path="poky" remote="github" revision="stable" />
  <project name="chenheyun-github/meta-openembedded" path="opensource/meta-openembedded" remote="github" revision="main" />
  
  <project name="chenheyun-github/yocto_build" path="setup/" remote="github" revision="main" />
  <project name="chenheyun-github/linux" path="source/linux" remote="github" revision="master" />

2.同步工程

repo sync

此过程从github下载比较久,后期考虑换成gitcode

3.配置工程

使用qemuarm64配置:

 source setup/scripts/build/setup.sh -m qemuarm64 -b ./build --

脚本说明:

function usage() {
    cat <<EOF >&2
Usage: . $SCRIPT [options] [feature [feature [... ]]]

Version: $VERSION
Compatibility: bash, zsh, ksh

Options:
   -m|--machine <machine>
      what machine to use
      default: '$DEFAULT_MACHINE'
   -b|--build <directory>
      build directory to use
      default: '$DEFAULT_BUILDDIR'
   -f|--force
      flag to force overwriting any existing configuration
      default: false
   -v|--verbose
      verbose mode
      default: false
   -d|--debug
      debug mode
      default: false
   -h|--help
      get some help

EOF
}

4.download配置

此时编译工程已经可以正常运行,但是在编译过程中会下载很多download资源包。

默认路径在topdir/build/downloads

后续考虑工程直接下载。【已更新自动下载】

5.编译

使用bitbake core-image-base即可完成基础组件构建,

6.运行

当前目录直接执行runqemu qeumuarm64 nographic即可运行

chy@ubuntu:/home/samba_shar/work/github/repo/repo/build$ runqemu qeumuarm64 nographic
runqemu - INFO - Running MACHINE=qeumuarm64 bitbake -e ...
runqemu - INFO - Continuing with the following parameters:
KERNEL: [/home/samba_shar/work/github/repo/repo/build/tmp/deploy/images/qemuarm64/Image--5.14.21+git0+f9e349e174_9d5572038e-r0-qemuarm64-20230909070030.bin]
MACHINE: [qemuarm64]
FSTYPE: [ext4]
ROOTFS: [/home/samba_shar/work/github/repo/repo/build/tmp/deploy/images/qemuarm64/core-image-base-qemuarm64-20230909070030.rootfs.ext4]
CONFFILE: [/home/samba_shar/work/github/repo/repo/build/tmp/deploy/images/qemuarm64/core-image-base-qemuarm64-20230909070030.qemuboot.conf]

runqemu - INFO - Setting up tap interface under sudo
[sudo] password for chy:
runqemu - INFO - Network configuration: ip=192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Running /home/samba_shar/work/github/repo/repo/build/tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin/qemu-system-aarch64 -device virtio-net-device,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0 -drive id=disk0,file=/home/samba_shar/work/github/repo/repo/build/tmp/deploy/images/qemuarm64/core-image-base-qemuarm64-20230909070030.rootfs.ext4,if=none,format=raw -device virtio-blk-device,drive=disk0 -device qemu-xhci -device usb-tablet -device usb-kbd  -machine virt -cpu cortex-a57 -smp 4 -m 256 -serial mon:stdio -serial null -nographic -device virtio-gpu-pci -kernel /home/samba_shar/work/github/repo/repo/build/tmp/deploy/images/qemuarm64/Image--5.14.21+git0+f9e349e174_9d5572038e-r0-qemuarm64-20230909070030.bin -append 'root=/dev/vda rw  mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 console=ttyAMA0 console=hvc0  '

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x411fd070]
[    0.000000] Linux version 5.14.21-yocto-standard (oe-user@oe-host) (aarch64-poky-linux-gcc (GCC) 11.2.0, GNU ld (GNU Binutils) 2.37.20210721) #1 SMP PREEMPT Mon Nov 29 01:17:48 UTC 2021
[    0.000000] Machine model: linux,dummy-virt
[    0.000000] Memory limited to 256MB
[    0.000000] efi: UEFI not found.
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000040000000-0x000000004fffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000040000000-0x000000004fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000004fffffff]
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv0.2 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: Trusted OS migration not required
[    0.000000] percpu: Embedded 30 pages/cpu s83352 r8192 d31336 u122880
[    0.000000] Detected PIPT I-cache on CPU0
[    0.000000] CPU features: detected: Spectre-v2
[    0.000000] CPU features: detected: Spectre-v4
[    0.000000] CPU features: detected: ARM erratum 832075
[    0.000000] CPU features: detected: ARM errata 1165522, 1319367, or 1530923
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 64512
[    0.000000] Kernel command line: root=/dev/vda rw  mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 console=ttyAMA0 console=hvc0
[    0.000000] Dentry cache hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.000000] Inode-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 233064K/262144K available (11520K kernel code, 1848K rwdata, 2656K rodata, 3648K init, 668K bss, 29080K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] ftrace: allocating 35450 entries in 139 pages
[    0.000000] ftrace: allocated 139 pages with 4 groups
[    0.000000] trace event string verifier disabled
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4.
[    0.000000]  Trampoline variant of Tasks RCU enabled.
[    0.000000]  Rude variant of Tasks RCU enabled.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] GICv2m: range[mem 0x08020000-0x08020fff], SPI[80:143]
[    0.000000] kfence: initialized - using 2097152 bytes for 255 objects at 0x(____ptrval____)-0x(____ptrval____)
[    0.000000] random: get_random_bytes called from start_kernel+0x520/0x778 with crng_init=0
[    0.000000] arch_timer: cp15 timer(s) running at 62.50MHz (virt).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x1cd42e208c, max_idle_ns: 881590405314 ns
[    0.000100] sched_clock: 56 bits at 62MHz, resolution 16ns, wraps every 4398046511096ns
[    0.007309] Console: colour dummy device 80x25
[    0.008482] Calibrating delay loop (skipped), value calculated using timer frequency.. 125.00 BogoMIPS (lpj=250000)
[    0.008682] pid_max: default: 32768 minimum: 301
[    0.009949] LSM: Security Framework initializing
[    0.011400] landlock: Up and running.
[    0.011856] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.011945] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.056531] rcu: Hierarchical SRCU implementation.
[    0.061495] EFI services will not be available.
[    0.063575] smp: Bringing up secondary CPUs ...
[    0.069886] Detected PIPT I-cache on CPU1
[    0.070909] CPU1: Booted secondary processor 0x0000000001 [0x411fd070]
[    0.078387] Detected PIPT I-cache on CPU2
[    0.078589] CPU2: Booted secondary processor 0x0000000002 [0x411fd070]
[    0.082712] Detected PIPT I-cache on CPU3
[    0.082901] CPU3: Booted secondary processor 0x0000000003 [0x411fd070]
[    0.084533] smp: Brought up 1 node, 4 CPUs
[    0.084603] SMP: Total of 4 processors activated.
[    0.084683] CPU features: detected: 32-bit EL0 Support
[    0.084776] CPU features: detected: CRC32 instructions
[    0.087307] CPU: All CPU(s) started at EL1
[    0.088130] alternatives: patching kernel code
[    0.110584] devtmpfs: initialized
[    0.122977] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.123222] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.127928] DMI not present or invalid.
[    0.130470] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.136069] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations
[    0.136336] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.136433] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.140992] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.143904] ASID allocator initialised with 65536 entries
[    0.144324] Serial: AMBA PL011 UART driver
[    0.167455] 9000000.pl011: ttyAMA0 at MMIO 0x9000000 (irq = 47, base_baud = 0) is a PL011 rev1
[    0.359294] printk: console [ttyAMA0] enabled
[    0.541025] raid6: neonx8   gen()  2810 MB/s
[    0.623615] raid6: neonx8   xor()  1021 MB/s
[    0.708501] raid6: neonx4   gen()  2696 MB/s
[    0.793005] raid6: neonx4   xor()  1290 MB/s
[    0.877729] raid6: neonx2   gen()  2124 MB/s
[    0.962394] raid6: neonx2   xor()  1099 MB/s
[    1.047119] raid6: neonx1   gen()  1229 MB/s
[    1.132844] raid6: neonx1   xor()   721 MB/s
[    1.216744] raid6: int64x8  gen()  1606 MB/s
[    1.301242] raid6: int64x8  xor()  1257 MB/s
[    1.385950] raid6: int64x4  gen()  2237 MB/s
[    1.470684] raid6: int64x4  xor()  1599 MB/s
[    1.555392] raid6: int64x2  gen()  2185 MB/s
[    1.640100] raid6: int64x2  xor()  1367 MB/s
[    1.724889] raid6: int64x1  gen()  1665 MB/s
[    1.809560] raid6: int64x1  xor()  1000 MB/s
[    1.810744] raid6: using algorithm neonx8 gen() 2810 MB/s
[    1.812267] raid6: .... xor() 1021 MB/s, rmw enabled
[    1.813772] raid6: using neon recovery algorithm
[    1.817703] iommu: Default domain type: Translated
[    1.820473] vgaarb: loaded
[    1.823275] SCSI subsystem initialized
[    1.825265] usbcore: registered new interface driver usbfs
[    1.827821] usbcore: registered new interface driver hub
[    1.829485] usbcore: registered new device driver usb
[    1.848075] clocksource: Switched to clocksource arch_sys_counter
[    2.014410] NET: Registered PF_INET protocol family
[    2.020169] IP idents hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    2.037923] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 4096 bytes, linear)
[    2.042691] TCP established hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    2.047684] TCP bind hash table entries: 2048 (order: 3, 32768 bytes, linear)
[    2.049965] TCP: Hash tables configured (established 2048 bind 2048)
[    2.054430] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[    2.059199] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[    2.066524] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    2.080726] RPC: Registered named UNIX socket transport module.
[    2.082406] RPC: Registered udp transport module.
[    2.083991] RPC: Registered tcp transport module.
[    2.086372] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    2.090128] PCI: CLS 0 bytes, default 64
[    2.104983] hw perfevents: enabled with armv8_pmuv3 PMU driver, 5 counters available
[    2.394652] workingset: timestamp_bits=46 max_order=16 bucket_order=0
[    2.413595] NFS: Registering the id_resolver key type
[    2.417362] Key type id_resolver registered
[    2.418454] Key type id_legacy registered
[    2.430687] Key type cifs.idmap registered
[    2.533221] xor: measuring software checksum speed
[    2.539867]    8regs           :  2932 MB/sec
[    2.549299]    32regs          :  1609 MB/sec
[    2.557444]    arm64_neon      :  2098 MB/sec
[    2.558744] xor: using function: 8regs (2932 MB/sec)
[    2.561836] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    2.565798] io scheduler mq-deadline registered
[    2.567310] io scheduler kyber registered
[    2.574399] pci-host-generic 4010000000.pcie: host bridge /pcie@10000000 ranges:
[    2.582588] pci-host-generic 4010000000.pcie:       IO 0x003eff0000..0x003effffff -> 0x0000000000
[    2.588605] pci-host-generic 4010000000.pcie:      MEM 0x0010000000..0x003efeffff -> 0x0010000000
[    2.591553] pci-host-generic 4010000000.pcie:      MEM 0x8000000000..0xffffffffff -> 0x8000000000
[    2.596744] pci-host-generic 4010000000.pcie: Memory resource size exceeds max for 32 bits
[    2.600609] pci-host-generic 4010000000.pcie: ECAM at [mem 0x4010000000-0x401fffffff] for [bus 00-ff]
[    2.608125] pci-host-generic 4010000000.pcie: PCI host bridge to bus 0000:00
[    2.610879] pci_bus 0000:00: root bus resource [bus 00-ff]
[    2.613389] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
[    2.617589] pci_bus 0000:00: root bus resource [mem 0x10000000-0x3efeffff]
[    2.619691] pci_bus 0000:00: root bus resource [mem 0x8000000000-0xffffffffff]
[    2.624933] pci 0000:00:00.0: [1b36:0008] type 00 class 0x060000
[    2.631260] pci 0000:00:01.0: [1af4:1005] type 00 class 0x00ff00
[    2.635037] pci 0000:00:01.0: reg 0x10: [io  0x0000-0x001f]
[    2.638015] pci 0000:00:01.0: reg 0x20: [mem 0x00000000-0x00003fff 64bit pref]
[    2.642381] pci 0000:00:02.0: [1b36:000d] type 00 class 0x0c0330
[    2.644603] pci 0000:00:02.0: reg 0x10: [mem 0x00000000-0x00003fff 64bit]
[    2.650696] pci 0000:00:03.0: [1af4:1050] type 00 class 0x038000
[    2.654296] pci 0000:00:03.0: reg 0x14: [mem 0x00000000-0x00000fff]
[    2.657385] pci 0000:00:03.0: reg 0x20: [mem 0x00000000-0x00003fff 64bit pref]
[    2.665461] pci 0000:00:01.0: BAR 4: assigned [mem 0x8000000000-0x8000003fff 64bit pref]
[    2.670494] pci 0000:00:02.0: BAR 0: assigned [mem 0x8000004000-0x8000007fff 64bit]
[    2.673473] pci 0000:00:03.0: BAR 4: assigned [mem 0x8000008000-0x800000bfff 64bit pref]
[    2.678225] pci 0000:00:03.0: BAR 1: assigned [mem 0x10000000-0x10000fff]
[    2.680962] pci 0000:00:01.0: BAR 0: assigned [io  0x1000-0x101f]
[    2.685329] pci 0000:00:02.0: enabling device (0000 -> 0002)
[    2.700516] virtio-pci 0000:00:01.0: enabling device (0000 -> 0003)
[    2.710641] virtio-pci 0000:00:03.0: enabling device (0000 -> 0002)
[    2.734143] random: fast init done
[    2.737634] [drm] pci: virtio-gpu-pci detected at 0000:00:03.0
[    2.741816] [drm] features: -virgl +edid -resource_blob -host_visible
[    2.747039] random: crng init done
[    2.757091] [drm] number of scanouts: 1
[    2.758368] [drm] number of cap sets: 0
[    2.775983] [drm] Initialized virtio_gpu 0.1.0 0 for virtio3 on minor 0
[    2.862525] Console: switching to colour frame buffer device 128x48
[    2.877734] virtio_gpu virtio3: [drm] fb0: virtio_gpu frame buffer device
[    2.887903] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    2.929089] brd: module loaded
[    2.946268] virtio_blk virtio0: [vda] 131072 512-byte logical blocks (67.1 MB/64.0 MiB)
[    2.985920] xhci_hcd 0000:00:02.0: xHCI Host Controller
[    2.991123] xhci_hcd 0000:00:02.0: new USB bus registered, assigned bus number 1
[    3.002845] xhci_hcd 0000:00:02.0: hcc params 0x00087001 hci version 0x100 quirks 0x0000000000000010
[    3.030358] hub 1-0:1.0: USB hub found
[    3.034268] hub 1-0:1.0: 4 ports detected
[    3.046078] xhci_hcd 0000:00:02.0: xHCI Host Controller
[    3.047863] xhci_hcd 0000:00:02.0: new USB bus registered, assigned bus number 2
[    3.054084] xhci_hcd 0000:00:02.0: Host supports USB 3.0 SuperSpeed
[    3.060435] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    3.069647] hub 2-0:1.0: USB hub found
[    3.071415] hub 2-0:1.0: 4 ports detected
[    3.086146] rtc-pl031 9010000.pl031: registered as rtc0
[    3.090885] rtc-pl031 9010000.pl031: setting system clock to 2023-09-09T12:10:35 UTC (1694261435)
[    3.100427] device-mapper: ioctl: 4.45.0-ioctl (2021-03-22) initialised: dm-devel@redhat.com
[    3.110217] usbcore: registered new interface driver usbhid
[    3.112195] usbhid: USB HID core driver
[    3.116284] u32 classifier
[    3.117122]     input device check on
[    3.117948]     Actions configured
[    3.121903] NET: Registered PF_INET6 protocol family
[    3.137727] Segment Routing with IPv6
[    3.141182] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    3.146383] NET: Registered PF_PACKET protocol family
[    3.150373] Bridge firewalling registered
[    3.154118] Key type dns_resolver registered
[    3.157885] NET: Registered PF_VSOCK protocol family
[    3.162088] Key type ._fscrypt registered
[    3.164630] Key type .fscrypt registered
[    3.165916] Key type fscrypt-provisioning registered
[    3.176702] Btrfs loaded, crc32c=crc32c-generic, zoned=no
[    3.208298] Key type encrypted registered
[    3.217841] printk: console [netcon0] enabled
[    3.219083] netconsole: network logging started
[    3.280858] IP-Config: Complete:
[    3.281852]      device=eth0, hwaddr=52:54:00:12:34:02, ipaddr=192.168.7.2, mask=255.255.255.0, gw=192.168.7.1
[    3.291478]      host=192.168.7.2, domain=, nis-domain=(none)
[    3.294272]      bootserver=255.255.255.255, rootserver=255.255.255.255, rootpath=
[    3.305641] md: Waiting for all devices to be available before autodetect
[    3.311457] md: If you don't use raid, use raid=noautodetect
[    3.314591] md: Autodetecting RAID arrays.
[    3.317402] md: autorun ...
[    3.318339] md: ... autorun DONE.
[    3.320501] usb 1-1: new high-speed USB device number 2 using xhci_hcd
[    3.385421] EXT4-fs (vda): mounted filesystem with ordered data mode. Opts: (null). Quota mode: disabled.
[    3.390425] VFS: Mounted root (ext4 filesystem) on device 253:0.
[    3.398529] devtmpfs: mounted
[    3.446973] Freeing unused kernel memory: 3648K
[    3.454222] Run /sbin/init as init process
[    3.512924] input: QEMU QEMU USB Tablet as /devices/platform/4010000000.pcie/pci0000:00/0000:00:02.0/usb1/1-1/1-1:1.0/0003:0627:0001.0001/input/input0
[    3.521049] hid-generic 0003:0627:0001.0001: input: USB HID v0.01 Mouse [QEMU QEMU USB Tablet] on usb-0000:00:02.0-1/input0
INIT: version 2.99 booting
[    3.660489] usb 1-2: new high-speed USB device number 3 using xhci_hcd
[    3.847196] input: QEMU QEMU USB Keyboard as /devices/platform/4010000000.pcie/pci0000:00/0000:00:02.0/usb1/1-2/1-2:1.0/0003:0627:0001.0002/input/input1
[    3.926138] hid-generic 0003:0627:0001.0002: input: USB HID v1.11 Keyboard [QEMU QEMU USB Keyboard] on usb-0000:00:02.0-2/input0
[    4.012850] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
FBIOPUT_VSCREENINFO failed, double buffering disabledStarting udev
[    6.154451] udevd[138]: starting version 3.2.10
[    6.376085] udevd[139]: starting eudev-3.2.10
[    9.096765] EXT4-fs (vda): re-mounted. Opts: (null). Quota mode: disabled.

Poky (Yocto Project Reference Distro) 3.4.4 qemuarm64 /dev/ttyAMA0

qemuarm64 login: root
root@qemuarm64:~#
root@qemuarm64:~#
root@qemuarm64:~#
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值