栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

2022 WIN11+WSL2 从0到1-嵌入式linux开发环境构建(持续更新)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2022 WIN11+WSL2 从0到1-嵌入式linux开发环境构建(持续更新)

建议收藏,持续更新

2022/4/15 第一版
2022/4/24 添加 SD卡映射、最新编译的内核驱动

1.操作系统 windows+bash

全世界都知道win10是linux最好的发行版 !

一种新型的嵌入式开发系统平台构建方式,从16年开始,windows10开发者计划版本,就有bash子系统,到今天已经演变的非常稳定、流畅、无缝切换。
对嵌入式来说这是一种很完美的开发方式,win平台的“祖传工具”可以继续用,同时可以直接操作Ubuntu的应用,硬件配置不再像是虚拟机一样阉割过,而是公用一套基础外设,文件系统互通。
借助最新的WSL服务,可以在一个窗口下,同时启动windows软件,和linux系统内的IDE软件。
可以鼠标右键直接打开linux终端。
效果展示见:https://www.bilibili.com/video/BV1ka41167kA?spm_id_from=333.337.search-card.all.click

1.1 Windows 子系统 wsl2 部署

版本需要大于等于2004

1.2确认系统是否支持Virtualization

打开任务管理

如果disable

要在 Windows 10(2004)上启用虚拟机平台,请以管理员身份打开 PowerShell 并运行:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
1.3确认是否启用wsl组件

以管理员身份打开 PowerShell 工具并运行以下命令。小心不要在命令中输入错误或遗漏任何字符:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
1.4确认是否启用wsl2版本
wsl -l -v 
#输出
Name              State            Version
Ubuntu            Stopped          1               //如果是2 就跳到0.1.4.7更新源
1.5怎么将 WSL 1 上的 Ubuntu 转换到 WSL 2

首先需要启用组件

  • 使用管理员打开Powershell并运行

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

  • 启用后会要求重启计算机

其次更新WSL2内核

  • 从https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi获取WSL2 Linux内核更新包并运行
  • 查看目前的WSL版本
wsl -l -v
#输出
Name              State            Version
Ubuntu            Stopped          1
  • 执行更新
wsl --set-version Ubuntu  2      // Ubuntu 的名字要和系统安装的一致
#输出
正在进行转换,这可能需要几分钟时间...
有关与 WSL 2 的主要区别的信息,请访问 https://aka.ms/wsl2
转换完成。
  • 不存在具有提供分部的名称

切换的镜像名字打错了

需要把指令改成

wsl --set-version Ubuntu-20.04 2   //镜像名字需要和已安装的一致

成功

  • 完成后重新检测
wsl -l -v
#输出
Name              State            Version
Ubuntu            Stopped          2
  • 修改默认启动版本
wsl --set-default-version 2
1.6如果没有安装过,安装一个 Linux 发行版

有了 WSL 和必要的虚拟化技术,接下来您要做的就是从 Microsoft Store 中选择并安装 Linux 发行版。
有几种不同的发行版可供选择,包括 OpenSUSE、Pengwin、Fedora Remix 和 Alpine Linux。但是我个人推荐debain。
要在 Windows 10 上安装 Ubuntu,请打开 Microsoft Store 应用,搜索 “debain”,然后单击“获取”按钮
下面安装的是debain

首次启动需要,从系统应用点一下Debain,让他系统初始化。

输入用户名和密码

启动成功示意图:

1.7更新源

更新源清华源

sudo sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sudo apt-get update
1.8安装依赖

Debian/Ubuntu

sudo apt-get install wget make unzip git libc6-i386 gcc libgl1-mesa-dev libglu1-mesa-dev  gdb-multiarch libc6-i386  lib32stdc++6 lib32z1 lib32ncurses6 -y
1.9 共享文件夹

右键把文件映射成网络驱动器

资源管理器输入:\wsl$

把文件夹快捷方式到桌面

1.10 安装Windows Terminal

把debian配置到windows terminal

关于配置详见 https://docs.microsoft.com/zh-cn/windows/terminal/

1.11 更新WSL GUI APP 支持

win+q 能直接搜到子系统内的APP软件并且打开!

管理员powershell

 wsl --update  
 wsl --shutdown

1.12 自定义wsl子应用的快捷方式

正常来说在linux安装的gui应用都可以在win+Q里面检索到

如果它没有,怎么把自定义的应用添加到这里?

1)仔细看了一下这个快捷方式的属性

2)启动的子程序的指令 如下,按照这个格式把自己的应用添加就行 ,如果你的应用不行,也许需要把应用放置在/usr/bin 下面

C:WindowsSystem32wslg.exe ~ -d Debian giggle   
C:UsersreasonssAppDataRoamingMicrosoftWindowsStart MenuProgramsDebian
C:UsersreasonssAppDataLocalTempWSLDVCPluginDebian
1.13 添加中文输入法(搭建失败待调试)
sudo apt install dbus-x11 im-config fonts-noto fcitx fcitx-pinyin fcitx-sunpinyin 

//用sudo vi/etc/locale.gen

zh_CN.UTF-8

//vi ~/.profile

export LANG=zh_CN.UTF-8
export INPUT_METHOD=fcitx # wayland输入法
export XMODIFIERS=@im=fcitx # x11输入法
export GTK_IM_MODULE=fcitx # gtk输入法
export QT_IM_MODULE=fcitx # qt输入法
1.14 在 WSL 2 中装载 Linux 磁盘

https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-mount-disk

1.15 在wsl2 中装载闪存 Arduino 或访问智能卡读卡器

视频介绍https://www.youtube.com/watch?v=I2jOuLU4o8E

https://docs.microsoft.com/en-us/windows/wsl/connect-usb

**管理员powershell **

winget install --interactive --exact dorssel.usbipd-win
//需要重启电脑才生效

**wsl shell **

sudo apt-get install usbip hwdata

**管理员powershell **
查看需要映射的BUSID是什么,如果不知道可以通过插拔查询id的变化。

usbipd.exe wsl list  //找到需要映射的busid号

usbipd.exe wsl attach --busid 2-14  //执行以后可以看到state里面已经有debian

映射成功。

如果fdisk -l找不到这个东西也许是没有驱动,编译自己定制版本的内核

https://github.com/dorssel/usbipd-win/wiki/WSL-support#building-your-own-usbip-enabled-wsl-2-kernel

经过重新编译内核并且重新加载后。系统终于加载这个sd卡成功

成功定制好的内核,可以直接用

Linux mogu-laptop 5.10.102.1-microsoft-standard-WSL2+ #3 SMP Fri Apr 22 17:24:10 CST 2022 x86_64 GNU/Linux

百度云盘
链接:https://pan.baidu.com/s/11ByhBdEcI9HPULvQ5Nm2UQ?pwd=jxnb
提取码:jxnb

使用方式

Create a .wslconfig file on /mnt/c/Users// and add a reference to the created image with the following.

[wsl2]
kernel=c:\users\\usbip-bzImage   

重启电脑 uname -a 看看编译日期
1.16 wsl 镜像定制与导出和导入

https://docs.microsoft.com/zh-cn/windows/wsl/enterprise

2操作系统 Deepin、UOS

关于deepin系统安装见官网https://www.deepin.org/zh/
关于uos系统安装见官网 https://home.uniontech.com/

UOS是Linux在中国的商业发行版,主要开发工作由Deepin团队完成,UOS与Deepin的关系就像是Fedora和Redhat RHEL那样。
UOS现阶段是直接供给政府部门使用,我记得微信分享三个人可以获得家庭版的免费密钥。
Deepin从19年开始整个系统就是UOS的试验田,有最新的功能,同时也有最多的bug。
现在的UOS怎么说呢,windows有的软件它都有,我把它作为主力开发系统深度使用3年半,他的生态已经接近完整,随时可以打操作系统战。
里面可以直接跑windows软件,基于wine,adobe全家桶、office全家桶、钉钉都有。
里面可以直接跑安卓app ,基于linux内核。
里面有大量的linux平台软件,有微信原生linux版。

3操作系统 windows+虚拟机

不做详述

4 **Visual Studio Code **

下载地址:http://vscode.bianjiqi.net/
微软公司第一次向开发者们提供了一款**真正的跨平台,**运行于 Mac OS X、Windows和 Linux 之上的编辑器。
VsCode 是集成全世界所有开源工具一身的万能IDE,涂鸦、乐鑫、Arduino、RT-Thread 等各种嵌入式厂家都有在上面开发自己的工具库

如果你用的是2.1.1 windows+bash 作为开发环境,把VScode装到windows环境,他能够在win上直接开发子系统里面的代码,而且不是类似于虚拟机共享文件夹的形式进行。并且能够直接调试代码,提交git等。

4.1 VS code的快捷键

是跟着练一遍,效率会提高很多
https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf

4.2 插件

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/837646.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号