自学内容网 自学内容网

Ubuntu如何安装ESP32-idf

参考文章:


Ubuntu配置ESP-IDF:

Linux 和 macOS 平台工具链的标准设置 - ESP32 - — ESP-IDF 编程指南 v5.4 文档

知乎

https://zhuanlan.zhihu.com/p/963186891

通过WSL2连接USB串口调试ESP32

通过WSL2连接USB串口调试ESP32_windows wsl连接串口-CSDN博客

windows官网

连接 USB 设备 | Microsoft Learn

WSL端口无法显示问题

WSL端口无法显示问题-CSDN博客 


1.0 Why


为了在 ESP32 中使用 ESP-IDF,需要根据操作系统安装一些软件包。可以参考以下安装指南,安装 Linux 和 macOS 的系统上所有需要的软件包。

在使用下面的这条指令之前先试用这条指令更新一下软件源列表:

sudo apt-get update

编译 ESP-IDF 需要以下软件包。请根据使用的 Linux 发行版本,选择合适的安装命令。

sudo apt-get install git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

注:


  • 使用 ESP-IDF 需要 CMake 3.16 或以上版本。较早的 Linux 发行版可能需要升级自身的软件源仓库,或开启 backports 套件库,或安装 "cmake3" 软件包(不是安装 "cmake")。

  • 如果上述列表中没有当前所用系统,请参考所用系统的相关文档,查看安装软件包所用的命令。


命令:git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git


工具包文件说明:

docs :README-esp-matter.md README-install.md README-jihu-mirror.md README-submodule-update.md,这些文件都是一些说明,安装说明或者极狐镜像的使用。

install.sh 执行这个脚本安装idf

jihu-mirror.sh 执行这个脚本 会将github的下载源更改成镜像源,加快下载速度

LICENSE 许可说明,没啥用

README_cn.md docs中的文件说明,整体流程说明

submodule-update.sh 执行这个脚本安装submodule


2.0 更改国内源


命令:. ./esp-gitee-tools/jihu-mirror.sh set


3.0 拉取源码


 命令:git clone --recursive https://github.com/espressif/esp-idf.git

一般情况下建议从github上拉取源码

cd ~/esp/esp-idf
export IDF_GITHUB_ASSETS="dl.espressif.cn/github_assets"
./install.sh


切换esp-idf版本分支到v5.2:git checkout v5.2

 更换pip源:也可以不做

pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
pip config set global.trusted-host mirrors.aliyun.com


安装编译工具:./install.sh,可以先试用ls -l install.sh查看文件的权限

如果权限不够使用chmod + x fileName【文件的名字需要添加权限的】 添加文件权限


4.0 配置编译环境


使能配置环境生效:

source export.sh
// 添加环境变量
echo "source ~/esp32/esp-idf/export.sh" >> ~/.bashrc


给指令起别名:通过别名可以运行esp-idf的环境

 把这句话加进去:alias get_idf='. $HOME/esp/esp-idf/export.sh'

重启终端


运行ESP32-idf,请在需要运行 ESP-IDF 的终端窗口运行以下命令:

. $HOME/esp/esp-idf/export.sh


果需要经常运行 ESP-IDF,可以为执行 export.sh 创建一个别名,具体步骤如下:

alias get_idf='. $HOME/esp/esp-idf/export.sh'

 


5.0 下载代码例程




拷贝项目例程:

ESP-IDF 编译系统不支持 ESP-IDF 路径或其工程路径中带有空格

cd ~/esp

cp -r $IDF_PATH/examples/get-started/hello_world .


请进入 hello_world 目录,设置 ESP32 为目标芯片,然后运行工程配置工具 menuconfig

cd ~/esp/hello_world
idf.py set-target esp32
idf.py menuconfig

设置芯片的型号指令:idf.py set-target esp32c2

编译成功烧录:idf.py -p com flash

虚拟机是不能直接使用windows上的端口的,要实现使用windows上的端口要进行一些配置可以参考这篇文章的链接:连接 USB 设备 | Microsoft Learn


本指南将演练使用 USB/IP 开源项目 usbipd-win 将 USB 设备连接到在 WSL 2 上运行的 Linux 发行版所必要的步骤。

在 Windows 计算机上设置 USB/IP 项目将启用常见的开发人员 USB 场景,例如刷写 Arduino 或访问智能卡读取器。

更新WSL到最新版本


Windows中 安装usbipd-win

WSL 本身并不支持连接 USB 设备,因此你需要安装开源 usbipd-win 项目。

内核要求

若要将 USBIPD 与适用于 Linux 的 Windows 子系统 (WSL) 配合使用,则需要具有 Linux 内核版本 5.10.60.1 或更高版本。 如果已安装的内核版本低于 5.10.60.1,则可以通过使用 wsl --shutdown 先关闭 WSL 的任何正在运行的实例,然后运行以下命令来更新它:wsl --update

在 WSL 上安装 USBIPD

  1. 转到 usbipd-win 项目的最新发布页

  2. 选择 .msi 文件,该文件将下载安装程序。 (你可能会收到一条警告,要求你确认你信任此下载)。

  3. 运行下载的 usbipd-win_x.msi 安装程序文件。




 安装刚刚下载的程序


WSL2安装 linux-tools/hwdata

sudo apt install linux-tools-5.4.0-77-generic hwdata

sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/5.4.0-77-generic/usbip 20

 


列出当前usb设备

出现这个错误看看该如何解决?

taohuang@DESKTOP-L13FO4Q:~$ usbipd list
WARNING: usbipd not found for kernel 5.15.167.4-microsoft

  You may need to install the following packages for this specific kernel:
    linux-tools-5.15.167.4-microsoft-standard-WSL2
    linux-cloud-tools-5.15.167.4-microsoft-standard-WSL2

  You may also want to install one of the following packages to keep up to date:
    linux-tools-standard-WSL2
    linux-cloud-tools-standard-WSL2

请注意,由于 WSL2 的特殊性,不是所有的 Linux 功能都能直接在 WSL2 中正常工作,尤其是那些需要直接访问硬件的功能,比如 usbipd。此外,微软可能会对 WSL2 的内核进行定制,这可能导致某些标准的 Linux 工具或模块不完全兼容。

要安装上述建议的包,请确保你的 APT 源列表是最新的,并且包含有正确的 WSL2 内核工具源。然后你可以尝试安装推荐的包:

sudo apt-get update

sudo apt-get install linux-tools-5.15.167.4-microsoft-standard-WSL2 linux-cloud-tools-5.15.167.4-microsoft-standard-WSL2

 上面的步骤可以不做,可以只做下面的即可


上面的那个问题重新打开Powershell窗口输入:usbipd list

 通过以管理员模式打开 PowerShell 并输入以下命令,列出所有连接到 Windows 的 USB 设备。 列出设备后,选择并复制要附加到 WSL 的设备总线 ID。


在附加 USB 设备之前,必须使用命令 usbipd bind 来共享设备,从而允许它附加到 WSL。 这需要管理员权限。 选择要在 WSL 中使用的设备总线 ID,然后运行以下命令。 运行命令后,请再次使用命令 usbipd list 验证设备是否已共享。

usbipd bind --busid 4-4

 



若要附加 USB 设备,请运行以下命令。 (不再需要使用提升的管理员提示。)确保 WSL 命令提示符处于打开状态,以使 WSL 2 轻型 VM 保持活动状态。 请注意,只要 USB 设备连接到 WSL,Windows 将无法使用它。 附加到 WSL 后,任何作为 WSL 2 运行的分发版本都可以使用 USB 设备。 使用 usbipd list 验证设备是否已附加。 在 WSL 提示符下,运行 lsusb 以验证 USB 设备是否已列出,并且可以使用 Linux 工具与之交互。

usbipd attach --wsl --busid <busid>

打开 Ubuntu(或首选的 WSL 命令行),使用以下命令列出附加的 USB 设备:

lsusb

 

 你应会看到刚刚附加的设备,并且能够使用常规 Linux 工具与之交互。 根据你的应用程序,你可能需要配置 udev 规则以允许非根用户访问设备。

在 WSL 中完成设备使用后,可物理断开 USB 设备,或者从 PowerShell 运行此命令:

usbipd detach --busid <busid>

注意:这条指令如果不断开连接的话不要执行,否则要使用指令重新开启


WSL2下使用ls /dev/tty*

变更权限:sudo chmod a+rw /dev/ttyUSB0


请使用以下命令,编译烧录工程:idf.py set-target esp32c2

 

idf.py build

 




 乱码问题参考这个程序即可:ESP32解决监视器乱码问题-CSDN博客


原文地址:https://blog.csdn.net/qq_45973003/article/details/145079414

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!