Difference between revisions of "News-3.74"

From Syslinux Wiki
Jump to: navigation, search
(Adding missing fix)
m (Wiki formatting.)
 
(26 intermediate revisions by 7 users not shown)
Line 1: Line 1:
Syslinux 3.74 was released on <date>
+
[[Category:Changelog]]
 +
[[Syslinux_3_Changelog#Changes_in_3.74|Syslinux 3.74]] was released on 2009Apr09.
  
 
----
 
----
  
Summary: This new release adds: UI mode, dynamic keyboard mapping, Add calls for directory functions, documentations updates, GPXE 0.9.7, Simple command module, cpuid updates, Hardware Detection Tool, PCI improvements, memdisk improvements, shuffler improvements, quiet mode, memory hole support & many bugfixes
+
Summary: this is a major release.
 +
It adds new com32 modules
 +
('''[[kbdmap.c32]]''', '''[[rosh.c32]]''', '''[[cmd.c32]]''' and '''[[Hdt|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.
  
 
----
 
----
  
= UI mode=
+
== New features ==
  
The new UI directive allows a more natural way to specify a menu system (or not.)
+
=== UI mode ===
With the UI directive specifying the menu system, the DEFAULT directive can be used to select the default entry inside the menus.
+
  
Prior to that release, the syntax was :  
+
The configuration files' syntax supports a new [[Config#UI|'''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
 
   DEFAULT menu.c32
  
 
Now, you can do:  
 
Now, you can do:  
 
   UI menu.c32
 
   UI menu.c32
 +
  DEFAULT Linux
 +
 +
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#MENU_DEFAULT|'''MENU DEFAULT''']] and [[Menu#MENU_START|'''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.
 +
 +
[http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commitdiff;h=ffb58825da075663f576232b589a0372f0a8d658;hp=735fcbbdab15d94b7ae76a96dc462979c45af44d Commit]
 +
 +
 +
=== <span style="visibility: hidden; ">kbdmap.c32</span> ===
 +
<div style="color: black; background: none; margin: 0; padding-top: .5em; padding-bottom: .17em; border-bottom: none; font-weight: bold; font-size: 132%; ">New module: [[kbdmap.c32]]</div>
 +
This new module can be used to dynamically load a new keyboard map.
 +
 +
Syntax:
 +
    kbdmap.c32 <key_map>
 +
 +
[http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commitdiff;h=2b02abdaa91f41235f40f846d08bb09d8841baa6;hp=fd3b1f970c6385d178762fb5cfe922a2930d0cad Commit]
 +
 +
 +
=== <span style="visibility: hidden; ">rosh.c32 (ROSH - Read-Only Shell)</span> ===
 +
<div style="color: black; background: none; margin: 0; padding-top: .5em; padding-bottom: .17em; border-bottom: none; font-weight: bold; font-size: 132%; ">New module: [[rosh.c32]] (ROSH - Read-Only Shell)</div>
 +
 +
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'''.
 +
 +
[http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commitdiff;h=53daea0916af7b874f830bd0428da2be4e1bc3b3;hp=3eee66c2495c524007a1aff64d5b4813a0f159cf Commit]
 +
 +
More information can be found on the wiki: [[rosh.c32]].
 +
 +
 +
=== <span style="visibility: hidden; ">cmd.c32</span> ===
 +
<div style="color: black; background: none; margin: 0; padding-top: .5em; padding-bottom: .17em; border-bottom: none; font-weight: bold; font-size: 132%; ">New module: [[cmd.c32]] (simple command module)</div>
 +
 +
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.
  
commit: http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commitdiff;h=ffb58825da075663f576232b589a0372f0a8d658;hp=735fcbbdab15d94b7ae76a96dc462979c45af44d
+
[http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commitdiff;h=5241ed1d54a8bb844b0b983dcf03f0de55a20b1d;hp=d0c6656a62113b913948361779d6298fe76f6e61 Commit]
  
= kbdmap com32 module =
 
  
This new module allows to load dynamically a new keyboard map, read-only shell
+
=== <span style="visibility: hidden; ">hdt.c32 (Hardware Detection Tool)</span> ===
 +
<div style="color: black; background: none; margin: 0; padding-top: .5em; padding-bottom: .17em; border-bottom: none; font-weight: bold; font-size: 132%; ">New module: [[Hdt|hdt.c32]] (Hardware Detection Tool)</div>
  
Syntax: kbdmap <key_map>
+
HDT (stands for ''Hardware Detection Tool'') is a COM32 module
 +
designed to display low-level information for any x86 compatible system.
  
commit: http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commitdiff;h=2b02abdaa91f41235f40f846d08bb09d8841baa6;hp=fd3b1f970c6385d178762fb5cfe922a2930d0cad
+
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.
  
= Directory functions =
+
[http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commitdiff;h=3fba9b8036423fc7a25a8c43e5d136b4f7ceadbc;hp=ab51f7bd138f306075b03f8cd3dbb0cb6448bfb3 Commit]
  
Add calls for directory functions; Implement most only
+
More information is available on the wiki: [[Hdt (Hardware Detection Tool)]]
for FAT (SYSLINUX).
+
  
Uses INT 22h AX= 001Fh, 0020h, 0021h and 0022h to prepare for the COM32 C functions
 
getcwd(), opendir(), readdir(), and closedir(), respectively.
 
  
INT22h, AX=001Fh will return a valid value for all variants.
+
=== New API: Directory functions ===
INT22h, AX= 0020h, 0021h, and 0022h are only implemented for SYSLINUX while other variants will call comapi_err for these 3.
+
  
commit: http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commit;h=c1def425e3eeb245da7a59025f2fa37f02368504
+
[[Doc/comboot|COMBOOT]] API extended with calls for directory functions.
  
= Read-Only Shell (ROSH) =
+
Syntax:
 +
    INT 22h AX=001Fh ; getcwd()
 +
    INT 22h AX=0020h ; opendir()
 +
    INT 22h AX=0021h ; readdir()
 +
    INT 22h AX=0022h ; closedir()
  
ROSH is designed to make exploring the contents of a file system/disk possible from the Syslinux environment.
+
Note: '''getcwd()''' is compatible with all variants of Syslinux,
Primarily, it is geared towards the disk-based variants as TFTP currently does not have any standardized method for retrieving a directory listing.
+
whereas the other calls are currently only implemented for SYSLINUX (FAT).
 +
They will return failure if used with another variant.
  
The internal commands currently implemented include help, man, ls, dir, more, cd, pwd, run, quit and exit.  
+
[http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commitdiff;h=c1def425e3eeb245da7a59025f2fa37f02368504;hp=2b02abdaa91f41235f40f846d08bb09d8841baa6 Commit]
  
commit: http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commit;h=53daea0916af7b874f830bd0428da2be4e1bc3b3
 
  
URL: http://syslinux.zytor.com/wiki/index.php/Read-Only_SHell(rosh.c32)
+
=== Quiet mode ===
  
= Simple command module =
+
Suppress the '''Loading...''' prompt if ''quiet'' is specified on the command line.
  
A simple "cmd" COM32 module, which only echoes a CLI command.
+
[http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commit;h=ff78e2b62a45f18c0d427153f957d2f06c0f5c1c Commit]
This is mostly useful when running on an alternate CLI, e.g. on top of the native gPXE COMBOOT interface.
+
  
commit: http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commitdiff;h=5241ed1d54a8bb844b0b983dcf03f0de55a20b1d;hp=d0c6656a62113b913948361779d6298fe76f6e61
 
  
 +
== Improvements ==
  
= CPUID updates =
+
=== CPUID updates ===
  
Updating the dmi code to detect the most recent CPUs=
+
The DMI code has been updated to detect the most recent CPUs.
  
commit: http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commitdiff;h=b51a2b5df42a803eac6709fb7f06c739b6326aea;hp=9a15270fa5c2b7fc08b023edcf1c3552b583e1d3
+
[http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commitdiff;h=b51a2b5df42a803eac6709fb7f06c739b6326aea;jp=9a15270fa5c2b7fc08b023edcf1c3552b583e1d3 Commit]
  
= Hardware Detection Tool =
+
=== PCI updates ===
  
HDT (stands for "Hardware Detection Tool") is a Syslinux com32 module designed to display low-level information for any x86 compatible system.
+
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.
  
HDT can inspect multiple subsystems: CPU (via cpuid), PCI, DMI ( Memory modules, BIOS, Motherboard, IPMI base board, Chassis, Batteries, CPU),
+
[http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commitdiff;h=db3d9fd124f8971e38fb8b44b83f9d739b10ef7e;hp=6d95a9c6ce277173f8cfbc70772fd93a2a41cd66 Commit]
Disks (work in progress), Syslinux, Linux Kernel modules needed, PXE environment, VESA modes
+
  
commit: http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commit;h=3fba9b8036423fc7a25a8c43e5d136b4f7ceadbc
+
It can also report kernel modules needed for each device.
  
URL: http://syslinux.zytor.com/wiki/index.php/Hdt_(Hardware_Detection_Tool)
+
[http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commitdiff;h=0f106fd324fd22e42fbc6ded1b088ec982d4933f;hp=5209894429f09bba73a6545d1d495fc9279a7147 Commit]
  
= PCI improvements =
+
=== Memdisk updates ===
  
PCI devices now reports their categories like "IDE interface", "Ethernet controller", ... The resulting strings are found in the pci.ids file.
+
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.
  
commit: http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commitdiff;h=db3d9fd124f8971e38fb8b44b83f9d739b10ef7e;hp=6d95a9c6ce277173f8cfbc70772fd93a2a41cd66
+
[http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commitdiff;h=3ec9e0ec1012ff5699d0dd68f4926e36e62cfe3a;hp=bf366cd045b9abaf52f7f1c83d603e8e34cbe9ce Commit]
  
PCI devices can reports multiple kernel modules for a single device.
+
=== Alternate MBR ===
  
commit: http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commitdiff;h=0f106fd324fd22e42fbc6ded1b088ec982d4933f;hp=5209894429f09bba73a6545d1d495fc9279a7147
+
Produce alternate [[Mbr|MBR]] variants which force the drive number to hd0 (_f variants),
 +
or force the drive number to hd0 if the <code>Ctrl</code> key is pressed (_c variants.).
 +
Furthermore, add an MBR variant (<tt>altmbr*.bin</tt>) which ignores the active flag and
 +
instead boots the partition number specified in the byte at offset 439 decimal.
  
= Memdisk improvements =
 
  
If a "large floppy" image is formatted with a FAT filesystem, we can use the headers in the FAT image to derive the geometry.
+
== Bug fixes ==
  
commit: http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commitdiff;h=3ec9e0ec1012ff5699d0dd68f4926e36e62cfe3a;hp=bf366cd045b9abaf52f7f1c83d603e8e34cbe9ce
+
=== isohybrid ===
  
 +
Workaround bug in some versions of binutils.
  
= Shuffler Improvements =
+
=== ifcpu64.c32 ===
  
In some cases, the shuffling code was unable to manage hudge files preventing system to boot.
+
[[Ifcpu64.c32|Fix handling of less than three arguments]].
  
commits:
+
=== Shuffler fixes ===
  
http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commitdiff;h=86981dec7307fd10f98410561107bde5bff7e10b
+
Fix bug in the shuffle library when dealing with a very large number of fragments.
  
http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commitdiff;h=0921ae9c9014dcf6f7319567f52e9a1923bba708
+
=== Memory hole management ===
  
= Quiet mode =
+
Make memory beyond the core HighMem available to malloc.
  
Suppress the Loading... prompt if "quiet" is specified on the command line.
+
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.
  
commit: http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commit;h=ff78e2b62a45f18c0d427153f957d2f06c0f5c1c
+
[http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commit;h=175d813554b69e2883f5bd5eec5eb86a8a0118b7 Commit]
  
= Memory hole management =
+
=== Misc. ===
  
Prior to that release, if we found a memory hole, we simply don't use the memory beyond that point.
+
* SYSLINUX: fix the handling of .bss files on FAT12/16.
This makes it possible for com32 modules to use that memory.  
+
* Fix the use of [[Config#CONSOLE|<tt>CONSOLE 0</tt>]] with '''[[menu.c32]]'''.
After this, we should be able to add relocation support to allow loading when the memory at 1 MB is unavailable.
+
  
commit: http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commit;h=175d813554b69e2883f5bd5eec5eb86a8a0118b7
 
  
= Thanks =
+
== Credits ==
  
The Syslinux project thanks contributors that made this new release existing : Hans Peter Anvin, Gene Cumm, Vincente Jimenez Aguilar, Sebastian Herbszt, Michael Brown, Shao Miller, Pierre-Alexandre Meyer, Erwan Velu and all pre-release testers.
+
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.

Latest revision as of 06:53, 29 June 2019

Syslinux 3.74 was released on 2009Apr09.


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
  DEFAULT Linux

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.

Commit


kbdmap.c32

New module: kbdmap.c32

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

Syntax:

   kbdmap.c32 <key_map>

Commit


rosh.c32 (ROSH - Read-Only Shell)

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.

Commit

More information can be found on the wiki: rosh.c32.


cmd.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.

Commit


hdt.c32 (Hardware Detection Tool)

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.

Commit

More information is available on the wiki: Hdt (Hardware Detection Tool)


New API: Directory functions

COMBOOT API extended with calls for directory functions.

Syntax:

   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.

Commit


Quiet mode

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

Commit


Improvements

CPUID updates

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

Commit

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.

Commit

It can also report kernel modules needed for each device.

Commit

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.

Commit

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

isohybrid

Workaround bug in some versions of binutils.

ifcpu64.c32

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.

Commit

Misc.

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


Credits

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.