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

【Linux应用】在PC的Linux环境下通过chroot运行ARM虚拟机镜像img文件(需要依赖qemu-aarch64、不需要重新安装iso)

【Linux应用】在PC的Linux环境下通过chroot运行ARM虚拟机镜像img文件(需要依赖qemu-aarch64、不需要重新安装iso)

qemu提供了运行ARM虚拟机的方法
具体的操作方式就是建立一个硬盘img 然后通过iso安装到img 最后再运行img即可
这种方式教程很多 很简单
这里介绍的是对已有img文件的运行
该img文件能够在ARM平台直接运行
原理就是将img文件的系统内容拷贝到Linux平台上 然后对

文章目录

  • 安装qemu-aarch64-static
  • 查看并挂载img文件分区(将img分区文件完整拷贝)
  • 移植qemu-aarch64-static
  • 挂载系统目录到制作的rootfs目录
  • 移植resolv.conf文件
  • 使用chroot命令运行虚拟机系统
  • 写一个shell脚本来运行
  • ARM环境下“交叉编译”
  • 附录:开发板快速上手:镜像烧录、串口shell、外设挂载、WiFi配置、SSH连接、文件交互(RADXA ZERO 3为例)
    • ZERO 3烧录
    • ZERO 3串口shell
    • 外设挂载
    • 连接WiFi
    • SSH连接
    • SSH的文件交互
    • 换源

安装qemu-aarch64-static

使用命令:

qemu-system-aarch64 -version
qemu-aarch64-static  -version

即可查看已安装的版本
如果没有的话 需要执行安装:

sudo apt install qemu-system-aarch64

查看并挂载img文件分区(将img分区文件完整拷贝)

通过fdisk -l命令可以查看img文件相关
如:

fdisk -l radxa.img

在这里插入图片描述
这里可以看到img文件有三个分区
第三个即为我们要使用的主系统分区(根据实际情况而定)

通过losetup -f命令查看可用的循环设备
在这里插入图片描述
那么就可以使用losetup -p 参数挂载img文件到对应的循环设备

sudo losetup -P /dev/loop15 radxa.img

而后使用sudo lsblk查看循环设备列表
在这里插入图片描述
那么现在就可以通过mount命令挂载loop15p3到/mnt/目录了

sudo mount /dev/loop15p3 /mnt/

在这里插入图片描述
可以在mnt目录下看到所有原本在img分区内的文件(不用担心mnt挂载的其他设备会被覆盖 如共享文件夹等 这些在卸载挂载时会还原)
在这里插入图片描述
然后可以建立一个rootfs文件夹,将这些文件都拷贝进去

