NVIDIA 配置 Jetson 扩展针座

系列文章目录


前言

每个 Jetson 开发套件包括多个扩展接头和连接器(统称 "接头"):

40 针扩展接头: 可让您将 Jetson 开发套件连接到现成的 Raspberry Pi HAT(顶部附加硬件),如 Seeed Grove 模块、SparkFun Qwiic 产品等。许多引脚可用作 GPIO 或 "特殊功能 I/O"(SFIO),如 I2C、I2S 等。

CSI 连接器: 该连接器上的引脚既可用作 GPIO,也可用作 DMIC、DSPK、I2S 等 "特殊功能 I/O"(SFIO)。

M.2 Key E 插槽: 该连接器上的引脚既可用作 GPIO,也可用作 I2S 等 "特殊功能 I/O"(SFIO)。

该表显示了每个 Jetson 平台上可用的扩展头:

Jetson Platform

40-pin header

M.2 Key E slot

CSI connector *

NVIDIA® Jetson Orin™ NX and Jetson Orin™ Nano series

NVIDIA® Jetson AGX Orin™

NVIDIA® Jetson Xavier™ NX series

NVIDIA® Jetson AGX Xavier™ series

* Jetson-IO 将 Jetson Xavier NX 系列设备上的 CSI 连接器识别为 "CSI Nano 连接器"。CSI Nano 连接器是一个 30 针连接器。其他 NVIDIA® Jetson™ 设备上的 CSI 连接器是标准的 128 针连接器。

Jetson 开发套件上所有 I/O 引脚的配置都是静态定义的,并在闪存时编程到设备中。要直接更改引脚配置,必须更新平台的 pinmux 电子表格,然后将新配置闪入 Jetson 设备。

这是配置生产系统的合适方法,但对开发系统来说非常不便。因此,英伟达提供了 Jetson 扩展头工具(又称 Jetson-IO),这是一个在 Jetson 开发套件上运行的 Python 脚本,可让用户通过图形用户界面更改引脚配置。Jetson-IO 会修改设备树 Blob (DTB) 固件,以便在重启开发套件时应用新的扩展头配置。


一、运行 Jetson-IO

要启动 Jetson-IO,请在开发套件上输入以下命令:

sudo /opt/nvidia/jetson-io/jetson-io.py

1.1 主屏幕: 选择扩展头

启动 Jetson-IO 时会显示主屏幕,其中列出 Jetson 设备支持的扩展头。例如,在 Jetson AGX Xavier 上,主屏幕如下所示:

选择其中一个选项可显示标题屏幕,您可以用它来配置所选标题。

1.2 扩展头屏幕

页眉屏幕显示所选页眉的当前配置。例如,在 Jetson AGX Xavier 上,40 针扩展针座的针座屏幕如下所示:

头屏幕为您提供了两个配置 I/O 引脚的选项:

  • 为兼容硬件配置: 显示 "兼容硬件 "屏幕,让您从可连接到针座的硬件模块配置列表中进行选择。
  • 手动配置针座引脚: 显示 "扩展针座配置 "屏幕,让您指定要在针座上启用的功能。
  • 返回: 返回主屏幕。

1.3 兼容硬件屏幕

兼容硬件屏幕显示选定针座与特定硬件模块接口的配置列表。例如,在 Jetson AGX Xavier 上,40 针扩展针座的兼容硬件屏幕如下所示:

选择配置后,Jetson-IO 会返回头屏幕,更新头配置以反映所选硬件模块:

页眉屏幕还会显示一组不同的选项:

  • 保存针脚更改: 保存针座的新配置并返回主屏幕;请参阅主屏幕: 保存,如下。
  • 丢弃针脚更改: 丢弃针头的新配置更改,并重新显示带有原始选项集的先前配置(见上文 "针头屏幕")。您可以再次选择配置选项,或选择 "返回 "返回主屏幕。

1.3 扩展头配置屏幕

扩展头配置屏幕显示所选头支持的特殊功能列表。括号中显示了与功能相关的引脚。例如,在 Jetson AGX Xavier 上,40 针针座的扩展针座配置屏幕如下所示:

要切换引脚功能,请按向上箭头和向下箭头键突出显示该功能,然后按 Enter 或空格键。

有关支持功能的更多详情,请参阅开发套件中 Jetson SoC 的《技术参考手册》(TRM)。

要接受所选功能集,请选择 "返回"。Jetson-IO 重新显示页眉屏幕,更新以反映所选功能的新状态。头屏幕还显示 "保存引脚更改 "和 "放弃引脚更改 "选项,如 "兼容硬件屏幕 "中所述,另外还有一个选项:

  • 导出为设备树覆盖: 将所选头配置导出为新的设备树覆盖(DTBO)。它将文件存储在 /boot/ 目录中。

1.4 配置 CSI 连接器

适用于 仅适用于 Jetson Xavier NX 系列

主菜单选项 "Configure Jetson Nano CSI Connector(配置 Jetson Nano CSI 连接器)"可让您配置 Jetson Xavier NX 上的 CSI 连接器。

  1. 从主菜单中选择 "Configure Jetson Nano CSI Connector(配置 Jetson Nano CSI 连接器)"。
  2. Jetson-IO 显示 CSI 连接器屏幕。
  3. 从兼容硬件列表中选择。您可以添加自定义配置,如传感器软件驱动程序编程主题中的内核配置所示。
  4. 选择 "保存针脚更改",保存所做的选择:
  5. 选择 "保存并重新启动以重新配置引脚 "完成重新配置:
  6. Jetson-IO 会显示所修改 DTB 文件的名称,并提示您重新启动设备:

1.5 主屏幕: 保存

完成对针座配置的更改并选择针座屏幕的 "保存针脚更改 "选项后,Jetson-IO 将重新显示主屏幕。

主屏幕允许您配置或重新配置另一个针座,并显示一些附加选项:

  • 保存并重新启动以重新配置引脚: 通过为标头配置应用设备树覆盖创建新的 DTB,更新用于启动 Linux 的配置文件(/boot/extlinux/extlinux.conf),并重新启动开发套件。
  • 保存并退出,无需重启: 与 "保存并重启 "一样,创建新的 DTB 并更新 extlinux.conf,但不会重启开发工具包。您可以自行选择重启时间,应用新配置。
  • 丢弃所有针脚更改: 丢弃对所有标头所做的更改;以原始选项集重新显示主屏幕。

注意事项

Jetson-IO 会保留您保存在配置文件中的所有配置,而不仅仅是最新的配置。如果除默认配置外还保存了一个或多个配置,每次启动时开发套件都会显示一个配置菜单,允许您选择当前配置或任何较旧的配置。

1.6 命令行界面

如果您喜欢通过命令行而不是菜单配置头文件,NVIDIA 提供了一套命令行实用程序,可提供相同的功能。下文将介绍这些实用程序。

config-by-pin: 按引脚查看头配置
显示支持的头的当前配置:

config-by-pin.py [<options>]

命令行选项指定要显示的配置部分。如果没有指定选项,则显示整个配置。

下表描述了命令行选项。

命令行选项含义

-h

–help

显示使用信息并退出。

-l –list

列出目标平台支持的头和每个头的头编号。(命令行实用程序使用头文件编号来指代特定的头文件)。

-n <h>

–header <h>

指定头的头编号。如果未指定,则默认为 1,目前代表 40 引脚扩展头。该选项与 -p 一起使用,可指定一个针座和该针座上的引脚。

-p <p>

–pin <p>

显示扩展头编号 <h> 上引脚 <p> 的当前配置。

示例:

sudo /opt/nvidia/jetson-io/config-by-pin.py
sudo /opt/nvidia/jetson-io/config-by-pin.py -l
sudo /opt/nvidia/jetson-io/config-by-pin.py -p 5
sudo /opt/nvidia/jetson-io/config-by-pin.py -p 10 -n 2

config-by-function: 按特殊功能配置标头
显示并配置所有支持的标头的 I/O 功能:

config-by-function.py -h
config-by-function.py ‑l {all,enabled}
config-by-function.py ‑o {dtb,dtbo} <hfs> <hfs> ...

下表介绍了命令行选项。

命令行选项含义

-h

–help

显示使用信息并退出。

-l {all,enabled}

–list {all,enabled}

列出标头支持的功能。
 all 列出所有功能;enabled 仅列出当前已启用的功能。

-o {dtb,dtbo}

–out {dtb,dtbo}

创建新的 DTB 或一个或多个设备树覆盖,其中包含对标头所做的配置更改。

dtb: 创建新的 DTB 文件。Linux 启动配置文件(/boot/extlinux/extlinux.conf)将更新为使用该 DTB 启动的新选项。

dtbo: 为每个重新配置的头创建设备树覆盖文件。

<hfs> <hfs> …

与 -o 一起使用,可在一个或多个标头中启用一个或多个功能。每个 <hfs> 都有以下一种形式:

<hn>="<f1> <f2> ..."
<hn>=<f1
其中

<hn> 是页眉编号,如 1 或 2。

<f1> <f2> ...是该标头要启用的一个或多个功能的列表。

如果只指定一个功能,可以省略引号。

您也可以以其中一种形式指定 <hfs>,以便只配置标头编号 1:

"<f1> <f2> ..."
<f1>

示例:

sudo /opt/nvidia/jetson-io/config-by-function.py -l all
sudo /opt/nvidia/jetson-io/config-by-function.py -l enabled
sudo /opt/nvidia/jetson-io/config-by-function.py -o dtb i2s4 spi1
sudo /opt/nvidia/jetson-io/config-by-function.py -o dtbo i2s4 spi1
sudo /opt/nvidia/jetson-io/config-by-function.py -o dtb 1="i2s4 spi1" 2=dmic2
sudo /opt/nvidia/jetson-io/config-by-function.py -o dtbo 1="i2s4 spi1" 2=dmic2

config-by-hardware: 按硬件模块配置头
显示支持的硬件模块配置列表,并为给定的硬件模块配置 Jetson 设备:

config-by-hardware.py -h
config-by-hardware.py -l
config-by-hardware.py -n <hds> <hds> ...

下表介绍了命令行选项。

Command line option

Meaning

-h

–help

显示使用信息并退出。

-l

–list

显示可用硬件模块配置列表。

‑n <hds> <hds> …

‑name <hds> <hds> …

配置一个或多个头以连接指定的硬件模块。每个 <hds> 的格式如下

<hn>=<模块
其中

<hn> 是标头编号,如 1 或 2。

<module> 是要配置标头的硬件模块。

您也可以将 <hds> 单独指定为 <module>(不含 <hn> 或 "="),以仅配置标头编号 1。

该选项会为指定的硬件模块生成一个新的 DTB 文件,并更新 Linux 启动配置文件 /boot/extlinux/extlinux.conf,加入使用该 DTB 启动的新选项。

示例:

sudo /opt/nvidia/jetson-io/config-by-hardware.py -l
sudo /opt/nvidia/jetson-io/config-by-hardware.py -n "Adafruit SPH0645LM4H"
sudo /opt/nvidia/jetson-io/config-by-hardware.py -n 1="Adafruit SPH0645LM4H"

二、添加对定制硬件的支持

通过为硬件模块创建设备树覆盖层,您可以使用 Jetson-IO 支持自定义硬件模块。下面几节将介绍这一过程。

2.1 设备树覆盖

要在 Jetson-IO 中添加对定制硬件的支持,你必须了解 Jetson-IO 是如何管理硬件附加组件的。硬件模块的支持由设备树覆盖文件(.dtbo 文件)处理。

硬件模块的设备树覆盖文件必须定义

  • 覆盖名称(overlay-name)属性,用于指定硬件模块的名称;一个可将此覆盖与其他覆盖区分开来的唯一名称
  • jetson-header-name 属性,用于指定与硬件模块相关联的扩展标头;必须根据硬件模块与哪个标头相关联,指定下表中描述的值之一

    jetson-header-name values

    Header

    Value

    40-pin expansion header

    Jetson 40pin Header

    M.2 Key E slot

    Jetson M.2 Key E Slot

    CSI connector (Jetson AGX Xavier series/Orin)

    Jetson AGX Xavier CSI Connector

  • 兼容属性表示覆盖层支持哪种 Jetson 模块和载板组合;必须指定下表中所述的一个或多个值,具体取决于支持哪些 Jetson 平台

    Jetson Platform

    compatible property values

    Jetson Xavier NX (development,P3668-0000)

    nvidia,p3509-00000+p3668-0000

    Jetson Xavier NX (production,P3668-0001)

    nvidia,p3509-0000+p3668-0001

    Jetson AGX Xavier series

    nvidia,p3509-0000+p3668-0001

    Jetson AGX Orin

    nvidia,p3737-0000+p3701-0000

    nvidia,p3737-0000+p3701-0004

    nvidia,p3737-0000+p3701-0005

    Jetson Orin NX and Nano series

    nvidia,p3768-0000+p3767-0000

    nvidia,p3768-0000+p3767-0001

    nvidia,p3768-0000+p3767-0003

    nvidia,p3768-0000+p3767-0004

    nvidia,p3768-0000+p3767-0005

    nvidia,p3509-0000+p3767-0000

    nvidia,p3509-0000+p3767-0001

    nvidia,p3509-0000+p3767-0003

    nvidia,p3509-0000+p3767-0004

    nvidia,p3509-0000+p3767-0005

  • 为针座定义的特殊功能 I/O 引脚(如有

  • 模块上任何设备(如音频编解码器等外部集成电路)的节点和/或属性

用户可通过输入以下命令为其 Jetson 平台获取正确的兼容字符串。如果您有 Jetson Nano 开发套件,该命令还可识别 PCB 修订版:

cat /sys/firmware/devicetree/base/compatible

以 "FE-PI Audio V1 和 Z V2 "模块为例。在目标机的 /boot/ 目录中,有名称符合模式的覆盖文件:

*-fe-pi-audio.dtbo

您可以使用 fdtdump 实用程序检查覆盖文件的内容,查看覆盖名称、jetson-header-name 和兼容属性。例如,在 Jetson Nano Developer Kit 上,输入以下命令即可显示这些属性:

fdtdump /boot/tegra194-p3668-all-p3509-0000-fe-pi-audio.dtbo

2.2 创建简单的设备树覆盖层

要为 Jetson AGX Xavier 开发套件创建一个简单的设备树覆盖层以添加新的自定义属性并将其附加到 40 针扩展头,请在目标平台上创建一个名为 my-overlay.dts 的文件,内容如下:

/dts-v1/;
/plugin/;

/ {
    overlay-name = "My Jetson Overlay";
    jetson-header-name = "Jetson 40pin Header";
    compatible = "nvidia,p2822-0000+p2888-0001";

    fragment@0 {
        target-path = "/";
        __overlay__ {
            my-custom-property = "This Is My Overlay";
        };
    };
};

输入以下命令将 DTS 源文件编译成叠加文件:

dtc -O dtb -o my-overlay.dtbo -@ my-overlay.dts

将新的覆盖文件复制到 /boot/ 目录后,Jetson-IO 会找到覆盖文件并允许您应用它:

sudo cp my-overlay.dtbo /boot
sudo /opt/nvidia/jetson-io/config-by-hardware.py -l

Header 1 [default]: Jetson 40pin Header
  Available hardware modules:
  1. Adafruit SPH0645LM4H
  2. Adafruit UDA1334A
  3. FE-PI Audio V1 and Z V2
  4. My Jetson Overlay
  5. ReSpeaker 4 Mic Array
   6. ReSpeaker 4 Mic Linear Array
Header 2: Jetson AGX Xavier CSI Connector
  Available hardware modules:
  1. Camera Dual IMX274
  2. Camera IMX274
  3. Jetson Camera Dual-IMX274
  4. Jetson Camera E3331 module
  5. Jetson Camera E3333 module
  6. Jetson Camera IMX185
  7. Jetson Camera IMX390
Header 3: Jetson M.2 Key E Slot
  No hardware configurations found!

sudo /opt/nvidia/jetson-io/config-by-hardware.py -n "My Jetson Overlay"

2.3 创建自定义设备树覆盖

如果你想为自定义硬件模块创建一个覆盖层,并将其连接到支持的标头之一,最简单的方法是使用 Jetson-IO 按需配置标头,并将配置导出为覆盖层。你可以使用菜单化的 Jetson-IO 脚本或相关的 config-by-... 命令行工具来完成。

例如,要为 Jetson AGX Xavier 创建一个覆盖,启用 40 针扩展针座上的 I2S 接口,请输入以下命令:

sudo /opt/nvidia/jetson-io/config-by-function.py -o dtbo i2s2
Configuration saved to /boot/kernel_tegra194-p2888-0001-p2822-0000-hdr40-user-custom.dtbo.

然后,您可以输入此命令将覆盖图转换为设备树源文件:

dtc -I dtb -O dts -o my-overlay.dts /boot/kernel_tegra194-p2888-0001-p2822-0000-hdr40-user-custom.dtbo

你可以根据自己的定制硬件修改生成的设备树源代码,添加硬件模块所需的任何额外节点和/或属性。然后重新编译设备树源代码,并将其放入 /boot/ 目录供 Jetson-IO 使用:

dtc -O dtb -o my-overlay.dtbo -@ my-overlay.dts
sudo cp my-overlay.dtbo /boot

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/609839.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

echarts-gl 离线3D地图

1、安装依赖 echarts-gl 与 echarts 版本关系&#xff1a; "echarts": "^5.2.0", "echarts-gl": "^2.0.8"# 执行安装 yarn add echarts-gl2、下载离线地图 免费下载实时更新的geoJson数据、行政区划边界数据、区划边界坐标集合_…

笨方法自学python(一)

我觉得python和c语言有很多相似之处&#xff0c;如果有c语言基础的话学习python也不是很难。这一系列主要是学习例题来学习python&#xff1b;我用的python版本是3.12 代码编辑器我用的是notepad&#xff0c;运行py程序用cmd 现在开始写第一个程序&#xff1a; print ("…

Photoshop中绘图及图像修饰工具的应用

Photoshop中绘图及图像修饰工具的应用 Photoshop中的颜色设置与取样前景色与背景色颜色取样 Photoshop中的颜色替换工具Photoshop中的渐变工具Photoshop中的描边命令Photoshop中的填充工具采用油漆桶进行填充采用填充命令进行填充 Photoshop中的擦除工具 Photoshop中的颜色设置…

图像是AI画的吗?OpenAI新神器帮你一键识破!|TodayAI

OpenAI宣布即将推出一款新的AI图像检测工具&#xff0c;此举意在帮助用户辨认图像是否由其开发的DALL-E图像生成器制作&#xff0c;并监控由该技术生成的内容。同时&#xff0c;该公司还计划为这些AI生成的图像加入新的水印&#xff0c;以便用户更容易识别这些作品是否出自DALL…

深度学习课程论文精读——ESRGAN

目录 1.研究概述 2.论文创新 2.1 改进生成器的网络框架 2.2 改进判别器 2.3 改进感知损失 2.4 网络插值 3.实验 3.1 评价指标 3.2 训练细节 3.3 对比实验 3.4 消融实验 3.5 网络插值 4.总结 5.阅读参考 文章标题&#xff1a;《ESRGAN: Enhanced Super-Resolution…

Redis经典问题:缓存穿透

【更多精彩内容,欢迎关注小米的微信公众号“软件求生”】 大家好,我是小米,今天和大家分享一个在分布式系统和缓存应用中非常经典的问题——缓存穿透。在如今的互联网时代,缓存是一种非常常用且重要的技术手段,它能够有效提高系统的性能、稳定性和响应速度。然而,在使用…

ARM(2)ARMv8基础知识

目录 一、异常 1.1异常等级的定义 1.2异常的种类 1.2.1同步异常和异步异常 1.3改变异常等级 1.4异常后的处理 1.4.1异常处理相关寄存器 1.4.2系统调用 1.4.3对EL2/EL3的系统调用 1.4.4异常返回 1.4.5异常处理流程 二、安全状态 三、执行状态 本文介绍以下内容&…

KUKA机器人X11投入运行模式

KUKA机器人出厂时有个X11外部安全插头&#xff0c;外部急停和安全门就是从其中引出双回路接线。正常使用时需要将插头内部短接&#xff0c;不短接则会出现外部安全停止等报警信息&#xff0c;导致机器人无法上使能&#xff0c;不能转动。 通过设置【投入运行模式】可以暂时屏蔽…

Linux 操作系统TCP、UDP

1、TCP服务器编写流程 头文件&#xff1a; #include <sys/socket.h> 1.1 创建套接字 函数原型&#xff1a; int socket(int domain, int type, int protocol); 参数&#xff1a; domain: 网域 AF_INET &#xff1a; IPv4 AF_INET6 &a…

大数据面试题 —— 数据库

目录 关系型数据库与非关系型数据库的区别数据库三范式MySQL中 drop、delete、truncate的区别MySQL中 char和 varchar 的区别MySQL中inner join、left join、right join以及full join的区别MySQL中 having 和 where 的区别count(*)、count(1)、count(列名)的区别MySQL中视图和表…

【C++】-类模板-002

1创建类模板 &#xff08;1&#xff09;新建工程 &#xff08;2&#xff09; &#xff08;3&#xff09; &#xff08;4&#xff09; &#xff08;5&#xff09;模板运行结果 2【UI】设计器 &#xff08;1&#xff09;跳转到【UI】设计器 &#xff08;2&#xff09;添加…

神经网络中的归一化

我们今天介绍一下神经网络中的归一化方法~ 之前学到的机器学习中的归一化是将数据缩放到特定范围内&#xff0c;以消除不同特征之间的量纲和取值范围差异。通过将原始数据缩放到一个特定的范围内&#xff0c;比如[0,1]或者[-1,1]&#xff0c;来消除不同特征之间的量纲和取值范围…

Ti雷达CFG阅读技巧

Ti雷达CFG阅读技巧 使用TI雷达测量数据前&#xff0c;需要考虑不同的设计参数之间的区别&#xff0c;虽然Ti雷达的说明文档非常清晰&#xff0c;直接查询mmwave_sdk_user_guide文档就可以了&#xff0c;但是用的多了&#xff0c;参数都知道可能是什么含义&#xff0c;来回查询…

Springboot集成Mybatispuls操作mysql数据库-04

MyBatis-Plus&#xff08;简称MP&#xff09;是一个MyBatis的增强工具&#xff0c;在MyBatis的基础上只做增强而不做改变。它支持所有MyBatis原生的特性&#xff0c;因此引入MyBatis-Plus不会对现有的MyBatis构架产生任何影响。MyBatis-Plus旨在简化开发、提高效率&#xff0c;…

商务分析方法与工具(七):Python的趣味快捷-异常处理结构

Tips&#xff1a;"分享是快乐的源泉&#x1f4a7;&#xff0c;在我的博客里&#xff0c;不仅有知识的海洋&#x1f30a;&#xff0c;还有满满的正能量加持&#x1f4aa;&#xff0c;快来和我一起分享这份快乐吧&#x1f60a;&#xff01; 喜欢我的博客的话&#xff0c;记得…

布局全球内容生态,酷开科技Coolita AIOS以硬核品质亮相

当前&#xff0c;全球产业链供应链格局持续重构&#xff0c;成为影响中国对外经济发展的重要因素。2024年4月15至5月5日&#xff0c;历史久、规模大、层次高&#xff0c;作为中国外贸风向标的第135届中国进出口商品交易会&#xff08;即广交会&#xff09;在美丽的广州隆重举行…

matlab打开文件对话框

在使用matlab GUI制作时&#xff0c;为了便于用户交互使用&#xff0c;经常设置文件打开对话框&#xff0c;让用户根据实际需要选择打开的文件。下面以打开一张图片为例&#xff0c;matlab代码如下&#xff1a; [temp_filepath,temp_filename]uigetfile(*.jpg,请选择要打开的图…

探秘Tailwind CSS:前端开发的加速器(TailwindCSS让CSS编写更简洁)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 Tailwind CSS 📒📝 快速体验📝 深入学习⚓️ 相关链接 ⚓️📖 介绍 📖 在这个快速迭代的互联网时代,前端开发效率和设计质量的双重要求,使得开发者们不断寻求更高效的工具和方法。今天,我们要介绍的是一个能够极大…

如何在Python中调用系统命令或执行外部程序?详细教程来了!

基本原理 在Python中执行程序或调用系统命令是一项非常实用的技能&#xff0c;这允许Python脚本与操作系统进行交互&#xff0c;执行各种外部程序。Python提供了多种方法来实现这一功能&#xff0c;包括os.system(), subprocess模块等。 示例代码 示例1&#xff1a;使用os.s…

LLM生态下爬虫程序的现状与未来

最近出现一批与LLM有关的新的爬虫框架&#xff0c;一类是为LLM提供内容抓取解析的&#xff0c;比如 Jina Reader 和 FireCrawl &#xff0c;可以将抓取的网页解析为markdown这样的对LLM友好的内容&#xff0c;例如markdown&#xff0c;这类本质上还是传统的爬虫解决方案。还有一…