@londonfog I can most assuredly tell you that no one using FOG has done this before.
The challenge is getting both iPXE and the FOS Linux kernel to use the serial console port (even at that I don’t know if the SOL redirect will work correctly).
The first step is that you will need to rebuild iPXE using the built in tools in the fog server. https://forums.fogproject.org/topic/15826/updating-compiling-the-latest-version-of-ipxe I would run through this process the first time as is just to get a base line compile setup.
Then you will want to hack a config file to enable the serial console in iPXE as outlined here: https://ipxe.org/console
As an example here is the fog supplied console.h file https://github.com/FOGProject/fogproject/blob/171d63724131c396029992730660497d48410842/src/ipxe/src/config/console.h#L37 note that you will need to turn on the serial console in the console.h in the build path for iPXE. You will need to do it for both the bios and uefi config files.
You will probably want to add the following lines right under enabling the serial console.
#define COMCONSOLE COM2
#define COMSPEED 9600
#define COMDATA 8
#define COMPARITY 0
#define COMSTOP 1
You will need to make the changes correctly for your SOL configuration.
Then rebuild iPXE a second time. This time move the built files to the /tftpboot directory.
Now for bzImage (fos linux kernel), it looks like you just need to add this to the global kernel args settings console=ttyS2,9600