View previous topic :: View next topic |
Author |
Message |
Zucca Moderator


Joined: 14 Jun 2007 Posts: 4045 Location: Rasi, Finland
|
Posted: Tue Apr 15, 2025 5:19 am Post subject: PC-speaker has a cooling time? |
|
|
(Funny to put this in "Multimedia" subforum, but here we go.)
I have a wall mounted PC, ThinkCentre M710q. I planned to repurpose it as a TV PC and LoT (LAN of Things, as opposed to IoT ;) ) controller.
Since, most of the time it's acting as headless PC, I'd like it to be able to notice audibly about important events. This is where PC-Speaker comes in.
BUT!
When ever I get it to beep few times, it then goes dead silent. No matter if I use beep -command or terminal bell, \a. Then after some hours, I can beep few times again, after which the speaker goes silent again.
I checked that pcspkr was loaded. The module doesn't have any parameters to set (according to modinfo).
I've gone as far as unload the pcspkr module and load snd_pcsp module. So far the symptoms are the same.
According to strace, beep directly opens the pc-speaker device and sends data in. So I doubt it's any terminal setting which could be the culprit.
No error, or even related massages are printed to dmesg (watched the output with --level=debug+). There are only messages from WiFi events.
Finally: Code: | # strace beep -l 1000 -n -f 800 -l 1000
execve("/usr/bin/beep", ["beep", "-l", "1000", "-n", "-f", "800", "-l", "1000"], 0x7ffe3dbf2168 /* 50 vars */) = 0
brk(NULL) = 0x55c41e050000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=43790, ...}) = 0
mmap(NULL, 43790, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f0204a2e000
close(3) = 0
openat(AT_FDCWD, "/usr/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260e\2\0\0\0\0\0"..., 832) = 832
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784
fstat(3, {st_mode=S_IFREG|0755, st_size=1990912, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f0204a2c000
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784
mmap(NULL, 2018232, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f020483f000
mmap(0x7f0204863000, 1470464, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24000) = 0x7f0204863000
mmap(0x7f02049ca000, 344064, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18b000) = 0x7f02049ca000
mmap(0x7f0204a1e000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1df000) = 0x7f0204a1e000
mmap(0x7f0204a24000, 31672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f0204a24000
close(3) = 0
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f020483c000
arch_prctl(ARCH_SET_FS, 0x7f020483c740) = 0
set_tid_address(0x7f020483ca10) = 20100
set_robust_list(0x7f020483ca20, 24) = 0
rseq(0x7f020483d060, 0x20, 0, 0x53053053) = 0
mprotect(0x7f0204a1e000, 16384, PROT_READ) = 0
mprotect(0x55c3fb9da000, 4096, PROT_READ) = 0
mprotect(0x7f0204a6d000, 8192, PROT_READ) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
munmap(0x7f0204a2e000, 43790) = 0
getuid() = 0
geteuid() = 0
getgid() = 0
getegid() = 0
getuid() = 0
getrandom("\x9e\x30\x51\x7f\x4d\x23\x44\x92", 8, GRND_NONBLOCK) = 8
brk(NULL) = 0x55c41e050000
brk(0x55c41e071000) = 0x55c41e071000
newfstatat(AT_FDCWD, "/dev/input/by-path/platform-pcspkr-event-spkr", {st_mode=S_IFCHR|0660, st_rdev=makedev(0xd, 0x43), ...}, 0) = 0
openat(AT_FDCWD, "/dev/input/by-path/platform-pcspkr-event-spkr", O_WRONLY) = 3
fstat(3, {st_mode=S_IFCHR|0660, st_rdev=makedev(0xd, 0x43), ...}) = 0
ioctl(3, EVIOCGSND(0), 0x55c3fb9d9620) = 0
rt_sigaction(SIGINT, {sa_handler=0x55c3fb9d8500, sa_mask=[INT], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f020487b620}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTERM, {sa_handler=0x55c3fb9d8500, sa_mask=[TERM], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f020487b620}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\22\0\2\0\270\1\0\0", 24) = 24
clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=1, tv_nsec=0}, NULL) = 0
write(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\22\0\2\0\0\0\0\0", 24) = 24
write(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\22\0\2\0 \3\0\0", 24) = 24
clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=1, tv_nsec=0}, NULL) = 0
write(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\22\0\2\0\0\0\0\0", 24) = 24
write(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\22\0\2\0\0\0\0\0", 24) = 24
close(3) = 0
exit_group(0) = ?
+++ exited with 0 +++ | ... that time no sound came out. pcspkr module loaded only.
Any ideas? _________________ ..: Zucca :..
My gentoo installs: | init=/sbin/openrc-init
-systemd -logind -elogind seatd |
Quote: | I am NaN! I am a man! |
|
|
Back to top |
|
 |
Banana Moderator


Joined: 21 May 2004 Posts: 1984 Location: Germany
|
Posted: Tue Apr 15, 2025 7:43 am Post subject: |
|
|
If it is the build in speaker (on the board or case), then it sounds like a hardware problem. Those speakers are really small and not good quality. They are build for short beeps.
I do think they can overheat. Like your car horn if you use it too long at one time. After a cooldown period it works again. _________________ Forum Guidelines
PFL - Portage file list - find which package a file or command belongs to.
My delta-labs.org snippets do expire |
|
Back to top |
|
 |
Ralphred l33t

Joined: 31 Dec 2013 Posts: 767
|
Posted: Tue Apr 15, 2025 12:45 pm Post subject: |
|
|
Banana wrote: | Those speakers are really small and not good quality. | These for soldered devices, if it's attached to a header it can be piezo or "traditional" solenoid. Thing is neither of these is going to take "some hours" to cool down. If it's a "sticky peizo" then driving it at higher frequencies sould be less stressful for it.
On the upside, considering the orchestra of annoying beeps that my kitchen appliances can make, I'd gladly pay a premium for a peizo sounder that can only beep once every few hours! |
|
Back to top |
|
 |
Zucca Moderator


Joined: 14 Jun 2007 Posts: 4045 Location: Rasi, Finland
|
Posted: Tue Apr 15, 2025 4:40 pm Post subject: |
|
|
It's an actual speaker.
I'm also afraid it might be hw problem.
The sound quality isn't problem for me. With beep I can adjust length and frequency so the beeps are distinguishable from each other (different beep, different notification) and not as annoying.
Oh well... I'll try to dig deeper to find the problem. BIOS didn't give me much options to set anything PC-speaker related. _________________ ..: Zucca :..
My gentoo installs: | init=/sbin/openrc-init
-systemd -logind -elogind seatd |
Quote: | I am NaN! I am a man! |
|
|
Back to top |
|
 |
Zucca Moderator


Joined: 14 Jun 2007 Posts: 4045 Location: Rasi, Finland
|
Posted: Wed Apr 23, 2025 7:48 pm Post subject: |
|
|
After incorrectly built initramfs image mishap, I noticed that inside the initramfs environment the PC speaker doesn't get muted.
So my guess is that the PC-speaker devices being used or left open by some other action.
I think I'll remove pcspkr -module but keep snd_pcsp. The latter should act as a sound card so pipewire should grab it eventually and I could maybe use it to produce PC-speaker beeps without problem. At least that's what I'm hoping for. _________________ ..: Zucca :..
My gentoo installs: | init=/sbin/openrc-init
-systemd -logind -elogind seatd |
Quote: | I am NaN! I am a man! |
|
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|