Page 1 of 1

Windows系统下使用WSL编译TuyaOS

Posted: 2024年 Jan 25日 15:42
by chenyisong

什么是WSL

Windows Subsystem for Linux(简称WSL),Windows 下的 Linux 子系统,是一个在 Windows 10 上能够运行原生 Linux 二进制可执行文件(ELF格式)的兼容层。它是由微软与 Canonical 公司合作开发,其目标是使纯正的 Ubuntu、Debian 等映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。

微软官方文档:https://docs.microsoft.com/zh-cn/windows/wsl

WSL安装

WSL有 WSL1 和 WSL2 两个版本,推进使用 WSL2。WSL 2 仅在 Windows 11 或 Windows 10 版本 1903、内部版本 18362 或更高版本中可用。

1、确认Windows系统版本

选择 Windows 徽标键 + R,然后键入“winver”,选择“确定”。

winver.png

如显示系统版本低于以上 WSL 要求的系统版本,需要先使用 Windows Update 助手手工更新 Windows 版本,可以选择在线更新或下载升级工具升级。

2、一键安装

Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 可以使用以下命令一键安装。

  1. 使用管理员权限打开 powershell(“开始”菜单 >“PowerShell” >单击右键 >“以管理员身份运
    行”)。

  2. 输入安装命令开始一键安装,并等待安装完成。

    Code: Select all

        wsl --install

    默认安装的版本为Ubuntu 22.04

    powershell.png
  3. 重启 windows 系统。

3、手动安装

如一键安装失败,或系统版本为 Windows 10 版本 1903 或更高版本,内部版本为 18362.1049 或更高版本,可手动安装 WSL。

  1. 使用管理员权限打开 powershell(“开始”菜单 >“PowerShell” >单击右键 >“以管理员身份运
    行”)。

  2. 启用适用于 Linux 的 Windows 子系统

    Code: Select all

        dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  3. 启用虚拟机功能

    Code: Select all

        dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  4. 重启 windows 系统。

4、启动

在 Windows 开始菜单中点击 ubuntu 开启 WSL 下的 Ubuntu。

ubuntu_start.png

第一次启动会进行初始化,并根据提示输入用户名及密码。

ubuntu_setup.png

进入系统后,即可正常使用。

ubuntu.png

5、WSL命令

  1. 列出可用的 Linux 发行版


    Code: Select all

        wsl --list --online
          以下是可安装的有效分发的列表。
          使用 'wsl.exe --install <Distro>' 安装。
          
          NAME                                   FRIENDLY NAME
          Ubuntu                                 Ubuntu
          Debian                                 Debian GNU/Linux
          kali-linux                             Kali Linux Rolling
          Ubuntu-18.04                           Ubuntu 18.04 LTS
          Ubuntu-20.04                           Ubuntu 20.04 LTS
          Ubuntu-22.04                           Ubuntu 22.04 LTS
          OracleLinux_7_9                        Oracle Linux 7.9
          OracleLinux_8_7                        Oracle Linux 8.7
          OracleLinux_9_1                        Oracle Linux 9.1
          openSUSE-Leap-15.5                     openSUSE Leap 15.5
          SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
          SUSE-Linux-Enterprise-15-SP5           SUSE Linux Enterprise 15 SP5
          openSUSE-Tumbleweed                    openSUSE Tumbleweed
  2. 安装指定发行版本

    Code: Select all

        wsl --install Ubuntu-20.04 
  3. 列出已安装的 Linux 发行版

    Code: Select all

        wsl --list --verbose
  4. 设置默认 Linux 发行版


    Code: Select all

        wsl --set-default Ubuntu
  5. 更新 WSL


    Code: Select all

        wsl --update
  6. 设置默认 WSL 版本


    Code: Select all

        wsl --set-default-version 2
  7. 关闭wsl


    Code: Select all

          wsl --shutdown
  8. 注销或卸载 Linux 发行版


    Code: Select all

          wsl --unregister Ubuntu

Ubuntu开发环境配置

  1. 修改软件源
    编辑 /etc/apt/sources.list 文件,修改为阿里云软件源。


    Code: Select all

        $ sudo cp /etc/apt/sources.list /etc/apt/sources_back.list
        $ sudo vim /etc/apt/sources.list
        //替换为阿里云软件源
        deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
        deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
        deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
        deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
        deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
        deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
        deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
        deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
        deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
        deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
  2. 完成后执行以下命令更新。


    Code: Select all

       $ sudo apt-get update
       $ sudo apt-get -y upgrade
  3. 开发环境配置

    使用以下命令安装编译基础命令

    Code: Select all

       $ sudo apt-get install -y build-essential wget git unzip python3 python3-pip libc6-i386
       $ pip3 install ruamel.yaml -i https://pypi.tuna.tsinghua.edu.cn/simple

    其他命令可按需安装。

Tuya Wind IDE 插件安装

WSL 插件安装

在 VSCode 应用商店中搜索 wsl,并点击安装按钮开始安装

vscode-wsl.png

安装完成后,可在资源管理器中发现 WSL目标。

wsl.png

在 WSL 的 Ubuntu 命令行中输入 code .即可通过 VSCode 打开当前文件夹。

vscode.png

C/C++ 插件安装

c_c++.png

Tuya Wind IDE 插件安装

wind-ide.png

安装完成后即可登录。

wind-ide-login.png

完成登录后即可下载对应的开发框架。

download.png

FAQ

  1. 启动 Ubuntu 时报错:WslRegisterDistribution failed with error: 0x80370102

    解决方案:在powershell 管理员模式下执行以下命令启用 hyper

    Code: Select all

    	bcdedit /set hypervisorlaunchtype auto