OpenWRT and Supermicro: Difference between revisions

mNo edit summary
Line 1: Line 1:
Wow!  Here's one for the record books that took a bit of research for such a simple solution.  Everything that's written here applies to an x86_64 install of OpenWRT on computer hardware with a video display as opposed to TTL / Serial output that some monitors have.
Wow!  Here's one for the record books that took a bit of research for such a simple solution.  Everything that's written here applies to an x86_64 install of OpenWRT on computer hardware with a video display as opposed to TTL / Serial output that some monitors have.


== The Issue ==
==The Issue==
Are you installing OpenWRT on a Supermicro, or posibly another x86_64 motherboard / platform with an ASPEED or equivalent IPMI (Intelligent Platform Management Interface) / BMC (Baseboard Management Controller that has multiple video outputs (VGA, HDMI, Display Port, etc.)?
Are you installing OpenWRT on a Supermicro, or posibly another x86_64 motherboard / platform with an ASPEED or equivalent IPMI (Intelligent Platform Management Interface) / BMC (Baseboard Management Controller that has multiple video outputs (VGA, HDMI, Display Port, etc.)?


Line 8: Line 8:
Well, read on for an explanation of the issue.  If you want to take a shortcut and just solve the issue, then read the next section.
Well, read on for an explanation of the issue.  If you want to take a shortcut and just solve the issue, then read the next section.


== Shortcut, errr, The Solution ==
==Shortcut, errr, The Solution==
In the /boot/grub/grub.cfg (remember, OpenWRT uses "Legacy" Grub, so all of the GRUB2 information out there has to be 'taken with a grain of salt' and translated into "Legacy" Grub);
In the /boot/grub/grub.cfg (remember, OpenWRT uses "Legacy" Grub, so all of the GRUB2 information out there has to be 'taken with a grain of salt' and translated into "Legacy" Grub);


Line 20: Line 20:
...and that's it.  The output will be displayed to the monitor hooked up to the VGA Port
...and that's it.  The output will be displayed to the monitor hooked up to the VGA Port


== One More Thing to Make Sure of ==
==One More Thing to Make Sure of==


For the Supermicro Motherboards, make sure the below setting is configured in the BIOS Setup / Settings;


So what was the original issue?  Well, when a monitor was plugged into the VGA Port, basically the system would boot up, display all of the BMC / IPMI stuff, and then display the beginning of the OpenWRT booting output (IE, the first couple of seconds), then a blank screen.  It was noticed that if after the screen blanked the VGA cable was unplugged and an HDMI cable was plugged in, it would display the rest of the OpenWRT boot sequence.  But sadly the iKVM video display was broken.
* For the X11SAE-F Motherboard (it may vary with different models);
** Under Advanced, Chipset Configuration, North Bridge, Intel IGD Configuration, Primary Display (Auto, IGD, PCIE), set it to either: Auto or PCIE


A 'fallback' if the incorrect Video Mode is configured that results in a blank or black screen. This can happen if Primary Display is set to IGD (BIOS Setup / Settings: Advanced, Chipset Configuration, North Bridge, Intel IGD Configuration, Primary Display (Auto, IGD, PCIE));
In the System Block Diagram of the X11SAE-F Motherboard below, it shows the VGA port at the end of a PCIe lane.  
[[File:System Block Diagram.jpg|alt=System Block Diagram for X11SAE-F|center|thumb|System Block Diagram]]


*Set JPG1 Jumper to Disable VGA (this only disables the VGA Port), plut in an HDMI Cable / Monitor and everything will be displayed, allowing access to the BIOS.


...and it goes without saying to upgrade to the latest BIOS, IPMI, etc. Firmware
Of course this begs the question about where the heck the connector for the IGD (Integrated Graphics Device) is. Apparently there isn't one, which may be involved with the implementation of the ASPEED chip.  The block diagram doesn't explicitly show the HDMI or Display Port at the end of a PCIe lane, but they are.
 
So if you were thinking the VGA port (or the HDMI or Display Port Connectors) are the IGD, they're not.  If one looks at the information on the Wikipedia Page (https://en.wikipedia.org/wiki/List_of_Intel_Pentium_processors) or the Intel Page (https://ark.intel.com/content/www/us/en/ark/products/87261/intel-pentium-processor-n3700-2m-cache-up-to-2-40-ghz.html), in indicates that N3700 CPU (really and SoC (System on a Chip)) has a CPU and GPU integrated into the same device with only HDMI and Display Port Outputs.  That, combined with the fact (according the System Block Diagram) the VGA output seems to be coming from ASPEED chip, leads one to believe the Pentium based Braswell CPU in the N3700 SoC indeed has HD Graphics 400 or 405 capability that is simply not hooked up to anything.  
 
So we're right back to the point of asking why the IGD choice is in the BIOS settings if there isn't a connector for the HD Graphics 400 / 405 built into the Pentium CPU? IE, behavior and documentation seems to indicate there are two GPUs in the N3700 SoC package. One GPU is built into the Pentium CPU and the other is a discrete GPU at the end of a couple of PCIe lanes in the SoC.  This isn't stated explicitly, but all evidence seems to point to this conclusion.
 
== Fallback Incase One Sets the Above Noted Primary Display to IGD ==
If the Primary Display is set to IGD in the BIOS settings (BIOS Setup / Settings: Advanced, Chipset Configuration, North Bridge, Intel IGD Configuration, Primary Display (Auto, IGD, PCIE)) it will result in a blank or black screen no matter which port the monitor is plugged into.
 
Solution? See below;
 
*Connect a monitor to the HDMI port.
*Set JPG1 Jumper to Disable VGA (Pins 1-2 are Enable, Pins 2-3 are Disable)
 
Why? Because disabling the VGA port has the effect of enabling the HDMI and Display Port connectors.
 


Notes;
Notes;


It's still kind of up in the air, but...  Supermicro seems to designate the Integrated Graphics Device (IGD) as the VGA Port, not the HDMI Port (Display Port is unknown). Why? Because setting the JPG1 Jumper for VGA Enable/Disable to Disable (Pins 1-2 are Enable, Pins 2-3 are Disable) results in the VGA Port not working but the HDMI Port DOES work.  The BIOS is an interesting thing.  If Primary Display is set to IGD (BIOS Setup / Settings: Advanced, Chipset Configuration, North Bridge, Intel IGD Configuration, Primary Display (Auto, IGD, PCIE)), one might expect output to go to the VGA port.  Nope, it isn't.  Lesson, do NOT conflate IGD and VGA as they are not equivalent.  The hint was in the block diagram of the motherboard and involves the ASPEED IPMI / BMC AST2400 Chip.  The diagram shows VGA connected to the ASPEED BMC AST 2400 chip, which in turn is shown connected to the CPU via a PCIe lane.  Get it?  VGA is at the end of a PCIe lane, so setting the video in the BIOS to PCIe outputs to the VGA and Display Port.  Of course this begs the question about where the heck is the connector for the IGDApparently there isn't one, which may be involved with the implementation of the ASPEED chip OR it could be the Display Port as that wasn't tested.  Although the block diagram seems to indicated that the HDMI and DP connector are equivalently connected.
It's still kind of up in the air, but...  Supermicro seems to designate the Integrated Graphics Device (IGD) as the VGA Port, not the HDMI Port (Display Port is unknown).   The BIOS is an interesting thing.  If Primary Display is set to IGD (BIOS Setup / Settings: Advanced, Chipset Configuration, North Bridge, Intel IGD Configuration, Primary Display (Auto, IGD, PCIE)), one might expect output to go to the VGA port.  Nope, it isn't.  Lesson, do NOT conflate IGD and VGA as they are not equivalent.  The hint was in the block diagram of the motherboard and involves the ASPEED IPMI / BMC AST2400 Chip.  The diagram shows VGA connected to the ASPEED BMC AST 2400 chip, which in turn is shown connected to the CPU via a PCIe lane.  Get it?  VGA is at the end of a PCIe lane, so setting the video in the BIOS to PCIe outputs to the VGA and Display Port.   
 
==Why Not Just Disable the VGA Port with a Jumper (JPG1 on Supermicro Motherboards)==
Well, bad news: If you do that, it'll work in that all the boot up messages will be displayed on a monitor hooked up to the HDMI or Display Port.  But...  And this is a big BUT: Nothing will be displayed on the iKVM/HTML5 (or the 'Remote Control' JAVA Console)That's kind of a nice thing to have working.  See the above System Block Diagram and you'll see that the JPG1 jumper really seems to disable the VGA of the ASPEED chip.
 


== Why Not Just Disable the VGA Port with a Jumper (JPG1 on Supermicro Motherboards) ==
Well, bad news: If you do that, it'll work in that all the boot up messages will be displayed on a monitor hooked up to the HDMI or Display Port.  But...  And this is a big BUT: Nothing will be displayed on the iKVM/HTML5 (or the 'Remote Control' JAVA Console).  That's kind of a nice thing to have working.
Video can be set with;
Video can be set with;


Line 171: Line 190:
FBDEV = Linux Frame Buffer ( <nowiki>https://en.wikipedia.org/wiki/Linux_framebuffer</nowiki> )
FBDEV = Linux Frame Buffer ( <nowiki>https://en.wikipedia.org/wiki/Linux_framebuffer</nowiki> )


 
 ...and it goes without saying to upgrade to the latest BIOS, IPMI, etc. Firmware