replacing driver on the fly

Hi-

I have a problem with a driver. I have a system that uses
an old version Fsys.diskonchip. The DiskOnChip device functions
as the root directory for the system. Fsys.diskonchip is
launched from the .boot file. I would like to (temporarily)
replace the currently executing copy of Fsys.diskonchip with
a new version of Fsys.diskonchip. Creating a new .boot file
with the new version of the driver would be problematic.
Swapping the DiskOnChip in the system with a new one - with
the new driver - is a bad idea because either I or my trusty
sidekick would have to rip apart the machine to get to it.

It seems that it should be possible to kill Fsys.diskonchip
on the fly and run the new driver in its place. I’ve tried
doing that by creating a RAM disk and juggling a few files,
i.e.:


Efsys.ram -m 0,1024K,/ramdisk,/dev/ramimage & # make a ramdisk
cd /ramdisk
cp /bin/mount .
cp /bin/umount .
cp /bin/Fsys .
cp /bin/Fsys.diskonchip . # the new driver
cp /bin/slay .
cp /bin/sleep . # some utilities
umount / ; ./slay Fsys.diskonchip ; ( ./Fsys.diskonchip & ) ; ./sleep 3 ; ./mount -p /dev/tffs0 /dev/tffs0t77 /


I’ve tried a few variations on the above command (without the
umount, etc.) but all I manage to do is freeze the machine. Any
thoughts? Is it even possible to do this?

TIA,

  • Pete

D’oh!

I meant to post this to qdn.public.qnx4. We’re running QNX 4.25.

  • PDM


    Previously, Pete DiMarco wrote in comp.os.qnx:

[ DELETED ]

Pete DiMarco <peted-NOSPAM@ifspurity.com> wrote:

umount / ; ./slay Fsys.diskonchip ; ( ./Fsys.diskonchip & ) ; ./sleep 3 ; ./mount -p /dev/tffs0 /dev/tffs0t77 /

The problem is your mount command. You can only do the -p and mount
toghether when it is in the .boot file. When on the command line you
need to issue two seperate commands:

mount -p /dev/tffs0
mount /dev/tffs0t77 /

Try that, it should work.

Cheers,
Camz.

Previously, camz@passageway.com wrote in comp.os.qnx:

Pete DiMarco <> peted-NOSPAM@ifspurity.com> > wrote:
umount / ; ./slay Fsys.diskonchip ; ( ./Fsys.diskonchip & ) ; ./sleep 3 ; ./mount -p /dev/tffs0 /dev/tffs0t77 /

The problem is your mount command. You can only do the -p and mount
toghether when it is in the .boot file. When on the command line you
need to issue two seperate commands:

mount -p /dev/tffs0
mount /dev/tffs0t77 /

Try that, it should work.

Cheers,
Camz.

Thanks, I’ll give that a try.

  • PDM