Ok, syslinux is what it is, and I love the way it just works. I looked up linuxBios and found what I was looking for. A project in 2000 called "LOBOS (Linux OS Boots Linux OS): Booting a Kernel in 32-bit Mode? It looks like this would do what I need, but I can't find any working code. I like the Idea of booting a simple fail safe system and restarting a production kernel. Yes, UML- Linux would let me do some of this. I need to also look at UML. Thank you for your time, Nicholas A. Schembri State College, PA USA ----- Original Message ---- From: Josh Lehan <jlehan at scyld.com> To: H. Peter Anvin <hpa at zytor.com> Cc: Luis.F.Correia <Luis.F.Correia at seg-social.pt>; syslinux at zytor.com Sent: Friday, October 6, 2006 4:54:51 PM Subject: [syslinux] Question about a "pre-OS", was Re: scope creep H. Peter Anvin wrote:> You're missing the point... he wants console output on his USB serial > dongle, which is hellishly hard to support (since serial port isn't one > of the BIOS-provided "USB legacy features", syslinux would have to > include a full-blown USB stack.)That would be a huge, but very useful, project. Quite beyond the scope of SYSLINUX, though. My understanding of SYSLINUX is this, correct me if I'm wrong: SYSLINUX is a bootloader, which means that it focuses on booting OS's from the device presented to it by the BIOS. There are 4 main API's that have evolved over time, with varying support in various BIOS's, for possible use by bootloader programs: floppy (INT 13 device 0x00), "fixed disk" (INT 13 device 0x80 and a different set of calls), CDROM "El Torito", and PXE (the UNDI stack). SYSLINUX comes in various flavors, to support all of these: SYSLINUX or EXTLINUX (floppy and hard drive), ISOLINUX (CDROM), and PXELINUX (PXE). What SYSLINUX doesn't do, though, is discover new devices and add additional BIOS support for them. There is a patchwork of other projects that do this: Smart Boot Manager (emulates CDROM support, to chain-boot from floppy/HD to CD, if BIOS can't directly boot from CD) Etherboot (emulates a PXE BIOS, for network cards that don't have built-in PXE, to chain from floppy/HD to PXE) There's probably others, but I forgot. Now, a question: Does anybody know of a project underway to do something on a greater scope, that is, kind of a "pre-OS" to discover all bootable devices and add BIOS-like support for them? Something could be written that would do all the USB discovery and setup, and so on, and then install BIOS-like API support for them, so that the system could end up successfully booting from those devices, even when the real BIOS couldn't do it directly. This would be useful for USB, FireWire, PXE, ATAoE, iSCSI, various other exotic protocols, various older nonstandard devices, and pretty much anything that can be discovered and booted from. It would be something that could start from something as simple as a floppy, and then chain from there to any other device. Would such a thing be possible? Is there a designated "safe area" in low-640K memory that a software driver could run at, that wouldn't get clobbered by whatever is being chain-booted into? For example, let's say I have a Linux USB key with SYSLINUX on it, but my BIOS doesn't let me boot from USB. So, I run this "pre-OS" to boot from floppy. It discovers my USB key and provides a driver that sets it up as a BIOS-like device (probably "fixed disk"), and chain-boots to that. Is there a designated area of memory that the "pre-OS"'s USB driver can still safely sit at, even though SYSLINUX will load again from USB and take control? Josh _______________________________________________ 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.
I found a tool called kexec. It is part of kexec-tools. I will post what I find. ----- Original Message ---- From: Steve Brown <sbrown7 at umbc.edu> To: n schembr <nschembr at yahoo.com> Cc: SYSLINUX at zytor.com Sent: Saturday, October 7, 2006 5:08:19 PM Subject: Re: [syslinux] "pre-OS" On Sat, 7 Oct 2006, n schembr wrote:> Ok, syslinux is what it is, and I love the way it just works. > > I looked up linuxBios and found what I was looking for. > A project in 2000 called "LOBOS (Linux OS Boots Linux OS): Booting a Kernel in 32-bit Mode? > > It looks like this would do what I need, but I can't find any working code.Weird, when I did a google search for Linux BIOS, I got linuxbios.org as the first hit, and there is a download link on the left side of teh page. They are primarily out of LANL, have presented progress/success reports at several conferences, including the annual Supercomputer conference of IEEE. Steve Brown sbrown7 at umbc.edu
On Sun, Oct 08, 2006 at 09:47:31AM -0700, n schembr wrote:> I found a tool called kexec. It is part of kexec-tools. I will post what I find.This might interest you: http://kboot.sourceforge.net/ -- lfr 0/0 -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: not available URL: <http://www.zytor.com/pipermail/syslinux/attachments/20061009/2430623f/attachment.sig>
Thank you for the kboot info. kboot looks good. syslinux and kboot will make a good team. I have not tried it yet but kboot looks like a ultra mini distro. My guess is less then 5 meg. It looks like It might make a good boot loader for Xen systems. You can give your customer a guest with Kboot as a base system for them to load with. Looks very cool. I'm going to see If i can use voyage-linux for this same type of thing. Use voyage as a flash based bootloader for Debian. I can have syslinux boot the flash drive. I can have the voyage-linux system boot automatically with console=/dev/ttyUSB0. Then I can boot Debian with init 1 console=/dev/ttyUSB0. This will allow me to boot init 1 over ssh or the Usb serial port. It sure looks like this will keep me from having a remote rock on other side of the Net. Nicholas A. Schembri State College, PA USA ----- Original Message ---- From: Luciano Miguel Ferreira Rocha <strange at nsk.no-ip.org> To: syslinux at zytor.com Sent: Monday, October 9, 2006 1:39:00 PM Subject: Re: [syslinux] "pre-OS" On Sun, Oct 08, 2006 at 09:47:31AM -0700, n schembr wrote:> I found a tool called kexec. It is part of kexec-tools. I will post what I find.This might interest you: http://kboot.sourceforge.net/ -- lfr 0/0 _______________________________________________ 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.
n schembr wrote:> Ok, syslinux is what it is, and I love the way it just works. > > I looked up linuxBios and found what I was looking for. > A project in 2000 called "LOBOS (Linux OS Boots Linux OS): Booting a Kernel in 32-bit Mode? > > It looks like this would do what I need, but I can't find any working code. > > I like the Idea of booting a simple fail safe system and restarting a production kernel. Yes, UML- Linux would let me do some of this. I need to also look at UML.LinuxBIOS, kexec(), and kboot are all useful tools for prebooting Linux then chain-booting from Linux to Linux. My question, though, was more general. Is here a tool out there for generic chain-booting into any operating system, not just Linux? This tool would have to run in "BIOS mode", or whatever the correct terminology is for the 16-bit-ish preboot environment that SYSLINUX (and other bootloaders) run inside of. I'm thinking along the lines of a tool that would go out and auto-discover various devices connected via USB, FireWire, etc. and then set up a BIOS "driver" to support INT 13 access to them. Then, for example, you could have a Windows bootable CD, that could boot from a USB-attached CDROM drive that the computer's native BIOS could not see. You'd start by booting a floppy (for example), running this "pre-OS" from a floppy, then chain-booting to the CD once an appropriate INT 13 driver is loaded into memory and the CDROM drive has been given a BIOS-style "drive number". Such a tool already exists, "Smart Boot Manager", but it doesn't work for USB. Smart Boot Manager supplies, as one of its components, an El Torito stack for accessing a CDROM in this preboot environment. This is an example of the "pre-OS" that I tried to describe. Notice that there's no Linux-specific code in it. Such a "pre-OS" would be able to boot into any PC-compatible OS. It sets up disks as raw sector-addressable devices, assigning them BIOS INT 13 drive numbers and installing a software driver in a safe area of low memory (if indeed such a thing exists). It would add BIOS-style support for disks, so bootloader code loaded from them (such as SYSLINUX) needs no further changes in order to "see" the disk and finish booting the OS from it. Similarly, for network cards, it would have PXE client support (such as Etherboot), or an iSCSI or ATAoE stack to mount some remote storage over the network card and make it available under a BIOS INT 13 drive number for chain-booting into it. Hope this clarifies things. I was interested in a lower-level solution that would run at the BIOS level, discovering and recognizing sector-addressable disk devices, loading boot sectors from those disks, chain-booting to them, eventually loading any PC-compatible OS, not just Linux. I do think that kboot/kexec is rather nice for Linux booting Linux, though. Josh