News:

è stata rilasciata Zorin OS 17 basata su ubuntu 22.04

Menu principale

[risolto] [audio] forzare dispositivo output su xubuntu 20.04

Aperto da midnite, Martedì 19 Maggio 2020, 11:50:01

Discussione precedente - Discussione successiva

midnite

ciao a tutti, ecco un nuovo problema...
sto aggiornando un minipc (con hardware particolare che rompe le scatole) da ubuntu 16.04 a xubuntu 20.04
quando dico che l'hardware è particolare, mi riferisco al wifi (dove ho dovuto caricare a mano il modulo per farlo funzionare) e all'audio (dove bisogna blacklistare un driver).
nello specifico, la procedura per attivare l'audio, già testata su ubuntu 16.04 e funzionante anche su ubuntu 18.04 è quella di caricare il modulo corretto
echo 'snd_soc_rt5645' | sudo tee -a /etc/modules
blaklistare il driver intel
blacklist snd_hdmi_lpe_audio
riavviare, e poi selezionare il canale d'uscita corretto (speaker)

il problema su *ubuntu 20.04 è che l'uscita speaker viene vista come "unplugged" e quindi ad ogni riavvio deve essere selezionata manualmente.

questo è il risultato del comando "pacmd list-sinks" dato appena avviato
1 sink(s) available.
  * index: 0
name: <alsa_output.platform-cht-bsw-rt5645.HiFi__hw_chtrt5645__sink>
driver: <module-alsa-card.c>
flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: IDLE
suspend cause: (none)
priority: 9000
volume: front-left: 65536 / 100% / 0,00 dB,   front-right: 65536 / 100% / 0,00 dB
        balance 0,00
base volume: 65536 / 100% / 0,00 dB
volume steps: 65537
muted: no
current latency: 70,62 ms
max request: 7 KiB
max rewind: 7 KiB
monitor source: 0
sample spec: s16le 2ch 48000Hz
channel map: front-left,front-right
             Stereo
used by: 0
linked by: 1
configured latency: 40,00 ms; range is 0,50 .. 2000,00 ms
card: 0 <alsa_card.platform-cht-bsw-rt5645>
module: 7
properties:
alsa.resolution_bits = "16"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = ""
alsa.id = "1"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "0"
alsa.card = "0"
alsa.card_name = "chtrt5645"
alsa.long_card_name = "AMICorporation-Defaultstring-Defaultstring-T3MRD"
alsa.driver_name = "snd_soc_sst_cht_bsw_rt5645"
device.bus_path = "platform-cht-bsw-rt5645"
sysfs.path = "/devices/pci0000:00/808622A8:00/cht-bsw-rt5645/sound/card0"
device.form_factor = "internal"
device.string = "hw:chtrt5645"
device.buffering.buffer_size = "384000"
device.buffering.fragment_size = "192000"
device.access_mode = "mmap+timer"
device.profile.name = "HiFi: hw:chtrt5645: sink"
device.profile.description = "Headphones + Speaker"
alsa.mixer_device = "hw:chtrt5645"
device.description = "Built-in Audio Headphones + Speaker"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card"
ports:
[Out] Headphones: Headphones (priority 200, latency offset 0 usec, available: yes)
properties:

[Out] Speaker: Speaker (priority 100, latency offset 0 usec, available: no)
properties:

active port: <[Out] Headphones>

e poi subito dopo aver selezionato l'uscita funzionante
1 sink(s) available.
  * index: 0
name: <alsa_output.platform-cht-bsw-rt5645.HiFi__hw_chtrt5645__sink>
driver: <module-alsa-card.c>
flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: IDLE
suspend cause: (none)
priority: 9000
volume: front-left: 65536 / 100% / 0,00 dB,   front-right: 65536 / 100% / 0,00 dB
        balance 0,00
base volume: 65536 / 100% / 0,00 dB
volume steps: 65537
muted: no
current latency: 55,13 ms
max request: 7 KiB
max rewind: 7 KiB
monitor source: 0
sample spec: s16le 2ch 48000Hz
channel map: front-left,front-right
             Stereo
used by: 0
linked by: 1
configured latency: 40,00 ms; range is 0,50 .. 2000,00 ms
card: 0 <alsa_card.platform-cht-bsw-rt5645>
module: 7
properties:
alsa.resolution_bits = "16"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = ""
alsa.id = "1"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "0"
alsa.card = "0"
alsa.card_name = "chtrt5645"
alsa.long_card_name = "AMICorporation-Defaultstring-Defaultstring-T3MRD"
alsa.driver_name = "snd_soc_sst_cht_bsw_rt5645"
device.bus_path = "platform-cht-bsw-rt5645"
sysfs.path = "/devices/pci0000:00/808622A8:00/cht-bsw-rt5645/sound/card0"
device.form_factor = "internal"
device.string = "hw:chtrt5645"
device.buffering.buffer_size = "384000"
device.buffering.fragment_size = "192000"
device.access_mode = "mmap+timer"
device.profile.name = "HiFi: hw:chtrt5645: sink"
device.profile.description = "Headphones + Speaker"
alsa.mixer_device = "hw:chtrt5645"
device.description = "Built-in Audio Headphones + Speaker"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card"
ports:
[Out] Headphones: Headphones (priority 200, latency offset 0 usec, available: yes)
properties:

[Out] Speaker: Speaker (priority 100, latency offset 0 usec, available: no)
properties:

active port: <[Out] Speaker>


e le uniche cose che cambiano sono la "courrent latency" e la "active port" (ultima riga) ... ma essendo la porta attiva, una sottovoce dello stesso index, non saprei come forzare questa scelta.

ho già provato ad editare il file /etc/pulse/default.pa cambiando la riga
load-module module-stream-restore
in
load-module module-stream-restore restore_device=false
ma non è servito.

come posso fare per far si che gli speaker restino selezionati? (su ubuntu 16.04 e 18.04 avviene senza dover modificare nulla)

grazie.

Tony

Prova con
pactl set-sink-port alsa_output.platform-cht-bsw-rt5645.HiFi__hw_chtrt5645__sink [Out] Speaker

Linux non è solo un sistema operativo ma...
"È uno stato mentale, dove prima ti perdi e poi ti ritrovi"
(cit. Point Break).
Il mio pc.

midnite

grazie della risposta, il comando però non dà esito positivo:
È necessario specificare un nome/indice di sink e un nome di porta

però mi ha messo sulla strada giusta  :ok:
ho messo mano di nuovo al file /etc/pulse/default.pa ripristinando la riga modificata in precedenza (che ora è tornata ad essere
load-module module-stream-restore
e poi in fondo, nella sezione "Make some devices default" ho aggiunto queste tre righe
set-card-profile alsa_card.platform-cht-bsw-rt5645 HiFi
set-default-sink alsa_output.platform-cht-bsw-rt5645.HiFi__hw_chtrt5645__sink
set-sink-port alsa_output.platform-cht-bsw-rt5645.HiFi__hw_chtrt5645__sink [Out] Speaker

(l'ultima è proprio quella che mi avevi suggerito tu)

e ora al riavvio è tutto settato correttamente, e l'audio perfettamente funzionante

Tony


Linux non è solo un sistema operativo ma...
"È uno stato mentale, dove prima ti perdi e poi ti ritrovi"
(cit. Point Break).
Il mio pc.