Hi,
One problem we have with the serial console support in seabios and sgabios: It can happen that both are activated. We'll go fix that in qemu, but that'll work for new qemu versions only, not for the old already released ones.
So I think it would be useful if seabios makes sure sgabios and serial console are not both active at the same time, i.e. in case we find "vgaroms/sgabios.bin" being present either turn off builtin serial console, or don't load sgabios (and possibly also enable builtin serial console).
Comments?
cheers, Gerd
On Thu, Nov 02, 2017 at 05:04:20PM +0100, Gerd Hoffmann wrote:
Hi,
One problem we have with the serial console support in seabios and sgabios: It can happen that both are activated. We'll go fix that in qemu, but that'll work for new qemu versions only, not for the old already released ones.
So I think it would be useful if seabios makes sure sgabios and serial console are not both active at the same time, i.e. in case we find "vgaroms/sgabios.bin" being present either turn off builtin serial console, or don't load sgabios (and possibly also enable builtin serial console).
Historically libvirt will always use '-device sgabios' if the user has requested <bios useserial='yes'/>. So if that -device arg is given, I think QEMU must honour it, which implies QEMU must disable Seabios' own built-in serial console impl in that scenario.
Regards, Daniel
On 02/11/2017 17:11, Daniel P. Berrange wrote:
Historically libvirt will always use '-device sgabios' if the user has requested <bios useserial='yes'/>. So if that -device arg is given, I think QEMU must honour it, which implies QEMU must disable Seabios' own built-in serial console impl in that scenario.
We should also change libvirt to produce
-device sga (if sga supported) -machine graphics=off (if -machine graphics supported)
On old QEMU, -machine graphics=off will be ignored. On new QEMU and/or SeaBIOS, we should ensure that specifying both has the right effect.
Paolo
On Thu, 2017-11-02 at 16:11 +0000, Daniel P. Berrange wrote:
On Thu, Nov 02, 2017 at 05:04:20PM +0100, Gerd Hoffmann wrote:
Hi,
One problem we have with the serial console support in seabios and sgabios: It can happen that both are activated. We'll go fix that in qemu, but that'll work for new qemu versions only, not for the old already released ones.
So I think it would be useful if seabios makes sure sgabios and serial console are not both active at the same time, i.e. in case we find "vgaroms/sgabios.bin" being present either turn off builtin serial console, or don't load sgabios (and possibly also enable builtin serial console).
Historically libvirt will always use '-device sgabios' if the user has requested <bios useserial='yes'/>. So if that -device arg is given, I think QEMU must honour it, which implies QEMU must disable Seabios' own built-in serial console impl in that scenario.
Hmm, why? The user asked for a serial console. Whenever that is provided by seabios builtin support or the sgabios rom doesn't really matter, no?
Also, the question is what seabios should do in case both are active. Which I think can happen today with libvirt if you configure a virtual machine without vga (libvirt passes -machine graphics=off which activates builtin serial console) and with "<bios useserial='yes'/>" (enables sgabios rom).
cheers, Gerd
On Fri, Nov 03, 2017 at 07:49:03AM +0100, Gerd Hoffmann wrote:
On Thu, 2017-11-02 at 16:11 +0000, Daniel P. Berrange wrote:
On Thu, Nov 02, 2017 at 05:04:20PM +0100, Gerd Hoffmann wrote:
Hi,
One problem we have with the serial console support in seabios and sgabios: It can happen that both are activated. We'll go fix that in qemu, but that'll work for new qemu versions only, not for the old already released ones.
So I think it would be useful if seabios makes sure sgabios and serial console are not both active at the same time, i.e. in case we find "vgaroms/sgabios.bin" being present either turn off builtin serial console, or don't load sgabios (and possibly also enable builtin serial console).
Historically libvirt will always use '-device sgabios' if the user has requested <bios useserial='yes'/>. So if that -device arg is given, I think QEMU must honour it, which implies QEMU must disable Seabios' own built-in serial console impl in that scenario.
Hmm, why? The user asked for a serial console. Whenever that is provided by seabios builtin support or the sgabios rom doesn't really matter, no?
Surely it has ABI implications for the guest if we stop putting the sgabios option ROM into memory - changing layout of ROMS
Also, the question is what seabios should do in case both are active. Which I think can happen today with libvirt if you configure a virtual machine without vga (libvirt passes -machine graphics=off which activates builtin serial console) and with "<bios useserial='yes'/>" (enables sgabios rom).
Libvirt doesn't use '-machine graphics=off' AFAIK, only '-nographic'.
Regards, Daniel
Hi,
Hmm, why? The user asked for a serial console. Whenever that is provided by seabios builtin support or the sgabios rom doesn't really matter, no?
Surely it has ABI implications for the guest if we stop putting the sgabios option ROM into memory - changing layout of ROMS
Because of that changing -device sga behavior on the qemu side must be tied to the qemu machine type.
Also, the question is what seabios should do in case both are active. Which I think can happen today with libvirt if you configure a virtual machine without vga (libvirt passes -machine graphics=off which activates builtin serial console) and with "<bios useserial='yes'/>" (enables sgabios rom).
Libvirt doesn't use '-machine graphics=off' AFAIK, only '- nographic'.
I think that is pretty much the same. Setting "graphichs=off" is one of the effects of passing -nographic, and the other effects (like setting up default serial + monitor in a different way) don't happen due to libvirt also using -nodefaults.
cheers, Gerd
Gerd Hoffmann kraxel@redhat.com writes:
[...]
Libvirt doesn't use '-machine graphics=off' AFAIK, only '- nographic'.
I think that is pretty much the same. Setting "graphichs=off" is one of the effects of passing -nographic, and the other effects (like setting up default serial + monitor in a different way) don't happen due to libvirt also using -nodefaults.
-nographic is a legacy / convenience option these days. I'd recommend management tools use -machine graphics=off instead.
On Thu, Nov 02, 2017 at 05:04:20PM +0100, Gerd Hoffmann wrote:
Hi,
One problem we have with the serial console support in seabios and sgabios: It can happen that both are activated. We'll go fix that in qemu, but that'll work for new qemu versions only, not for the old already released ones.
So I think it would be useful if seabios makes sure sgabios and serial console are not both active at the same time, i.e. in case we find "vgaroms/sgabios.bin" being present either turn off builtin serial console, or don't load sgabios (and possibly also enable builtin serial console).
I'm not sure on this one. If qemu tells seabios to load a rom, I think it really should do that.
If future versions of qemu will be changed to not request sgabios when sercon is enabled, then maybe the issue isn't large enough to worry about (it only affects no-graphics, new seabios, old qemu). If that's not safe, perhaps we should revisit how seabios enables sercon so there is no confusion.
-Kevin