[嵌入式AI从0开始到入土]5_炼丹炉的搭建(基于wsl2_Ubuntu22.04)

[嵌入式AI从0开始到入土]嵌入式AI系列教程

注:等我摸完鱼再把链接补上
可以关注我的B站号工具人呵呵的个人空间,后期会考虑出视频教程,务必催更,以防我变身鸽王。

第一章 昇腾Altas 200 DK上手
第二章 下载昇腾案例并运行
第三章 官方模型适配工具使用
第四章 炼丹炉的搭建(基于Ubuntu23.04 Desktop)
第五章 炼丹炉的搭建(基于wsl2_Ubuntu22.04)
第六章 Ubuntu远程桌面配置
第七章 下载yolo源码及样例运行验证
第八章 在线Gpu环境训练(基于启智ai协作平台)
第九章 转化为昇腾支持的om离线模型
第十章 jupyter lab的使用
第十一章 yolov5在昇腾上推理
第十二章 yolov5在昇腾上应用
未完待续…


文章目录

  • [嵌入式AI从0开始到入土]嵌入式AI系列教程
  • 前言
  • 一、启用wsl
  • 二、安装系统
    • 1、使用微软商店
    • 2、使用命令行下载
  • 三、更改wsl版本
  • 四、安装pip(可选)
  • 问题
    • 1、修改安装位置(适用于安装后未启动过wsl的情况)
      • 1、修改权限
      • 2、移动wsl文件
    • 2、wsl文件迁移
    • 3、wsl虚拟磁盘大
    • 4、System has not been booted with systemd as init system (PID 1). Can't operate.
    • 5、wsl与win互连
      • 1、文件
      • 2、ssh
      • 3、软件
  • 总结


前言

注:本人环境win11 22H2家庭中文版,win10默认wsl,需要手动升级到wsl2
没有物理机的情况下,为避免虚拟机额外的性能开销,我们可以使用wsl2直接调用Gpu(Vmware好像也可以做显卡直通)。
微软官方文档点击这里跳转,本文仅挑选必要内容做分析。
关于conda和cuda环境的搭建,直接按照上一期的内容就可以了。

一、启用wsl

搜索Windows功能,勾选适用于Linux的Windows子系统,重启电脑等待更新完成。
在这里插入图片描述

二、安装系统

以下方法二选一即可,推荐使用Microsoft Store。
注:默认安装位置在C盘,如需更改请在安装完成后不要启动,按照问题区方法操作

1、使用微软商店

在Microsoft Store中搜索ubuntu,这里以ubuntu22.04为例。
注:按理说应该先安装下图第一个搜索结果,但实测会自动安装
在这里插入图片描述
点击上图所示的结果,点击获取,然后等待安装即可,大约不到500Mb。

2、使用命令行下载

搜索powershell,使用管理员权限打开。
在这里插入图片描述
输入以下指令安装,懒人直接第一条就行。

wsl --install #默认安装 WSL 和 Linux 的默认 Ubuntu 发行版
wsl --list --online #获取发行版名称的有效列表
wsl --install <Distribution Name> #安装指定Linux发行版

选项包括:

  • --distribution:指定要安装的Linux发行版。可以通过运行wsl --list --online来查找可用的发行版。
  • --no-launch:安装Linux发行版,但不自动启动它。
  • --web-download:通过联机渠道安装,而不是使用Microsoft Store安装。

未安装 WSL 时,选项包括:

  • --inbox:使用Windows组件(而不是Microsoft Store)安装WSL。(WSL 更新将通过Windows更新接收,而不是通过Microsoft Store中推送的可用更新来接收)。
  • --enable-wsl1:在安装Microsoft Store版本的 WSL 的过程中也启用“适用于 Linux 的 Windows 子系统”可选组件,从而启用 WSL 1。
  • --no-distribution:安装WSL时不安装发行版。

注意:如果在 Windows 10 或更低版本上运行 WSL,可能需要在 --install 命令中包含 -d 标志以指定发行版:wsl --install -d <distribution name>

三、更改wsl版本

注:WSL2仅在 Windows 11 或 Windows 10 版本 1903、内部版本 18362 或更高版本中可用。
我们因为需要调用显卡,所以需要切换到wsl2,win11一般默认就是wsl2。关于wsl和wsl的区别,请点击这里。
打开终端,执行以下命令

wsl -l -v #查看wsl当前发行版本名称和运行状态
wsl --set-version <distribution name> <versionNumber> 
  • distribution name:上一步查询到的Name
  • versionNumber:需要修改为的版本,1或者2

四、安装pip(可选)

本人从微软商店下载的ubuntu22.04缺少pip,通过正常方式均无法安装。
以下为解决方案

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py #比较慢,下不动用迅雷
python get-pip.py	#此处慢慢等,报错就重试
pip --version #验证安装

问题

1、修改安装位置(适用于安装后未启动过wsl的情况)

1、修改权限

进入C:\Program Files目录,修改windowsapp文件夹权限
在这里插入图片描述
更改所有者
在这里插入图片描述
输入everyone,点击检查名称,确认即可。
在这里插入图片描述

2、移动wsl文件

在Windowsapp文件夹内找到CanonicalGroupLimited.Ubuntu22.04LTS开头的一个文件夹,可能会有三个,我这里因为已经移动了,所以就找不到了,没法截图。
我们进去复制这两个文件,ubuntu2204.exe以及同文件夹下一个0.5G左右的文件(就是最大的那个)。把这俩个文件放到你想要的文件夹,然后双击ubuntu2204.exe,等待启动即可。
注:wsl启动过后移动ext4.vhdx文件会导致报错

2、wsl文件迁移

在wsl正常使用过程中,需要迁移的话,请按照如下方法操作
在终端中执行

wsl --shutdown #关机
wsl -l -v #记下name,并且确认状态是stopped
wsl --export name D:\Ubuntu.tar	#name替换为上一步查询的name
wsl --unregister name	#name同上
wsl --import name D:\wsl D:\Ubuntu.tar --version 2	#name同上
ubuntu.exe config --default-user user_name #user_name替换为你的wsl内的用户名

3、wsl虚拟磁盘大

这是因为ext4.vhdx磁盘空间会根据加载的数据自动增长,但是无法自动回收。下面是手动回收的步骤。
在终端依次执行以下命令

wsl --shutdown #关闭正在运行的wsl系统
diskpart #跳出授权,选择是
select vdisk file="D:\wsl\ext4.vhdx" #将路径改为你的实际路径
attach vdisk readonly
compact vdisk
detach vdisk
exit

4、System has not been booted with systemd as init system (PID 1). Can’t operate.

这个报错是因为wsl没有启动system导致的。
使用ps -p 1命令,如果cmd列为init请按照以下步骤操作启用systemd:

  1. 确保 WSL 版本为 0.67.6 或更高版本。(若要检查,请运行wsl --version。若要更新,请运行wsl --update或从 Microsoft Store 下载最新版本。)
  2. 进入wsl,nano /etc/wsl.conf
  3. 在 wsl.conf 文件中添加以下行
[boot]
systemd=true
  1. 退出 Nano 文本编辑器(Ctrl + X,选择 Y 来保存更改)。然后,需要关闭 Linux 发行版。可以使用 PowerShell 中的wsl.exe --shutdown命令关闭所有 WSL 实例。
  2. Linux 发行版重启后,systemd 将会运行。 可使用systemctl list-unit-files --type=service或者ps -p 1命令进行确认,这将显示与 Linux 发行版关联的任何服务的状态。
    在这里插入图片描述

5、wsl与win互连

1、文件

win的目录在/mnt文件夹下,直接cd过去就行。
在这里插入图片描述
win访问wsl文件直接在资源管理器就可以。

2、ssh

mobaxterm和vscode不需要,可以直接连接wsl。

  • mobaxterm
    在这里插入图片描述
  • vscode
    在这里插入图片描述
    如果有其他需求,还是和物理机一样的操作,只是静态ip比较麻烦
sudo apt install openssh-server		#安装ssh服务端
sudo service sshd start				#开启ssh服务
ifconfig 							#查看ip

wsl ip是eth0:下第二行inet后的地址。按理说应该是动态ip,不少教程内也都是每次启动就会变ip,但是我这里一个月都没变。于是,摆烂。

3、软件

wsl内安装的有图形界面的软件可以直接在开始菜单找到,直接打开使用即可。

总结

WSL 所需的资源少于完整虚拟机所需的资源(微软说的),但是依赖缺的真的很严重,gcc正在折磨我[大哭]。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Springcloud篇】学习笔记四(九章):Hystrix—服务降级、熔断、限流

