Subject: kern/18792: Make kernel beep when system is completely halted
To: None <gnats-bugs@gnats.netbsd.org>
From: Julio Merino <jmmv@menta.net>
List: netbsd-bugs
Date: 10/24/2002 22:20:37
>Number: 18792
>Category: kern
>Synopsis: Make kernel beep when system is completely halted
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: change-request
>Submitter-Id: net
>Arrival-Date: Thu Oct 24 13:17:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: Julio Merino
>Release: NetBSD 1.6J
>Organization:
HispaBSD
>Environment:
System: NetBSD darkstar.local 1.6J NetBSD 1.6J (DARKSTAR) #31: Thu Oct 24 13:23:40 CEST 2002 jmmv@darkstar.local:/var/build/kernel/DARKSTAR i386
Architecture: i386
Machine: i386
>Description:
The following patch implements the "Beep on halt" feature. This has
been discussed in tech-kern some days ago.
In summary: this new feature makes the kernel issue several beeps
when the system is completely halted, i.e., when the "The operating
system has halted." message apperes after doing a "halt" or
"shutdown -h now". This is useful in headless servers that do not
have a serial console nor power management, so that you can safely
issue a halt command from a remote machine and then, wait until you
hear the beeps that will tell you that it is safe to power down the
computer.
In the discussion, most of the people suggested to use sysctl to tune
this feature, so I did the patch this way. Although, all details can
also be configured during kernel's build time with some options, so
that whoever does not like sysctl can get rid of it ;)
Variables allow how many beeps you want on halt (0 means none), the
frequency and the duration of each beep. Note that all these features
can be completely enabled/disabled setting the BEEP_EVENTS option in
the kernel (by default, disabled).
The implementation... Most of the code is MI, so that any platform
can easily take advantadge of defined sysctl variables and use them
to issue the beeps. In fact, the MD code is in i386/machdep.c, which
directly calls the sysbeep() function with the variables that "define"
the beep. To implement this feature on more archs, you should just
need to port that small bit of code to them. (I've only implemented
i386).
This feature is similar to what BLINK does in sparc machines, and
many people seems to want it... IIRC, nobody really rejected it
in the lists ;-)
The attached patch contains two files: patch-kern.diff, which is the
kernel patch, and patch-sysctl.diff which modifies sysctl. I have
my doubts about the sysctl patch... maybe is a better way to do this
same thing in this obscure program.
>How-To-Repeat:
>Fix:
begin 644 patches.tar.gz
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
;(Q_YR$<^\I&/?.0C'_GX"\9_`=50%H@`4```
`
end
Have fun!
>Release-Note:
>Audit-Trail:
>Unformatted: