Yangrong Zhou wrote:
> Garrett D'Amore :
>> Willie Walker wrote:
>>> Hi All:
>>>
>>> As part of the OpenSolaris accessible live CD and install work, we 
>>> play audible prompts (beeps) at the keyboard layout and language 
>>> selection screens presented during the boot of the live CD. These 
>>> prompts allow blind people to determine that they are being asked 
>>> for input. When coupled with separate written documentation, the 
>>> user can then work their way through the boot and install the system 
>>> without sighted assistance.
>>>
>>> On *some* machines, notably this nice little Toshiba Portege R500 
>>> laptop in my lap, the console beep doesn't seem to work. As a means 
>>> for testing this, I do an "svcadm disable gdm", login, and then type 
>>> "/usr/bin/printf '\a'". I know the beep *can* work -- if I 
>>> press/hold the Escape key while powering the machine on, I get a 
>>> nice loud beep.
>>>
>>> Aside from being able to set the volume level of the beep (which I 
>>> have set to the loudest setting), I cannot see anything in the BIOS 
>>> that lets me enable/disable the system bell. I've also tried mucking 
>>> with /etc/kbd/default to no avail.
>>>
>>> I'm not sure if this is a hardware issue or a driver issue, and I'm 
>>> wondering if anyone has any ideas.
>>>
>>> Will
>>>
>>> PS - my next step is to boot a live CD from a different distribution 
>>> (e.g., Ubuntu) to see if it exhibits the same problem.
>>
>> For many laptops, the keyboard beep is routed through the audio 
>> codec. I'm not sure how exactly this works on audiohd platforms, but 
>> with ac'97 devices the BIOS writes into a specific register on the 
>> audio codec to cause the beep (generally setting the frequency of the 
>> beep, and then clearing it once the beep is complete.)
>>
>> It would not surprise me if the audiohd driver was doing something to 
>> disable the beep, or if the audiohd driver wasn't doing something it 
>> *needed* to do to keep the beep working.
>>
>> You might want to consider just playing an ordinary audio file 
>> instead of relying on the beep.
> There is a kind of widget called Beep Generator Widget for beep in 
> audiohd spec.
>
> The tone or Beep Generator Widget is an option used to generate an 
> approximated sine wave by dividing the 48-kHz frame marker by a 
> programmable amount. When the beep generator is actively generating a 
> tone, its output drives all Pin Widgets which are currently defined 
> output pins in a method of the vendor?s choice, either by switching 
> the pin to the beep signal or by mixing the tone into the currently 
> playing stream.
>
> The Beep Generation command causes the Beep Generator Widget to beep 
> or to stop beeping. The intended use of this command is for BIOS POST 
> beeps, not for generating high quality audio output. Note that the 
> Beep Generator Widget may have an optional output amplifier as defined 
> in the ?Audio Widget Capabilities? parameter (Section 7.3.4.6). If 
> this amp is present, it is controlled with the normal amplifier controls.
>
> Currently audiohd driver does nothing on the Beep Generator Widget, 
> and I am now not quite clear on how to control BIOS writing the beep 
> widget because the spec tells very little on it. I will work on this 
> problem. Garrett, if you have any suggestion for my work, please let 
> me know. Thanks!

I think the main thing with the Beep generator, is to make sure we 
aren't inadvertently disabling it.   With AC'97 there is also a gain 
control associated with the beep, and we have to set that (actually we 
use it to expose a volume control for the beep in Boomer).  It may be 
that you need to do something similar for audiohd.

    -- Garrett

>
> Regards,
> Yangrong
>>
>> -- Garrett
>>
>> _______________________________________________
>> laptop-discuss mailing list
>> laptop-discuss at opensolaris.org
>


Reply via email to