第九章_Hystrix服务降级 1.Hystrix简介 1.1分布式系统面临的问题 服务雪崩 1.2Hystrix是什么 1.3Hystrix能干嘛 服务降级服务熔断接近实时的监控 1.4官网资料 官网资料&#xff1a;https://github.com/Netflix/Hystrix/wiki/How-To-Use Hystrix官宣&#xff0c;停更进维…

C#用正则表达式验证密码长度vs用Char.IsLetterOrDigit方法遍历字符数组验证密码长度

目录 一、使用的方法 1.正则表达式 2.Char.IsLetterOrDigit方法 二、源码 1.源代码 2.生成效果 一、使用的方法 1.正则表达式 在注册用户时&#xff0c;经常需要填写密码信息&#xff0c;为保证用户信息的安全性&#xff0c;密码一般情况下要求输入6位或6位以上。本…

如何写好论文——(15)如何写研究目标之实例讲解

写好研究目标一要有方向、二要有边界。 定边界的时候要有方法和结论。 下面的例子为目标的两种写法&#xff0c;第二种提供了更明确可以测量的目标。 下面的第二个例子更有方向性。第一个例子的本质是去验证一种假说&#xff0c;这种假说如果成立完全可以支撑第二种写法中的目…

如何在Windows系统使用Plex部署影音服务与公网访问本地资源【内网穿透】

文章目录 1.前言2. Plex网站搭建2.1 Plex下载和安装2.2 Plex网页测试2.3 cpolar的安装和注册 3. 本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的 人工智能学习网站&#xff0c; 通…

【Spring】Spring 启示录

一、OCP 开闭原则 核⼼&#xff1a;在扩展系统功能时不需要修改原先写好的代码&#xff0c;就是符合OCP原则的&#xff0c;反之修改了原先写好的代码&#xff0c;则违背了OCP原则的 若在扩展系统功能时修改原先稳定运⾏程序&#xff0c;原先的所有程序都需要进⾏重新测试&…

户外没有电源和网络,但需要安装监控系统,怎么办?太阳能智能监控系统给你解决

近期有粉丝给小编求助&#xff1a;需要在没网没电的户外进行智能监控的安装&#xff0c;不知道如何解决。收到粉丝的问题&#xff0c;小编立刻联系了技术人员给出方案。针对野外、户外等场景只需使用太阳能供电模组4G摄像机视频监控EasyCVR平台智能分析网关V4的架构&#xff0c…

minicoda安装使用

这里写目录标题 1、安装2、使用 1、安装 官网安装教程&#xff1a;https://docs.conda.io/projects/miniconda/en/latest/ 参考&#xff1a;https://www.jianshu.com/p/4d4c786ed454 选择对应的系统 #下载安装 mkdir -p ~/miniconda3 wget https://repo.anaconda.com/minico…

【数据结构与算法】(9)基础数据结构 之 阻塞队列的单锁实现、双锁实现详细代码示例讲解

目录 2.8 阻塞队列1) 单锁实现2) 双锁实现 2.8 阻塞队列 之前的队列在很多场景下都不能很好地工作&#xff0c;例如 大部分场景要求分离向队列放入&#xff08;生产者&#xff09;、从队列拿出&#xff08;消费者&#xff09;两个角色、它们得由不同的线程来担当&#xff0c;…

Day 2.几个简单的函数接口 今日份浅学

1.函数接口 &#xff08;1&#xff09;.fgetc&#xff1a; int fgetc(FILE *stream); 功能&#xff1a;从流中度区下一个字符 参数&#xff1a; stream&#xff1a;文件流指针 返回&#xff1a; 成功返回ASCII值 失败返回 EOF 读到文件末尾返回EOF 练习&#xff1a; 读出文…

基于C/C++的 FindOneOf 查找函数的未知bug

CString str "Martel USB to Serial(COM5)";str.FindOneOf("COM");

leetcode (算法)66.加一(python版)

需求 给定一个由 整数 组成的 非空 数组所表示的非负整数&#xff0c;在该数的基础上加一。 最高位数字存放在数组的首位&#xff0c; 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外&#xff0c;这个整数不会以零开头。 示例 1&#xff1a; 输入&#xff1a;digi…

2024美赛数学建模C题思路+代码

文章目录 1 赛题思路2 美赛比赛日期和时间3 赛题类型4 美赛常见数模问题5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 美赛比赛日期和时间 比赛开始时间&#xff1a;北京时间2024年2月2日&#xff08;周五&#xff…