Bug 12801 - Double characters on Serial Console
Summary: Double characters on Serial Console
Status: NEW
Alias: None
Product: IPFire
Classification: Unclassified
Component: --- (show other bugs)
Version: 2
Hardware: unspecified Unspecified
: - Unknown - - Unknown -
Assignee: Assigned to nobody - feel free to grab it and work on it
QA Contact:
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-03-14 17:48 UTC by Jon
Modified: 2022-10-26 14:28 UTC (History)
1 user (show)

See Also:


Attachments
doubles (118.16 KB, image/jpeg)
2022-03-14 17:48 UTC, Jon
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jon 2022-03-14 17:48:39 UTC
Created attachment 1015 [details]
doubles

When installing using the serial console there are double characters on the "Welcome!" screen.

This happens on the LWL Mini Appliance
Comment 1 Michael Tremer 2022-03-14 17:51:11 UTC
Hey Jon,

Yes, this is a known issue that I cannot really solve.

iPXE boots up and finds a serial console and prints all characters to that. Unfortunately the BIOS of the appliance has some VGA emulation mode and so iPXE finds a VGA console and prints everything to it, too.

So that is why this is messy there, but as soon as you boot the Linux kernel, everything should be fine.
Comment 2 Jon 2022-03-14 18:35:29 UTC
Yes, all is fine after the Welcome page.

I don't remember this happening with older Mini installs.  (or maybe it did and my memory is shot!)

Thanks!
Comment 3 Michael Tremer 2022-03-15 12:03:19 UTC
This might have been different with very old versions of their BIOS, but they have this enabled as the default now.

I don't know if it is worth it to patch, build and ship our own BIOS. Maybe we could open a ticket upstream?
Comment 4 Jon 2022-03-15 18:04:29 UTC
(In reply to Michael Tremer from comment #3)
> I don't know if it is worth it to patch, build and ship our own BIOS. Maybe
> we could open a ticket upstream?

I'd have to leave this up to you!  You understand this much better then I do!!

I would not suggest doing an IPFire patch (unless it was really easy to do).
Comment 5 Jon 2022-03-18 16:26:22 UTC
(In reply to Michael Tremer from comment #1)
> Unfortunately the BIOS of the appliance has some VGA emulation mode
> and so iPXE finds a VGA console and prints everything to it, too.

I was trying to fix something else on VM and I came across this:

https://askubuntu.com/questions/1024895/why-do-i-need-to-replace-quiet-splash-with-nomodeset

Would adding the above `GRUB_CMDLINE_LINUX_DEFAULT="nomodeset"` or `GRUB_CMDLINE_LINUX_DEFAULT="quiet nomodeset"` remove the VGA emulation?

My LWL Mini is production and I have people working here at home.  So I am reluctant to test.
Comment 6 Michael Tremer 2022-03-21 19:28:02 UTC
The problem is not in GRUB. As soon as GRUB loads everything is fine. The problem is in iPXE which we cannot patch without breaking VGA output for everybody else.
Comment 7 Jon 2022-05-21 21:40:25 UTC
Michael - I just noticed the title of every page is always fine.  The "Welcome!" and the "Serial console options" title do not have double characters.

I am curious - is there an app that creates these pages?  

Or how are they created?  

Maybe something changed there...
Comment 8 Michael Tremer 2022-05-31 12:00:15 UTC
(In reply to Jon from comment #7)
> Michael - I just noticed the title of every page is always fine.  The
> "Welcome!" and the "Serial console options" title do not have double
> characters.
> 
> I am curious - is there an app that creates these pages?  
> 
> Or how are they created?  
> 
> Maybe something changed there...

Hmm, that is interesting. It should be the same for every single character that is written.

Should we raise this with the BIOS people from PC Engines?
Comment 9 Jon 2022-05-31 15:48:06 UTC
(In reply to Michael Tremer from comment #8)
> (In reply to Jon from comment #7)
> Should we raise this with the BIOS people from PC Engines?

Before raising the issue with PCEngines I wanted to look at the code that generates the "Welcome!" and the "Serial console options" pages.  But I cannot locate that code.

I am assuming it is IPFire code.  Where is it located?
Comment 10 Michael Tremer 2022-06-01 14:57:35 UTC
(In reply to Jon from comment #9)
> I am assuming it is IPFire code.  Where is it located?

It is split into two places. iPXE, the software that is being loaded from network is here:

> https://git.ipfire.org/?p=oddments/ipfire-netboot.git;a=summary

It will then fetch a DHCP lease and chainload more stuff from the internet. That stuff is part of the web app:

> https://git.ipfire.org/?p=ipfire.org.git;a=blob;f=src/web/boot.py;h=61bc322eb8986242656c61191335f5214df73a51;hb=HEAD
> https://git.ipfire.org/?p=ipfire.org.git;a=tree;f=src/templates/netboot;h=29ccb5e82eb331632c4901e8c208df7cf0c9eaf9;hb=HEAD
> https://git.ipfire.org/?p=ipfire.org.git;a=tree;f=src/static/netboot;h=6f390ced74ddf744575b0fe2df3a3cefae0d7353;hb=HEAD

Those configuration files are dynamically generated with the latest release information.

Maybe we can try to figure out if there is a serial console in iPXE and then send that to the server so that we can ship a different configuration file?
Comment 11 Jon 2022-10-22 15:17:16 UTC
I found this posting which is similar:

https://forum.ipxe.org/showthread.php?tid=7809

but I could not locate `CONSOLE_SERIAL` for iPXE or the `console.h` file for iPXE.  I was going to try and disable `CONSOLE_SERIAL` but I could not locate it in the IPFire code.  Does this seem like a possible fix?  If yes, can you give it a try?
Comment 12 Michael Tremer 2022-10-26 14:28:27 UTC
(In reply to Jon from comment #11)
> I found this posting which is similar:
> 
> https://forum.ipxe.org/showthread.php?tid=7809

This is exactly the problem. We kind of don't want both here, but there is no way that iPXE can detect that the BIOS redirection is enabled.

> but I could not locate `CONSOLE_SERIAL` for iPXE or the `console.h` file for
> iPXE.  I was going to try and disable `CONSOLE_SERIAL` but I could not
> locate it in the IPFire code.  Does this seem like a possible fix?  If yes,
> can you give it a try?

> https://git.ipfire.org/?p=oddments/ipfire-netboot.git;a=summary

The code for netboot is here, but there is no console.h file. We seem to be using the default which probably is that support for the serial console is enabled.

If we would disable it, we would break serial console support on all sorts of devices that don't support the BIOS emulation.

If we leave it on, then a very popular device won't work right. It would be nice to automatically at least detect these appliances and then disable the serial console in the configuration instead of not compiling it any more?!