正确流程
克隆 esp-idf
拉取代码:
git clone -b v4.4 --recursive https://github.com/espressif/esp-idf.git
注意:pydrone 使用的是 esp32s3 芯片,因此需要切换到 4.4 版本。
初始化环境
cd esp-idf
./install.sh # (Windows 用户请使用 install.bat)
source export.sh # (Windows 用户请使用 export.bat)
克隆 MicroPython
在 esp-idf 目录下进行克隆:
git clone https://github.com/01studio-lab/micropython
编译固件
预编译
cd micropython
make -C mpy-cross
去除子模块
cd ports/esp32
删除第 65-66 行:
submodules:
git submodule update --init $(addprefix ../../,$(GIT_SUBMODULES))
手动拉取子模块
将子模块拉取到 esp-idf/lib:
git clone https://github.com/pfalcon/berkeley-db-1.xx -b embedded
添加 esp-dl 依赖
在 esp-idf/components 下进行克隆:
git clone https://github.com/espressif/esp-dl.git -b idfv4.4
正式编译
cd ports/esp32
make submodules
make
遇到的问题
esp-dl 缺失
报错信息:
cmake Failed to resolve component 'esp-dl'
解决方法:手动下载 esp-dl 到 esp-idf/components 目录,确保使用的是 idfv4.4 版本,并且包含 CMakeLists.txt 文件,以便正确识别模块。
cmake 未安装
报错信息:
ESP-IDF v4.4 'cmake' must be available on the PATH to use idf.py
解决方法:安装 cmake。
sudo apt update && sudo apt install cmake
子模块下载失败
报错信息:
fatal: remote error: upload-pack: not our ref xxxxxx
解决方法:手动下载子模块。此错误需进一步研究。
pip 未安装
报错信息:
Installing virtualenv /usr/bin/python3: No module named pip
解决方法:安装 pip。
sudo apt-get remove python3-pip
sudo apt-get install python3-pip
注意:建议分开安装 python-pip 和 python3-pip,以避免错误。
默认 python 命令为 python3
可以通过 alias 重命名:
alias python=python3
安装 Python 3.8
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install python3.8
python3.8 --version
WSL 使用 Clash
在 Windows 的 C:\Users\<你的用户名>
目录下创建 .wslconfig
文件,配置网络模式为 mirrored
:
[experimental]
autoMemoryReclaim=gradual
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true
配置说明
- autoMemoryReclaim=gradual:WSL2 将逐渐回收不再使用的内存,以提高内存使用效率。
- networkingMode=mirrored:WSL2 将镜像主机的网络配置,确保网络应用能够正常访问网络资源。
- dnsTunneling=true:启用 DNS 隧道技术以提高网络兼容性。
- firewall=true:启用防火墙以保护虚拟机免受未授权访问。
- autoProxy=true:根据 Windows 的代理设置自动配置 WSL2 中的代理。
确保 Clash 允许 LAN 访问,并在设置中允许应用通过防火墙。
VMware 使用 Clash
确保 Clash 允许 LAN 访问,并在 VMware 网络设置中配置代理。
在虚拟机中添加以下脚本:
vim ~/.bashrc
脚本内容:
export https_proxy=http://10.0.0.103:7890
export http_proxy=http://10.0.0.103:7890
export all_proxy=socks5://10.0.0.103:7890
使其生效:
source ~/.bashrc
参考文献:Clash 让虚拟机系统 (Linux) 共享主机的代理
SSH 连接 VMware 的 Ubuntu
- 在虚拟机中安装 SSH。
- 在 VMware 中编辑 NAT 转发端口,将虚拟机的端口映射到宿主机。
- 从宿主机连接虚拟机的 SSH。
一般使用普通用户,root 用户可以尝试密钥登录。
参考文献:宿主机 SSH 登录到 Linux 虚拟机 - Jeffxue - 博客园
在 Windows 上使用 Linux 命令
大多数命令在 PowerShell 中是支持的,请确保不是使用原始的 cmd。
一些软件资源: