OpenWRT and Supermicro: Difference between revisions

mNo edit summary
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.
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.


For anyone that is installing OpenWRT on a Supermicro (or any other x86_64) platform,  
== 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.)?


So, to bury the lede, in /boot/grub/grub.cfg (yup, OpenWRT uses "Legacy" Grub, so all of the GRUB2 information out there has to be translated over to "Legacy" Grub);
Have you experienced an issue where the OpenWRT boot sequence starts, but then the screen goes black and nothing is displayed?


*"Stock" / Original OpenWRT command: linux /boot/vmlinuz root=PARTUUID=d2e27698-02 rootfstype=squashfs rootwait console=ttyS0,115200n8 console=tty0 noinitrd
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.
*Updated command (just add ''nomodeset'' to the end of the line): linux /boot/vmlinuz root=PARTUUID=d2e27698-02 rootfstype=squashfs rootwait console=ttyS0,115200n8 console=tty0 noinitrd nomodeset


(from: https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt )
== 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);
 
*"Stock" / Original OpenWRT Boot / Kernel Commands / Parameters;
**linux /boot/vmlinuz root=PARTUUID=d2e27698-02 rootfstype=squashfs rootwait console=ttyS0,115200n8 console=tty0 noinitrd
*Change it to this: (IE, just add ''nomodeset'' to the end of the line);
**linux /boot/vmlinuz root=PARTUUID=d2e27698-02 rootfstype=squashfs rootwait console=ttyS0,115200n8 console=tty0 noinitrd nomodeset
*Hints Obtained from;
**https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt )
 
...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 ==


...and that's it.


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.  
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.  
Line 24: Line 35:
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 IGD.  Apparently 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).  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 IGD.  Apparently 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.


 
== 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;