Skip to content

Conversation

@majst01
Copy link
Contributor

@majst01 majst01 commented Dec 5, 2025

Description

Some nice examples: https://www.redpill-linpro.com/techblog/2017/12/13/ipxe-provisioning.html

Information regarding manufacturer comparison with space: https://forum.ipxe.org/showthread.php?tid=7960

TODO:

  • Make ttyS1 the default console
  • Add manufacturer check for (different) Supermicro hardware types
  • Add manufacturer check for Gigabyte

AI also suggested the following (unverified) to detect if running on console, maybe we can grab some ideas from here:

:start
echo Detected console type: ${console}

iseq ${console} serial && goto serial_console ||
iseq ${console} efi && goto efi_console ||
goto vga_console

:serial_console
echo Using serial console configuration
# Your serial-specific settings
goto boot

:efi_console
echo Using EFI console configuration
# Your EFI-specific settings
goto boot

:vga_console
echo Using VGA console configuration
# Your VGA-specific settings
goto boot

:boot
# Continue with boot process

@metal-robot metal-robot bot added this to Development Dec 5, 2025
@simcod
Copy link
Contributor

simcod commented Dec 5, 2025

The iPXE script is currently generated via go here: https://github.com/metal-stack/pixie/pull/43/files#diff-dd39ef3e62b74a7957c600b373597f4a396a29b39e2520904ad879cfe3b4ff34R199
The initial iPXE script can be found in the boot.ipxe file.

Further improvement to make the code more understandable: Create a second ipxe script, e.g. boot_proceed.ipxe and put the iPXE statements there. Then just embed this file to avoid writing multiple strings, e.g. b.WriteString("#!ipxe\n").

@majst01
Copy link
Contributor Author

majst01 commented Dec 8, 2025

Output from a Supermicro machine with H13SRD-F and X11DPT-B Motherboard:

metal-stack iPXE                                                                                                                                                                                                                                
iPXE 1.21.1+ (g7099) -- Open Source Network Boot Firmware -- https://ipxe.org                                                                                                                                                                   
Features: DNS HTTP iSCSI TFTP SRP AoE EFI Menu                                                                                                                                                                                                  
metal-stack pixie                                                                                                                                                                                                                               
Manufacturer: Supermicro                                                                                                                                                                                                                        
Configuring (net0 7c:c2:55:e8:27:12)... ok

@simcod
Copy link
Contributor

simcod commented Dec 8, 2025

For Gigabyte, we have: Manufacturer: Giga Computing

@majst01
Copy link
Contributor Author

majst01 commented Dec 8, 2025

For Gigabyte, we have: Manufacturer: Giga Computing

Nice, can you add this to the script ?

@simcod
Copy link
Contributor

simcod commented Dec 8, 2025

iPXE does not offer a console variable, like manufacturer.

echo Detected console type: ${console} provides no output.

@simcod
Copy link
Contributor

simcod commented Dec 8, 2025

Currently, the default console is set to ttyS1. This is necessary for Supermicro. The iPXE script was extended to detect Dell Inc. and Giga Computing manufacturer and set the console to ttyS0.

@simcod
Copy link
Contributor

simcod commented Dec 17, 2025

Adding the console variable to the boot.ipxe script worked (tested on Dell hardware), too. If new hardware support is added into metal-stack, this file needs to be considered as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants