On Tue, Dec 19, 2023, 1:55 PM Peter Maydell <peter.mayd...@linaro.org> wrote:
> On Tue, 19 Dec 2023 at 19:40, Fabiano Rosas <faro...@suse.de> wrote: > > > > Dave Blanchard <d...@killthe.net> writes: > > > > > Hello all, can you please help me to understand what Qemu is doing > here? > > > > > > When connecting to the guest for example using a serial/tcp/telnet > link, some kind of code is being immediately transmitted over the link > which screws up my Xterm terminal settings, including changing the text > cursor shape and most notably, disabling wraparound of long lines, so that > they get truncated at the edge of the window instead. > > > > > > Can this behavior be disabled by command line, and if not, what is the > code doing exactly so I can know where to disable it? I tried disabling all > calls to tcsetattr() but that had no effect. > > > I looked into the automatic margins issue a long time ago and I seem to > > remember it was caused by the firmware (SeaBIOS) configuring the > > terminal and QEMU just never returning it to the original state. I > > eventually gave up trying to fix it because I was having trouble finding > > a reliable point in QEMU shutdown sequence to enable the capability > > back. Nowadays I just run 'tput smam' after quitting QEMU. > > To check whether this is happening because of the BIOS (or other > guest code) vs QEMU itself, you can try running QEMU in a configuration > where it doesn't run any BIOS code. One I happen to know offhand > is an arm one: > > qemu-system-aarch64 -M virt -serial stdio > > This won't print anything, because we haven't loaded any guest > code at all and there's no default BIOS on this machine type. > (The emulated CPU is sat in effectively a tight loop taking > exceptions.) If that messes up the terminal settings, then it's > likely being done by something inside QEMU. If it doesn't, then > it sounds like as you say it'll be because of the SeaBIOS > firmware writing stuff to the terminal. > > (There might be a way to run the x86 PC machine without it > running a BIOS, for a similar test, but I don't know if there > is or how to do it off the top of my head.) > > I do know that QEMU doesn't clean up things the guest does > to the terminal, because for instance if you have a serial > terminal and the guest puts it into "emit boldface/bright", > that doesn't go back to normal non-bold text when QEMU exits. > (It would be nice if it did do that...) > It would be nice indeed. Trouble is quarrying the state beforehand to know what to reset by random software producing effectively random bytes.. ESC c is the reset sequence as well...but that's likely too big a hammer. Warner thanks > -- PMM > >