Martin von Wittich
2014-Sep-25 09:36 UTC
[syslinux] localboot.lua: a lua.c32 script that uses DMI data to decide between localboot/chainloading
Hi, we use PXELINUX in our product to show a boot menu on client computers, with options like "Boot from local hard disk", "Install Windows", etc. Unfortunately, a lot of computers seem to have broken BIOSes and won't boot with the LOCALBOOT command, and need to be booted with chain.c32 instead. We also have encountered some computers where it works only the other way - chainloading does not work, while LOCALBOOT works fine. To solve this issue, we have written a Lua script that uses the DMI data of the computer to decide whether it should be booted with LOCALBOOT or chain.c32. The scripts defaults to LOCALBOOT, but has a list of exceptions for computers that require chainloading. Over the past few years, we've collected quite a few of these exceptions, and I thought that other users might benefit from our work, so I've published the script on github: https://github.com/martinvonwittich/localboot.lua Just use the script instead of the LOCALBOOT command in your pxelinux.cfg: kernel lua.c32 append localboot.lua I'm looking forward to feedback. Also, can someone give me edit permissions in the wiki so I can add it there as well? My username is "Martin von Wittich". -- Mit freundlichen Gr??en, Martin v. Wittich IServ GmbH B?ltenweg 73 38106 Braunschweig Telefon: 0531-2243666-0 Fax: 0531-2243666-9 E-Mail: info at iserv.eu Internet: iserv.eu USt-IdNr. DE265149425 | Amtsgericht Braunschweig | HRB 201822 Gesch?ftsf?hrer: Benjamin Heindl, J?rg Ludwig
Ferenc Wagner
2014-Sep-25 12:06 UTC
[syslinux] localboot.lua: a lua.c32 script that uses DMI data to decide between localboot/chainloading
Martin von Wittich <martin.von.wittich at iserv.eu> writes:> To solve this issue, we have written a Lua script that uses the DMI data > of the computer to decide whether it should be booted with LOCALBOOT or > chain.c32.Cool! Please note that the DMI table representation was changed by http://git.zytor.com/?p=syslinux/syslinux.git;a=commit;h=ecd6e3b53d17b7fa9cdb0a4d674754238ab1855a to use nested tables, so sm = dmitable.system.manufacturer etc. Also, modules must be required explicitly, like dmi = require "dmi" and syslinux = require "syslinux" in the newest versions. -- Regards, Feri.
Reasonably Related Threads
- Samba keeps resetting smbpasswd permissions
- Bug#820807: xen-hypervisor-4.4-amd64: Xen detects only one CPU when bootet via EFI and grub2
- Point-and-Print driver installation asks for confirmation on current Windows
- [Bug 10637] New: rsync --link-dest should break hard links when encountering "Too many links"
- [Bug 1695] New: ssh-add -D does not delete all keys