[syslinux] Syslinux 4.00-pre40 now a Release Candidate

Gert Hulselmans gerth at zytor.com
Mon May 3 15:44:17 PDT 2010


H. Peter Anvin wrote:
> I just released Syslinux 4.00-pre40.  This is now a Release Candidate,
> meaning that it is on track to be released as it currently is unless I
> hear back about currently unexpected problems.
>
> If you have a chance, please pretty please test it.
>
> 	-hpa
>
> _______________________________________________
> Syslinux mailing list
> Submissions to Syslinux at zytor.com
> Unsubscribe or set options at:
> http://www.zytor.com/mailman/listinfo/syslinux
> Please do not send private replies to mailing list traffic.
>
>
Running disk.c32 in qemu, will show some garbage characters for drive 0xE0.
Pierre-Alexandre Meyer made a patch which fixes the issue:
http://syslinux.zytor.com/archives/2010-March/013824.html

The Syslinux installers (linux/syslinux, /mtools/syslinux and
win32/syslinux.exe) don't have an option to show the version number of the
Syslinux build, they will install.

The extlinux installer has a --version (-v) switch.

The --version -v switch isn't mentioned in the 'Usage:' output of the
extlinux installer.
"--help" is also not shown in the 'Usage:' output (the installer will
display the help nevertheless when no valid arguments are passed).

By looking at the code (didn't try), it seems to me that the long options
displayed in the "Usage:" output doesn't match the long_options[] struct.

So:
	    "  --zip        -z  Force zipdrive geometry (-H 64 -S 32)\n"
should be:
	    "  --zipdrive   -z  Force zipdrive geometry (-H 64 -S 32)\n"

And:
	    "  --raid       -r  Fall back to the next device on boot failure\n"
should be:
	    "  --raid-mode   -r  Fall back to the next device on boot failure\n"

See here the relevant part of extlinux/main.c:
=======================================================
static void __attribute__ ((noreturn)) usage(int rv)
{
    fprintf(stderr,
	    "Usage: %s [options] directory\n"
	    "  --install    -i  Install over the current bootsector\n"
	    "  --update     -U  Update a previous EXTLINUX installation\n"
	    "  --zip        -z  Force zipdrive geometry (-H 64 -S 32)\n"
	    "  --sectors=#  -S  Force the number of sectors per track\n"
	    "  --heads=#    -H  Force number of heads\n"
	    "  --stupid     -s  Slow, safe and stupid mode\n"
	    "  --raid       -r  Fall back to the next device on boot failure\n"
	    "  --once=...   -o  Execute a command once upon boot\n"
	    "  --clear-once -O  Clear the boot-once command\n"
	    "  --reset-adv      Reset auxilliary data\n"
	    "\n"
	    "  Note: geometry is determined at boot time for devices which\n"
	    "  are considered hard disks by the BIOS.  Unfortunately, this is\n"
	    "  not possible for devices which are considered floppy disks,\n"
	    "  which includes zipdisks and LS-120 superfloppies.\n"
	    "\n"
	    "  The -z option is useful for USB devices which are considered\n"
	    "  hard disks by some BIOSes and zipdrives by other BIOSes.\n",
	    program);

    exit(rv);
}

enum long_only_opt {
    OPT_NONE,
    OPT_RESET_ADV,
};

static const struct option long_options[] = {
    {"install", 0, NULL, 'i'},
    {"update", 0, NULL, 'U'},
    {"zipdrive", 0, NULL, 'z'},
    {"sectors", 1, NULL, 'S'},
    {"stupid", 0, NULL, 's'},
    {"heads", 1, NULL, 'H'},
    {"raid-mode", 0, NULL, 'r'},
    {"version", 0, NULL, 'v'},
    {"help", 0, NULL, 'h'},
    {"once", 1, NULL, 'o'},
    {"clear-once", 0, NULL, 'O'},
    {"reset-adv", 0, NULL, OPT_RESET_ADV},
    {0, 0, 0, 0}
};
==========================================


The EXTLINUX documentation needs changes too:
"EXTLINUX is a new Syslinux derivative, which boots from a Linux
ext2/ext3 filesystem."
The new EXTLINUX installer can now install on EXT2/3/4, FAT12/16/32 and
BTRFS too.

Is this still valid (511 character limit)?
3. Pathnames can be absolute or relative; if absolute (with a leading
   slash), they are relative to the root of the filesystem on which
   extlinux is installed (/boot in the example above), if relative,
   they are relative to the extlinux directory.

   extlinux supports subdirectories, but the total path length is
   limited to 511 characters.

Maybe it would be nice if the EXTLINUX documentation also mentions how to
remove an installed extlinux.sys file (on EXT2/3/4 and BTRFS), because the
EXTLINUX installer sets the immutable attribute:

  chattr -i /boot/extlinux/extlinux.sys
  rm /boot/extlinux/extlinux.sys



The Syslinux and Extlinux installer can't do the same.

The extlinux installer for example allows you to install EXTLINUX (on
fat12/16/32 too) in a custom directory and when EXTLINUX boots it will
search for its config file in this directory:

  extlinux/extlinux --install /some/random/dir

  EXTLINUX looks for /some/random/dir/extlinux.conf when booted.

The Syslinux installer can be installed in a custom directory too, but it
still searches for its config file in /boot/syslinux, /boot and /.

  linux/syslinux -d /some/random/dir /dev/sda

  SYSLINUX looks for syslinux.cfg in /boot/syslinux, /boot and /.
  ldlinux.sys is in /some/random/dir.


- Gert Hulselmans




More information about the Syslinux mailing list