mkdir ~/rootfs
sudo cp -a /mnt/* ~/rootfs/

在这里插入图片描述
拷贝完毕就可以卸载mnt了

sudo umount /mnt

卸载mnt后 mnt下就被还原成最初只有共享文件夹的状态了
同时 使用losetup -d命令即可卸载循环设备

sudo losetup -d /dev/loop15

如此一来 我们就把img文件下对应的分区文件全部拷贝到了rootfs文件夹下

移植qemu-aarch64-static

通过命令来实现移植(默认安装路径/usr/bin/

sudo cp /usr/bin/qemu-aarch64-static ./rootfs/usr/bin/

在这里插入图片描述

挂载系统目录到制作的rootfs目录

(这一步可以不操作 不会影响后续的执行 甚至挂载以后再卸载也可以 但是建议每次运行时操作一下 确保安全)

运行以下指令:

sudo mount -t proc /proc ./rootfs/proc
sudo mount -t sysfs /sys ./rootfs/sys
sudo mount -o bind /dev ./rootfs/dev
sudo mount -o bind /dev/pts ./rootfs/dev/pts

在这里插入图片描述
成功挂载后 可以在文件系统中看到被挂载的目录

如果是卸载的话 就是:

sudo umount  ./rootfs/proc
sudo umount  ./rootfs/sys
sudo umount  ./rootfs/dev
sudo umount  ./rootfs/dev/pts

(如果运行完虚拟机后要卸载挂载 那么需要扥虚拟机完全关闭才行 最好是延时后卸载 否则会有bug)
当然 重启的话 也会自动卸载了

移植resolv.conf文件

为了能够运行以后远程连接、操作虚拟机 同时虚拟机能够上网 需要将相关的dns配置参数等移植过去

sudo cp /etc/resolv.conf ./rootfs/etc/

在这里插入图片描述

使用chroot命令运行虚拟机系统

使用chroot命令进入我们建立好的根目录系统

sudo chroot ./rootfs /bin/bash

进去以后 就直接是虚拟机的终端
在这里插入图片描述
运行后 即可操作虚拟机上的各种文件、程序
在这里插入图片描述
但是涉及到需要硬件架构支持的 运行则会报错

写一个shell脚本来运行

echo "cp /etc/resolv.conf ./rootfs/etc/"
sudo cp /etc/resolv.conf ./rootfs/etc/ #同步文件
echo "start chroot"
sudo chroot ./rootfs /bin/bash
echo "end chroot"

在这里插入图片描述
在虚拟机中输入exit即可退出

ARM环境下“交叉编译”

如果在ARM虚拟机上编译的话 就不要安装原本运行在PC上的交叉编译器了
而是应该安装ARM本身的编译器
譬如:

#C++编译环境
sudo apt-get install -y cmake
sudo apt-get install -y g++ build-essentialsudo apt-get install -y libopencv-dev #OPENCV库 4.5.1
sudo apt-get install -y libpcl-dev #PCL库 1.11.1

在这里插入图片描述
这样一来 其实严格意义上而言都不叫“交叉编译”了

交叉编译实际上是在PC的x86架构上运行支持交叉编译的编译器 然后编译成目标架构
其交叉编译器只能在PC上运行 但编译出来的文件只能在目标架构上运行

所以 在ARM环境上编译出ARM的程序 那么所用的编译器就不是交叉编译器了 所以直接安装g++即可
但如果在PC环境下安装g++ 则只能编译出在PC上运行的程序 如果要编译ARM程序 则需要交叉编译器如aarch64-g+±linux等

附录:开发板快速上手:镜像烧录、串口shell、外设挂载、WiFi配置、SSH连接、文件交互(RADXA ZERO 3为例)

开发板快速上手:镜像烧录、串口shell、外设挂载、WiFi配置、SSH连接、文件交互(RADXA ZERO 3为例)

ZERO 3烧录

ZERO 3有两种 最本质的就是一个带WiFi一个不带WiFi
在这里插入图片描述

ZERO 3作为一个Linux板 其存储支持从sd卡EFI启动

系统安装则直接通过Balena Etcher来进行
可以使用其Windows版本即可
官方文档:
官方文档快速上手描述

镜像下载则也可以使用官方镜像:
Radxa ZERO 3 Debian Build 6

该镜像是最初的镜像 很多依赖都没有
如果开发的话 可以直接下载第三方镜像 或者自己在原有官方镜像上去安装镜像包等等

烧录很简单 直接用工具选择U盘 选择镜像即可

下图为烧录好了的sd卡
在这里插入图片描述
除了系统分区外 就是一个config分区 其挂载根根目录名称即为config

在这里插入图片描述

ZERO 3串口shell

串口与ZERO 3链接如下图:
在这里插入图片描述
链接后 配置串口为

baudrate: 1500000
data bit: 8
stop bit: 1
parity  : none
flow control: none

启动后 用户名和密码都为radxa
在这里插入图片描述

外设挂载

根据df命令查询系统挂载点
在这里插入图片描述
其做好了的U盘外部存储空间为/config
在这里插入图片描述

连接WiFi

使用如下指令链接WiFi:

nmcli device wifi                                           #扫描WiFi
sudo nmcli device wifi connect <ssid> password <passwd>     #连接WiFi

在这里插入图片描述
连上后 使用ip a命令即可查看连接状态和ip
在这里插入图片描述

SSH连接

使用命令sudo systemctl status ssh查看ssh状态在这里插入图片描述
前提是要安装ssh
如果没有安装 则通过shell安装ssh:

sudo apt-get update
sudo apt-get install openssh-server openssh-sftp-server

根据Active判断是否需要重启ssh服务:
重启ssh服务:

sudo systemctl restart ssh

启动后如下:
在这里插入图片描述
Active状态就被设置为了running

开机自启动ssh则使用命令:

sudo systemctl enable --now ssh

在PC上 支持ssh的设备中 使用以下指令链接到板子:

ssh [username]@[IP address] # or ssh [username]@[hostname]

如下图:
在这里插入图片描述

SSH的文件交互

若是在PC上作为主机去访问设备
那么就是在PC的cmd中运行shell

有的终端软件配备了ssh的文件管理传输功能
在这里插入图片描述
连上以后就可以直接搜素到当前目录下的各类文件 以便于实现文件管理
并且可以直接download
在这里插入图片描述

# 复制 Windows 文件到 Linux
scp D:\data\1.txt root@192.168.88.161:/root/data
# 复制 Windows 目录到 Linux(记得加 -r)
scp -r D:\data root@192.168.88.161:/root/data# 复制 Linux 文件到 Windows
scp root@192.168.88.161:/root/data/1.txt D:\data
# 复制 Linux 目录到 Windows(记得加 -r)
scp -r root@192.168.88.161:/root/data D:\data

前提是设备开启了ssh可以被链接
在这里插入图片描述
发过去后便能在板子上看到:
在这里插入图片描述

回传文件夹:
在这里插入图片描述
在这里插入图片描述

如果是Linux设备去连接Windows设备 则需要在Windows里面设置对应的服务 相关教程很多 这里不过多赘述

如果是Linux设备访问Linux设备 则主设备也要指定IP

scp root@192.168.88.161:/root/1.txt root@192.168.88.162:/root# 如果设置了Linux之间的免密登录,可这样写:
scp 192.168.88.161:///root/1.txt 192.168.88.162:///root

换源

Linux系统的源都在/etc/apt/下 一般有两个文件
一个是sources.list 另外一个是sources.list.d目录下的品牌list文件

如树莓派需要备份原本的源:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 
sudo cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.bak

而radxa的则是:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 
sudo cp /etc/apt/sources.list.d/radxa.list /etc/apt/sources.list.d/radxa.list.bak

将原本的文件进行编辑:

sudo nano /etc/apt/sources.list

注释掉最初的源 并添加新的源:

deb https://mirrors.tuna.tsinghua.edu.cn/debian bookworm main contrib non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian bookworm-updates main contrib non-free-firmware

如图:
在这里插入图片描述
然后再换子目录下的源

sudo nano /etc/apt/sources.list.d/raspi.list

替换成:

deb https://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ bullseye main

不过很可惜 清华源没有radxa 但是可以换debian的源(/etc/apt/sources.list):

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free

换源后 执行

sudo apt-get upgrade
sudo apt-get update

相关文章:

【Linux应用】在PC的Linux环境下通过chroot运行ARM虚拟机镜像img文件(需要依赖qemu-aarch64、不需要重新安装iso)

【Linux应用】在PC的Linux环境下通过chroot运行ARM虚拟机镜像img文件&#xff08;需要依赖qemu-aarch64、不需要重新安装iso&#xff09; qemu提供了运行ARM虚拟机的方法 具体的操作方式就是建立一个硬盘img 然后通过iso安装到img 最后再运行img即可 这种方式教程很多 很简单 …...

CISC与RISC详解:定义、区别及典型处理器

一、CISC&#xff08;复杂指令集计算机&#xff09; Complex Instruction Set Computer 核心思想&#xff1a;通过设计复杂的指令&#xff0c;减少程序指令数量&#xff0c;以硬件复杂度换取编程便利性。 主要特点&#xff1a; 指令复杂度高&#xff1a; 单条指令可完成多步操…...

数据库中DDL、DML、DCL的区别是什么?

数据库中DDL、DML、DCL的区别是什么&#xff1f; 在数据库的使用过程中&#xff0c;SQL&#xff08;结构化查询语言&#xff09;常常被用来执行不同的操作&#xff0c;主要分为三类&#xff1a;DDL&#xff08;数据定义语言&#xff09;、DML&#xff08;数据操纵语言&#xf…...

【东枫电子】AI-RAN:人工智能 - 无线接入网络

太原市东枫电子科技有限公司&#xff0c;翻译 文章目录 1.概述1.1 什么是AI-RAN&#xff1f;1.2 为什么是AI-RAN&#xff1f;1.3 AI-RAN有哪些好处&#xff1f;1.4 为什么 AI-RAN 会给通信服务提供商 (CoSP) 带来变革&#xff1f;1.5 AIRAN 的构建模块是什么&#xff1f; 2. 参…...

实习技能记录【5】-----项目中消息传递到ui层的方法

代码 while (1){osEvent evt;evt osMailGet(ui_msg_mailbox, 0);if (evt.status osEventMail){UI_MSG_APP_T *msg (UI_MSG_APP_T *)evt.value.p;if (msg->cmd_type CMD_TYPE_INNER){if (msg->cmd_code CMD_CODE_INNER_REFRESH_NOW){lv_obj_invalidate(lv_scr_act()…...

4.29【Q】paraCompute

还是同样的要求&#xff0c;我要写实验报告&#xff0c;如何组织描述运行时间&#xff0c;加速比&#xff0c;效率等随数据规模&#xff0c;进程数&#xff0c;线程数变化的语言和逻辑&#xff0c;从而显得不冗余和精简&#xff1f;为我生成合理排版&#xff0c;布局的文字&…...

什么是布林带?

什么是布林带&#xff1f; 布林带是约翰布林格在20世纪80年代开发的一种广泛使用的技术分析工具。布林带由价格图表上的三条线组成&#xff1a;中轨、上轨和下轨。中轨通常是20天简单移动平均线&#xff08;SMA&#xff09;&#xff0c;代表资产在此期间的平均价格。上轨和下轨…...

爬虫学习笔记(四)---request入门

例1 例1&#xff1a;写一个爬取百度搜索页面的程序&#xff0c;以搜索一个喜欢的明星为例&#xff08;如在搜索框中输入周杰伦&#xff09; 正常搜索 页面 爬虫思路&#xff1a; 1.用一个query变量&#xff0c;在控制台输入的方式更加灵活的输入想爬取的明星的百度搜索页面 …...

JSON配置文件格式全解析与多语言实战指南

JSON配置文件格式全解析与多语言实战指南 摘要 本文全面解析JSON配置文件的核心语法规范&#xff0c;深入探讨数据类型、转义机制及JSON5扩展特性&#xff0c;提供JavaScript/Python/Java等多语言解析方案。通过典型应用场景案例演示JSON的最佳实践&#xff0c;帮助开发者高效…...

JavaScript 中的类型转换机制?

一、类型转换的两种模式 1. 显式转换&#xff08;手动翻译&#xff09; 你主动告诉 JavaScript 如何转换类型&#xff0c;比如&#xff1a; let num Number("123"); // 字符串 → 数字&#xff1a;123 let str String(123); // 数字 → 字符串&#xff1a;&qu…...

【分享】音频音乐剪辑[特殊字符]人声分离伴奏提取[特殊字符]拼接合并

音频音乐剪辑是一款专业的剪辑软件。在剪辑过程中&#xff0c;它可以对音频进行拼接合成、音乐裁剪、变调变速、格式转换&#xff0c;同时音频音乐剪辑还是一款支持高清录音、音频降噪等众多功能于一体的音频制作软件。 【应用名称】&#xff1a;音频剪辑 【应用版本】&#xf…...

关于 const a 定义的数据 与 其渲染 的问题。即通过const定义的常量,会不会导致渲染不及时。

情况1 &#xff08;同2、4结论一致&#xff09; 定义&#xff1a;使用子hook&#xff0c;将数据 const a 【对stateX的一系列操作】 封存到子hook里。并return出去。结果&#xff1a;此种情况不影响实时渲染。缺点&#xff1a;只要stateX变更&#xff0c;一定展示c的最新数据…...

开源Kotlin从零单排0基础完美入门教程

&#x1f680; Kotlin 从零单排 一个让你欲罢不能的 Kotlin 入门教程&#xff01; 教程仓库地址 &#x1f44b; Hey&#xff0c;你好啊&#xff01; 如果你&#xff1a; &#x1f914; 听说 Kotlin 很香&#xff0c;但不知道香在哪&#xff1f;&#x1f605; Java 写得头大&a…...

主流微前端框架比较

主流微前端框架比较 以下表格列出了当前主流微前端框架的核心对比信息,包括基本介绍、核心特性、适用场景、技术栈兼容性、优缺点、社区维护情况和典型应用案例等: 框架基本介绍核心特性与机制适用场景技术栈兼容性优缺点社区维护情况典型应用案例qiankun蚂蚁金服推出的生产…...

DOM 事件的处理通常分为三个阶段:捕获、目标、冒泡【前端示例】

如果神明还不帮你&#xff0c;说明他相信你。 目录 引言&#xff1a;捕获阶段&#xff1a;目标阶段&#xff1a;冒泡阶段&#xff1a;事件传播示意图&#xff1a;示例&#xff1a;代码&#xff1a;解读&#xff1a;输出&#xff1a; 引言&#xff1a; DOM 事件的处理通常分为三…...

C#实现对达索(Dassault)SolidWorks中3D图纸转化为手机可直接查看预览图纸格式

转化环境无需安装SolidWorks。 代码更新&#xff1a;暂不公开。 实现效果&#xff1a;...

Twitter 工作原理|架构解析|社交APP逻辑

这是对Twitter 工作原理&#xff5c;架构解析&#xff5c;社交APP逻辑_哔哩哔哩_bilibili的学习&#xff0c;感谢up小凡生一 在两年半前&#xff0c;埃隆马斯克收购了Twitter&#xff0c;并且进行了一系列重大改革。今天我们来解析一下这个全球知名社交平台的架构。首先&#x…...

模拟集成电路设计与仿真 : Feedback System

前情提要 此為作者針對迴授系統&#xff0c;進行資料統整&#xff0c;以便日後查詢 原理 1. The Whole System 更正 : V - V feedback 是 並 - 串 迴授 2. Feedback Block Beta 更正 : &#xff0c;所以 the whole systemfeedback block左 2右 1 feedback block feed…...

Linux权限管理进阶:文件归属、特殊权限与ACL详解

一、文件归属管理&#xff1a;chown命令 1. 基础语法与作用 chown 命令用于修改文件或目录的 属主&#xff08;Owner&#xff09; 和 属组&#xff08;Group&#xff09;&#xff0c;是Linux权限管理中调整资源归属的核心工具。 chown [选项] 新属主:新属组 文件/目录 常用…...

MyBatis、MyBatis-Plus、Hibernate、Spring Data JPA 等 Java 持久层技术的理解和对比

一、基本概念 1. MyBatis 是一个 半自动的 ORM 框架&#xff08;Object-Relational Mapping&#xff09;&#xff0c;用于简化 JDBC 开发。它允许你通过 XML 或注解配置 SQL 语句&#xff0c;将 Java 对象与 SQL 查询结果进行映射。 2. MyBatis-Plus&#xff08;MP&#xff…...

如何用vivado导出pin delay

目录 简介&#xff1a; Vivado工具导出pin delay步骤&#xff1a; 简介&#xff1a; 通过在一些等长要求比较严格的场合&#xff0c;会考虑到FPGA内部的走线&#xff0c;这时候就需要用到方法去导出fpga的pin delay。本文以xinlinx 的UltraScale系列的XCKU060-2FFVA1156I为例…...

【图片识别改名】批量读取图片区域文字识别后批量改名,基于Python和腾讯云的实现方案

项目场景 ​​办公文档管理​​&#xff1a;将扫描的发票、合同等文档按编号、日期自动重命名。例如&#xff0c;识别“编号:2023001 日期:20230403”生成“2023001_20230403.jpg”。​​产品图片整理​​&#xff1a;电商产品图片按产品编号、名称自动命名。例如&#xff0c;…...

数字中国浪潮下:Coremail AI赋能邮件办公,筑牢安全防线引领转型

4月28日&#xff0c;在第八届数字中国建设峰会新产品新技术发布会上&#xff0c;Coremail分享了AI在邮件产品领域的最新应用成果和实践经验。 作为互联网之后的又一波技术浪潮&#xff0c;人工智能&#xff08;AI&#xff09;已成为推动各行业变革的核心力量&#xff0c;为企业…...

软件设计师-软考知识复习(1)

写在前面 复习软考&#xff0c;把一些忘记了的知识整理一下&#xff0c;方便后续查看。 设码长为8&#xff0c;补码为11111111&#xff0c;其真值是多少&#xff08; &#xff09; A.1 B.-1 C.127 D.128 参考答案&#xff1a;B 解题步骤 1. 理解补码表示法 在计算机中&…...

快速安装Arduino IED的STM32 MCU开发包

从github安装STM32 MCU开发包非常慢&#xff0c;很难安装成功。因此我将Arduino IED的TM32 MCU开发包上传到国内网站&#xff0c;亲测安装成功。 1.打开Arduino IED&#xff0c;文件--首选项--其它开发板管理地址&#xff0c;添加http://www.aluoyun.cn/BoardManagerFiles-mai…...

Html 2

一&#xff0c;表单 1.概念&#xff1a;在一个区域中&#xff0c;拥有许多输入和最终组件&#xff0c;可以让用户输入、选择信息&#xff0c;最终将信息传入服务器端 2.常用组件&#xff1a; &#xff08;1&#xff09;<form action " " methon "get&qu…...

业务层在事务中高频创建动态表然后删除或者回滚导致 pg_dump 概率出现备份失败问题分析

文章目录 测试环境&#xff0c;业务层在事务中高频创建动态表然后删除或者回滚导致 pg_dump 概率出现备份失败职责划分​​应用层对 DDL 事务的滥用​​ 导致的目录污染怎么理解&#xff1f;应用层在事务中大量高频新建动态表&#xff0c; 然后删除表, 有啥隐患​​目录版本风暴…...

图漾官网Sample_V1版本C++语言完整参考例子---单相机版本

文章目录 1.参考例子 主要梳理了图漾官网Sample_V1版本的例子 1.参考例子 主要增加了从storage区域读取相机参数的设置&#xff0c;使用图漾PercipioViewer软件&#xff0c;如何将相机参数保存到srorage区&#xff0c;可参考链接&#xff1a;保存相机参数操作 保存参数设置 注…...

SSM书籍管理(业务编写)

查询书籍功能 编写Controller类 Controller RequestMapping("/book") public class BookController {//controller调用service层AutowiredQualifier("BookServiceImpl")private BookService bookService;//查询全部的书籍&#xff0c;并且返回到书籍展示…...

kafka消息的顺序性如何保持一致的

目录 背景&#xff1a; 原理&#xff1a; 情况一&#xff1a;如果只有一个分区 情况二&#xff1a;如果有多个分区 总结 背景&#xff1a; 最近面试总是被问这个问题&#xff0c;然后总感觉答得不好就写博客总结一下&#xff0c;可以先看总结 原理&#xff1a; Kafka 中&#…...

在Java中基于Geotools对PostGIS数据库的空间查询实践

目录 前言 一、相关技术背景介绍 1、评价对象AOI 2、数据处理流程 二、对AOI空间范围查询实践 1、空间查询构建 2、空间样式创建 3、成果出图 三、总结 前言 在当今数字化浪潮下&#xff0c;空间数据的应用价值日益凸显&#xff0c;从城市规划到环境监测&#xff0c;从…...

生活需要一些思考

总分总 写文章、做事情、写邮件、写信&#xff0c;都是要【总分总】。 先总【因为没人有耐心一上来就看细节&#xff0c;先总结&#xff0c;别人感兴趣才会看分】 然后分【分中包括多个子部分&#xff0c;或子章节、子目标&#xff0c;他们之间层层递进&#xff0c;最终引出最…...

Scrapy框架之CrawlSpider爬虫 实战 详解

CrawlSpider 是 Scrapy 框架中一个非常实用的爬虫基类&#xff0c;它继承自 Spider 类&#xff0c;主要用于实现基于规则的网页爬取。相较于普通的 Spider 类&#xff0c;CrawlSpider 可以根据预定义的规则自动跟进页面中的链接&#xff0c;从而实现更高效、更灵活的爬取。 Scr…...

DeepSeek主动学习系统:低质量数据炼金术的工程化实践

文章目录 一、技术体系架构升级1.1 四层协同系统架构1.2 关键技术组件解析(1) 跨模态特征对齐引擎(2) 动态采样策略库 二、低质量数据治理全流程2.1 数据清洗与增强流水线2.2 主动学习迭代流程 三、工业级部署方案3.1 分布式计算架构3.2 动态环境应对策略(1) 概念漂移检测(2) 持…...

学习记录:DAY20

技术探索之旅&#xff1a;YAML配置&#xff0c;依赖注入、控制反转与Java注解 前言 最近有点懒了&#xff0c;太松懈可不行。为了让自己保持学习的动力&#xff0c;我决定将最近的学习内容整理成博客&#xff0c;目标是让未来的自己也能轻松理解。我会尽量以整体记录的方式呈…...

[AI]browser-use + web-ui 大模型实现自动操作浏览器

[AI]browser-use web-ui 大模型实现自动操作浏览器 介绍 官方地址&#xff1a;https://github.com/browser-use/web-ui browser-use主要作用是将 AI Agent 与浏览器链接起来从而实现由 AI 驱动的浏览器自动化。今天会给大家介绍如何通过browser-use web-ui来搭建并操作browse…...

使用LangChain连接远程Oracle数据库尝试LLM 提供的SQL智能助理

使用LangChain连接远程Oracle数据库尝试LLM 提供的SQL智能助理 为完成此次数据库连接实验&#xff0c;笔者用自己的笔记本电脑搭建了一台linux虚机&#xff0c;安装了oracle 23C&#xff0c;并借助deepseek创建了若干与电商业务有关的表并插入了一些记录。 接着在windows实体…...

训练神经网络的批量标准化(使用 PyTorch)

构建神经网络是一门艺术&#xff0c;而非一个结果固定的过程。你无法预知最终能否得到有效的模型&#xff0c;而且有很多因素可能导致你的机器学习项目失败。 然而&#xff0c;随着时间的推移&#xff0c;您还将学会一套特定的笔触&#xff0c;这将大大提高您成功的几率。 在…...

阿里Qwen3 8款模型全面开源,免费商用,成本仅为 DeepSeek-R1 的三分之一

想要掌握如何将大模型的力量发挥到极致吗&#xff1f;叶梓老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具&#xff08;限时免费&#xff09;。 1小时实战课程&#xff0c;您将学习到如何轻松上手并有效利用 Llama Factory 来微调您的模型&#xff0c;以发挥其…...

Vue常用的修饰符有哪些有什么应用场景(含deep seek讲解)

Vue.js 事件修饰符的功能与具体应用场景 一、事件修饰符 .stop .stop 的主要作用是 阻止事件冒泡&#xff0c;防止事件从子元素传播到父元素。这在处理嵌套组件或多层 DOM 结构时非常有用。 <div click"parentClick">Parent<button click.stop"chi…...

案例分享|20倍提效!水力设备电磁仿真的云端实战

在现代水力设备制造领域&#xff0c;电磁仿真是贯穿设计、研发到故障诊断的核心技术之一。而随着"双碳"目标驱动下清洁能源设备的迭代加速&#xff0c;水轮机、水泵等设备研发的多物理场耦合特性对仿真精度提出前所未有的挑战。传统仿真工具在处理复杂多物理场耦合等…...

ShenNiusModularity项目源码学习(25:ShenNius.Admin.Mvc项目分析-10)

本文学习并分析ShenNiusModularity项目中的留言管理页面、回收站页面。 1、留言管理页面 留言管理页面用于检索、删除系统中的留言数据&#xff0c;该页面对应的文件Index.cshtml位于ShenNius.Admin.Mvc项目的Areas\Cms\Views\Message内。页面使用的控制器类MessageController…...

github使用记录

1. 首次上传本地项目到 GitHub 1.1 准备 GitHub 仓库 登录 GitHub&#xff0c;点击右上角 → New repository输入仓库名称&#xff08;建议与本地目录同名&#xff09;选择公开&#xff08;Public&#xff09;或私有&#xff08;Private&#xff09;不要勾选 "Initiali…...

NFS-网络文件系统

NFS介绍 NFS &#xff08; Network File System &#xff09; 即网络文件系统 &#xff0c;它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中&#xff0c;本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件&#xff0c;就像访问本地文件一样NFS的好…...

Andorid车机UI适配,AndroidUI图px的单位,如何适配1920x720,PPI100的屏幕设备

在 Android 开发中&#xff0c;针对 1920720 分辨率、PPI 100 的屏幕设备进行 UI 适配&#xff0c;需要综合考虑 像素密度&#xff08;PPI&#xff09;、屏幕尺寸 和 Android 的密度无关像素&#xff08;dp&#xff09; 体系。以下是完整的适配方案&#xff1a; &#x1f4cc; …...

4.2.4 MYSQL的缓存策略

文章目录 4.2.4 MYSQL的缓存策略1. MYSQL缓存方案用来干什么 2. 缓存相关知识1. mysql主从复制2. 为什么需要缓冲层3. 还有哪些类型数据库 3. 那些方式会提升MYSQL读写性能1. mysql读写分离2. 连接池3. 异步连接 4. 缓存方案是怎么解决的1. redis和MYSQL一致性状态分析1. 流程&…...

省科学技术奖申报答辩PPT设计制作美化

自然科学奖、技术发明奖和科技进步奖是科学技术奖励体系中的三大核心奖项 省科学技术奖的含金量极高&#xff0c;主要体现在经济激励、社会认可、创新驱动及资源整合等方面。其价值不仅在于奖金和荣誉&#xff0c;更在于对科研生态的长远影响&#xff0c;国家科学技术奖的敲门…...

基于 ARM 的自动跟拍云台设计

标题:基于 ARM 的自动跟拍云台设计 内容:1.摘要 摘要&#xff1a;随着摄影和监控需求的不断增长&#xff0c;自动跟拍云台的应用越来越广泛。本设计的目的是开发一款基于 ARM 的自动跟拍云台&#xff0c;以实现对目标的精准跟拍。采用 ARM 微控制器作为核心控制单元&#xff0…...

Linux电源管理(3)_关机和重启的过程

原文&#xff1a;Linux电源管理&#xff08;3&#xff09;_Generic PM之重新启动过程 1.前言 在使用计算机的过程中&#xff0c;关机和重启是最先学会的两个操作。同样&#xff0c;这两个操作在Linux中也存在&#xff0c;可以关机和重启。这就是这里要描述的对象。在Linux Ke…...

SQLMesh增量模型实战指南:时间范围分区

引言 在数据工程领域&#xff0c;处理大规模数据集和高频率数据更新是一项挑战。SQLMesh作为一款强大的数据编排工具&#xff0c;提供了增量模型功能&#xff0c;帮助数据工程师高效地管理和更新数据。本文将详细介绍如何使用SQLMesh创建和管理基于时间范围的增量模型&#xf…...