Beep - Configurando o controle

Publicado por Perfil removido em 23/07/2012

[ Hits: 10.001 ]

 


Beep - Configurando o controle



Como não havia conseguido fazer funcionar o tal barulho de beep no computador, aliás um laptop, investiguei outros caminhos de configuração através das ferramentas do ALSA.

Esse beep pode ser tanto o beep da campainha do terminal, beep de reboot, beep do comando beep, um caractere especial de beep ecoado; enfim, um som qualquer no alto-falante, de uma frequência qualquer que seja permitida e de qualquer duração.

Para facilitar o teste, será necessário o comando beep. Instalado via APT, YUM ou compilado.

No caso, os comandos usados para configuração foram o Amixer e o Alsamixer.

A configuração foi feita por terminal, já que a máquina estava sem a interface gráfica (Xorg, etc).

Não foi o caso de retirar algum módulo da lista negra em /etc/modprobe.d/alsa-base-blacklist.conf, ou outra alteração em /etc/modprobe.d/alsa-base.conf.

Considerando-se que a parte de som esteja OK e que os módulos de som estejam todos carregados, então faltava algo pelo qual o beep não era emitido.

Foi aí que eu usei o comando:

amixer | less

Ele informa com texto maior que uma tela, por isto de se usar um paginador (comando less).

Indo direto ao trecho mais interessante:
Simple mixer control 'Beep',0
   Capabilities: pvolume pswitch penum
   Playback channels: Front Left - Front Right
   Limits: Playback 0 - 31
   Mono:
   Front Left: Playback 0 [0%] [-34.50dB] [off]
   Front Right: Playback 0 [0%] [-34.50dB] [off]

Ele informa que há um controle de som chamado "Beep", com duas saídas em OFF (desligadas).

Para mudar de [off] para [on], é necessária mais uma informação obtida com

amixer -c 0 controls

De todas as linhas, a que interessa assemelha-se a esta:
numid=19,iface=MIXER,name='Beep Playback Switch'

O "numid" pode variar de equipamento para equipamento. No caso, seja então: numid=19

A seguir, o comando usado é:

amixer -c 0 cset numid=19 1

Se aparecerem as seguintes linhas:
numid=19,iface=MIXER,name='Beep Playback Switch'
   ; type=BOOLEAN,access=rw------,values=2
   : values=on,on

...É porque funcionou.

Supondo que o comando "beep" esteja instalado, faltaria configurar o volume:

alsamixer

Este comando exibe em tela de terminal um gráfico, com diversas barras verticais representando controles de volumes.

Com as setas direita e esquerda, muda-se de controle de volume (microfone, fone de ouvido, alto-falantes... e beep).

Indo até o controle do "beep", pode-se deixar mais alto ou mais baixo. Para retirar completamente o som, deve-se pressionar M (M - maiúsculo, seja usando Shift ou Caps-Lock).

Pelo que percebi, o que o Amixer faz quando muda de [off] para [on], é completamente diferente do que Alsamixer faz com o volume, inclusive deixar mudo.

Para desativar, basta usar:

amixer -c 0 cset numid=19 0

E se aparecerem as seguintes linhas:
numid=19,iface=MIXER,name='Beep Playback Switch'
; type=BOOLEAN,access=rw------,values=2
: values=off,off

...Funcionou novamente.

O interessante é que eu testei antes e depois, usando:

# rmmod snd-pcsp

Ou:

# rmmod pcspkr

Conforme a necessidade, para retirar módulos de Speaker e em nada interferiu.

Obs.: O comando rmmod precisa de permissão de root.

Também testei as saídas de lsmod redirecionando-as para arquivos após cada reconfiguração, para ver se havia algo de diferente:

lsmod > arq1
$ lsmod > arq2
$ lsmod > arq3

(...) etc.

E depois, comparando de dois em dois:

diff arq1 arq2
$ diff arq1 arq 3

(...) etc.

Resultado: Sem diferenças perceptíveis. Tanto faz ter ou não, o módulo Speaker carregado. A máquina fez beep independente disto.

No momento desconheço este motivo.

Obs. 1: Todos os comandos foram executados por usuário comum. Exceto o rmmod.
Obs. 2: Serve tanto para colocar, como retirar som de beep, bem como outras configurações.

Outras dicas deste autor

fwbuilder - interface gráfica para iptables

Novo "estilo" do Python 2.6 e 3.0 para formatar strings

Temporizador Happy Timer

Google Gadgets - incremente seu desktop com belos aplicativos

CentOS 5 - Desabilitando serviços desnecessários

Leitura recomendada

Atalhos extras para LXDE

Temas no IceWM

Dual-boot UEFI :: Ubuntu e Windows 8

Para aqueles que não conseguem mudar o mac de suas placas wireless

sources.list (e extras) para o Debian 8.0 Jessie

  

Comentários
[1] Comentário enviado por jarlisson em 24/07/2012 - 20:50h

é necessário a existencia desses dois modulos?
foi só tu aumentar o volumo no alsamixer que tu passou a ouvir o beep?

[2] Comentário enviado por removido em 24/07/2012 - 22:45h

Eu fiz esse procedimento tanto com módulos ligados ao speaker carregados ou descarregados.

Eu descarreguei os módulos ditos estarem associados ao speaker.
Depois eu mexi nesse controle chamado beep.

O controle chamado beep no alsamixer pode estar no valor zero que ainda bipa.
Só não bipa se estiver mudo no alsamixer com o controle ativado no amixer.

Mudo fica se for pressionado M, que é obrigatoriamente maiúsculo, seja com shift ou caps-lock.
Se for desativado no amixer ele não bipa tanto com mudo, controle no zero, no máximo etc.

O que me chamou a atenção foi que por mais que mexesse em módulos de speaker nada dava certo.
E que essas modificações com alsamixer e amixer foram feitas sem root.

A ênfase nas explicações que são dadas sobre o uso do módulo do speaker são inúmeras e são as que geralmente dão certo.
Os módulos carregados aqui eram apenas coisas tipo intel, realtek, midi, hdmi.
Então eu considero estranho este módulo não influenciar.

Mas de qualquer forma o que fez diferença foi o controle no amixer.
Sem isso não houve bipe mesmo.

Falta verificar onde no mesmo lugar que um dos inúmeros parâmetros/valores enviados pelo ioctl() afeta (Programação C).
É ele quem manda sinal prá bipar em determinada frequência ou por determinado tempo.

Foi isso o que ocorreu.
Ou o que creio que ocorreu.

Lembrando que isso foi feito em notebook comum desses da praça.
Que no caso pode não depender mesmo deste módulo.

[3] Comentário enviado por jarlisson em 24/07/2012 - 23:35h

Nao funcionou no meu note...fucei aqui, e descobri que nao tenho snd-pcsp e pcspkr....pesquisar pra que servem.

[4] Comentário enviado por removido em 24/07/2012 - 23:54h

Isso seria o normal. Tenta carregar um deles ou procura no diretório /lib/modules/2.X.X.../kernel/ ... no diretório drivers ou sound.
Devem estar lá.

[5] Comentário enviado por removido em 26/07/2012 - 20:43h


[3] Comentário enviado por jarlisson em 24/07/2012 - 23:35h:

Nao funcionou no meu note...fucei aqui, e descobri que nao tenho snd-pcsp e pcspkr....pesquisar pra que servem.


Coloquei esses módulos em definitivo na lista negra e refiz todos os procedimentos.

Funcionou.

Se esse "beep" está dependente de algum módulo, certamente não são estes.

Tente mexer nos outros controles de "beep" do amixer. Devem ser pelo menos dois ou três no total.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts