vscode报“未检测到适用于linux的windows子系统”指remote-wsl扩展未扫描到状态为running且名称在白名单内的wsl发行版;需执行wsl -l -v确认状态,若为stopped则运行wsl -d 启动,或修正发行版名称、设置默认发行版并执行wsl --shutdown重启。

VSCode报“未检测到适用于 Linux 的 Windows 子系统”是什么意思
这不是 VSCode 插件没装好,也不是网络问题,而是它根本没在 WSL 环境里看到一个“活的、可识别的发行版”。Remote-WSL 扩展启动时会扫描已注册的 WSL 发行版列表,并只认那些状态为 Running 且名称在白名单内的条目(比如 Ubuntu、Debian、Ubuntu-22.04)。如果显示这个错误,说明 VSCode 查不到符合条件的发行版。
wsl -l -v 显示 NAME 但 STATE 是 Stopped
这是最常见原因:发行版安装完后从未手动启动过,或者被 wsl --shutdown 关闭后没再唤醒。VSCode 不会自动拉起它,只读取当前运行态。
- 在 PowerShell 或 CMD 中执行:
wsl -l -v,确认你的发行版(如Ubuntu-24.04)状态是Stopped - 手动启动它:
wsl -d Ubuntu-24.04(把名字替换成你实际的发行版名) - 退出该终端(输入
exit),再重新打开一个新的 WSL 终端 - 此时再执行
code .,VSCode 就能识别到了
发行版名字不在 Remote-WSL 白名单里
Remote-WSL 默认只信任标准命名的发行版。如果你用 wsl --import 自定义导入,名字可能是 MyUbuntu 或带版本号的 ubuntu-24.04-lts,VSCode 就会跳过它。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 运行
wsl -l -v查看当前所有发行版名称 - 若名字不规范(含下划线、大写、lts 后缀等),有两个选择:
– 改名:wsl --unregister MyUbuntu && wsl --import Ubuntu /path/to/rootfs /path/to/tar
– 或在 VSCode 设置中加白名单:"remote.WSL.defaultDistribution": "MyUbuntu" - 改完后必须重启 WSL:
wsl --shutdown,再重新启动发行版
默认发行版没设或设错了
即使有多个发行版在运行,VSCode 也只连默认那个。如果没设默认,或设成了一个不存在/已卸载的发行版,code . 就会失败。
- 查当前默认:
wsl -s(注意是小写 s) - 设默认发行版:
wsl -s Ubuntu-24.04(名字必须完全匹配wsl -l -v输出) - 如果提示
The specified distribution does not exist,说明名字拼错了,或该发行版其实已unregister
真正卡住的地方往往不是插件或网络,而是 WSL 进程状态和名字匹配这两个底层事实——VSCode 不猜、不试、不 fallback,它只信 wsl -l -v 的输出结果。










