Hi all,
I'm working on a kernel module and want to change sysctl values (specifically
stop-a and printk) in response to a hardware event.
Is there an accepted way of setting sysctl values within the kernel (I can't
seem to find any other module doing this), or is it a completely silly idea?
Would it perhaps be better to instead create a sysfs node and let a userspace
daemon worry about setting the sysctl values?
Any advice greatly appreciated!
David.
On Sat, Nov 25, 2006 at 07:11:48PM +0000, David Johnson wrote:
> I'm working on a kernel module and want to change sysctl values (specifically
> stop-a and printk) in response to a hardware event.
>
> Is there an accepted way of setting sysctl values within the kernel (I can't
> seem to find any other module doing this),
Yes. Next in-kernel module changing sysctls will do it via
stop_a_enabled = 1;
console_loglevel = 8;
(be sure, variables in question are EXPORT_SYMBOL'ed)
> or is it a completely silly idea?
Without more details it's hard to tell.
> Would it perhaps be better to instead create a sysfs node and let a userspace
> daemon worry about setting the sysctl values?
Now _this_ is silly. sysctls already live in /proc/sys/, so you can open(2)
/proc/sys/kernel/printk and write(2) to it.
On Sunday 26 November 2006 20:38, you wrote:
> On Sat, Nov 25, 2006 at 07:11:48PM +0000, David Johnson wrote:
> >
> > Is there an accepted way of setting sysctl values within the kernel (I
> > can't seem to find any other module doing this),
>
> Yes. Next in-kernel module changing sysctls will do it via
>
> stop_a_enabled = 1;
> console_loglevel = 8;
>
> (be sure, variables in question are EXPORT_SYMBOL'ed)
>
Bah, I never thought it would be that simple!
>
> > Would it perhaps be better to instead create a sysfs node and let a
> > userspace daemon worry about setting the sysctl values?
>
> Now _this_ is silly. sysctls already live in /proc/sys/, so you can open(2)
> /proc/sys/kernel/printk and write(2) to it.
OK, I'll give that a miss then ;-)
Thanks for your help!
David.