首页
书签
论坛
网盘
邮件
壁纸
影视
在线音乐
更多
直播
统计
个人微博
云笔记
云存储
图片视频
友链
留言
关于
Search
1
文档内容搜索哪家强? 15款文件搜索软件横向评测
13 阅读
2
常见系统部署(1)
11 阅读
3
makfile 知识汇总
10 阅读
4
Verilog-AMS Verilog-A介绍
7 阅读
5
欢迎使用 Typecho
5 阅读
默认分类
数字电路
芯片后端
模拟电路
芯片验证
原型验证
算法与架构
DFX与量产
windows设置
Linux设置
MacOS设置
移动OS设置
软件方案
登录
Search
标签搜索
python
PyQT
systemverilog
Alist
Docker
cadence
sv
webdav
vscode
cpp
upf
ESL
TLM
浏览器
virtuoso
tsmc8rf
TSMC
CXL
PCIE
Yosys
bennyhe
累计撰写
46
篇文章
累计收到
8
条评论
首页
栏目
默认分类
数字电路
芯片后端
模拟电路
芯片验证
原型验证
算法与架构
DFX与量产
windows设置
Linux设置
MacOS设置
移动OS设置
软件方案
页面
书签
论坛
网盘
邮件
壁纸
影视
在线音乐
直播
统计
个人微博
云笔记
云存储
图片视频
友链
留言
关于
搜索到
13
篇与
的结果
2025-05-27
sed 工具使用汇总
Linux sed精确匹配和替换1,问题:现有一text.txt文本内容如下:ni hao ma n yin gn ~~n~~ nin 现要用 'en' 将单个单词 n( 删除线 )替换掉尝试的方法一:sed -i 's/n/en/g' text.txt结果:eni hao ma en yien gen en enien 也就是所有的n字符都被替换,而我希望的是仅仅是单词n(下划线所指)被替换尝试方法二:sed -i 's/ n / en /g' text.txt 在n 和en两边加了两个空格结果: ni hao ma n yin gn en nin 出现的问题是第一行最后一个单词n未被替换网上找了好久,终于找到精准匹配和替换的方法:sed -i 's/\<n\>/en/g' text.txt 结果如下:ni hao ma en yin gn en nin ————————————————版权声明:本文为CSDN博主「yychenxie21」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/chenxieyy/article/details/52919009
2025年05月27日
1 阅读
0 评论
0 点赞
2025-05-22
ESL发展及其在项目中的应用
原文链接:https://blog.csdn.net/xiaohaolaoda/article/details/131117987作者 | JJ.Tian, 复睿微电子ESL建模工程师一. 前言随着半导体行业的高速发展,ESL(Electronic System Level)建模或芯片建模在大算力高性能芯片领域显得越来越重要,国内外EDA或芯片设计公司都在构建自己的芯片评估工具或平台,以应对复杂芯片设计所带来的挑战。希望通过这篇文章让大家对ESL建模以及相关的基本概念和设计方法有一定的认识,了解ESL建模的方法和流程,理解工具并利用工具创造价值。本文主要介绍ESL相关的基础知识、概念、术语、以及ESL发展历史。基于这些新的理念和方法,ESL建模得到了长足发展并且逐渐趋于完善。与其它技术类似,ELS或芯片建模采用的工具平台也包括商业和开源两大阵营。此外,本文还介绍了芯片建模标准规范,IEEE1666-2011 SystemC+TLM2.0。在此基础上,还介绍了芯片建模的主要应用领域,有些应用比较成熟,比如性能模型(架构探索/评估/分析),功能模型(软件提前开发),功耗模型(功耗评估),混合仿真(功能或性能模型),软硬件协同设计,验证与划分等。有些应用比较新颖,比如高阶综合(HLS),主流的EDA供应商已经发布了相应的工具,由于应用领域局限性而尚未得到广泛应用。限于篇幅,本文只涉及性能模型和功能模型两个应用方向,其它方向的应用后续有机会再作介绍。在本文中,ESL、ESL建模、芯片建模,名称不同但是含义相当。二. 术语三. ESL发展简介早在20年前,随着芯片行业的发展,芯片结构越来越复杂,版本迭代越来越快速,应用场景越来越多样化,这些变化给芯片设计带来了巨大的挑战。人们注意到传统的设计方法已经不能再满足芯片设计需求,亟需一种全新的设计方法和理念,既能处理复杂的内部结构,又能应对功能的快速迭代,由此ESL应运而生。2001年,ESL率先由Gartner Dataquest定义和发布,并被大众所熟知,至今,ESL已经在芯片设计、验证以及仿真领域得到广泛应用。如果深入研究ESL的本质,它不是某种具体的设计语言、工具或平台,而是一种通用的设计和验证方法学,根据芯片各阶段的设计要求,在规格定义阶段(前期)、中期、后期利用这种方法对芯片的性能,功能,功耗进行建模,通过仿真得到某些参数或指标,作为芯片设计和优化参考。ESL主要应用领域:·性能/架构模型(CA/AT):架构探索,评估与优化,架构设计阶段·功能模型(TL):软件提前开发,软硬件并行开发,缩短研发周期·功耗模型:功耗评估·系统设计(System Level Design):软硬件协同设计、验证与划分·Co-simulation(Model+RTL)混合仿真:包括功能和性能仿真·高阶综合(HLS):使用工具将C++/SystemC+TLM2.0模型直接综合成RTL代码ESL之所以能应用于不同领域,是因为采用了高级编程语言,建模灵活,快速迭代,可以实现不同抽象层次(Abstraction Level)的模型。如果非要从学术层面来定义ESL,可以理解为“利用适当的抽象来增加对系统的理解,并以具有成本效益的方式提高成功实现功能的可能性”。这里面涉及系统、抽象、软硬协同设计和验证以及功能实现等。业界根据这些设计方法和思想,经过多年发展,已经形成了开源和商用两大阵营,以下是业界具有代表性的仿真工具与平台。·开源· SystemC+TLM2.0· QEMU· GEM5· ……·商用· FastModel, arm· VDK, Synopsys· Simics, Wind River/Intel· ……除了以上列出来的仿真工具和平台之外,当然还包括其它开源和商用仿真工具,不胜枚举,详情可以参考[15]。由于商用工具需要购买license,有些公司与其IP深度绑定,形成了完整的生态链,处于垄断地位,授权价格昂贵且授权方式完全由供应商主导,对国内芯片公司不是特别友好。因此国内大多数公司把目标都转向开源仿真工具,开源工具中使用比较广泛的是GEM5和QEMU,两者都提供了丰富的模型和完整的软件,但他们之间也存在差异。GEM5和QEMU都有完整的处理器,总线和外设功能模型,可以快速搭建用户需要的模型,另外,还提供相应的驱动软件和系统软件包,可以更快的实现系统boot功能,用户只需要关注软件开发工作,这些只是功能模型方向的应用。另外GEM5还提供了业界主流架构的处理器(core)模型,如x86/arm/risc-v等,总线(NoC)等架构模型,可以进行性能仿真和评估。在学术界也非常流行,使用GEM5进行计算机或芯片架构探索,性能评估等,基于GEM5仿真所发表的学术论文特别多。对于多数自研IP的公司来说,比如AI/GPU/NPU等,通常还是基于C++/SystemC+TLM2.0建模,根据自研芯片规格来实现自定义架构模型,也会借用GEM5里面现成的模型。顺便提一下,SystemC+TLM2.0之所以重要,是因为商用仿真平台多数都是参考或基于SystemC+TLM2.0开发。比如大家所熟知的Synopsys VDK仿真平台,就是在开源SystemC+TLM2.0基础上,增加和增强了很多新的功能,以图形界面方式呈现,专门为用户提供了二次开发的接口和方法,究其最低层技术还是基于SystemC+TLM2.0标准实现的,另外Candence Xcelium,一种综合逻辑仿真器,也支持SystemC+TLM2.0模型仿真,SystemC+TLM2.0是芯片建模和仿真的重要基础。四. IEEE1666-2011标准为了能够更全面地认识SystemC+TLM2.0, 我们可以从产生背景、编程语言、参考仿真器等多个方面来了解。根据前面介绍,早在2000年左右,人们就提出了抽象层次设计概念以应对复杂芯片设计挑战,但是当时并没有统一的实现语言和工具,比如LISA/LISA+早在90年代就被提出了,是最早架构建模语言之一,迄今为止,在arm的FastModel里面仍然可以见到其身影,除了FastModel之外业界很少直接使用LISA/LISA+语言建模。直到2004年SystemC诞生,架构建模语言逐渐趋于收敛和统一,2011年OSCI发了SystemC 2.3.0,目前最新版本为2.3.4,随后被纳入IEEE标准,并正式发布IEEE1666-2011标准版本。直到今天,还是由OSCI开发和维护,同时OSCI隶属于标准组织Accellera并成为该组织下面众多技术标准之一。首先,SystemC+TLM2.0是全面兼容C/C++的类库(classlibrary),支持C++11/14特征(Feature),所以可以理解为SystemC+TLM2.0是基于C/C++的建模语言(Modeling language),作为一门编程语言,它一直都在不断升级和发展,根据官方资料显示,主要朝着多线程(Multithreading)、功能安全(Functional Safety)、错误注入(Error Injection等方向进行发展和演变。其次,SystemC+TLM2.0还是一种开源参考仿真器,可以通过离散事件实现进程之间通信和同步,在这里,进程可以理解为模块里面具备独立功能的逻辑电路,使用进程旨在描述独立功能的逻辑电路的“并行性”,如果从这个角度来讲,SystemC+TLM2.0编程具有协同程序(Co-routines)的思想,因此在建模的时候,总是要考虑进程(逻辑电路)之间是顺序关系还是并行关系。通过几张图(均来自IEEE1666-2011)介绍SystemC+TLM2.0的主要内容和构成。图1展示了SystemC Language Architecture,最底层是标准C++编程语言,在此之上包括两大块核心内容Core Language 和 Data Type。核心语言部分主要包括module(sc_module), port(sc_port/sc_export), interface(sc_interface), channel(sc_channel),clock(sc_clock), 调度器(scheduler),进程(thread/SC_THREA/SC_METHOD),括号里面是相应的类名、函数或宏名。Data Type用于描述硬件中的数据位宽,逻辑状态(高电平,低电平,高阻态,不确定态),以及数据和状态之间的操作等。在两大核心的基础上还包括进程之间的控制和交互使用的接口(Interface)和通道(Channel),如signal、buffer、mutex、semaphore等。具备这些建模的基本要素之后就可以根据芯片规格(Specification)对其建模了。图1. SystemC Language Architecture (IEEE1666-2011)如果只用SystemC提供的组件来建模,开发者不仅需要关注模块内部结构和功能实现,还需要关注模块之间的通信功能实现。这对开发者来说,无疑是增加了开发负担,也不利于开发更高抽象层次的模型开发,因为SystemC里面模块之间通信以channel为主,比如signal/fifo,这种方式虽然可以描述更加精准的硬件行为(CA),但是仿真效率低,对于芯片架构探索或开发前期来说并不适用。为了解决不能开发任意抽象层次模型和仿真效率低两大问题,OSCI还推出了TLM(Transaction Level Modeling)。在OSCI官方文档中对SystemC+TLM2.0最常用的描述为SystemC with TLM2.0,SystemC/TLM2.0或SystemC+TLM2.0。SystemC+TLM2.0实际上包括两块独立功能的内容,建模时会同时使用。参考图2,SystemC又是TLM2.0的基础,包含TLM1.0和TLM2.0,两个版本在实现方式和细节上有所不同,TLM1.0使用相对较少,本文不做介绍。由于TLM2.0设计更具有通用性,获得了广泛应用,TLM2.0不仅提供blocking/non-block/Debug/DMI transport接口,还实现了通用数据类型(generic payload)和通用的相位(phase),由这两个通用模块构成基础协议(Base protocol)。接口和基础协议组成通用层(Interoperability layer),通用层除了极大地方便建模外,还让不同公司开发的模型可以集成到同一个系统中。除了通用层之外,TLM2.0还提供了utilities class,可以作为golden simple,包括socket/callback register/blocking/ non-blocking transport等。其中simple_initiator_socket/ simple_target_socket极为常用。这些接口效率高且使用方便,应用非常广泛,对于大多数建模场景而言,使用自带utilities class基本满足要求,当然如果有特殊需求,例如增加时序或时钟信息,或对新的通信协议进行建模,可以在通用层的基础上开发全新的socket,比如AMBA协议簇里面的AXI /CHI等。图2. TLM2.0 Class (IEEE1666-2011)根据前文对SystemC+TLM2.0的介绍,现在可以研究一下SystemC+TLM2.0建模抽象层次与具体应用之间的关系。图3展示了建模方式(Coding Styles)以及抽象层次,应用场景可分为四类,即软件开发、软件性能分析、架构性能分析、硬件验证。可以根据仿真需求选择相应的coding styles和TLM2.0通用层来实现,比如transport/ socket等。建模抽象层次应根据要求而定,精度和抽象层次更是需要权衡考虑(Trade-off),同时还需要兼顾仿真效率。总的来说,对精度要求更高,则对建模抽象层次要求也更低,其仿真效率就越低(仿真慢),反之亦然。除了SytemC+TLM2.0存在这个客观局限之外,其它EDA工具也类似,纵观芯片设计链路中的EDA工具中,没有任何一个EDA工具可以全部覆盖设计和验证功能,都会存在自身的优势和劣势。即便如此,也可以使用不完美的工具得出相对满意的结果,如何充分利用好SystemC+TLM2.0需要综合考虑模型精度和仿真效率。以模型对时钟或时序要求为例,每一种应用场景对时钟或时序要求差异很大,硬件验证则需要确保时钟周期完全一致,架构探索和软件性能分析则只需要时钟或时序近似,软件开发则完全不需要考虑时序信息,只要保证数据正确即可。图3. Use cases, coding styles, and mechanism(IEEE1666-2011)五. 性能模型图4是简化版本的芯片设计流程,忽略其它步骤和细节,对于前端和后端而言,EDA公司可以提供明确的测试与验证平台(工具),包括方法和流程。但是对于架构设计来说,如何验证,使用什么工具或平台呢?假如芯片架构师收到了来自市场或客户的产品需求文档(Product Requirement Document, PRD),需要根据产品需求文档量化芯片的参数和指标,即定义芯片规格,确定芯片里面某些子模块的具体参数和行为,比如L1/L2/L3 cache size,总线带宽,关键模块之间的时延,内存架构等,芯片研发初期,此时RTL还未开始开发,更是没有任何平台配合应用场景来验证参数的正确性和合理性,因此如何验证架构设计成为芯片挑战之一。特别是AI/GPU/NPU等类似专用的芯片,对架构验证平台的需求尤为突出。架构模型或性能模型成为验证架构设计的主要工具或平台,在规格定义阶段并可以开始设计架构模型,迭代,测试和优化,将结果反馈给芯片架构师,不断精细化芯片参数,架构或性能模型应当具备以下几点要求:模型精确性,抽象层次,可定量或定性分析模型迭代,参数可配置,可快速迭代,可探索全新的架构(下一代)图4. 芯片设计流程(简化)参考图4,芯片架构验证就是建模、测试、校验和优化的过程。尽管芯片架构验证处于芯片设计初期,实际上这一过程伴随芯片设计整个周期。架构探索可以分为单元架构(处理器微架构/存储架构)和系统架构,单元架构模型更聚焦于内部实现细节和交互信息,比如处理器5级流水,取指、解码、执行、访存、写回。而系统架构则侧重于整体性能评估,将应用场景实例化之后,直接加载到架构模型上运行,通过收集数据处理信息,比如Latency/Bandwidth/Efficiency/Event/Timing等等,定量分析架构的性能和参数。抽象层次其实是架构模型在建模之前需要考虑的重点。从周期精度模型(CA model),时间近似模型(AT model)到行为模型(LT/Behavior Model),需要根据评估目标而定,无关性能的模型,可以采用行为模型,需要关注性能的模型可以使用周期精度或时间近似模型,将这些不同抽象层次的模型集成到同一系统,还能得到混合(Hybrid)模型,该模型可以满足某些特殊场景的测试和验证需求。图5展示了建模与仿真流程,以及与架构设计之间的关系。无论是软件还是硬件设计,都有一种设计理念,称为可执行规格(Executable Specifications),对于芯片设计而言,其意是指架构设计、架构建模和架构验证过程。可以直接将架构规格说明转化为可执行程序,定量分析架构设计。图5. 建模和仿真流程架构建模包含的内容很多,流程虽然简单,但是整个建模和仿真过程,可以粗略也可以精细,灵活多变,结果呈现方式和分析方法也是多种多样。经过仿真除了可以得到带宽(Bandwidth)、时延(Latency/Delay)、波形(Waveform)等最基本的数据之外,还可以获得状态、事件统计等信息。架构设计和架构建模互为补充,伴随参数调整、仿真迭代、仿真优化和结果分析等过程,直到最终得到满足应用要求的参数和结果。图6. 简单的NoC参数和性能分析用例图6给出了一个简单的NoC性能分析用例,在NoC的上行和下行接口上增加监测(Monitor),收集数据传输过程的参数。假设总线协议是AXI,CPU发送的数据包来自某个应用场景。可以调整BL(Burst Length)长度、Burst Size、Burst Type等以适配不同的NoC配置,直到满足要求的结果。六. 功能模型我们知道任何产品都有窗口期,每家公司都希望自己的产品尽快上市(Time-to-Market),更快更多地抢占市场。为了最大化地缩短开发和生产周期,每个行业都在使用新进的工具来进行并行开发。芯片设计也不例外,如果简单地将芯片设计划分为硬件和软件两部分,传统的设计流程是先硬件后软件,以串行方式进行。因为软件开发依赖于硬件平台,为了实现硬件与软件并行开发,功能模型使软硬件并行开发成为可能。功能模型(Function model)也称为虚拟原型(Virtual Prototyping VP),虚拟平台(Virtual Platform VP),它们的本质都是一样,如果说非要有些区别,虚拟原型更倾向于片上系统(System on Chip, SoC),虚拟平台涉及更大的系统,除了包括SoC之外,还包括其它子模型如NoC,DDR,Peripherals等,在这里,可以理解为板级(Printed Circuit Board,PCB)虚拟系统。软件设计左移(Shift-left)在芯片设计领域越来越被重视,左移就是为了实现软硬件并行开发。参考图7,如果将芯片设计简单分为架构,前端和后端设计三个阶段,使用传统设计流程,软件需要在RTL开发快结束的时候,才能在FPGA/Emulator平台开始软件开发和调试,参考图7中Emulation starting point。如果采用功能模型或虚拟原型(VP),在时间上可以提前至少8~12个月,给软件团队足够的时间来开发和优化软件,利用功能模型,可以开发firmware/driver/API/boot flow/Linux/software stack等,如果功能模型增加了时序和追踪(Trace)功能,还可以运行应用程序,用来分析软件的性能。通过两种方式对比,在时间上有绝对的优势,因此获得了广泛应用,比如VDK、Simics、利用SystemC+TLM2.0开发的功能模型等。图7. 芯片研发周期示意图与性能模型相比,功能模型是程序员视角模型(Programmer View, PV),只要保证寄存器精度和数据传输正确即可,无需关注时序以及链路上数据的具体传输过程。如果有额外的需求,比如分析软件性能,可以在模型里面增加时序(Timing)、事件(Event)等信息,建模非常灵活,完全可以根据需求增加相应的特征(Feature)或功能。图8. 功能模型内部结构由于功能模型不需要考虑时序和传输过程等因素,与性能模型比起来,相对简单很多,参考图8,典型的功能模型用例主要包括输入/输出接口,数据队列,控制逻辑,回调函数,寄存器,状态信息,中断信号等等。针对无时序模型SystemC+TLM2.0专门提供了blocking和DMI接口,即b_transport和get_direct_mem_ptr,通过调用这两个接口函数可以直接返回结果,调用接口函数过程中不会被其它模块或进程打断。此外,SystemC+TLM2.0还提供了时间解耦(Temporal Decoupling),仿真时钟精度(Time Resolution),全局量子时间(GlobalQuantum)等特征,充分利用non-blocking/DMI接口和这些特征可以巨大地提升功能模型的仿真效率。七. 总结首先,本文介绍了ESL发展历史,以及商用和开源两大阵营中主流仿真工具和平台。其次,还介绍了SystemC+TLM2.0标准规范,最后介绍了两个主要应用场景:性能模型(架构模型)和功能模型(虚拟原型)。尽管可以使用SystemC+TLM2.0创建任意抽象层次的模型,但是也存在不足之处,目前SystemC+TLM2.0只支持单线程,正是这个原因导致复杂的或抽象层次较低的模型仿真很慢(仿真效率低),从官方渠道可以得知,SystemC+TLM2.0正在朝着多线程、功能安全、错误注入等方向发展和演变,以解决仿真效率问题和拓展更多的应用领域。参考资料[1]. IEEE Standard for Standard SystemC Language Reference Manual, IEEE Std 1666-2011[2]. TLM_2_0_presentation[3]. ESL DESIGN AND VERIFICATION 2006[4]. A SystemC Primer 2002[5]. systemc-from-the-ground-up-2-edition 2004[6]. System Design with SystemC 2002[7]. Enhanced Virtual Prototyping (Featuring RISC-V Case Studies) 2021[8]. Complete Symbolic Simulation of SystemCModels2016[9]. https://en.wikipedia.org/wiki/Virtual_prototyping[10].https://www.intel.com/content/www/us/en/developer/articles/tool/simics-simulator.html[11]. https://developer.arm.com/Tools%20and%20Software/Fast%20Models[12]. https://www.synopsys.com/verification/virtual-prototyping.html[13]. https://www.qemu.org/[14]. https://www.gem5.org/[15]. A Survey of Computer Architecture Simulation Techniques and Tools, 2019作者介绍JJ.Tian, 复睿微电子ESL建模工程师,华中科技大学工学硕士,在服务器芯片测试和验证、CPU/AI芯片建模等领域积累了丰富的工作经验。关于复睿微电子复睿微电子是世界500强企业复星集团出资设立的先进技术型企业。公司目标成为世界领先的智能出行时代的大算力方案提供商,致力于为汽车电子、人工智能、通用计算等领域提供以高性能芯片为基础的解决方案。目前主要从事汽车智能座舱、ADS/ADAS芯片研发,以领先的芯片设计能力和人工智能算法,通过底层技术赋能。复睿微电子是复星智能出⾏⽣态的通⽤⼤算⼒和⼈⼯智能⼤算⼒的基础平台。复睿微电子以提升客户体验为使命,在后摩尔定律时代持续通过先进封装、先进制程和解决⽅案提升算⼒,与合作伙伴共同⾯对汽⻋智能化的新时代
2025年05月22日
2 阅读
0 评论
0 点赞
2025-05-19
打造Ventoy多功能多系统启动U盘
Ventoy多功能系统启动U盘优势:1、操作简单;2、支持多种格式镜像文件(ISO/WIM);3、塞入多种PE工具箱维护系统;4、将WinToGo(Win系统)直接塞入Ventoy中;5、应对不同新老旧设备不同系统不同需求;6、支持多种操作系统(win/Linux/Unix/Ubuntu)等等。初级应用操作方法:第一步、准备工作1、下载安装Ventoy 多系统工具(文末下载)。官网https://gitee.com/longpanda/Ventoy.git2、准备一个至少16G的3.0 串口U盘。第二步、安装Ventoy 到U盘操作方法:1、插上准备好的U盘。2、在下载的Ventoy中找到Ventoy2Disk 应用程序,启动安装,在安装界面选择插入的 U 盘,点击安装(操作很简单)。注意:配置选项检查是否把 “支持安全启动”勾选。3、安装之前会格式化 U 盘 ,注意备份数据(格式化将分为两个区,存放区1 NTFS和引导区2 GPT)。4、打开等待30秒 即可安装完成。5、查看U盘 名称 变为“Ventoy” 说明安装完成。6、初始化U 盘 Ventoy 分区警告:Ventoy 分区 配置文件系统为NTFS ,否则后续操作容易出错。注意:如果只是单纯需要安装系统,只需将系统的镜像ISO文件拷贝到“Ventoy” 下根目录中或任意子目录就可以直接装系统啦!7、重启电脑将U盘设置为第一启动盘即可进入Ventoy 。而爱折腾的摄影大叔想要分享的是打造一个多功能系统启动盘,它即可安装系统还能进行日常系统维护那么接着往下看!第三步、集成多版PE工具到Ventory 中准备PE工具(微PE&HotPE)版本根据自己的需求选择。1、将微PE 以ISO的方式 安装到Ventoy中。1.1、启动微PE 工具箱(WePE_V2.3 64位 或32位 ),在微PE 界面右下角点击光盘图标,生成可启动ISO 文件。1.2、ISO输入位置 U 盘的Ventoy盘中,建议如下图勾选即可,设置完成后点击“理解生成ISO”。1.3、等待生成完成即可。2、将HotPE 以ISO 的方式安装到 “Ventoy” U盘。2.1、启动HotPE 中的 “HotPE Client” 安装文件,在首页下载必要文件。2.2、下载完成后,选择 安装 选项下 “生成ISO 镜像” 点击 开始生成,选择插入的U 盘“Ventoy”,点击保存等待生成完成。3、检查 U 盘中 微 PE &HotPe 文件。第四步、添加多个版本Windows系统到Ventoy 中1、准备不同版本的Win系统&ubuntu系统的ISO镜像文件。制作好Ventoy启动盘后,在新版windows10系统下能看到有两个盘,一个是VTOYEFI盘(此盘在任何情况下都不能动,为启动盘数据),另一个是Ventoy数据盘(用来存储你的个人数据以及需要启动的ISO文件),非windows10下看不到VTOYEFI盘,这是正常的Ventoy盘可以自己手动格式化为其他格式的盘如NTFS,也可以保持默认,Exfat格式支持4g大文件,将需要启动的ISO文件存放到Ventoy盘根目录或者子目录中注意事项:需要启动的ISO文件的文件名不能含有中文及空格,否则将已*号显示并无法启动,一般市面上绝大部分能启动的ISO系统/PE都能启动可安装官网镜像及其他个人DIY的windows镜像19041.1.191206-1406.VB_RELEASE_CLIENTENTERPRISEG_VOL_X64FRE_ZH-CN.ISO windows镜像文件启动图第五步、添加多个版本Linux系统到Ventoy 中安装完成后,U盘的名字会变成Ventoy,此时Ventoy算是安装成功了;可以在U盘里建立一个文件夹,专门放置系统镜像,将下载好的镜像放到文件夹中,如图:我的iso镜像存放;给要安装Linux系统的电脑重启开机,插入制安装了Ventoy的系统盘,频繁按下Esc或者Delete进入Bios(不同牌子的电脑按键不同,有的会是F11和F12,一般都是这几个),在Boot里选择U盘启动并保存退出然后选择第一个Boot in normal mode,下一个界面选第二个选项;最后就是磁盘分配和用户建立,按自己的要求填写,傻瓜式等待安装完成,重启就可以了。第六步、添加多个版本Macos系统到Ventoy 中本文是利用Ventoy原理制作单个U盘引导Windows+Linux+黑苹果macOS,所以会在磁盘末尾保留一段20G的空间用来存放clover和苹果镜像(本文采用macOS Catalina 10.15.7),如果不需要黑苹果,则可以不留这20G的空间在Ventoy的 “配置选项” -->“分区设置”中,可以设置一定容量的保留空间,大小可以用户自定义(不超过U盘本身容量)因为本人之前已经在这个U盘上安装过一次ventoy,所以上图设备内部版本已经是最新版了,上图重新安装是为了在磁盘末尾留出20G空间存放苹果镜像与clover重新安装会格式化磁盘。上图为安装成功界面。如果安装包内版本与设备内部版本不一致可以选择升级,升级不会格式化磁盘用DiskGenius软件查看安装好Ventoy磁盘的分区结构如下图。可以看到有分区Ventoy(exFAT格式),它主要用来存放windows与linux的ISO镜像以及自己平时使用的各种文件;还有一个分区VTOYEFI(FAT16格式),它是存放ventoy自身的地方;以及上一步预留出的20G的空闲空间ventoy会自动扫描Ventoy分区下的所有ISO文件,不论在哪个目录下,其他类型的文件也可以放在OS目录下,就相当于正常的存储文件,只是ventoy不会扫描到而已新建一个FAT32格式的200MB大小的主分区用于存放 "久经考验"的黑苹果引导工具 Clover EFI Bootloader剩下的全部保留空间新建成 一个MacOS(HFS+)格式的分区,用于制作苹果macOS原版系统安装盘。上述分区操作完成之后,在diskgenius中看到的分区结构是这样的将制作好的clover的EFI文件夹放到上面新分配的clover分区中,放入后的分区如下图我的电脑是小米游戏本2019款,所以使用的事该款电脑对应的EFI文件链接:https://pan.baidu.com/s/1E5bK79kgiFt90NWZ4ZiT2A 提取码:rm3g 其他品牌的电脑我推荐一个实时更新维护最新驱动EFI合集的论坛,而且几乎包含所有的电脑型号 https://macx.top/ai ,别人维护也不容易,所以是收费的,但是很好用。需要注意的是,刚才在保留空间中建立的MacOS(HFS+)格式的分区在windows操作系统中默认是不可见的,需要拿到已有的苹果系统下进行剩下的处理工作。先在苹果电脑上安装需要的苹果镜像安装器,下载成功后这些内容会作为名为“安装 macOS [版本名称]”的 App 下载到您的“应用程序”文件夹。如果安装器在下载后打开,请退出而不要继续安装。第七步、添加多个版本ChromeOS/FydeOS系统到Ventoy 中背景介绍FydeOS/CloudReady 基于 Chrome OS。Ventoy 从 1.0.51 版本开始提供实验性支持。由于 Chrome OS 对硬件有特殊要求,所以在使用 Ventoy 启动之前,请务必先使用传统的方式刻录U盘进行测试。确认自己的电脑可以正常启动 FydeOS/CloudReady 之后再使用 Ventoy 启动。特殊说明对于CloudReady需要把解压后的 .bin 后缀名改成 .img 。当前只支持普通启动模式,不支持 Verified Boot.请使用最新版本的 FydeOS/CloudReady 进行测试
2025年05月19日
5 阅读
0 评论
0 点赞
2025-05-19
Typecho 有用的插件或者皮肤
皮肤可以根据自己的风格选择自己的皮肤。https://typechx.com/选用的是https://github.com/HaoOuBa/Joe。演示网站https://78.al/天气显示参考博客:http://bennyhe.cn/index.php/archives/43/css/map 插件https://bluehe.cn/archives/rss-typecho1)、插件上传到typecho的plugins插件目录。2)、登录 Typecho 后台,进入“插件管理”页面,找到 CustomRSS 插件并激活它。3)、验证 RSS 文件,激活插件后,在浏览器中访问 http://yourdomain.com/rss.xml 以确保生成的 RSS 文件正确无误。4)、在你的 Typecho 模板目录(通常位于 usr/themes/你的主题名)中找到并编辑模板的头部文件,通常是 header.php 或类似名称的文件。在 部分增加站点地图和新的RSS订阅(自行修改信息):<link rel="alternate" type="application/rss+xml" title="云心怀鹤 RSS Feed" href="https://bluehe.cn/rss.xml"><link rel="sitemap" type="application/xml" title="站点地图" href="<?php $this->options->siteUrl(); ?>sitemap.xml" />5)、通过这些步骤,你的 Typecho 博客就成功包含了站点地图链接,使搜索引擎能够更好地抓取和索引你的网站内容。music 播放插件Aplayer 和 Meting 的碰撞,一个简单强大的 Typecho 音乐播放器就此诞生!特性支持国内五大音乐平台(网易云、QQ、虾米、百度、酷狗)的单曲/专辑/歌单/歌手热门播放更新迅速,同步 Aplayer 和 Meting 的更新支持简单易用,后台自动解析 URL 为可识别代码与 Markdown 完全兼容安装下载压缩包解压后上传到 /usr/plugins 目录修改文件夹名为 Meting后台启用插件下载地址开源地址: github 使用在文章编辑页面三键即可添加完毕 详细支持列表请直接戳 Github 查看https://github.com/metowolf/Meting-Typecho-Plugin高级[Meting autoplay="false" order="random" theme="red"][Music server="kugou" id="119859" type="playlist"/][/Meting]在第一个 Meting 标签内可以手动添加高级属性支持参数说明autoplaytrue 自动播放false 不自动播放orderrandom 随机播放list 列表单次themeb7daff十六进制颜色代码red 英文名称标题导航插件在 Typecho 中使用 Joe 编辑器时,实现通过输入“#标签”自动填充标签功能,可以通过以下几种方法实现:方法一:使用 AutoTags 插件AutoTags 是一款专为 Typecho 设计的开源插件,能够自动提取文章中的关键词并生成标签。虽然它不是直接通过“#标签”来实现自动填充,但它可以根据文章内容智能生成相关标签,非常实用。安装步骤:1). 克隆仓库:通过 Git 将 AutoTags 项目下载到你的 Typecho 插件目录下:git clone https://github.com/DT27/AutoTags.git2). 启用插件:登录你的 Typecho 管理后台,进入“控制台”->“插件”,找到名为“AutoTags”的插件并点击启用。3). 配置插件(可选):进入插件设置页面调整默认生成标签的数量等选项。方法二:使用 TagSelector 插件TagSelector 是一款增强后台标签功能的插件,支持标签展示和选择。虽然它不能直接实现通过“#标签”自动填充,但它可以让你在后台编辑文章时更方便地选择已有的标签。安装步骤:下载插件:从 下载 TagSelector 插件。上传插件:将下载的插件文件夹 TagSelector 上传到 Typecho 的插件目录(usr/plugins/)。启用插件:在 Typecho 后台插件管理页面启用 TagSelector 插件。方法三:自定义代码实现如果你希望直接通过输入“#标签”来实现自动填充,可以通过自定义代码的方式实现。以下是一个简单的实现方法:实现步骤:1). 编辑主题文件:在你的主题文件夹中找到 functions.php 文件,如果没有则创建一个。2). 添加代码:在 functions.php 文件中添加以下代码:function autoTags($content) { preg_match_all('/#(\w+)/', $content, $matches); $tags = array_unique($matches[1]); return implode(',', $tags); }修改文章发布逻辑:在 admin/write-post.php 文件中找到标签输入框的代码:<p><input id="tags" name="tags" type="text" value="<?php $post->tags(',', false); ?>" class="w-100 text" /></p>在其下方添加以下代码:<script> document.getElementById('text').addEventListener('input', function() { var content = this.value; var xhr = new XMLHttpRequest(); xhr.open('POST', '<?php echo Typecho_Common::url('action/write-post.php', Typecho_Common::getOptions()->index); ?>', true); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.send('do=autoTags&content=' + encodeURIComponent(content)); xhr.onload = function() { if (xhr.status === 200) { document.getElementById('tags').value = xhr.responseText; } }; }); </script>4). 处理自动标签逻辑:在 admin/write-post.php 文件中找到 do=autoTags 的处理逻辑,添加以下代码:if (isset($_POST['do']) && $_POST['do'] == 'autoTags') { header('Content-Type: text/plain'); echo autoTags($_POST['content']); exit; }博客:6v6.ren通过以上方法,你可以实现通过输入“#标签”自动填充标签的功能,提升你的写作体验。https://blog.yihang.info/archives/393.html
2025年05月19日
1 阅读
0 评论
0 点赞
2025-05-19
用自定义域名做https/http内网穿透
1 SakuraFRP开通隧道来到SakuraFRP后台,根据下图格式创建一个隧道,现在我们没有开放80/443端口的需求(要备案的/(ㄒoㄒ)/~~),所以可以不选带有“建站”标签的节点。图中的本地IP,如果你在同一台机器上运行服务端和穿透客户端,则选择127.0.0.1,否则填写服务端所在设备的内网IP(例如你决定在路由器或另一台内网设备上跑穿透)。本地端口为你的服务端所使用的端口。域名解析到节点接下来需要将域名解析到Sakura提供的穿透节点,节点的域名可以把鼠标放上去查看。知道了节点域名之后就可以在DNS页面创建一条CNAME记录,指向Sakura穿透节点即可,名称可以随意。配置客户端并启动在frpc客户端,我们需要添加证书和key。这里使用的是Sakura FRP启动器,它实际上是个frpc套壳,操作原理都是相同的。通过查阅SakuraFRP的wiki,可以得知群晖上的Sakura启动器工作目录的位置在/var/packages/natfrp/var。:::tip对于其他平台也是同理,只需要在平台对应的配置目录做操作即可。在这里要吐槽一下Sakura的wiki的导航和分类做的真的不太好,要查什么东西需要翻半天才能找到…:::核心服务的所有文件都是相对于 工作目录 创建的。下面是工作目录的默认值:Windows:%PROGRAMDATA%\SakuraFrpServicemacOS:~/Library/Containers/com.natfrp.launcher/Data/Library/Application Support/natfrp-serviceLinux / FreeBSD 下遵循 FreeDesktop 规范:优先使用 $XDG_CONFIG_HOME/.config/natfrp-service如果 $XDG_CONFIG_HOME 未设置,则使用 ~/.config/natfrp-serviceAndroid 启动器:/data/data/com.natfrp.launcher/service/OpenWrt LuCI 插件:/etc/natfrp群晖 DSM 套件包:/var/packages/natfrp/varDocker 镜像:/run/我们来到工作目录中,进入FrpcWokingDirectory,将域名证书与私钥文件放在这里即可。我们在电脑上将之前在ZeroSSL下载好的zip文件打开,里面的crt文件和key文件使用文本编辑器打开后复制即可。cd /var/packages/natfrp/var/FrpcWorkingDirectorysudo vi xxx.yourdomain.com.crt输入你的群晖管理员密码后,粘贴crt证书中的内容按下Esc,输入 :wq ,按下回车即可保存sudo vi xxx.yourdomain.com.key同上完成后,即可在启动器中开启隧道。访问群晖IP+4101端口进入后台,在隧道页通过拖拽的方式启用隧道即可弹出提示:“隧道已启动,您可通过https://节点域名:为你分配的端口访问”。此时就可以使用https://xxx.yourdomain.com:为你分配的端口/来随处访问你的服务啦。:::tip对于其他设备,则可以通过双击图标等更简单的方式来进入启动器页面,或者通过查阅Sakura的wiki、frpc文档、chatGPT来完成启动的步骤。在使用Sakura官方启动器之前,会要求通过token来进行登录,按照提示输入用户信息页面的访问密钥即可。2. nat123nat123免费域名所有人共享使用(自定义二级域名),微信场景等正式应用推荐使用自己独立域名(自己注册完全权限域名)。通过DNS/NS/CNAME只能其中一种(不能同时多种),在nat123端口映射,用自己注册的域名。一填(nat123填写),二指(自己注册域名解析商指向),简单2步用上自己域名。端口映射内网穿透支持自己域名且无需转移注册商,详细参考>>使用自己域名全过程图文小白教程 使用自己域名内网映射概要流程步骤如下:1.使用nat123添加端口映射,在外网网址使用自己的域名。并记下自主域名指向提示,或保存后鼠标停留客户端图标查看。每个映射分配的cname指向地址都不同,映射记录与cname是唯一对应关系。修改映射不会改变cname地址,(删除后)新增映射的cname是不同的。 2.登录自己的(如万网/dnspod)域名注册解析管理网站,并设置DNS/NS/CNAME其中一种指向。将自己的域名指向nat123提示的自主域名指向地址(编辑映射和鼠标停留客户端图标可查看)。每一个映射的cname都是不同的,每个映射的cname都是唯一对应的。修改映射信息不会改变cname地址,(删除后)新增映射的cname是不同的。3.等待解析生效。如何同时使用自己的根域名(如mydo.com)和www子域名(如www.mydo.com)?方法一:直接同时添加二个映射使用。1,添加二个映射记录,外网地址域名分别使用自己的根域名(mydo.com)和www子域名(www.mydo.com)。2,登陆自己的域名解析管理网站(如dnspod/万网),分别设置根域名和www子域名的cname指向。注意是不同的cname地址。3,如自己域名注册商不支持根域名cname指向,使用dnspod等支持根域名cname指向的解析服务。方法二(推荐):使用其中一个,另一个用URL转跳。1,使用www子域名。2,登陆自己的域名解析管理网站(如dnspod/万网),设置根域名解析URL转跳至www子域名。3,如自己域名注册商不支持URL转跳,使用dnspod等支持URL转跳的解析服务。提示:根域名和www子域名是不同的子域名,不能混为一谈。部分域名注册解析商不支持根域名的cname解析。自己备案域名80/443网站映射可切换对应国内线路,更多参考《集群线路自主切换选择》提示:1.映射记录与cname是一一对应关系,每一个映射分配的cname指向地址都是不同的。2.DNS变更需24小时以上完全生效。NS/CNAME一般半小时内生效。具体时间看自己域名注册解析商。3.同一个(子)域名DNS/NS/CNAME只能设置一种域名解析记录,不能同时多种。4.建议使用cname指向。生效快,变更便捷,更安全。5,如设置解析后长时间未生效,建议咨询自己注册域名解析商。如域名解析有分多线路的,确保“默认”解析线路正常。同时确保域名正常状态,如域名本身是被注册商锁定、被墙、等受限的异常域名,请更换正常域名才能使用。3. 路由侠一、在原生端口 TCP 或 UDP 上使用自有域名注意此时需要区分通讯本身是否是 HTTP 协议,如果是 HTTP 协议,比如用于浏览器打开的地址,是无法在原生端口上使用自有域名的。如果是非 HTTP 协议,则是直接支持的,比如 游戏联机、数据库 等。可以在 DNS 后台,直接将域名按 CNAME 解析到分配的公网域名上即可(注意不带冒号和端口)。比如将 yourdomain.com 按 CNAME 解析到 yourname.e3.luyouxia.net,当客户端需要连接使用时,就可以使用 yourname.com:12345 这样的公网地址。二、在网站应用上使用自有域名网站应用表示您的地址是使用 http 或 https 前缀,默认使用 HTTP 协议的 80 或 HTTPS 的 443 端口,在浏览器访问时,无需输入端口号。比如 http://yourname.w1.luyouxia.net/ 这样的地址。当前网站应用接入自有域名,仅对企业用户开放,需要开通 企业版(点此开通) 。1,在创建映射时,选择网站应用。可以在 DNS 后台,直接将域名按 CNAME 解析到分配的公网域名上即可(注意不带冒号和端口)。比如将 yourdomain.com 按 CNAME 解析到 yourname.e3.luyouxia.net,当客户端需要连接使用时,就可以使用 yourname.com:12345 这样的公网地址。二、在网站应用上使用自有域名网站应用表示您的地址是使用 http 或 https 前缀,默认使用 HTTP 协议的 80 或 HTTPS 的 443 端口,在浏览器访问时,无需输入端口号。比如 http://yourname.w1.luyouxia.net/ 这样的地址。当前网站应用接入自有域名,仅对企业用户开放,需要开通 企业版(点此开通) 。1,在创建映射时,选择网站应用。2,选择线路时,选择 “网站线路(自有域名)”,需要先将您的域名填入,并完成创建。3,右键点击刚刚创建的映射,可以看到一个“域名解析”选项,点击“域名解析”。4,此时可以看到系统给出的 CNAME 地址,复制该 CNAME 地址。5,再登录您自己的 DNS 后台,为您的域名添加 CNAME 解析,将刚才的地址粘贴进去,保存。等待解析生效,稍后即可直接从浏览器输入您的域名地址,访问到您映射的网站。以阿里云为例,登录阿里云,找到云解析 DNS,找到您的域名:添加 CNAME 记录:如需接入自有域名并同时使用 https,右键点击刚刚创建的映射,选择【选项】,点击【上传证书】)4.量子互联一、配置TCP/UDP隧道的自定义域名查看隧道当前的服务器线路地址,如教程中所示s3.nsloop.com二、修改域名解析记录打开阿里云或腾讯云(域名服务商)域名解析后台,添加CNMAE解析记录,例如我们准备绑定www.xxx.com来访问映射的隧道。记录类型:CNAME主机记录:www记录值:s3.nsloop.com (教程示例的当前线路地址)确定保存。三、连接测试绑定域名后可以使用自己的域名加公网端口访问。例如:原来我们使用系统分配的地址s3.nsloop.com:26097, 现在可以用自己的域名www.xxx.com:26097四、常见问题1 上面操作完成后,怎么还是打不开网页。确认上述配置正确。域名DNS解析记录有个刷新时间,稍等10-20分钟再试。上面4个支持内网穿透的VIP比较1.路由侠量子互联实际带宽10Mbps以内,不支持视频内容点播nat1234.SakuraFRP
2025年05月19日
2 阅读
0 评论
0 点赞
1
2
3