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
>