Hello everyone,
Hello George,
I was checking the latest changes of pipewire and wireplumper on IMX6 and I encountered a strange issue. The cpu usages of wireplumber and pipewire were too high.
I had to change log.level in pipewire.conf from 2 (warning) to 4 (debug) to reduce cpu usages of wireplumber (from 75.9% ) and pipewire(from 22.1%).
Changing the log.level in pipewire.conf or wireplumber.conf from warning to debug solved the cpu usage issues and I was able to play audio with pipewiresink successfully, but I'm not sure if that is a really good solution.
Any idea about what is really missing?
I haven't changed anything in pipewire configurations and only changed 30-alsa-monitor.lua file as following to add imx6:
/etc/wireplumber/config.lua.d/30-alsa-monitor.lua:
-- ALSA monitor config file --
alsa_monitor = {}
alsa_monitor.properties = {
["alsa.jack-device"] = false,
["alsa.reserve"] = false,
}
alsa_monitor.rules = {
-- disable ACP (PulseAudio-like profiles)
{
matches = {
{
{ "device.name", "matches", "alsa_card.*" },
},
},
apply_properties = {
["api.alsa.use-acp"] = false,
},
},
--
-- Bump priority of well-known output devices
-- Higher priority means it gets selected as the default if it's present
--
-- USB card
{
matches = {
{
{ "node.name", "matches", "alsa_output.*" },
{ "api.alsa.card.driver", "=", "USB-Audio" },
},
},
apply_properties = {
["priority.driver"] = 1300,
["priority.session"] = 1300,
}
},
-- fiberdyne amp
{
matches = {
{
{ "node.name", "matches", "alsa_output.*" },
{ "api.alsa.card.id", "=", "ep016ch" },
},
},
apply_properties = {
["priority.driver"] = 1200,
["priority.session"] = 1200,
}
},
-- well-known internal devices
{
matches = {
{
-- ak4613
{ "node.name", "matches", "alsa_output.*" },
{ "api.alsa.card.id", "=", "ak4613" },
{ "api.alsa.pcm.device", "=", "0" },
},
{
-- imx6solo
{ "node.name", "matches", "alsa_output.*" },
{ "api.alsa.card.id", "=", "tlv320aic3106" },
},
{
-- dra7xx
{ "node.name", "matches", "alsa_output.*" },
{ "api.alsa.card.id", "=", "DRA7xx-EVM" },
},
{
-- imx8mq
{ "node.name", "matches", "alsa_output.*" },
{ "api.alsa.card.id", "=", "wm8524audio" },
},
{
-- rcarsound
{ "node.name", "matches", "alsa_output.*" },
{ "api.alsa.card.id", "=", "rcarsound" },
{ "api.alsa.pcm.device", "=", "0" },
},
{
-- rpi3
{ "node.name", "matches", "alsa_output.*" },
{ "api.alsa.pcm.name", "=", "bcm2835 ALSA" },
},
},
apply_properties = {
["priority.driver"] = 1100,
["priority.session"] = 1100,
}
},
--
-- Same for input devices
--
-- USB card
{
matches = {
{
{ "node.name", "matches", "alsa_input.*" },
{ "api.alsa.card.driver", "=", "USB-Audio" },
},
},
apply_properties = {
["priority.driver"] = 2300,
["priority.session"] = 2300,
}
},
-- microchip mic
{
matches = {
{
{ "node.name", "matches", "alsa_input.*" },
{ "api.alsa.card.id", "=", "ep811ch" },
},
},
apply_properties = {
["priority.driver"] = 2200,
["priority.session"] = 2200,
}
},
-- well-known internal devices
{
matches = {
{
-- ak4613
{ "node.name", "matches", "alsa_input.*" },
{ "api.alsa.card.id", "=", "ak4613" },
},
{
-- dra7xx
{ "node.name", "matches", "alsa_input.*" },
{ "api.alsa.card.id", "=", "DRA7xx-EVM" },
},
{
-- imx8mq
{ "node.name", "matches", "alsa_input.*" },
{ "api.alsa.card.id", "=", "wm8524audio" },
},
{
-- rcarsound
{ "node.name", "matches", "alsa_input.*" },
{ "api.alsa.card.id", "=", "rcarsound" },
},
},
apply_properties = {
["priority.driver"] = 2100,
["priority.session"] = 2100,
}
},
}
function alsa_monitor.enable()
load_monitor("alsa", {
properties = alsa_monitor.properties,
rules = alsa_monitor.rules,
})
end
alsa_monitor = {}
alsa_monitor.properties = {
["alsa.jack-device"] = false,
["alsa.reserve"] = false,
}
alsa_monitor.rules = {
-- disable ACP (PulseAudio-like profiles)
{
matches = {
{
{ "device.name", "matches", "alsa_card.*" },
},
},
apply_properties = {
["api.alsa.use-acp"] = false,
},
},
--
-- Bump priority of well-known output devices
-- Higher priority means it gets selected as the default if it's present
--
-- USB card
{
matches = {
{
{ "node.name", "matches", "alsa_output.*" },
{ "api.alsa.card.driver", "=", "USB-Audio" },
},
},
apply_properties = {
["priority.driver"] = 1300,
["priority.session"] = 1300,
}
},
-- fiberdyne amp
{
matches = {
{
{ "node.name", "matches", "alsa_output.*" },
{ "api.alsa.card.id", "=", "ep016ch" },
},
},
apply_properties = {
["priority.driver"] = 1200,
["priority.session"] = 1200,
}
},
-- well-known internal devices
{
matches = {
{
-- ak4613
{ "node.name", "matches", "alsa_output.*" },
{ "api.alsa.card.id", "=", "ak4613" },
{ "api.alsa.pcm.device", "=", "0" },
},
{
-- imx6solo
{ "node.name", "matches", "alsa_output.*" },
{ "api.alsa.card.id", "=", "tlv320aic3106" },
},
{
-- dra7xx
{ "node.name", "matches", "alsa_output.*" },
{ "api.alsa.card.id", "=", "DRA7xx-EVM" },
},
{
-- imx8mq
{ "node.name", "matches", "alsa_output.*" },
{ "api.alsa.card.id", "=", "wm8524audio" },
},
{
-- rcarsound
{ "node.name", "matches", "alsa_output.*" },
{ "api.alsa.card.id", "=", "rcarsound" },
{ "api.alsa.pcm.device", "=", "0" },
},
{
-- rpi3
{ "node.name", "matches", "alsa_output.*" },
{ "api.alsa.pcm.name", "=", "bcm2835 ALSA" },
},
},
apply_properties = {
["priority.driver"] = 1100,
["priority.session"] = 1100,
}
},
--
-- Same for input devices
--
-- USB card
{
matches = {
{
{ "node.name", "matches", "alsa_input.*" },
{ "api.alsa.card.driver", "=", "USB-Audio" },
},
},
apply_properties = {
["priority.driver"] = 2300,
["priority.session"] = 2300,
}
},
-- microchip mic
{
matches = {
{
{ "node.name", "matches", "alsa_input.*" },
{ "api.alsa.card.id", "=", "ep811ch" },
},
},
apply_properties = {
["priority.driver"] = 2200,
["priority.session"] = 2200,
}
},
-- well-known internal devices
{
matches = {
{
-- ak4613
{ "node.name", "matches", "alsa_input.*" },
{ "api.alsa.card.id", "=", "ak4613" },
},
{
-- dra7xx
{ "node.name", "matches", "alsa_input.*" },
{ "api.alsa.card.id", "=", "DRA7xx-EVM" },
},
{
-- imx8mq
{ "node.name", "matches", "alsa_input.*" },
{ "api.alsa.card.id", "=", "wm8524audio" },
},
{
-- rcarsound
{ "node.name", "matches", "alsa_input.*" },
{ "api.alsa.card.id", "=", "rcarsound" },
},
},
apply_properties = {
["priority.driver"] = 2100,
["priority.session"] = 2100,
}
},
}
function alsa_monitor.enable()
load_monitor("alsa", {
properties = alsa_monitor.properties,
rules = alsa_monitor.rules,
})
end
--
Best regards
Ehsan
_._,_._,_
Links:
You receive all messages sent to this group.
View/Reply Online (#9194) | Reply To Group | Reply To Sender | Mute This Topic | New Topic
Your Subscription | Contact Group Owner | Unsubscribe [list-automotive-discussions82@xxxxxxxxxxx]
_._,_._,_