I hope thie Framework laptop is capable of beeping whenever an application asks for the PC Speaker, which is a traditional component available on most desktops. Some laptops are able to beep through the integrated soundcard, but it appears to depend on how the manufacturer implements the feature. It is usefull to help e.g. blind and low vision people who wants to dual boot their machine; they can make use of a grub Play command to issue a beep when the menu to choose an OS appears.
One way to check whether the machine beeps is loading the CONFIG_INPUT_PCSPKR Linux kernel module, then typing the shell command “tput bel”.
My integrated speakers are not producing beep in ubuntu 20.04 and in GNU GRUB. The only thing I can hear was a pop noise from the speaker. I have pcspkr enabled.
I’m interested in further answers from the Framework team.
When we’re asking about “beeping”, we mean specifically that we want to beep through the PC Speaker interface (in Linux, located at /dev/input/by-path/platform-pcspkr- event-spkr) which ideally you’d be able to set to 1/0 using tee to continually turn on and off the speaker interface.
This enables square sign waves using PWM.
Although it seems Framework does expose this interface when the pcspkr module is enabled, snd-hda-intel’s beep_mode=1, and udev rules are set correctly, attempting to use the speaker interface produces “pops” and “cracks”, not square waves like it’s supposed to.
So it “works” but does not produce the expected behavior. Niether the beep command, nor GRUB_INIT_TUNE setting, nor the beep_evdev or pc-beeper Rust libraries are able to produce sound through the PC speaker interface; all of them produce pops and cracks. Is it possible that this interface is simply not supported?
If it is not, is there any known way to create a driver for such a system such that a PC speaker interface could be used? It would be great for UEFI beeps to indicate boot option, or entering a boot menu for the blind (a project I’m currently working on). If all else fails, I assume we could use Intel HD audio instead?
The “we support beeps through the internal speaker” is either somewhat misleading, or my setup is borked.
@Matt_Hartley could you follow up on this report that the PCSPKR device doesn’t seem to be working properly in Linux? Nirav said it is supposed to be supported.
Spent some time working to repro this with the beep command, also running beep --debug on Fedora. Doesn’t look like it’s playing ball. Go ahead and open a ticket linking to this thread. I may need to get this in front of the engineering team to better understand if we need to file a bug report or if this is a BIOS consideration.
Thanks, the problem occurs with an Intel Core 11th Gen (batch 8) on Manjaro when pressing the power button or executing the beep command.
The cracking/popping sound does not always happen: often only once the first time, sometimes more. It seems to come from both speakers, even when the volume is all the way down.
No sound is produced the rest of the time, like when I tested the beep command on Fedora 40 (only once).
I’ll add my own experience in that GRUB has an option to use beeps to produce sound at boot (pre-OS). This causes the same “crackling/popping” behaviour described above.
I have the same issue on FreeBSD 15 on my 11th gen Intel 13". FreeBSD comes with an ancient spkrtest tool that plays a melody on the speaker - this is what it sounded like: https://people.freebsd.org/~emaste/framework/spkrtest.m4a