You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When executing the REBOOT console command under FreeDOS 1.4 the PS/2 keyboard becomes unresponsive after rebooting.
You can reproduce it using the XCom profile (which is FreeDOS-based) or with the attached HDA image file fdos14-64m.zip which contains a minimal FreeDOS 1.4 installation (no audio or network). The KolibriOS profile actually freezes after a soft reset when it initializes the PS/2 mouse.
In all cases, a PS/2 device is in trouble after a reboot was triggered from within the guest OS.
I believe the reason for this to be an invalid runtime state of the PS2 object after reboot_internal() has been invoked.
So I added a method PS2.reset() which simply resets all scalar object members back to the values assigned in the PS2 constructor, and then I added a call to this.devices.ps2.reset() in reboot_internal() along the same pattern in which the other devices virtio_9p, virtio_console and virtio_net are handled there.
This fixed it.
It seems that FreeDOS expects the PS/2 device to be reset after triggering a soft reset (which suggests that other emulators do so). Obviously though, most other guest OSes do not have that problem.
I don't think that this patch could have any negative effects on the other OSes, but before creating a PR I just want to make sure that I didn't miss anything here.
The text was updated successfully, but these errors were encountered:
All right, it's checked in. I did not want to duplicate all those assignments so I moved them out of the constructor, hope that's ok.
This also greatly simplifies using the FreeDOS 1.4 installer which triggers a reboot during installation, and before it needed some trickery to reenter that 2nd phase of the installation process with the keybord intact.
When executing the REBOOT console command under FreeDOS 1.4 the PS/2 keyboard becomes unresponsive after rebooting.
You can reproduce it using the XCom profile (which is FreeDOS-based) or with the attached HDA image file fdos14-64m.zip which contains a minimal FreeDOS 1.4 installation (no audio or network). The KolibriOS profile actually freezes after a soft reset when it initializes the PS/2 mouse.
In all cases, a PS/2 device is in trouble after a reboot was triggered from within the guest OS.
I believe the reason for this to be an invalid runtime state of the
PS2
object afterreboot_internal()
has been invoked.So I added a method
PS2.reset()
which simply resets all scalar object members back to the values assigned in the PS2 constructor, and then I added a call tothis.devices.ps2.reset()
inreboot_internal()
along the same pattern in which the other devicesvirtio_9p
,virtio_console
andvirtio_net
are handled there.This fixed it.
It seems that FreeDOS expects the PS/2 device to be reset after triggering a soft reset (which suggests that other emulators do so). Obviously though, most other guest OSes do not have that problem.
I don't think that this patch could have any negative effects on the other OSes, but before creating a PR I just want to make sure that I didn't miss anything here.
The text was updated successfully, but these errors were encountered: