Building a 64bit Docker OS for the Raspberry Pi 3

Whisper.cpp嵌入式语音识别实战:C语言轻量级部署指南 语音识别(ASR)作为人机交互基础技术,其落地常受限于硬件资源与部署复杂度。Whisper.cpp 通过纯 C99 实现、无依赖设计、后训练量化(如 q5_1)、CPU SIMD 加速(AVX2/NEON)及模型结构精简,将 OpenAI Whisper 大模型压缩为 8MB 静态可执行文件,在树莓派等嵌入式设备上实现低内存(<180MB)、高实时性(RTF≈0.35)的离线识别。它不依赖 Python、CUDA 或 GPU,适用于断网、低功耗、强实时场景,如工业声控终端、农业告警盒与老年助听设备。本文深入 阅读详情

I’m happy to announce the start of a “short” workshop were I’m going through all the steps to build a complete 64bit operating system for the Raspberry Pi 3. This 64bit HypriotOS is mainly focused on running Docker containers easily on this popular DIY and IoT device.

Raspi3-Image

You’ll see that I’m using Docker heavily for each and every build step, because it really helps us a lot to run a local build with Docker-for-Mac or later on the cloud build servers at Travis CI.

bee42-workshop.jpg

This workshop is sponsored by bee42 solutions

Background and Contents

As you may already know, a complete Linux operating system consists of several important building blocks and I’d like to show you how to build all of these step by step.

For this purpose I’m not going to reinvent the wheel and so I’ll reuse all of the existing parts which are already published by the Raspberry Pi Organisation, by the Debian Linux project and will add some more glue code.

At the end you should have learned how to build all the necessary parts and how to automatically create a finished SD card image which could be flashed on an empty SD card. Then boot your Raspberry Pi 3 with and in less than a minute you have a fully running Docker Engine on a Debian-based 64bit Linux OS.

Here is a short overview of the contents of the workshop:

  • Part 1: Bootloader

  • Part 2: Kernel

  • Part 3: Root filesystem

  • Part 4: SD Card Image

So, that’s enough for explaining the background of this workshop. For more informations please follow along the details I’ll publish on the coming tweets at Twitter and in the GitHub repos until all the parts of this workshop are finished and available as OpenSource.

Please be aware that this OS is in a development phase and far from being perfect. So you are encouraged to help me with reporting issues and filing pull-requests to add features and fix bugs.

I’m going to publish all the details and steps to build the new operating system in a public GitHub repo. All other details and necessary GitHub repos will be linked here in this section as a future reference.

So please stay tuned, this link list will be extended over the next few days.

Acknowledgments

Please follow along the detailed tweets about this workshop via

Special thanks goes to bee42 solutions for giving me the time to work on this awesome topic to build a complete Docker-enabled 64bit OS for the Raspberry Pi 3.

bee42-logo.jpg

Feedback, please

As always use the comments below to give us feedback and share it on Twitter or Facebook.

Please send us your feedback on our Gitter channel or tweet your thoughts and ideas on this project at @HypriotTweets.

Dieter @Quintus23M

Raspberry-jessie Docker 安装记 Raspberry-jessie Docker 安装记前几天实验室买了个几个树莓派 3b,老师想让我们在上面搭建微服务之类的。虽然需求不太明确,但是 Docker 指定要用,还得用 Docker 创建集群。所以我们得在树莓派上安装 Docker 的。我们之前没接触过 ARM 架构,再加上国内访问国外的网速,我们对于在树莓派上安装 Docker 是有点恐惧的。不过事实证明,确实比较麻烦,但是可以解决。 阅读详情

相关推荐

dockerpi:Docker映像中的虚拟Raspberry Pi

dockerpi:Docker映像中的虚拟Raspberry Pi

QT工程迁移时出现Error while building/deploying project xxx (kit: Desktop Qt 5.15.2 MSVC2019 64bit) When

在Qt Creator项目设置中,确认项目的构建套件(Kit)配置中qmake的位置指向的是对应版本的qmake.exe。1环境配置: 确保已正确安装了指定版本的Qt开发环境(本例中是Qt 5.15.2 MSVC2019 64bit),并且系统环境变量已经设置好,指向正确的Qt安装路径。通常,Qt Creator底部的构建和运行输出窗口会显示具体的qmake执行错误信息。3项目.pro文件: 查看项目的.pro文件是否存在语法错误或其他可能导致qmake失败的问题。如果是中文路径甚至是中文的符号都会错。

qq_33867768的博客 4098

Keil MDK下载报错:Flash Download failed终极解决指南(附固件恢复步骤)

本文针对Keil MDK开发中常见的“Error: Flash Download failed”报错,提供了从基础连接到深度诊断的系统性解决指南。文章详细解析了错误成因,并重点介绍了当常规SWD调试失效时,如何通过Bootloader模式和ISP模式(特别是UART Bootloader)恢复“变砖”芯片的完整实战步骤,帮助开发者彻底解决固件下载难题。

weixin_29196613的博客 816

【Raspberry Pi】搭建Docker容器

出于个人兴趣喜欢套鼓卡片电脑,我这边使用的树莓派安装的是最新的“Buster”版本。这是为了保证所有需要搭建的软件都能够安装成功(原来使用的是Jessie 版,但搭建的时候发现Jessie版内核并不支持所需软件的搭建需要,甚至还因为内核版本的问题折腾了快一周的时间,最后放弃)。 树莓派的安装教程这里就不说了网上有很多解答: https://www.jianshu.com/p/467335f07e05 推荐一个关于树莓派学习的网站树莓派实验室: http://shumeipai.nxez.com/ 下面讲开始

Kida 的躺平小屋 3292

告别Colmap!在ROS2 Humble上,用Fast-LIVO2直接为3D Gaussian Splatting准备数据全流程

本文详细介绍了在ROS2 Humble环境下,使用Fast-LIVO2为3D Gaussian Splatting(3DGS)准备数据的全流程。通过优化Fast-LIVO2配置、实时数据同步机制和3DGS训练参数,显著提升了三维重建效率和质量,相比传统Colmap流程节省95%以上的预处理时间。适用于Ubuntu22.04系统,适合机器人及自动驾驶领域的三维重建应用。

weixin_28688385的博客 588

物理专业书库模板(1):物理学书单(适合物理专业本科生、研究生、科研工作者、物理爱好者...)

物理专业书库模板(1):物理学书单(适合物理专业本科生、研究生、科研工作者、物理爱好者...) 求赞求喜欢求分享,建议关注,防止文章丢失。

hepyang的博客 2179

树莓派安装Docker CE

树莓派卡片电脑安装 Docker CE 警告:切勿在没有配置 Docker APT 源的情况下直接使用 apt 命令安装 Docker. 系统要求 Docker CE 不仅支持x86_64架构的计算机,同时也支持ARM架构的计算机,本小节内容以树莓派单片电脑为例讲解ARM架构安装 Docker CE。 Docker CE 支持以下版本的Raspbian操作系统: ...

weixin_34199335的博客 592

计算机考研常见面试题

写在前面 本人参加20考研,由于复试没有具体要求会问哪几门课,所以我就找了网上一些常见的计算机专业的面试题,整理如下 主要结构: 数据库 软件工程 操作系统 计算机组成原理 计算机网络 数据结构 C++ Java 数据库 1、数据:数据库中存储的基本对象。 数据库:长期存储在计算机内的、有组织的、可共享的数据集合。 数据库管理系统:专门用于建立和管理数据库的一套软件。对外部程序提供访问数据库的方法,对内进行数据管理。 数据库系统:与和数据库相关的整个系统,一般由数据库、数据库管理系统、应用程序、数

qq_38841618的博客 2万+

树莓派安装docker

简单启动树莓派和安装docker、docker-compose

nini675的博客 3692

opencv 双目摄像头拍照(分别左右镜头拍照)

准备一个usb线的双目同步摄像头: 运行环境是vc2015,opencv3.1。 将左右两个摄像头拍到的图片分别保存起来。 1)适用条件 双目同步摄像头(两个镜头,共用一个设备ID) 使用语言:C++ 、opencv库 摄像头 分辨率2560*960 或以上。 源程序: #include"stdafx.h" #include<iostream&g...

黎国溥 1万+

海康Visionmaster-通讯管理:ModBus 通信发送非整型 数据的方法

海康Visionmaster-通讯管理:ModBus 通信发送非整型 数据的方法

视觉人机器视觉的博客 1741

树莓派4B(Raspberry Pi 4B) 使用docker搭建单机版nacos

⚠️ 由于树莓派上的芯片是ARM架构,而官方推出的docker镜像不适用于ARM架构,所以想用树莓派搭建最新版的Nacos服务的小伙伴们可以忽略我这篇文章了。本文基于nacos 2.0.4,mysql 8做讲解。

qq_35215728的博客 1375

高通SDX35:SGMII接口PHY RTL8211FSI-CG驱动适配

高通SDX35 RTL8211F SGMII

不秃头的程序猿Gabriel的博客 786

在Raspberry Pi上设置Docker的简单方法

by Ryan Gordon 通过瑞安·戈登(Ryan Gordon) 在Raspberry Pi上设置Docker的简单方法 (The easy way to set up Docker on a Raspberry Pi) Docker is a very useful tool for running containerized versions of popular applicati...

cumi6497的博客 699

Claude Code 源码一夜流出:会看热闹的人很多,会读源码的人很少

摘要:Claude Code源码意外泄露后,作者分享了高效的源码学习方法:1)Fork仓库保存代码;2)使用Qoder的Repo Wiki功能生成结构化文档和UML图;3)基于Wiki创建可复用的Skill。这种方法比直接让AI总结代码更系统深入,并推荐了可视化学习项目辅助理解。文章强调实践的重要性,提供了具体工具和操作指南。

