From Syslinux Wiki
Revision as of 06:22, 5 April 2009 by Hpa (talk | contribs) (ifcpu6)

Jump to: navigation, search

Syslinux 3.74 was released on <date>

Summary: this is a major release. It adds new com32 modules (kbdmap.c32, rosh.c32, cmd.c32 and hdt.c32) and fixes bugs in the shuffler API. Some libraries have been improved (new directory API, DMI, CPUID, memdisk) as well as documentation. gPXE has been bumped to 0.9.7.

New features

UI mode

The configuration files' syntax supports a new UI directive to specify a menu system. The DEFAULT directive can be used to select the default entry inside the menu.

Prior to that release, the syntax was:

  DEFAULT menu.c32

Now, you can do:

  UI menu.c32

In the previous example, if Linux points into a submenu, that menu becomes the start menu; in other words, this directive has the same effect as both MENU DEFAULT and MENU START.

For backwards compatibility with earlier versions of Syslinux, this use of the DEFAULT directive is ignored unless the configuration file also contains a UI directive.


New module: kbdmap.c32

This new module can be used to dynamically load a new keyboard map.


   kbdmap.c32 <key_map>


New module: rosh.c32 (ROSH - Read-Only Shell)

ROSH is designed to make exploring the contents of the [SYS/EXT/ISO]LINUX filesystem possible from the Syslinux environment. Primarily, it is geared towards the disk-based variants, as TFTP (used by PXELINUX) currently does not have any standardized method for retrieving a directory listing.

The internal commands currently implemented include help, man, ls, dir, more, cd, pwd, run, quit and exit.


More information can be found on the wiki: Read-Only_SHell(rosh.c32).

New module: cmd.c32 (Simple command module)

A simple cmd.c32 COM32 module, which only invokes a CLI command. This is mostly useful when running on an alternate CLI, e.g. on top of the native gPXE COMBOOT interface.


New module: hdt.c32 (Hardware Detection Tool)

HDT (stands for Hardware Detection Tool) is a COM32 module designed to display low-level information for any x86 compatible system.

HDT can inspect multiple subsystems: CPU (via cpuid), PCI, DMI (Memory modules, BIOS, Motherboard, IPMI base board, Chassis, Batteries, CPU), Disks (work-in-progress), Syslinux itself, Linux Kernel modules needed, PXE environment, VESA modes.


More information is available on the wiki: Hdt_(Hardware_Detection_Tool)

New API: Directory functions

COMBOOT API extended with calls for directory functions.


   INT 22h AX=001Fh ; getcwd()
   INT 22h AX=0020h ; opendir()
   INT 22h AX=0021h ; readdir()
   INT 22h AX=0022h ; closedir()

Note: getcwd() is compatible with all variants of Syslinux, whereas the other calls are currently only implemented for SYSLINUX (FAT). They will return failure if used with another variant.


Quiet mode

Suppress the Loading... prompt if quiet is specified on the command line.



CPUID updates

The DMI code has been updated to detect the most recent CPUs.


PCI updates

The PCI library now reports PCI devices categories (e.g. IDE interface, Ethernet controller, ...). The resulting strings can be found in the pci.ids file.


It can also report kernel modules needed for each device.


Memdisk updates

If a large floppy ("superfloppy") image is formatted with a FAT filesystem, MEMDISK can now use the headers in the FAT image to derive the geometry.


Alternate MBR

Produce alternate MBR variants which force the drive number to hd0 (_f variants), or force the drive number to hd0 if the Ctrl key is pressed (_c variants.). Furthermore, add an MBR variant (altmbr*.bin) which ignores the active flag and instead boots the partition number specified in the byte at offset 439 decimal.

Bug fixes


Workaround bug in some versions of binutils.


Fix handling of less than three arguments.

Shuffler fixes

Fix bug in the shuffle library when dealing with a very large number of fragments.

Memory hole management

Make memory beyond the core HighMem available to malloc.

Prior to that release, if we found a memory hole, we simply don't use the memory beyond that point. This makes it possible for COM32 modules to use such memory -- use linux.c32 to load a kernel and initrd into this memory.

After this, we should be able to add relocation support to allow loading when the memory at 1 MB is unavailable.



  • SYSLINUX: fix the handling of .bss files on FAT12/16.
  • Fix the use of CONSOLE 0 with menu.c32.


The Syslinux project thanks contributors that made this new release possible: H. Peter Anvin, Gene Cumm, Vincente Jimenez Aguilar, Sebastian Herbszt, Michael Brown, Shao Miller, Gert Hulselmans, Pierre-Alexandre Meyer, Erwan Velu and all pre-release testers.