基于WSL1的ESP-IDF手动安装记录

目录

前言

一、安装WSL

1.安装Ubuntu

2.转移Ubuntu

3.设置Ubuntu默认用户

4.Ubuntu换源

 二、安装ESP-IDF

 1.安装先决条件

2.获取ESP-IDF

3.设置工具

4.环境变量取别名

总结

1、网络问题:

2、编译找不到头文件

3、下载组件源文件总出错


前言

        此文章记录使用WSL1安装ESP-IDF的安装过程。乐鑫官方的开发框架,支持多个操作系统,使用Linux编译速度较快,考虑便捷性,遂选择WSL。如无其他用途,最好还是选用WSL1,对CPU、内存占用较少。用WSL2需安装连接USB设备的驱动,较麻烦,我尝试安装,然后放弃了。


一、安装WSL

参照微软官方教程:安装 WSL | Microsoft Learn

1.安装Ubuntu

在Windows功能中启动wsl后,在微软商店中选择Ubuntu分发版下载,最好是最新版本。如

2.转移Ubuntu

其默认安装在C盘,如空间不足可转移到其他盘:

参照WSL 的基本命令 | Microsoft Learn

# PowerShell中运行以下命令

# 导出WSL到指定目录
wsl --export <Distribution Name> <FileName>

# 注销WSL
wsl --unregister <DistributionName>

#导入WSL到指定目录
wsl --import <Distribution Name> <InstallLocation> <FileName>

# 如:
wsl --export Ubuntu-22.04 F:\\wsl.tar
wsl --unregister Ubuntu-22.04
wsl --import Ubuntu-22.04 F:\\WSL1 F:\\wsl.tar

3.设置Ubuntu默认用户

# 更改发行版的默认用户
<DistributionName> config --default-user <Username>

# 如
Ubuntu-22.04 config --default-user johndoe

因为修改过路径,如果出现错误,则需使用其他办法 :

原文链接:WSL的迁移与切换 - 知乎

 新导入的系统默认启动账户为root,需要修改成普通账户。 其思路即修改注册表中相关的键值,即将注册表计算机\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\{...}中的DefaultUid值设置为子系统用户对应的gid值(通过id -u来获取,或者直接查看/etc/passwd文件)。

# 可通过自定义powershell函数,然后调用,完成上述操作:

# 定义函数WSL-SetDefaultUser,接收参数distro和user
Function WSL-SetDefaultUser ($distro, $user) { Get-ItemProperty Registry::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\*\ DistributionName | Where-Object -Property DistributionName -eq $distro | Set-ItemProperty -Name DefaultUid -Value ((wsl -d $distro -u $user -e id -u) | Out-String); };

# 调用函数,此处对应发行版名称Ubuntu,用户名为yz: WSL-SetDefaultUser <DistroName> <UserName>
WSL-SetDefaultUser Ubuntu yz

# 取消函数定义
Remove-Item Function:WSL-SetDefaultUser

4.Ubuntu换源

参考链接:https://blog.csdn.net/xiangxianghehe/article/details/122856771

为提高软件下载速度,编辑以下文件,更换其镜像源 

sudo vim /etc/apt/sources.list

推荐中科大源: 


deb https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse

 二、安装ESP-IDF

参考链接:https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/linux-macos-setup.html

 1.安装先决条件

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

2.获取ESP-IDF

查阅:https://github.com/espressif/esp-idf

选择所需的发行版本,推荐v5.0以上 ,不建议直接下载zip包,缺少.git目录,后续会报错,使用clone较完整:

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

必要时加入sudo,提高权限。

如下载组件源文件时出错,可使用以下命令更新:

git submodule update --init --recursive

3.设置工具

# 进入下载的目录中,运行:
./install.sh

默认安装在用户目录下.espressif 中。

4.环境变量取别名

 环境变量每次重新打开终端,都需执行export.sh,为此取个别名

sudo vim ~/.bashrc
# 添加内容($HOME为Ubuntu用户目录)
alias IDF='. $HOME/esp/esp-idf/export.sh'

 如esp-idf 安装在其他盘,根目录使用/mnt/,如:

alias IDF='. /mnt/i/esp/esp-idf/export.sh'

如果一切顺利,没有出错的话,便可复制一个工程,编译试试结果,


总结

1、网络问题:

其安装主要问题是,网络问题,github常常访问失败,如Windows开启代理,可在终端中添加临时代理:

# 10809对应代理端口
export https_proxy=http://localhost:10809

但有时也无法加速,总之看运气。

2、编译找不到头文件

如果工程中自定义组件如:

在编译时无法找到头文件,可在其CMakeLists.txt中添加 REQUIRES,如 :

file(GLOB_RECURSE srcs src/*.c)

idf_component_register(SRCS ${srcs}
                    INCLUDE_DIRS "include"
                    REQUIRES driver
                    )

3、下载组件源文件总出错

如果在clone esp-idf组件源文件时,总是出错,可直接去GitHub乐鑫库中下载缺少的源文件,如一个组件的zip包,然后解压粘贴在对应位置即可。

安装过多次,每次都能遇到各种问题,使用WSL2安装时,还遇到编译使用cmake不是ninja,编译巨慢的情况,编译整个工程足足花了一个半小时,心态大崩,删除重来又正常了...

人生艰难就像,虽有东去大海之志,却流程缓慢,征程多艰。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值