解决 wsl2/WSLg 声音卡顿不连续问题

解决 wsl2/WSLg 声音卡顿不连续问题

  • 我的 windows 上默认的 WSLg 声音断断续续, 这里改用 PulseAudio 来替代其声音播放
  • Linux 端设置
vi ~/.profile 
# 增加一行: 
export PULSE_SERVER=tcp:172.22.80.1 
# IP 为 windows 端的IP
  • windows 端设置
1. 修改/etc/pulse/daemon.conf 文件中: 
exit-idle-time = -1
 # 空闲时也不退出服务

2. 修改\etc\pulse\default.pa 文件中: 
load-module module-waveout sink_name=output source_name=input record=0
 # record=0 不开启麦克风; record=1 开启麦克风

load-module module-native-protocol-tcp auth-anonymous=1
 # auth-anonymous=1: 允许匿名连接

在 windows 端 cmd 中启动 bin\pulseaudio.exe 服务器, 即可在 WSLg 应用中流畅播放声音了.

正常连接 pulseaudio 服务器后, 使用命令检查, 显示结果如下:

$ pactl list sinks
Sink #0
        State: IDLE # 如正在播放声音, 这里会显示为 RUNNING
        Name: output
        Description: WaveOut on Microsoft Sound Mapper
        Driver: modules/module-waveout.c
        Sample Specification: s16le 2ch 44100Hz
        Channel Map: front-left,front-right
        Owner Module: 4
        Mute: no
        Volume: front-left: 65536 / 100%,   front-right: 65536 / 100%
                balance 0.00
        Base Volume: 65536 / 100%
        Monitor Source: output.monitor
        Latency: 214081 usec, configured 250000 usec
        Flags: HARDWARE HW_VOLUME_CTRL LATENCY
        Properties:
                device.icon_name = "audio-card"
                device.description = "WaveOut on Microsoft Sound Mapper"
        Formats:
                pcm
### WSL2 编译过程卡死的原因分析与解决方案 WSL2(Windows Subsystem for Linux 2)作为 Windows 上运行 Linux 的一种高效方式,其性能和兼容性得到了显著提升。然而,在某些情况下,编译过程可能会出现卡死现象。以下是可能原因及其对应的解决方法: #### 可能原因一:网络连接稳定 如果编译过程中涉及下载依赖项或更新包列表,则网络问题可能导致进程挂起。 - **解决方法** 确保网络稳定并尝试重新执行命令。可以临时切换到更稳定的网络环境来验证是否为网络引起的问题[^3]。 #### 可能原因二:磁盘 I/O 性能瓶颈 WSL2 使用虚拟化技术模拟硬件设备,当大量读写操作发生时,尤其是访问位于 NTFS 文件系统的目录时,可能出现性能下降甚至卡顿的情况。 - **优化措施** - 将源码及相关工作文件存储于 `/mnt/wslg` 或者其他专门分配给 WSL 的 ext4 格式的分区中而非直接映射至 C:\ 驱动器路径下。 - 调整 `wsl.conf` 设置减少必要的同步开销: ```bash [automount] enabled = true options = "metadata" [mount] c:/ = none bind-cwd rw,noatime,nofollow,uid=1000,gid=1000,umask=22,fmask=117 ``` #### 可能原因三:资源足 类似于 VMware 中遇到的操作系统卡死情况,内存过载也可能影响 WSL2 正常运作。 - **缓解策略** 通过修改 `.wslconfig` 来增加分配给 WSL 实例的 RAM 和 CPU 数量: ```ini [wsl2] memory=8GB # 设定最大可用内存大小,默认单位 GB processors=4 # 分配核心数 swap=2GB # 启用交换空间以应对突发需求 localhostForwarding=true # 开启本地端口转发功能以便调试服务程序 ``` 重启 WSL (`wsl --shutdown`) 让更改生效后再试一次构建流程[^4]。 #### 可能原因四:特定工具链版本冲突 同软件组件间可能存在版本匹配的现象,比如 GCC 版本较旧无法满足现代库的要求或者 Python 环境变量污染等问题都会引发异常行为。 - **排查手段** 确认所使用的开发套件均为最新稳定版;对于像 ORB-SLAM 这样的复杂工程尤其要注意第三方依赖关系表单里指定的确切标签号克隆仓库分支而是 master/main 头部提交记录[^1]。 --- ### 示例代码片段展示如何调整 wsl.conf 参数改善性能表现 编辑 ~/.profile 添加如下内容启用高性能模式: ```bash export MAKEFLAGS="-j$(nproc)" alias ls='ls --color=auto' alias ll='ls -lhF' ``` 同时创建全局范围内的配置文件 /etc/wsl.conf 如果尚未存在的话: ```bash sudo nano /etc/wsl.conf ``` 填入上述提到过的 automount 和 mount 配置节段保存退出即可应用新设定。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值