Corrigindo Problemas de Áudio - Positivo Cxx

Senhores,

Meu notebook é um Positivo C14 e este apresenta inicialmente alguns problemas de compatibilidade com GNU/Linux. Primeiro que neste modelo, na variante com Windows 11, pelo visto o GRUB é bloqueado via BIOS, não importa as configurações feitas no UEFI, nenhum Linux com GRUB será carregado (mesmo se diretamente usando ShellEFI por exemplo).

Para contornar esta questão inicial, consegui apenas usando o Solus OS,, o único que mantém o Secure Boot e é aceito sem passos extras. Pelo que já testei, também é possível com BSDs e o Arch Linux se usar o Bootstrap.

Com o SO instalado, restam dois problemas, este notebook usa o codec ES8336 e é bastante limitado, mesmo com o Kernel mais recente, e como podem ver neste link, dependendo da configuração do seu computador, algumas funcionalidades não estarão disponíveis por falta de suporte. Meu notebook usa a plataforma GeminiLake, usando o comando alsa-info.sh, temos:

/sys/bus/acpi/devices/ESSX8326:00/status 15

Por padrão, o auto-falante e microfone do notebook não funcionam, assim como o som do HDMI. Para resumir, consegui contornar os 3 problemas, da seguinte forma:

  1. Crie um arquivo chamado sound.conf (por exemplo) na pasta /etc/modproble.d, caso esta já não exista, pode criar sem medo;
  2. No arquivo sound.conf, coloque: options snd_soc_sof_es8336 quirk=0x40. Servirá para informar para o sistema que a lógica do conector P2/alto-falante do sistema está invertida.
  3. Muito provável que já esteja instalado o UCM2 do Alsa, caso não esteja, instale usando o gerenciador de pacotes de seu SO;
  4. Na pasta /usr/share/alsa/ucm2/Intel/sof-essx8336/, faça backup dos arquivos e troque o arquivo HiFi.conf para o texto abaixo:
SectionVerb {
	EnableSequence [
		# Setup funcional Positivo C14
	]
}

SectionDevice."Mic" {
		Comment "Analog Microphone"

		EnableSequence [
			cset "name='Internal Mic Switch' on"
			cset "name='Headset Mic Switch' on"
		]

		DisableSequence [

				]

		Value {
			CapturePriority 100
			CapturePCM "hw:${CardId}"
			CaptureMixerElem "ADC PGA Gain"
			CaptureMasterElem "ADC"
		}
}

SectionDevice."Speaker" {
	Comment "Speakers"

	ConflictingDevice [
		"Headphones"
	]

	EnableSequence [
		cset "name='Speaker Switch' on"
		cset "name='Differential Mux' lin1-rin1"
	]

	DisableSequence [
		cset "name='Speaker Switch' off"
		cset "name='Differential Mux' lin2-rin2"
	]
	Value {
		PlaybackPriority 100
		PlaybackPCM "hw:${CardId}"
		# The es8316 only has a HP-amp which is muxed to the speaker
		# or to the headpones output
		PlaybackMixerElem "Headphone Mixer"
		PlaybackMasterElem "DAC"
	}
}

SectionDevice."Headphones" {
	Comment "Headphones"

	ConflictingDevice [
		"Speaker"
	]
	
	EnableSequence [
                cset "name='Headset Mic Switch' on"
                cset "name='Speaker Switch' off"
                cset "name='Differential Mux' lin2-rin2"
        ]
        
        DisableSequence [
		cset "name='Differential Mux' lin1-rin1"
	]

	Value {
		PlaybackPriority 300
		PlaybackPCM "hw:${CardId}"
		PlaybackMixerElem "Headphone Mixer"
		PlaybackMasterElem "DAC"
		JackControl "Headphone Jack"
		JackHWMute "Speaker"
	}
}

Include.hdmi.File "/Intel/sof-essx8336/Hdmi.conf"
  1. Execute o comando alsaucm reload e verifique se não retorna nenhum erro;
  2. Reinicie o computador.

Se algo não funcionar, para entender as possíveis causas, verifique:

  • alsa-info.sh;
  • systemctl --user status wireplumber.service

Pode compartilhar aqui que tentamos ajudar.

3 curtidas

rapaz, tenho muitos anos no pinguim, sempre resolvendo problemas de compatibilidade de modo que me acostumei a me virar sem pedir ajuda. mas este pestilento, fedidento, miserento, gosmento, nojento, fumiguento de som 00:0e.0 Multimedia audio controller: Intel Corporation Celeron/Pentium Silver Processor High Definition Audio (rev 06)tá me tirando a paciência. rsrsrs

Segui seus passos no intel C15 e, depis de acrescentar a opção do módulo, tiver de reiniciar o solus OS, abrir o alsamixer e ativar speaker, headphone etc; só depois editar o HiFi e recarregar o alsaucm.

Tudo resolveu-se, aparentemente. a inversão acabou. Tá tudo nos conformes… menos o início do som, que tem um lag quando ligo o rádio. começa beeeeeeem baixinho e depois vai subindo, subindo, subindo até chegar no volume que eu quero.

de vez em quando o som some e tenho de colocar e retirar o fone de ouvido para voltar ao normal. a barra de som não funciona com o widget de rádio, somente a do próprio (plasmashell na foto):

mas é assim mesmo que a gente vive no pinguim. nada é 100% o tempo todo. se não fosse esse problem achato do som, taria 100%. o nobinho é bom e dá pro gasto normal de navegar na internet e editar textos.

tá resolvido uns 80% e agora é tentar descobrir como solucionar o resto. :stuck_out_tongue_winking_eye:

