Getting to know pipewire and wireplumber a bit more, the above is actually incorrect. I still haven’t figured out why I do not have sound in calls, but at least the modem source and sink are available, listed as Analog Input and Analog Output.
I’ll paste the lot here in the hope someone sees something I’m missing, and for future reference.
[ookhoi@l5:~]$ journalctl -u dbus-:1.2-org.mobian_project.CallAudio@1.service --user -S today
May 02 12:17:08 l5 systemd[1116]: Started dbus-:1.2-org.mobian_project.CallAudio@1.service.
May 02 12:17:08 l5 callaudiod[2086]: Card 'alsa_card.platform-sound-hdmi' lacks speaker and/or earpiece port, skipping...
May 02 12:17:08 l5 callaudiod[2086]: no available input found!
=
[ookhoi@l5:~]$ wpctl status
PipeWire 'pipewire-0' [0.3.70, ookhoi@l5, cookie:3826210671]
└─ Clients:
31. pipewire [0.3.70, ookhoi@l5, pid:1417]
32. Phone Shell Volume Control [0.3.70, ookhoi@l5, pid:1390]
34. WirePlumber [0.3.70, ookhoi@l5, pid:1418]
35. WirePlumber [export] [0.3.70, ookhoi@l5, pid:1418]
72. GNOME Volume Control Media Keys [0.3.70, ookhoi@l5, pid:1723]
73. .xdg-desktop-portal-wrapped [0.3.70, ookhoi@l5, pid:1949]
74. CallAudio [0.3.70, ookhoi@l5, pid:2086]
75. wpctl [0.3.70, ookhoi@l5, pid:2970]
Audio
├─ Devices:
│ 45. Built-in Audio [alsa]
│ 46. Built-in Audio [alsa]
│ 47. Built-in Audio [alsa]
│
├─ Sinks:
│ * 56. Built-in Audio Stereo [vol: 1.00]
│ 58. Built-in Audio Stereo [vol: 1.00]
│ 59. Built-in Audio Stereo [vol: 0.97]
│
├─ Sink endpoints:
│
├─ Sources:
│ 57. Built-in Audio Stereo [vol: 1.00]
│ * 60. Built-in Audio Stereo [vol: 1.00]
│
├─ Source endpoints:
│
└─ Streams:
Video
├─ Devices:
│ 41. imx-capture [v4l2]
│ 42. imx-capture [v4l2]
│ 43. nxp,imx8mq-vpu-g1-dec [v4l2]
│ 44. nxp,imx8mq-vpu-g2-dec [v4l2]
│
├─ Sinks:
│
├─ Sink endpoints:
│
├─ Sources:
│ 48. imx-capture (V4L2)
│ 50. imx-capture (V4L2)
│
├─ Source endpoints:
│
└─ Streams:
Settings
└─ Default Configured Node Names:
0. Audio/Sink alsa_output.platform-sound.stereo-fallback
1. Audio/Source alsa_input.platform-sound.stereo-fallback
=
[ookhoi@l5:~]$ wpctl inspect 59
id 59, type PipeWire:Interface:Node
alsa.card = "1"
alsa.card_name = "Modem"
alsa.class = "generic"
alsa.device = "0"
alsa.driver_name = "snd_soc_simple_card"
alsa.id = "30030000.sai-bm818 bm818-0"
alsa.long_card_name = "Modem"
alsa.name = "30030000.sai-bm818 bm818-0"
alsa.resolution_bits = "16"
alsa.subclass = "generic-mix"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
api.alsa.card.longname = "Modem"
api.alsa.card.name = "Modem"
api.alsa.path = "hw:1"
api.alsa.pcm.card = "1"
api.alsa.pcm.stream = "playback"
audio.adapt.follower = ""
audio.channels = "2"
audio.position = "FL,FR"
card.profile.device = "3"
* client.id = "35"
clock.quantum-limit = "8192"
device.api = "alsa"
device.class = "sound"
* device.id = "47"
device.profile.description = "Stereo"
device.profile.name = "stereo-fallback"
device.routes = "1"
* factory.id = "18"
factory.mode = "merge"
factory.name = "api.alsa.pcm.sink"
library.name = "audioconvert/libspa-audioconvert"
* media.class = "Audio/Sink"
* node.description = "Built-in Audio Stereo"
node.driver = "true"
* node.name = "alsa_output.platform-sound-wwan.stereo-fallback"
* node.nick = "30030000.sai-bm818 bm818-0"
node.pause-on-idle = "false"
* object.path = "alsa:pcm:1:hw:1:playback"
* object.serial = "60"
* priority.driver = "1000"
* priority.session = "1000"
=
[ookhoi@l5:~]$ wpctl inspect 60
id 60, type PipeWire:Interface:Node
alsa.card = "1"
alsa.card_name = "Modem"
alsa.class = "generic"
alsa.device = "0"
alsa.driver_name = "snd_soc_simple_card"
alsa.id = "30030000.sai-bm818 bm818-0"
alsa.long_card_name = "Modem"
alsa.name = "30030000.sai-bm818 bm818-0"
alsa.resolution_bits = "16"
alsa.subclass = "generic-mix"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
api.alsa.card.longname = "Modem"
api.alsa.card.name = "Modem"
api.alsa.path = "hw:1"
api.alsa.pcm.card = "1"
api.alsa.pcm.stream = "capture"
audio.adapt.follower = ""
audio.channels = "2"
audio.position = "FL,FR"
card.profile.device = "2"
* client.id = "35"
clock.quantum-limit = "8192"
device.api = "alsa"
device.class = "sound"
* device.id = "47"
device.profile.description = "Stereo"
device.profile.name = "stereo-fallback"
device.routes = "1"
* factory.id = "18"
factory.mode = "split"
factory.name = "api.alsa.pcm.source"
library.name = "audioconvert/libspa-audioconvert"
* media.class = "Audio/Source"
* node.description = "Built-in Audio Stereo"
node.driver = "true"
* node.name = "alsa_input.platform-sound-wwan.stereo-fallback"
* node.nick = "30030000.sai-bm818 bm818-0"
node.pause-on-idle = "false"
* object.path = "alsa:pcm:1:hw:1:capture"
* object.serial = "61"
* priority.driver = "2000"
* priority.session = "2000"
=
[ookhoi@l5:~]$ diff -ruN 59 60
--- 59 2023-05-02 12:59:15.341980400 +0200
+++ 60 2023-05-02 12:59:19.866090761 +0200
@@ -1,4 +1,4 @@
-id 59, type PipeWire:Interface:Node
+id 60, type PipeWire:Interface:Node
alsa.card = "1"
alsa.card_name = "Modem"
alsa.class = "generic"
@@ -15,11 +15,11 @@
api.alsa.card.name = "Modem"
api.alsa.path = "hw:1"
api.alsa.pcm.card = "1"
- api.alsa.pcm.stream = "playback"
+ api.alsa.pcm.stream = "capture"
audio.adapt.follower = ""
audio.channels = "2"
audio.position = "FL,FR"
- card.profile.device = "3"
+ card.profile.device = "2"
* client.id = "35"
clock.quantum-limit = "8192"
device.api = "alsa"
@@ -29,16 +29,16 @@
device.profile.name = "stereo-fallback"
device.routes = "1"
* factory.id = "18"
- factory.mode = "merge"
- factory.name = "api.alsa.pcm.sink"
+ factory.mode = "split"
+ factory.name = "api.alsa.pcm.source"
library.name = "audioconvert/libspa-audioconvert"
- * media.class = "Audio/Sink"
+ * media.class = "Audio/Source"
* node.description = "Built-in Audio Stereo"
node.driver = "true"
- * node.name = "alsa_output.platform-sound-wwan.stereo-fallback"
+ * node.name = "alsa_input.platform-sound-wwan.stereo-fallback"
* node.nick = "30030000.sai-bm818 bm818-0"
node.pause-on-idle = "false"
- * object.path = "alsa:pcm:1:hw:1:playback"
- * object.serial = "60"
- * priority.driver = "1000"
- * priority.session = "1000"
+ * object.path = "alsa:pcm:1:hw:1:capture"
+ * object.serial = "61"
+ * priority.driver = "2000"
+ * priority.session = "2000"
=
[ookhoi@l5:~]$ pw-dump 47
{
"id": 47,
"type": "PipeWire:Interface:Device",
"version": 3,
"permissions": [ "r", "w", "x", "m" ],
"info": {
"change-mask": [ "props", "params" ],
"props": {
"alsa.card": 1,
"alsa.card_name": "Modem",
"alsa.driver_name": "snd_soc_simple_card",
"alsa.long_card_name": "Modem",
"api.acp.auto-port": false,
"api.acp.auto-profile": false,
"api.alsa.card": 1,
"api.alsa.card.longname": "Modem",
"api.alsa.card.name": "Modem",
"api.alsa.path": "hw:1",
"api.alsa.use-acp": true,
"api.dbus.ReserveDevice1": "Audio1",
"client.id": 35,
"device.api": "alsa",
"device.bus-path": "platform-sound-wwan",
"device.description": "Built-in Audio",
"device.enum.api": "udev",
"device.form-factor": "internal",
"device.icon-name": "audio-card-analog",
"device.name": "alsa_card.platform-sound-wwan",
"device.nick": "Modem",
"device.plugged.usec": 16047081,
"device.string": 1,
"device.subsystem": "sound",
"device.sysfs.path": "/devices/platform/sound-wwan/sound/card1",
"factory.id": 14,
"media.class": "Audio/Device",
"object.id": 47,
"object.path": "alsa:pcm:1",
"object.serial": 48
},
"params": {
"EnumProfile": [
{
"index": 0,
"name": "off",
"description": "Off",
"priority": 0,
"available": "yes",
"classes": [
0
]
},
{
"index": 1,
"name": "output:stereo-fallback+input:stereo-fallback",
"description": "Stereo Output + Stereo Input",
"priority": 5151,
"available": "unknown",
"classes": [
2,
[
"Audio/Source",
1,
"card.profile.devices",
[ 2 ]
],
[
"Audio/Sink",
1,
"card.profile.devices",
[ 3 ]
]
]
},
{
"index": 2,
"name": "output:stereo-fallback",
"description": "Stereo Output",
"priority": 5100,
"available": "unknown",
"classes": [
1,
[
"Audio/Sink",
1,
"card.profile.devices",
[ 3 ]
]
]
},
{
"index": 3,
"name": "input:stereo-fallback",
"description": "Stereo Input",
"priority": 51,
"available": "unknown",
"classes": [
1,
[
"Audio/Source",
1,
"card.profile.devices",
[ 2 ]
]
]
},
{
"index": 4,
"name": "pro-audio",
"description": "Pro Audio",
"priority": 1,
"available": "yes",
"classes": [
2,
[
"Audio/Source",
1,
"card.profile.devices",
[ 1 ]
],
[
"Audio/Sink",
1,
"card.profile.devices",
[ 0 ]
]
]
}
],
"Profile": [
{
"index": 1,
"name": "output:stereo-fallback+input:stereo-fallback",
"description": "Stereo Output + Stereo Input",
"priority": 5151,
"available": "unknown",
"classes": [
2,
[
"Audio/Source",
1,
"card.profile.devices",
[ 2 ]
],
[
"Audio/Sink",
1,
"card.profile.devices",
[ 3 ]
]
],
"save": false
}
],
"EnumRoute": [
{
"index": 0,
"direction": "Input",
"name": "analog-input",
"description": "Analog Input",
"priority": 10000,
"available": "unknown",
"info": [
2,
"port.type",
"analog",
"card.profile.port",
"0"
],
"profiles": [ 3, 1 ],
"devices": [ 2 ]
},
{
"index": 1,
"direction": "Output",
"name": "analog-output",
"description": "Analog Output",
"priority": 9900,
"available": "unknown",
"info": [
2,
"port.type",
"analog",
"card.profile.port",
"1"
],
"profiles": [ 2, 1 ],
"devices": [ 3 ]
}
],
"Route": [
{
"index": 0,
"direction": "Input",
"name": "analog-input",
"description": "Analog Input",
"priority": 10000,
"available": "unknown",
"info": [
4,
"port.type",
"analog",
"card.profile.port",
"0",
"route.hw-mute",
"false",
"route.hw-volume",
"false"
],
"profiles": [ 3, 1 ],
"device": 2,
"props": {
"mute": false,
"channelVolumes": [ 1.000000, 1.000000 ],
"volumeBase": 1.000000,
"volumeStep": 0.000015,
"channelMap": [ "FL", "FR" ],
"softVolumes": [ 1.000000, 1.000000 ],
"latencyOffsetNsec": 0
},
"devices": [ 2 ],
"profile": 1,
"save": true
},
{
"index": 1,
"direction": "Output",
"name": "analog-output",
"description": "Analog Output",
"priority": 9900,
"available": "unknown",
"info": [
4,
"port.type",
"analog",
"card.profile.port",
"1",
"route.hw-mute",
"false",
"route.hw-volume",
"false"
],
"profiles": [ 2, 1 ],
"device": 3,
"props": {
"mute": false,
"channelVolumes": [ 0.923096, 1.000000 ],
"volumeBase": 1.000000,
"volumeStep": 0.000015,
"channelMap": [ "FL", "FR" ],
"softVolumes": [ 0.923096, 1.000000 ],
"latencyOffsetNsec": 0
},
"devices": [ 3 ],
"profile": 1,
"save": true
}
]
}
}
}