720

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

2024.7在RaspberryPi5中安装Docker

【代码】2024.7在RaspberryPi5中安装Docker。

LChar1970的博客 1674

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

在树莓派上的Docker编译环境搭建

Docker是一个开源的应用容器引擎,可以让我们打包自己的应用以及依赖到一个轻量、可移指的容器里面去,然后发布到任一Linux机器上,例如:Ubuntu、Debian等。本文介绍如何在树莓派(Raspbian)上暗转Docker,树莓派的架构其实也是Debian的一种衍生。

ZuoPeng402的博客 803

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【免费下载】 Docker Engine在树莓派Raspberry Pi OS上的安装指南

Docker Engine作为容器化技术的核心组件,在树莓派这类ARM架构设备上同样能够发挥重要作用。本文将详细介绍如何在32位Raspberry Pi OS系统上安装Docker Engine,帮助开发者快速搭建容器化开发环境。 ## 系统要求 ### 兼容的操作系统版本 Docker Engine支持以下32位Raspberry Pi OS版本: - Raspberry Pi OS Bo

gitblog_01081的博客 632

树莓派4B(Raspberry Pi 4B)使用docker搭建nacos集群

本文涉及到docker compose和docker network方面的知识,基于nacos 2.0.4,MySQL 8,nginx 1.24.0记述。

qq_35215728的博客 1505

项目推荐:基于Docker的Raspberry Pi虚拟机

Raspberry Pi(树莓派)是一款非常流行的单板计算机,而本项目是一个开源项目,利用Docker技术将Raspberry Pi虚拟化,使得用户能够在任何支持Docker的环境中体验到Raspberry Pi的环境,无需物理设备。以下是该项目的基础介绍及主要特点。 ## 1. 项目基础介绍和主要编程语言 本项目名为`dockerpi`,是由开源社区贡献者Luke Childs创建和维护的。

gitblog_00890的博客 821

树莓派笔记01--如何在树莓派上安装Docker

在开始安装Docker之前,首先,需要确保树莓派已连接到互联网。这个命令将自动从官方Docker仓库下载并安装最新版本的Docker。安装Docker后,需要启动Docker服务。”消息的输出,那么恭喜您成功安装并测试了Docker。安装Docker非常简单。

物联网爱好者 4024

树莓派raspberrypi系统安装docker

捡起了积灰的4b,准备给他装个docker 结果发现使用各种方法安装都是失败 官方安装也不成,试过很多以后最麻烦的一种成功了,,有时候阿还是不能图快。。命令如下 wget https://download.docker.com/linux/debian/dists/buster/pool/stable/armhf/containerd.io_1.2.6-3_armhf.deb wget https://download.docker.com/linux/debian/dists/buster/pool/s

m0_49194578的博客 738

简单四步开始树莓派上的Docker之旅

大概这篇博文发表之后,应该算是我个人的第一篇翻译作品了,翻译的可能不是很到位,望各位看管大刀砍过来。 原文链接:http://resin.io/blog/docker-on-raspberry-pi-in-4-simple-steps/ 以下是文章正文部分 更新:我们已经放出了ARM下Docker 0.7.2,点击阅读更多 一周以前,我们放出了树莓派上安装D

jeepxiaozi的专栏 2万+

raspberry+docker+mongodb ram64 64位的系统

内有连接是在网上的博客找的,非常感谢这几两人兄,帮了大忙,感谢,写这个主要是防止自己忘的太干净 raspberry pi 64位系统 https://github.com/chainsx/ubuntu64-rpi   编译后的系统 :百度网盘 https://pan.baidu.com/s/1DGwnebLDMRtmTJf8mlWYog   密码:18cy 以上为64位系统,    ...

weixin_39032409的博客 540

树莓派官方64位版本来了(Raspberry Pi OS(64位)beta测试版 安装)

今天去官网瞎逛逛无意中发现树莓派官网 戈登博士霍林沃思 树莓派-软件工程总监发表了一篇树莓派Debian64位操作系统版本并且还提供了下载地址,这是一个“测试版”,该操作系统日新月异,其功能在未来几个月内可能会发生重大变化,只能在Pi 3和Pi 4设备上安装。

怪兽小 2万+

raspberry 3b 64bit 系统安装,以及交叉编译环境、调试环境的搭建

一、系统安装 二、交叉环境的搭建,以及内核替换 我用的Linux版本是 ubun16.04-64bit 1、安装交叉编译器 sudo apt-get install gcc-aarch64-linux-gnu 2、下载Linux 内核 3、编译 make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcmrpi3_defconf...

zuihaobushi的专栏 1924
上一篇: GRPC 异步调用 C++
下一篇: how to build a smallest binay in ARMv7 device?
Max_Cong
博客等级 码龄10年 281粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值