Skip to main content
edited tags
Link
Source Link

How can I get Linux console output on both iGPU (HDMI) and IPMI (AST) simultaneously?

I'm trying to get console output on both the onboard iGPU (Intel i915, HDMI output) and the AST BMC (IPMI remote display) on my headless server setup.

Hardware and OS

  • Motherboard: ASUS Pro WS W680-ACE IPMI
  • CPU: Intel i9-14900
  • OS: Ubuntu 24.04.2 LTS (Pro), kernel 6.8.0-60-generic, UEFI boot
  • systemd is in use and default GRUB is installed

BIOS Settings

All relevant GPU-related options are enabled:

Primary Display       [CPU Graphics]
iGPU Multi-Monitor    [Enabled]
DVMT Pre-Allocated    [64M]
RC6 (Render Standby)  [Enabled]

When I boot into the BIOS firmware setup, both HDMI and IPMI outputs mirror the BIOS screen correctly, confirming that hardware-level multi-display support is working.

Framebuffer Devices

After booting Linux:

$ ls /dev/fb*
/dev/fb0  /dev/fb1

$ cat /sys/class/graphics/fb*/name
i915drmfb
astdrmfb

So:

  • /dev/fb0 = Intel iGPU (HDMI)
  • /dev/fb1 = AST BMC (IPMI)

What I’ve Tried

I’ve tried modifying /etc/default/grub with various combinations of fbcon=map: and console=ttyX:

  1. GRUB_CMDLINE_LINUX_DEFAULT="fbcon=map:1,0 console=tty1 console=tty2"Only IPMI (fb1) works, HDMI stays black.

  2. GRUB_CMDLINE_LINUX_DEFAULT="fbcon=map:0,1 console=tty1 console=tty2"Only HDMI (fb0) works, IPMI stays black.

  3. GRUB_CMDLINE_LINUX_DEFAULT="fbcon=map:both console=tty1 console=tty2"Nothing appears on either display.

(Yes, I realize fbcon=map:1,0 maps tty1 to fb1 and tty2 to fb0 — that behavior is expected.)

I also enabled [email protected] and confirmed it’s running.


What I Want

  • Ideally: Same console output mirrored on both HDMI and IPMI
  • Acceptable: Separate virtual terminals (e.g., tty1 on IPMI, tty2 on HDMI)

But so far I can only get one to work at a time, depending on how I order fbcon=map.

Any suggestions? Is this a limitation in fbcon, the kernel, or something I can work around with udev, early KMS, or a boot service?