Subject: Re: 1.6 and /dev/reload
To: None <port-amiga@netbsd.org>
From: Gunther Nikl <gni@gecko.de>
List: port-amiga
Date: 07/03/2003 09:52:36
Hello,
> > I modified kernel_reload_write() to handle ELF kernels and now I have
> > a functional /dev/reload again. I removed the aout stuff since it does
> > not make any sense on an ELF system, IMO.
>
> Now that it is working for recent systems, maybe this is a good time to
> ask: What does it do? I have a general idea (is it right?) that it allows
> one to reboot a new kernel without rebooting the whole system from the
> ROMs?
Almost. You can't reboot any kernel: the "new" kernel must be very
similiar to your currently running kernel. I don't know why thats
important (there is a check in locore.s/kernel_reload). Another
shortcoming is that chipmem is used during reboot. Your kernel must
be smaller than chipmem size. And I forgot to say, that loading symbols
isn't supported. Doing that was already hard with a.out kernels and it
looks like its nearly impossible for ELF kernels. /dev/reload is a pipe
device and loading symbols would require seeking.
> > The new code isn't finished yet, some tweaks are still to be done. I
> > would like to get rid of the chipmem requirement. Is this possible?
> > Another thought is, to only allow reboot if the machine is in single
> > user mode.
>
> (Forgive my ignorance; I'm guessing) Wouldn't it be better to use
> /dev/reload with reboot so that reboot with a flag can bring the
> system into single user mode, then use /dev/reload?
A "normal" reboot doesn't directly reboot into a new kernel, it transfers
the control ROM. Limitting /dev/reload to single user was probably a bad
idea since then you must be on the console to reboot.
> How does one use /dev/reload? I see no man page...
Like this: cp <kernel> /dev/reload
Gunther
--
Linux is only free if your time has no value
- Jamie Zawinsky