我刚刚从 Ubuntu 20.04 LTS 升级到 Ubuntu 23.04(先升级到 22.04,然后升级到 23.04)。我相信后者使用了 PulseAudio,而我的笔记本电脑(Lenovo X1 Carbon Gen 7)上的环绕声/低音炮似乎都运行良好。
我已经升级到 Ubuntu 23.04,我认为它使用了 PipeWire,音频听起来很刺耳。我曾经pw-dump
检查过设置,可以找到其输出(针对相关音频设备)这里。
{
"id": 50,
"type": "PipeWire:Interface:Node",
"version": 3,
"permissions": [ "r", "w", "x", "m" ],
"info": {
"max-input-ports": 65,
"max-output-ports": 0,
"change-mask": [ "input-ports", "output-ports", "state", "props", "params" ],
"n-input-ports": 2,
"n-output-ports": 2,
"state": "suspended",
"error": null,
"props": {
"alsa.card": 0,
"alsa.card_name": "sof-hda-dsp",
"alsa.class": "generic",
"alsa.device": 0,
"alsa.driver_name": "snd_soc_skl_hda_dsp",
"alsa.id": "HDA Analog (*)",
"alsa.long_card_name": "LENOVO-20QDCTO1WW-ThinkPadX1Carbon7th",
"alsa.mixer_device": "_ucm0001.hw:sofhdadsp",
"alsa.name": "",
"alsa.resolution_bits": 16,
"alsa.subclass": "generic-mix",
"alsa.subdevice": 0,
"alsa.subdevice_name": "subdevice #0",
"api.alsa.card.longname": "LENOVO-20QDCTO1WW-ThinkPadX1Carbon7th",
"api.alsa.card.name": "sof-hda-dsp",
"api.alsa.headroom": 0,
"api.alsa.open.ucm": true,
"api.alsa.path": "hw:sofhdadsp",
"api.alsa.pcm.card": 0,
"api.alsa.pcm.stream": "playback",
"api.alsa.period-num": 8,
"api.alsa.period-size": 1024,
"audio.adapt.follower": "",
"audio.channels": 2,
"audio.position": "FL,FR",
"card.profile.device": 3,
"client.id": 32,
"clock.quantum-limit": 8192,
"device.api": "alsa",
"device.class": "sound",
"device.id": 42,
"device.profile.description": "Speaker + Headphones",
"device.profile.name": "HiFi: hw:sofhdadsp: sink",
"device.routes": 2,
"factory.id": 18,
"factory.mode": "merge",
"factory.name": "api.alsa.pcm.sink",
"library.name": "audioconvert/libspa-audioconvert",
"media.class": "Audio/Sink",
"node.description": "Cannon Point-LP High Definition Audio Controller Speaker + Headphones",
"node.driver": true,
"node.max-latency": "4096/48000",
"node.name": "alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__sink",
"node.nick": "Speaker + Headphones",
"node.pause-on-idle": false,
"object.id": 50,
"object.path": "alsa:pcm:0:hw:sofhdadsp:playback",
"object.serial": 50,
"priority.driver": 1000,
"priority.session": 1000
},
"params": {
"EnumFormat": [
{
"mediaType": "audio",
"mediaSubtype": "raw",
"format": {
"default": "S32LE",
"alt1": "S32LE",
"alt2": "S24_32LE",
"alt3": "S16LE"
},
"rate": 48000,
"channels": 2,
"position": [ "FL", "FR" ]
}
],
"PropInfo": [
{
"id": "volume",
"description": "Volume",
"type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 }
},
{
"id": "mute",
"description": "Mute",
"type": {
"default": false,
"alt1": false,
"alt2": true
}
},
{
"id": "channelVolumes",
"description": "Channel Volumes",
"type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 },
"container": "Array"
},
{
"id": "channelMap",
"description": "Channel Map",
"type": "",
"container": "Array"
},
{
"id": "monitorMute",
"description": "Monitor Mute",
"type": {
"default": false,
"alt1": false,
"alt2": true
}
},
{
"id": "monitorVolumes",
"description": "Monitor Volumes",
"type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 },
"container": "Array"
},
{
"id": "softMute",
"description": "Soft Mute",
"type": {
"default": false,
"alt1": false,
"alt2": true
}
},
{
"id": "softVolumes",
"description": "Soft Volumes",
"type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 },
"container": "Array"
},
{
"name": "monitor.channel-volumes",
"description": "Monitor channel volume",
"type": {
"default": false,
"alt1": false,
"alt2": true
},
"params": true
},
{
"name": "channelmix.disable",
"description": "Disable Channel mixing",
"type": {
"default": false,
"alt1": false,
"alt2": true
},
"params": true
},
{
"name": "channelmix.normalize",
"description": "Normalize Volumes",
"type": {
"default": false,
"alt1": false,
"alt2": true
},
"params": true
},
{
"name": "channelmix.mix-lfe",
"description": "Mix LFE into channels",
"type": {
"default": true,
"alt1": true,
"alt2": false
},
"params": true
},
{
"name": "channelmix.upmix",
"description": "Enable upmixing",
"type": {
"default": true,
"alt1": true,
"alt2": false
},
"params": true
},
{
"name": "channelmix.lfe-cutoff",
"description": "LFE cutoff frequency",
"type": { "default": 150.000000, "min": 0.000000, "max": 1000.000000 },
"params": true
},
{
"name": "channelmix.fc-cutoff",
"description": "FC cutoff frequency (Hz)",
"type": { "default": 12000.000000, "min": 0.000000, "max": 48000.000000 },
"params": true
},
{
"name": "channelmix.rear-delay",
"description": "Rear channels delay (ms)",
"type": { "default": 12.000000, "min": 0.000000, "max": 1000.000000 },
"params": true
},
{
"name": "channelmix.stereo-widen",
"description": "Stereo widen",
"type": { "default": 0.000000, "min": 0.000000, "max": 1.000000 },
"params": true
},
{
"name": "channelmix.hilbert-taps",
"description": "Taps for phase shift of rear",
"type": { "default": 0, "min": 0, "max": 255 },
"params": true
},
{
"name": "channelmix.upmix-method",
"description": "Upmix method to use",
"type": "psd",
"params": true,
"labels": [
"none",
"Disabled",
"simple",
"Simple upmixing",
"psd",
"Passive Surround Decoding"
]
},
{
"id": "rate",
"description": "Rate scaler",
"type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 }
},
{
"id": "quality",
"name": "resample.quality",
"description": "Resample Quality",
"type": { "default": 4, "min": 0, "max": 14 },
"params": true
},
{
"name": "resample.disable",
"description": "Disable Resampling",
"type": {
"default": false,
"alt1": false,
"alt2": true
},
"params": true
},
{
"name": "dither.noise",
"description": "Add noise bits",
"type": { "default": 0, "min": 0, "max": 16 },
"params": true
},
{
"name": "dither.method",
"description": "The dithering method",
"type": "none",
"params": true,
"labels": [
"none",
"Disabled",
"rectangular",
"Rectangular dithering",
"triangular",
"Triangular dithering",
"triangular-hf",
"Sloped Triangular dithering",
"wannamaker3",
"Wannamaker 3 dithering",
"shaped5",
"Lipshitz 5 dithering"
]
},
{
"id": "device",
"name": "api.alsa.path",
"description": "The ALSA device",
"type": "hw:sofhdadsp"
},
{
"id": "deviceName",
"description": "The ALSA device name",
"type": ""
},
{
"id": "cardName",
"description": "The ALSA card name",
"type": ""
},
{
"id": "latencyOffsetNsec",
"description": "Latency offset (ns)",
"type": { "default": 0, "min": 0, "max": 2000000000 }
},
{
"name": "audio.channels",
"description": "Audio Channels",
"type": 2,
"params": true
},
{
"name": "audio.rate",
"description": "Audio Rate",
"type": 0,
"params": true
},
{
"name": "audio.format",
"description": "Audio Format",
"type": "UNKNOWN",
"params": true
},
{
"name": "audio.position",
"description": "Audio Position",
"type": "[ FL, FR ]",
"params": true
},
{
"name": "audio.allowed-rates",
"description": "Audio Allowed Rates",
"type": "[ ]",
"params": true
},
{
"name": "api.alsa.period-size",
"description": "Period Size",
"type": { "default": 0, "min": 0, "max": 8192 },
"params": true
},
{
"name": "api.alsa.period-num",
"description": "Number of Periods",
"type": { "default": 0, "min": 0, "max": 1024 },
"params": true
},
{
"name": "api.alsa.headroom",
"description": "Headroom",
"type": { "default": 0, "min": 0, "max": 8192 },
"params": true
},
{
"name": "api.alsa.start-delay",
"description": "Start Delay",
"type": { "default": 0, "min": 0, "max": 8192 },
"params": true
},
{
"name": "api.alsa.disable-mmap",
"description": "Disable MMAP",
"type": {
"default": false,
"alt1": false,
"alt2": true
},
"params": true
},
{
"name": "api.alsa.disable-batch",
"description": "Disable Batch",
"type": {
"default": false,
"alt1": false,
"alt2": true
},
"params": true
},
{
"name": "api.alsa.use-chmap",
"description": "Use the driver channelmap",
"type": {
"default": false,
"alt1": false,
"alt2": true
},
"params": true
},
{
"name": "api.alsa.multi-rate",
"description": "Support multiple rates",
"type": {
"default": true,
"alt1": true,
"alt2": false
},
"params": true
},
{
"name": "latency.internal.rate",
"description": "Internal latency in samples",
"type": { "default": 0, "min": 0, "max": 65536 },
"params": true
},
{
"name": "latency.internal.ns",
"description": "Internal latency in nanoseconds",
"type": { "default": 0, "min": 0, "max": 2000000000 },
"params": true
},
{
"name": "clock.name",
"description": "The name of the clock",
"type": "api.alsa.p-0",
"params": true
}
],
"Props": [
{
"volume": 1.000000,
"mute": false,
"channelVolumes": [ 0.547452, 0.547452 ],
"channelMap": [ "FL", "FR" ],
"softMute": false,
"softVolumes": [ 0.919066, 0.919066 ],
"monitorMute": false,
"monitorVolumes": [ 1.000000, 1.000000 ],
"params": [
"monitor.channel-volumes",
false,
"channelmix.disable",
false,
"channelmix.normalize",
false,
"channelmix.mix-lfe",
true,
"channelmix.upmix",
true,
"channelmix.lfe-cutoff",
150.000000,
"channelmix.fc-cutoff",
12000.000000,
"channelmix.rear-delay",
12.000000,
"channelmix.stereo-widen",
0.000000,
"channelmix.hilbert-taps",
0,
"channelmix.upmix-method",
"psd",
"resample.quality",
4,
"resample.disable",
false,
"dither.noise",
0,
"dither.method",
"none"
]
},
{
"device": "hw:sofhdadsp",
"deviceName": "",
"cardName": "",
"latencyOffsetNsec": 0,
"params": [
"audio.channels",
2,
"audio.rate",
0,
"audio.format",
"UNKNOWN",
"audio.position",
"[ FL, FR ]",
"audio.allowed-rates",
"[ ]",
"api.alsa.period-size",
0,
"api.alsa.period-num",
0,
"api.alsa.headroom",
0,
"api.alsa.start-delay",
0,
"api.alsa.disable-mmap",
false,
"api.alsa.disable-batch",
false,
"api.alsa.use-chmap",
false,
"api.alsa.multi-rate",
true,
"latency.internal.rate",
0,
"latency.internal.ns",
0,
"clock.name",
"api.alsa.p-0"
]
}
],
"Format": [ ],
"EnumPortConfig": [
{
"direction": "Input",
"mode": {
"default": "none",
"alt1": "none",
"alt2": "dsp",
"alt3": "convert"
},
"monitor": {
"default": false,
"alt1": false,
"alt2": true
},
"control": {
"default": false,
"alt1": false,
"alt2": true
}
}
],
"PortConfig": [
{
"direction": "Input",
"mode": "dsp",
"monitor": true,
"control": false,
"format": {
"mediaType": "audio",
"mediaSubtype": "raw",
"format": "F32P",
"channels": 2,
"position": [ "FL", "FR" ]
}
}
],
"Latency": [
{
"direction": "Input",
"minQuantum": 1.000000,
"maxQuantum": 1.000000,
"minRate": 0,
"maxRate": 0,
"minNs": 0,
"maxNs": 0
},
{
"direction": "Output",
"minQuantum": 0.000000,
"maxQuantum": 0.000000,
"minRate": 0,
"maxRate": 0,
"minNs": 0,
"maxNs": 0
}
],
"ProcessLatency": [
{
"quantum": 0.000000,
"rate": 0,
"ns": 0
}
]
}
}
}
看起来只使用了两个通道,即前面的两个通道。
我曾经speaker-test -c 6
测试过所有六个扬声器确实可以工作,而且确实如此。我只需要一种方法来默认启用它们。