Pete Batard
2013-Aug-08 22:54 UTC
[syslinux] com32 module compatibility between 5.x versions
Hi, I'm the author of Rufus [1], an application that is based in part on Syslinux, and that can convert ISOLINUX based ISOs to bootable USBs. As such, I have recently added support for Syslinux v5.x based ISOs, and will be looking at adding v6 support in the future. Due to the nature of the app, as well as obvious space considerations, when installing Syslinux 5.x on an USB flash drive, all the com32 modules from the disc image are being reused, including ldlinux.c32, with ldlinux.sys being the only external file provided. However, I recently found out that the Syslinux 5.10 and Syslinux 5.01 modules are not compatible ([2], [3]). More specifically, the use of ldlinux.c32 v5.01 with ldlinux.sys v5.10 produces a "Failed to load ldlinux.c32" error. As such, I am very much hoping that this is just a one of occurence, and that future v5.x ldlinux.sys are going to be compatible with .c32 modules from versions 5.10 or above. Can you please confirm whether this should be the case? If not, this will be a major setback for my app, because it means I'll have to multiply the versions of ldlinux.sys embedded, as well as add detection for the exact ISOLINUX version being used (is there an easy way to do that?). For what is worth, the app is currently less than 500 KB in size, including both v4.06 and v5.10 of ldlinux.sys, as well as other non native resources such as FreeDOS system files, so the requirement to embed a different .sys for each Syslinux version will mean a major increase in size ultimately. I very much would like to keep the app under the 1MB bar, while also supporting the 25 or so languages I am going to add native support for (in a single executable). As such, I very much hope that Syslinux can help avoid the multiplication of embedded files. Regards, /Pete PS: It looks like Syslinux v4.07 has officially been released, but there doesn't appear to be any mention of it at http://www.syslinux.org/wiki/index.php/The_Syslinux_Project [1] http://rufus.akeo.ie [2] https://github.com/pbatard/rufus/issues/165 [3] http://sourceforge.net/p/clonezilla/discussion/Clonezilla_live/thread/e00567cd/
H. Peter Anvin
2013-Aug-09 05:37 UTC
[syslinux] com32 module compatibility between 5.x versions
On 08/08/2013 03:54 PM, Pete Batard wrote:> > As such, I am very much hoping that this is just a one of occurence, and > that future v5.x ldlinux.sys are going to be compatible with .c32 > modules from versions 5.10 or above. > > Can you please confirm whether this should be the case? >No, we pretty much only guarantee that modules work when they all come from the same version. This is *especially* true for ldlinux.c32, which is really just an extension of ldlinux.sys, but it applies to other modules as well.> If not, this will be a major setback for my app, because it means I'll > have to multiply the versions of ldlinux.sys embedded, as well as add > detection for the exact ISOLINUX version being used (is there an easy > way to do that?).Sorry. If you are substituting any files you should substitute them all. -hpa
Bernd Blaauw
2013-Aug-09 15:24 UTC
[syslinux] com32 module compatibility between 5.x versions
H. Peter Anvin schreef op 9-8-2013 7:37:> Sorry. If you are substituting any files you should substitute them all.I assume it's not possible to store a copy of the LDLINUX.SYS binary at the end or inside of either ISOLINUX.BIN or LDLINUX.C32 then? Then at least it could be extracted, for those distributions not having LDLINUX.SYS / SYSLINUX(64).EXE present on their CD. Having ISOLINUX.BIN working on FAT and NTFS instead of only ISO9660 impossible as well I guess (as that's LDLINUX.SYS' specialisation). Bernd