分类: 技术

  • Pipewire 多设备输出

    今天想和朋友一起听歌,把ta的蓝牙耳机连到电脑上后发现 KDE 界面只能设置一个音频输出端口。想起来上次 Steam Link 的经验,决定使用 Pipewire 实现这个功能。

    参考资料:
    https://xzos.net/steam-for-linux-no-sound-when-streaming/
    https://bbs.archlinux.org/viewtopic.php?pid=1986792#p1986792
    1. 查找音频设备
    $ pw-link -o
    Midi-Bridge:Midi Through:(capture_0) Midi Through Port-0
    v4l2_input.pci-0000_00_14.0-usb-0_6_1.0:out_0
    alsa_output.pci-0000_00_1f.3.analog-stereo:monitor_FL
    alsa_output.pci-0000_00_1f.3.analog-stereo:monitor_FR
    alsa_input.pci-0000_00_1f.3.analog-stereo:capture_FL
    alsa_input.pci-0000_00_1f.3.analog-stereo:capture_FR
    easyeffects_sink:monitor_FL
    easyeffects_sink:monitor_FR
    easyeffects_source:capture_FL
    $ pw-link -o
    Midi-Bridge:Midi Through:(capture_0) Midi Through Port-0
    v4l2_input.pci-0000_00_14.0-usb-0_6_1.0:out_0
    alsa_output.pci-0000_00_1f.3.analog-stereo:monitor_FL
    alsa_output.pci-0000_00_1f.3.analog-stereo:monitor_FR
    alsa_input.pci-0000_00_1f.3.analog-stereo:capture_FL
    alsa_input.pci-0000_00_1f.3.analog-stereo:capture_FR
    easyeffects_sink:monitor_FL
    easyeffects_sink:monitor_FR
    easyeffects_source:capture_FL
    easyeffects_source:capture_FR
    ee_soe_output_level:output_FL
    ee_soe_output_level:output_FR
    ee_soe_spectrum:output_FL
    ee_soe_spectrum:output_FR
    ee_soe_equalizer:output_FL
    ee_soe_equalizer:output_FR
    ee_soe_convolver:output_FL
    ee_soe_convolver:output_FR
    ee_sie_output_level:output_FL
    ee_sie_output_level:output_FR
    ee_sie_spectrum:output_FL
    ee_sie_spectrum:output_FR
    Audacious:output_FL
    Audacious:output_FR
    steam:output_FL
    steam:output_FR
    bluez_output.84_AB_26_A6_8A_6A.a2dp-sink:monitor_FL
    bluez_output.84_AB_26_A6_8A_6A.a2dp-sink:monitor_FReasyeffects_source:capture_FR
    ee_soe_output_level:output_FL
    ee_soe_output_level:output_FR
    ee_soe_spectrum:output_FL
    ee_soe_spectrum:output_FR
    ee_soe_equalizer:output_FL
    ee_soe_equalizer:output_FR
    ee_soe_convolver:output_FL
    ee_soe_convolver:output_FR
    ee_sie_output_level:output_FL
    ee_sie_output_level:output_FR
    ee_sie_spectrum:output_FL
    ee_sie_spectrum:output_FR
    Audacious:output_FL
    Audacious:output_FR
    steam:output_FL
    steam:output_FR
    bluez_output.84_AB_26_A6_8A_6A.a2dp-sink:monitor_FL
    bluez_output.84_AB_26_A6_8A_6A.a2dp-sink:monitor_FR

    确认希望使用的音频设备为 alsa_output.pci-0000_00_1f.3.analog-stereobluez_output.84_AB_26_A6_8A_6A.a2dp-sink

    2. 连接创建虚拟设备

    $ pactl load-module module-null-sink media.class=Audio/Sink sink_name=Simultaneous channel_map=stereo
    536870913  # 模块 ID,不用记

    3. 连接设备

    # 顺序不影响结果
    $ pw-link Simultaneous:monitor_FL bluez_output.84_AB_26_A6_8A_6A.a2dp-sink:playback_FL
    $ pw-link Simultaneous:monitor_FR bluez_output.84_AB_26_A6_8A_6A.a2dp-sink:playback_FR
    $ pw-link Simultaneous:monitor_FL alsa_output.pci-0000_00_1f.3.analog-stereo:playback_FL
    $ pw-link Simultaneous:monitor_FR alsa_output.pci-0000_00_1f.3.analog-stereo:playback_FR

    4. 去 KDE 设置里选择

    KDE 音频设置界面

    5. 卸载模块

    用完后可以卸载模块

    $ pactl unload-module module-null-sink
  • DP-3T 保护隐私的“健康码”

    人们总是选择并相信符合直觉的解释与方案,这导致了平庸

    DP-3T,一个保护隐私的接触者追踪软件,就好象健康码

    健康码,从全知全能的视角出发来“保护”每个人,这几乎可以预测一定会发生老大哥事件。

    而另一方面,从最小知识出发,基于随机 ID 与地理位置的 P2P(蓝牙)则避免了这些。

    这不符合人类作为个体的直觉,但加密货币的出现证明了这种实现的基础。

    更进一步的,参考加密货币的“价值网络”与“行为创造价值”的“权益证明”。我认为,我们可以引入加密货币的代币奖励机制,避免用户重置 ID。同时,用区块记录的方式计时与发放时间积分,保证用户手机尽力在线(除不可抗力导致的断网)与14天的检测期。

  • Steam for Linux no sound when streaming

    When I use Steam Link to play my game which is running in my ArchLinux PC, I find steam only catch microphone and ignore the sound output of PC. (Fixed on my ArchLinux PC at 2022-09-15)

    Github Issue: [Remote Play] No sound when streaming #6606
    (更多…)
  • 修改一个历史提交的父提交

    在半年前,合并热修复分支时,合并方向弄反了,导致热修复分支成为了新的主分支。但一直没有什么办法,今天重拾起来,尝试去修复。

    (更多…)
  • ArchLinux 配置指南

    这是一个导航页面,它记录了我的配置过程,你可以按照页面的顺序配置,也可以只搜寻信息。

    (更多…)
  • 使用 Linux 游玩尼尔机械纪元

    这里以 steam平台上运行的 尼尔机械纪元 为例,硬件平台为 Intel + Nvidia

    一般来说,大部分 Windows 游戏都可以通过 wine 运行。
    (更多…)
  • Pacman 通用配置

    配置文件解释参考:Arch manual pages

    你可以直接复制并替换你的 pacman.conf 文件(注意备份)
    (更多…)
  • Python3 下载并解析 xml.gz 文件

    问题场景:需要从网上获取一个以 GZip 格式压缩的 xml 文件,并使用 Python3 解析。

    前提需求:希望直接解析 raw 数据而不是先保存为文件。

    一般处理方法:先保存为文件,再通过 Python3 的 gzip 库 打开文件解析。

    (更多…)
🌍 Language