o meu eu mudei o kernel no meu notebook positivo e resolveu tente mudar o kernel talvez resolva pra voce tambem mas antes faça backup antes de fazer qualquer alteração no meu notebook eu coloquei uma versão mais antiga do kernel e resolveu e nunca mais tive esse problema e quando vc instalar outro kernel antes da tela de carregamento do linux pressione a tecla shift até aparecer essa tela e de enter no advanced options e de enter denovo no kernel que vc instalou mas não remova o kernel atual pra evitar problemas e assista esse video do diolinux que explica melhor que eu tambem tem como fazer pelo terminal mas precisa mais de atenção espero que ter ajudado


Software de hardware no Linux ainda e “roleta russa”
Tem horas que e 100% funcional e outros 100% problemático kkkk
Eu quase nunca tive problemas com Linux ou nada que impede 100% kkkk
No meu hoje já tive problemas com som picando e leves travamentos no software, nas janelas não dá o mesmo problema, mas vai dá sorte kkkkk

uso o solus os. não tem como mudar o kernel para o mais antigo.

eu raríssimas vezes tenho problema com hardware no pinguim. mas esse audio da intel foi impactante até agora.

1 curtida

Que bom que ajudou, mas se possível, compartilhe seu alsa-info e o status do wireplumber pelo comando que coloquei acima.

@Jessey nesse caso, a culpa não é do Kernel, felizmente o problema é mais alto nível. Acho que posso falar por mim e pleo @acvsilva , eu tentei até compilando do zero com o Gentoo e o problema no final das contas era relativamente mais simples de se resolver.

entendi qual era o problema ? o meu era o kernel mesmo

Um detalhe importante, secureboot é inútil fora de corporações inclusive pode causar boot loop usando o recurso de enrolar chaves, inclusive a única forma de ter alguma segurança com Secure Boot é gerar as próprias chaves reassinar o sistema operacional e substituir as chaves que já vem no dispositivo

As chaves padrão já foram “quebradas” ou seja usadas para assinar malware, vários rootkits foram assinados com as chaves genéricas então atualmente a menos que a pessoa faça o enrolamento de chaves você basicamente teve toda essa dor de cabeça atoa

Correto, eu mencionei este fato apenas porque testei tantas (e mais tantas) distribuições diferentes nesse notebook que todos os dados eu estava anotando.

De qualquer forma, realmente, não tem muito ganho em uso doméstico.

Acredito que o problema esteja no arquivo HiFi.conf mesmo, modifiquei ele novamente, porque percebi hoje que em alguns cenários o som ficava apenas em 100%, obrigando ter que alterar o som de cada aplicativo exclusivamente, este aqui corrigiu tudo que testei, veja no seu computador e me fale,

SectionVerb {
	EnableSequence [
		# Setup funcional Positivo C14
	]
}

SectionDevice."Mic" {
		Comment "Analog Microphone"

		EnableSequence [
			cset "name='Internal Mic Switch' on"
			cset "name='Headset Mic Switch' on"
		]

		DisableSequence [

				]

		Value {
			CapturePriority 100
			CapturePCM "hw:${CardId}"
			CaptureMixerElem "ADC PGA Gain"
			CaptureMasterElem "ADC"
		}
}

#SectionDevice."Speaker" {
#	Comment "Speakers"
#
#	ConflictingDevice [
#		"Headphones"
#	]
#
#	EnableSequence [
#		cset "name='Speaker Switch' on"
#		cset "name='Differential Mux' lin1-rin1"
#	]
#
#	DisableSequence [
#		cset "name='Speaker Switch' off"
#		cset "name='Differential Mux' lin2-rin2"
#	]
#	Value {
#		PlaybackPriority 100
#		PlaybackPCM "hw:${CardId}"
		# The es8316 only has a HP-amp which is muxed to the speaker
		# or to the headpones output
#		PlaybackMixerElem "Headphone Mixer"
#		PlaybackMasterElem "DAC"
#	}
#}

SectionDevice."Speaker" {
	Comment "Speakers"

	ConflictingDevice [
		"Headphones"
	]

	EnableSequence [
		cset "name='Speaker Switch' on"
	]

	DisableSequence [
		cset "name='Speaker Switch' off"
	]

	Value {
		PlaybackPriority 100
		PlaybackPCM "hw:${CardId}"
		# The es8316 only has a HP-amp which is muxed to the speaker
		# or to the headpones output
		PlaybackMixerElem "Headphone Mixer"
		PlaybackMasterElem "DAC"
	}
}

#SectionDevice."Headphones" {
#	Comment "Headphones"
#
# 	ConflictingDevice [
# 		"Speaker"
# 	]
#
# 	EnableSequence [
#                 cset "name='Headset Mic Switch' on"
#                 cset "name='Speaker Switch' off"
#                 cset "name='Differential Mux' lin2-rin2"
#         ]
#
#         DisableSequence [
# 		cset "name='Differential Mux' lin1-rin1"
# 	]
#
# 	Value {
# 		PlaybackPriority 300
# 		PlaybackPCM "hw:${CardId}"
# 		PlaybackMixerElem "Headphone Mixer"
# 		PlaybackMasterElem "DAC"
# 		JackControl "Headphone Jack"
# 		JackHWMute "Speaker"
# 	}
# }

SectionDevice."Headphones" {
	Comment "Headphones"

	ConflictingDevice [
		"Speaker"
	]

	EnableSequence [
		cset "name='Headphone Switch' on"
	]

	DisableSequence [
		cset "name='Headphone Switch' off"
	]

	Value {
		PlaybackPriority 300
		PlaybackPCM "hw:${CardId}"
		PlaybackMixerElem "Headphone Mixer"
		PlaybackMasterElem "DAC"
		JackControl "Headphone Jack"
		JackHWMute "Speaker"
	}
}


Include.hdmi.File "/Intel/sof-essx8336/Hdmi.conf"