当前位置: 首页 > news >正文

车联网安全学习之TBOX

Telematics BOX,简称 T-BOX,也称远程信息处理控制单元(Telematics Control Unit, TCU),集成GPS、外部通信接口、电子处理单元、微控制器、移动通信单元和存储器等功能模块。

TBOX 提供的功能有网络接入、OTA、远程控制、位置查询/车辆追踪、电池管理、位置提醒、eCall、远程诊断、平台监控/国家监管等。

网络接入

作为车端与车联网连接的入口,给车机等提供上网服务。

OTA

传统更新汽车软件的做法是到 4S 店通过 OBD 对相应的 ECU 进行软件升级、通过 USB 等接口对信息娱乐系统进行升级。伴随着智能汽车的发展,本地升级已不再适应高速变化的车载生态,当下 OTA 在汽车也得了广泛的应用。

汽车远程升级(Over-The-Air,OTA),指替代线缆或者其它本地连接方式,通过无线传输方式进行软件下载和软件更新的过程。OTA 常见类型包括SOTA(Software OTA,应用软件升级)和COTA(Config OTA,配置更新)、 FOTA(Firmware OTA,固件升级)。通过 OTA 能够为车端添加新功能、修复漏洞等。

SOTA: 软件升级,面向车载端上的应用软件升级。

COTA: 配置升级,面向车端端上的配置升级。

FOTA: 固件升级,面向车端上的固件升级,实现对对动力域、底盘域、辅助驾驶域、信息娱乐域和车身域在内的重大功能更新。

OTA 主要涉及两端,后台管理和客户端。后台管理包括升级包上传、版本控制、升级流程监控与统计、应用与数据升级等;客户端包括定时检查更新、手动检查更新、安全下载、断点续传、升级包校验等。

当下也涌现一批 OTA 解决方案供应商 ,如艾拉比、科络达、红色石头、INTEST、Excelfore eSync、哈曼、弗吉亚、安波福等。目前 OTA 国家强制标准《汽车软件升级 通用技术要求》也在制定之中。

远程控制

使用移动应用程序控制车门开关、调节空调等。手机应用首先将指令发给服务端,然后服务端将指令交由 TBOX 来执行,TBOX 通过主连接器上的 CAN 总线等将指令传送给 ECU 执行。

位置查询/车辆追踪

提供车辆的实时定位信息,可通过手机应用查询车辆的实时位置以及历史轨迹。

电池管理

对电池的实时监控、管理、维护。

位置提醒

为车主提供维护保养、驾驶风格建议,提高用户车主的用车体验。

eCall

eCall(Emergency Call,紧急呼叫) 包括道路救援、自动碰撞通知(ACN)等。

欧盟在 2017 年底强制要求所有的上市新车配备汽车紧急呼叫系统 eCall。国际标准(ETSI TS 126 267,)规范了 eCall 数字通道传输 MAD (Minimum Set of Data,最小数据集)包括位置、车型和事故严重度的数据格式,以及同步语音通道与 PSAP(Public Safety Answer Point,公共安全应答中心)的呼叫优先级。

eCall 支持手动触发、自动触发两种方式。手动 eCall 功能可通过实体按键(车顶的一个红色按钮,通常标记为SOS)触发;自动 eCall 功能指车辆发生碰撞后安全气囊弹出的情况下,TBOX 接收碰撞信号后自动拨通救援电话的一种功能。eCall 拨通后,后台会根据车辆位置,及时提供安排相应的救援服务。

eCall 是欧洲标准,俄罗斯也推出了类似方案 ERA GLONASS。国内方面,目前并相关无强制法规要求。

远程诊断

指汽车在启动时,获知汽车的故障信息,并把故障码上传至数据处理中心。系统在不打扰车主的情况下复检故障信息。在确定故障后,并实施远程自动消除故障,无法消除的故障以短信方式发送给车主,使车主提前获知车辆存在的故障信息,防范于未然。既车辆不用返回 4S 店,对车身控制系统、车载系统等进行升级快速修复系统缺陷。在数据采集分析基础上,通过增加无线通信设备,实现数据远程上传到云端服务器,分析人员从云端服务器下载数据后分析。 基于远程软件控制经销商诊断设备诊断车辆,同时可以通过摄像头、话筒等设备获得维修现场音像信息。

平台监控/国家监管

利用已经安装在车辆上的车载通讯单元( TBOX)实现将国家要求的高压电相关静态数据、动态数据和故障状态实时传输到政府平台。 相应的国家标准为 《GB/T 32960-2016 电动汽车远程服务与管理系统技术规范》,从2017年4月1日起,所有新能源汽车必须强制实行国标 GB/T 32960。平台和车型通过认证的证书如下。

新能源汽车上的数据实时传输给企业安全检测平台,然后由企业平台上报地方监管平台和国家监管平台。

![image-20210803233950743 (1)](https://tomyyyyy.oss-cn-hangzhou.aliyuncs.com/img/image-20210803233950743(1).png)

企业监测平台一般称之为 RTM(实时监控)系统。RTM 系统发送信息的路径,FCM(Forward Collision Mitgation system,前方碰撞预防辅助制动系统) 负责收集 4 路 CAN 线的信息,过滤后通过 RTM-CAN 发送给 TBOX3,最后 TBOX3 通过天线将信号发送到后台服务器。

总结

本文总结了 TBOX 的主要功能,原本是下一篇文章 车联网安全基础知识之大众J949(TBOX/TBOX) 中的一部分。原文太长,看起来太累,于是拆分成了两篇。下一篇将在不久后发出。

现在很多做车联网安全的主要精力停留在攻破系统上,在对业务漏洞的挖掘上往往不够深入。不深入的原因是多种多样的,一是测试时间往往较短,没有时间对业务进行完整的检测。另一方面缺乏厂商配合,很多检测项目很难开展。最后还与测试人员对业务的了解程度有关,当前车联网安全仍处于早期,有很多知识测试人员未必掌握。作为在车联网安全一线上的我,当然要充实自己。于是写这篇文章,梳理 TBOX 主要的业务,为后续安全检测和漏洞挖掘打好基础。

大众J949(OCU/TBOX)

OCU(Online Connectivity Unit)既紧急呼叫模块和通信单元。其他车上的同类模块在国内通常称之为 TBOX(Telematics BOX)。国外多称之为 TCU(Telematics Control Unit)。

OCU 具有一个固定的内置SIM卡, 用于登录移动网络。 它的作用是发送和接收 Car-Net e-Remote 服务的数据和命令。 通过无线网络实现永久的互联网连接, 确保后台和车辆之间的数据传输, 即使在关闭点火开关后也可以接收、 处理和执行命令。OCU 是车联网系统系统中最重要的组件之一。

主要功能

OCU 的功能和其他 TBOX 功能相似,详情见 车联网安全基础知识之TBOX主要功能。

4 代 OCU 硬件分析

第一代 OCU1 出现在 2012 年,现已经历四次迭代,当前最新版本第四代 OCU4。OCU 的供应商为 LG,第一代在越南制造,第三代在中国或越南制造。第四代由越南制造。OCU 从第 3 代起开始逐步支持车载以太网。

OCU 安装在仪表板后面,附带备用电池和备用天线。外接有蜂窝网络天线和 GNSS 定位天线,部分版本还有 Wi-Fi 天线。增加备用电池、内置扬声器和内置通讯天线来增强 OCU 的健壮性,避免出现整车断电无法拨打 eCall 的情况。主连接器中,有电源、调试接口、CAN、以太网、音视频等接口。

对外通信方面,OCU 使用内置 eSIM 卡,支持的频段在不同国家存在一定的差异。GNSS 定位支持所有主流的定位系统,包括 GPS、Glonass、Beidou、SBAS 以及 Galileo。

OCU4-TLVHE4IU

2019 年推出最新的第四代 OCU。今年大众推出的 ID.4 就使用了最新的 OCU4。

TLVHE4IU-N

OCU4 高配,不支持蓝牙和 Wi-Fi。使用的主要芯片如下 。

  • 通信模组:Qualcomm MDM9240,支持的频段包括GSM 850/1900、UMTS B2/B4/B5/*B6、LTE FDD B2/B4/B5/B12/B13/B17/B29(RX);
  • MCU: 英飞凌 Tricore SAK-TC234LE-32F200F AB,有丰富的接口 1x FlexRay,2x LIN,4x QSPI,6x CAN,包括数据速率增强的 CAN FD;

TLVHE4IU-E

不支持蓝牙和 Wi-Fi。使用的主要芯片如下。

  • 通信模组:Qualcomm MDM9240,支持频段 LTE FDD B7。
  • MCU: 英飞凌 Tricore SAK-TC234LE-32F200F AB,有丰富的接口 1x FlexRay,2x LIN,4x QSPI,6x CAN,包括数据速率增强的 CAN FD;

OCU3-TLVHM3IU/TLVLM3IU

OCU3 的 PCB 板大体结构相似,主要由一个通信模组以及一个用于和总线交互的 MCU 组成,剩下就是按需配置的以太网桥、Wi-Fi 芯片等。剩下的就是一些基础的电路模块如电源管理、晶振、滤波等。

OCU3 有高低配两个版本,但在高低配之下还有划分。高低配直接的差别是高配支持以太网,低配不支持。其他版本的差异主要是通信基带支持的频段不同、以及是否支持 Wi-Fi 和蓝牙。

OCU3 小版本较多,外观上也有如下两个版本,左边的一个较为圆润,右边一个棱角分明。

TLVHM3IU-E、TLVHM3IU-N 高配

OCU3 高配,支持以太网,不支持 Wi-Fi 和蓝牙。使用的主要芯片如下。

  • 通信模组:Qualcomm MDM9240,支持的频段包括 GSM 900/1800 、UMTS B1/B3/B8 、LTE FDD B1/B3/B7/B8/B20/B28A;
  • 以太网桥: 东芝 TC9560XBG,采用 ARM Cortex-M3 架构,支持 IEEE 802.1AS 和 IEEE 802.1Qav 等标准;RealTek RTL9044AB;
  • MCU: 英飞凌 Tricore SAK-TC234LE-32F200F AB,有丰富的接口 1x FlexRay,2x LIN,4x QSPI,6x CAN,包括数据速率增强的 CAN FD;

TLVLM3IU-N 低配

OCU3 低配,支持 Wi-Fi ,没有以太网和蓝牙。使用的主要芯片如下。

  • 通信模组:Qualcomm MDM9628,支持的频段包括 GSM 900/1800 、UMTS B1/B3/B8 、LTE FDD B2/B4/B5/B12/B17;
  • MCU: 英飞凌 Tricore SAK-TC234LE-32F200F AB,有丰富的接口 1x FlexRay,2x LIN,4x QSPI,6x CAN,包括数据速率增强的 CAN FD;

TLVLM3IU-E 低配

OCU3 低配,不支持以太网、Wi-Fi 及蓝牙。使用的主要芯片如下。

  • 通信模组:Qualcomm MDM9240,支持的频段包括 GSM 900/1800 、UMTS B1/B3/B8 、LTE FDD B1/B3/B7/B8/B20/B28A;
  • MCU: 英飞凌 Tricore SAK-TC234LE-32F200F AB,有丰富的接口 1x FlexRay,2x LIN,4x QSPI,6x CAN,包括数据速率增强的 CAN FD;

OCU2 - TUVM02IU

FCC ID 为 TUVM02IU-E、TUVM02IU-C 等,未查询具体的资料。

OCU1-TUVM01IU

TUVM01IU 是第一代 OCU,在越南制造。支持的频段包括 GSM 1900 PCS UP | LTE 2,1900 PCS UP | LTE 25,1900+ UP | LTE 35,TD PCS Lower DOWN | UMTS CH 2 UP | UMTS CH 25 UP | UMTS CH 35 DOWN 。

OCU 第一代经历过 3 次较大的硬件升级,从TUVM01IU-G 从衍生出了 TUVM01IU-R、TUVP01IU-G、TUVP01IU-R 等。

下图是 MQB 平台中使用第一代 OCU 的电路板,部分芯片丝印已无法识别。可识别的主要芯片如下。

  • MCU: 飞思卡尔 SPC5606BMLL6 32 位 PPC 架构的 MCU,内存为 1MB,处理器频率为 64MHz。通信方式有 6 路 CAN,使用 JTAG 进行调试。
  • SDRAW: 华邦 W94AD6KBHX。

接口测试

手头正好有一个 OCU3,接上 12V 直流电,使用逻辑分析仪识别出了 CAN 接口。其中一条报文的 ID 为 0x36F,数据为 F8 FF FF BF FF FF FF 07。

但在识别串口的时候出现了异常,使用常见的波特率无法解析数据。猜测使用了自有协议通信,无法查看到明文的数据。串口的使用需要用到后面讲到的开发工具 ODT。

对其他接口的测试这里暂不展示。

开发工具 ODT

在第一代 OCU 中,使用 ODT(OCU Development Tool,OCU开发工具) 调试、测试、分析 OCU。

ODT 运行在 Window 系统上,通过 USB 转串口工具与 OCU 相连。 ODT 具有查看信息、设置参数、触发功能等功能。

  • 查看信息:在 ODT 可以直观的查看 GNSS定位信息、网络状态、SIM卡信息、电源状态、系统日志、服务日志、调试日志、配置数据等;
  • 设置参数:除了查看功能外,还能设置一些列参数,如 APN、供电模式等;
  • 触发功能:此外,还能够收发短信、播放音频、升级系统等。

车联网中的 OCU

在车联网系统中,OCU 处于核心位置。从下图中可以看出,OCU 通过 CAN 总线和车载以太网接入网关; J794(车机) 方面,除了通过信息娱乐 CAN 相连以外, J794(车机) 还与 OCU 上的麦克风、扬声器相连。

在大众最近的电子架构中,OCU 与车载应用服务器(ICAS1)通过车载以太网和CAN总线相连。OCU 与 娱乐系统(ICAS3)通过 A2B 相连。

OCU 硬件总结

纵观四代 OCU 的发展,功能越来越丰富,承载的数据量也越来越大。在外观方面,各代差异较小,外部连接上依旧是少数的天线接口和主连接器上的排针,但可以看出还是多出了一些接口。芯片方面,仍旧采用通信模组搭配MCU的方案,通信模组负责与外界进行无线通信,MCU 负责与总线通信。伴随着技术的更替,车载以太网开始在车端广泛应用,以太网交换芯片的出现是OCU发展的最大变化,某种意义上也意味着车载网络的变革。

历代 OCU 使用的主要芯片变化不大,通信模组采用高通 MDM平台,供应商为 Sierra Wireless。国内其他厂商的 TBOX 常使用移远通信的通信模组。通信模组使用 eSIM卡;与 MCU 通过 SPI 和 GPIO 相连;与以太网网桥通过 PCIE 相连;与以太网交换芯片通过 RGMI 和 SPI 相连;与音视频芯片通过 I2S 相连。

MCU 与主控(通信模组) 通过SPI 和 GPIO 相连;下端连接 CAN、按钮、安全气囊等。

本文主要讲解硬件部分,系统与软件部分后续会专题讲解。

安全威胁

以渗透测试人员的角度审视 OCU 的安全,并列举一些常见的风险点。这里以大众 OCU 为主体,也会谈及一些通用 TBOX 的共性问题。

通信
  • 无线网络

    OCU 具备的无线通信方式有蜂窝网络、GNSS、Wi-Fi,可能还有蓝牙。蜂窝网络存在被降级的风险;定位存在被欺骗的风险,国内采用多模,仅 GPS 可被欺骗,威胁系数较小;Wi-Fi 层面一是配置安全,比较重要的一点是初始密码的强度,然后是 Wi-Fi 网络下网络隔离以及开放服务的安全。蓝牙主要是协议栈的安全。

  • 内网 APN

    通过 OCU APN 接入企业内网,由于内网防护较弱,容易被渗透。

  • 总线

    通过 OCU 总线攻击其他 ECU。

OTA

一般状态下,智能网联汽车中 OTA 请求与固件包的下发是通过 OCU 与 TSP 来实现的。获取到系统权限后,既可以通过分析升级程序或者分析通信流量获取固件包,获取升级包后,分析升级 包可以发现其中的脆弱点进行利用;还能分析出其他 ECU 的升级逻辑,利用升级程序缺陷刷入恶意固件绕过安全限制或植入恶意代码。

以下是一些可能出现问题的点:

  1. 云端威胁,OTA 平台存在漏洞。
  2. OTA 固件泄露,泄露的途径有OTA管理平台漏洞、测试包泄露、售后泄露、明文传输截取、逆向程序获取下载地址等。
  3. 升级程序设计缺陷,如升级包签名验签绕过等。
  4. OTA 的可用性,在实施软件升级时,若不能保证策略的合理性、提示的有效性,将会严重影响消费者的生命和财产安全,如某车型在长安街上停车一小时,乘客无法操纵车辆,甚至无法下车,给公共交通安全和用户生命安全带来严重隐患。
硬件安全
  1. 预留未保护的调试接口,如串口、ADB、USB、JTAG 等。
  2. 存储安全,SOP 封装 Flash 易被提取。
  3. MCU 代码读保护未开启,可提取固件、动态调试等。
系统/软件安全
  1. 使用过时的组件,开源组件存在已知漏洞,如 Dnsmasq。
  2. 未划分用户权限,都以 root 权限运行。
  3. 软件本身存在的漏洞,如命令注入、缓冲区溢出等。
  4. 开放的服务存在缺陷,SSH、Telnet 弱口令,私有服务传输敏感信息等。

总结

这篇文章实质上是对 TBOX 的一次安全分析。之所以没有直接讲TBOX,是因为直接讲太过空洞。于是借助 OCU 将 TBOX 实体化,讲一次实际的案例。不同厂家的设计方案虽有不同,但大体还是相似的。遂以小见大,把对 OCU 的安全认知类推到其他 TBOX 上。

相关文章:

车联网安全学习之TBOX

Telematics BOX,简称 T-BOX,也称远程信息处理控制单元(Telematics Control Unit, TCU),集成GPS、外部通信接口、电子处理单元、微控制器、移动通信单元和存储器等功能模块。 TBOX 提供的功能有网络接入、OTA、远程控制…...

访问http网页强制跳转到了https的解决办法

目录 解决浏览器自动从 HTTP 重定向到 HTTPS 的问题问题原因:HSTS(HTTP Strict Transport Security)什么是 HSTS?HSTS 的工作原理 如何解决?1. 清除浏览器的 HSTS 信息在 Chrome 中清除 HSTS 信息:在 Firef…...

3D 生成重建016-SA3D从nerf中分割一切

3D 生成重建016-SA3D从nerf中分割一切 文章目录 0 论文工作1 方法介绍2 实验结果 0 论文工作 1 SAM的背景和目标: SAM 是一种强大的二维视觉基础模型,能够在 2D 图像中进行任意物体的分割。传统上,SAM 在二维空间表现出色,但其无…...

阿里云整理(二)

阿里云整理 1. 访问网站2. 专业名词2.1 域名2.2 域名备案2.3 云解析DNS2.4 CDN2.5 WAF 1. 访问网站 用户使用浏览器访问网站大体分为几个过程: 用户在浏览器输入域名URL,例如www.baidu.com。 不过,浏览器并不知道为该域名提供服务的服务器具…...

qt基本部分控件用法(一)

前言: 以前 windows下做工具主要是MFC,趁有点空时间,研究了QT,感觉跟MFC 差不多,VS 比 QT CREATOR 还是强大,不过QT可以跨平台,功能更强大,MFC 只能在win平台下.; 1:环境…...

【Linux】环境ChatGLM-4-9B 模型之 openai API 服务

一、摘要 最近看到 Function Call 比较感兴趣,它的核心是赋予大模型能够调用外部API的能力,能够解决大模型功能扩展性问题,允许模型调用外部数据库或API,提供特定领域的详细信息;解决信息实时性问题,模型可以实时获取最新数据;解决数据局限性问题,大模型训练数据虽多但…...

Too many open files 问题处理

某个简单的 python 服务,运行一段时间就崩溃。查看日志后发现有一个系统错误 OSError: Errno24 Too many open files要理解这个问题,首先要理解什么是文件描述符,可以参考我的另一篇文章(Linux 系统文件描述符(File Descriptor&a…...

CentOS 7 环境下常见的操作和配置

目录 1. CentOS 7 中的 vsftpd 配置与使用 安装与启动 vsftpd 配置 vsftpd(/etc/vsftpd/vsftpd.conf) 常见命令 2. 使用 yum 包管理器 3. 安全性与防火墙配置 开放端口 4. 使用 systemd 管理服务 5. SELinux 配置 查看 SELinux 状态 临时禁用…...

HTTP(超文本传输协议)

HTTP是万维网通信的基础构成,是一个简单的请求相应协议,基于TCP之上80号端口 通信原理 DNS解析 将域名甩个DNS服务器解析,将域名化为IP访问 建立TCP连接 如图,客户端先发送一个sys置位seq为x(任意值)的…...

etcd-v3.5release-(3)-readIndexRead

笔记1:读操作包括两种,readIndex和serilizable,readIndex指一致性读,一旦a读到了数据x,那么a及a以后的数据都能读到x,readIndex读会先确认本leader是不是有效地leader,如果有效则记录此刻的comm…...

IPv6 NA RTR/SOL/OVR标志位,单播多播选择,ndppd代理和kernel配置

NA消息用单播还是多播的判断理由 单播回复(Unicast): 如果客户端发送 RS 消息时,使用的是一个全局地址或链路本地地址作为源地址,则 RA 消息会单播回复到客户端的源地址。这种方式减少了网络中的广播流量,…...

C语言程序设计P5-4【应用函数进行程序设计 | 第四节】——知识要点:数组作函数参数

知识要点:数组作函数参数 视频: 目录 一、任务分析 二、必备知识与理论 三、任务实施 一、任务分析 任务要求用选择法对数组中的 10 个整数按由小到大的顺序排序,前面在讲解数组时讲冒泡法排序曾提到选择法排序的思想。 所谓选择法就是…...

PostgreSQL数据库连接:psqlODBC驱动安装与配置实战指南

本文还有配套的精品资源,点击获取 简介:本文将提供详细的psqlODBC驱动程序在Windows操作系统上的安装和配置指南,使用户能够通过ODBC标准连接到PostgreSQL数据库。安装步骤涵盖获取安装文件、运行安装向导、选择安装路径、完成安装以及配置…...

【NLP 8、normalization归一化函数:sigmoid、softmax】

目录 Normalization(归一化) 1.特点 目的 应用场景 输出范围 2. Sigmoid 函数 目的 应用场景 输出范围 3. Softmax 函数 目的 应用场景 输出范围 "燃尽最后的本能,意志力会带你杀出重围" —— 24.12.2 Normalization&#…...

鸿蒙ArkTS 与安卓Android-底层逻辑对比

鸿蒙OS(ArkTS) 架构: 鸿蒙OS采用了微内核架构,其核心操作系统将设备的硬件资源和服务进行模块化,微内核负责最基本的服务(如调度、通信、同步等),而其他功能则由用户空间的进程提供。…...

第八节、Bresenham直线插补【51单片机-TB6600驱动器-步进电机教程】

摘要:前面章节主要介绍单个电机控制,本节内容介绍两个电机完成直线插补运动 一、 Bresenham直线算法介绍 Bresenham直线算法由Jack Elton Bresenham于1962年在IBM开发,最初用于计算机显示直线,它确定应该选择的n维光栅的点&#…...

唇形同步视频生成工具:Wav2Lip

一、模型介绍 今天介绍一个唇形同步的工具-Wav2Lip;Wav2Lip是一种用于生成唇形同步(lip-sync)视频的深度学习算法,它能够根据输入的音频流自动为给定的人脸视频添加准确的口型动作。 (Paper) Wav2Lip模型…...

旅游管理系统的设计与实现

文末获取源码和万字论文,制作不易,感谢点赞支持。 毕 业 设 计(论 文) 题目:旅游管理系统的设计与实现 摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候&#…...

burp常用机漏洞测试理论

声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&a…...

TCP/IP 和 UDP

一、TCP/IP(传输控制协议) TCP/IP 是一个协议族,它是互联网的基础协议,为网络通信提供了标准化的方法。TCP/IP 分为四个层次,每一层都有特定的功能: 应用层:这是最接近用户的层,包含…...

FastAPI解决跨域报错net::ERR_FAILED 200 (OK)

目录 一、跨域问题的本质 二、FastAPI中的CORS处理 1. 安装FastAPI和CORS中间件 2. 配置CORS中间件 3. 运行FastAPI应用 三、解决跨域报错的步骤 四、案例:解决Vue.js与FastAPI的跨域问题 1. Vue.js前端应用 2. FastAPI后端API 3. 配置CORS中间件 4. 运行…...

git如何新建分支并提交?

1. 检查当前分支 在开始之前,最好确认你当前所在的分支。 git branch 当前分支前面会有一个 *号。 2. 新建分支 使用 git branch 命令创建一个新的分支。假设你要创建一个名为 new-feature 的分支。 git branch new-feature 3. 切换到新分支 使用 git checkou…...

使用 LlamaFactory 结合开源大语言模型实现文本分类:从数据集构建到 LoRA 微调与推理评估

文章目录 背景介绍文本分类数据集Lora 微调模型部署与推理期待模型的输出结果 文本分类评估代码 背景介绍 本文将一步一步地,介绍如何使用llamafactory框架利用开源大语言模型完成文本分类的实验,以 LoRA微调 qwen/Qwen2.5-7B-Instruct 为例。 文本分类…...

Python基础学习总结篇

Python基础学习_01注释、变量、计算、打印 Python基础学习-02转义、输入、函数 Python基础学习-03逻辑分支语句、循环 Python基础学习-04列表List Python基础学习-05元组 tuple Python基础学习-06字典Dict Python基础学习-07不可重复的set集合 Python基础学习-08字符串 …...

8. Debian系统中显示屏免密码自动登录

本文介绍如何在Debian系统上,启动后,自动免密登录,不卡在登录界面。 1. 修改lightDM配置文件 嵌入式Debian系统采用lightDM显示管理器,所以,一般需要修改它的配置文件/etc/lightdm/lightdm.conf,找到[Seat…...

ubuntu安装nginx并设置开机自启动

1、下载nginx相关依赖包 sudo apt-get install gccsudo apt-get install libpcre3 libpcre3-devsudo apt-get install zlib1g zlib1g-devsudo sudo apt-get install opensslsudo apt-get install libssl-devsudo apt install make2、进入想下载安装包位置 cd /usr/local3、通…...

SQLServer中使用ISNULL替换为指定的替换值

ISNULL (Transact-SQL) 适用于: SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse Analytics 分析平台系统 (PDW)Microsoft Fabric 中的 SQL 分析端点Microsoft Fabric 中的仓库 NULL替换为指定的替换值。 1、语法 ISNULL ( check_expression , rep…...

深入浅出:PHP函数的定义与使用

文章目录 前言什么是函数定义函数语法示例 调用函数示例 参数传递按值传递示例按引用传递示例默认参数示例可变数量的参数示例 返回值示例 变量作用域全局作用域示例局部作用域示例静态作用域示例 匿名函数示例闭包示例 递归函数示例 内置函数常见内置函数示例 用户自定义函数示…...

C++知识整理day4内存管理——new和delete详解

文章目录 1.C/C内存分布2.C语言中动态内存管理:malloc/realloc/calloc3.C内存管理方式3.1 new/delete操作内置类型3.2 new和delete操作自定义类型 4.malloc/free和new/delete到底什么区别?4.1 对于自定义类型4.2 对于自定义类型4.3 总结:它们…...

部署项目报错

vue2项目部署后 Error: Cannot find module /views/*** 1.起因 登录页、首页等静态页面可以正常进入,后端访问也正常,可以获取到验证码。 但是登录之后会发现首页空白或者进入不到首页 F12查看有报错信息:Error: Cannot find module ‘/v…...