Hello,
now the second preview for netboot version 0.9 is available. You can find it
as //www.han.de/~gero/netboot/files/netboot-0.9.0b.tar.gz with a size of
approx. 700kB. This preview version is not meant for production ROMs, but the
only missing thing is the documentation, which is still on the 0.8.1 level.
However, if you have some experience with netbooting you should have no
problems using this preview.
HELP NEEDED!!!
==============
Due to the many changes with almost every aspect of the package, I'm urgently
looking for people who want to test this netboot version. Even if you don't
plan to use netboot permanently (for example because you are using etherboot
or something else), please check out this netboot version at least with the
floppy version. I do need as many test reports as possible to be able to
release the final 0.9 version by the end of the year.
The following items need special attention for testing:
- netboot now supports a couple of new standards like BBS and PMM. To test
for this I bought a new mainboard with an Award BIOS, but this damned
BIOS doesn't correctly implement the PnP BIOS standard, and BBS and PMM
are not implemented by the BIOS at all. Therefore, if you have a different
BIOS (I think AMI and Phoenix should support these standards, at least on
Intel mainboards) please check this out. Of course this only works if the
bootrom gets burned into an EPROM and placed directly on the network card.
- Due to the new interrupt handling imposed by the PXE specification, the
ARP code had to be changed significantly. I only have a very small net-
work available with a handful clients, where ARP is not needed as much.
I'm therefore looking for tests on larger networks, including booting
accross gateways. Also, these tests should impose a bigger load on the
packet receiving code of the bootrom to check if it can handle a higher
interrupt frequency. These tests should be done with both the packet and
NDIS drivers, because interrupt handling is implemented differently with
both driver interfaces. I've checked ARP myself as much as I can with my
own network, so at least most bugs found in the previous netboot versions
have been fixed now (ARP timeout etc.).
- The bootrom should be tested with different network cards and drivers. I
only have a WD8003EP and a RTL8019 based PCI card available for testing.
Especially, the NDIS part needs further testing.
If you have a chance of testing this new netboot version, PLEASE PLEASE do
so to help me further enhance netboot. I'm urgently needing your help.
New features:
=============
Almost every file in the netboot package has been changed somehow. It's
therefore not possible to list all new features and changes here. Please
look at the HISTORY file for a complete index. However, here are some
more or less important changes relative to version 0.8.1:
- The bootrom has been split into two parts: the bootrom kernel and the
network driver interface, which are completely independent of each other.
They communicate using the Universal Network Driver Interface (UNDI)
specification. This modularization allows much more flexibility in
configuring the bootrom.
Three bootrom kernels are provided: the standard kernel, a kernel with
support for old menus (defined by using BOOTP tags), and a kernel for
old 16-bit x86 processors.
Three network driver interfaces are provided. In addition to standard DOS
packet drivers you can now also use NDIS-2 drivers. You should therefore
find a driver for almost every network card on the market. Also, a stub
for generic drivers is provided. It is now possible to write UNDI network
drivers specially designed for the netboot bootrom (like it always had
to be done with etherboot). Such generic drivers have the advantage of
being smaller and faster than any of the standard drivers, but the dis-
advantage of not being available by manufacturers. Implementation of a
RTL8019 driver is planned for the next netboot version as a reference,
likely to be based on the Linux kernel network driver sources.
- Support for various industry standards:
* PnP BIOS specification
* BIOS boot specification (BBS)
* Device Driver Initialization Model (DDIM)
* POST memory manager specification (PMM)
- The bootrom now has an API which fully complies to Intel's Preboot
Execution Environment (PXE) specification, version 1.0 Release Can-
didate Draft, which is part of the latest WfM 2.0 specification.
Unfortunately, Intel doesn't provide a test kit yet for this version
of the WfM specification. As soon as such a test kit gets released by
Intel, I will verify (and adjust if necessary) proper bootrom operation.
This seems to be necessary because the specs are not clear with some
aspects. However, you can now start programming with the bootrom. Please
note that at the UNDI level the PXE 1.0 specs (on which netboot is based)
are quite different from the older specs which are part of WfM 1.1a.
- mknbi-dos has been changed so that it's now possible to keep certain
parts of the bootrom in memory when DOS starts. With the PXE API you
can therefore use the TFTP, UDP and network driver parts of the bootrom
with your own DOS programs and don't have to load a seperate network
driver.
- mknbi-linux also had to be changed because of the memory layout changes
required to implement PXE. It now always loads the Linux kernel into high
memory. Also, the Linux loader has been changed to 386 code so that it
runs faster. Because of all these changes to mknbi-linux you have to
generate new Linux boot images when using the new bootrom. Old Linux
boot images won't boot with the new bootrom, but new boot images work
with old bootroms. Therefore, you can safely generate new boot images
for all your diskless clients even if you don't want to use the new
bootrom permanently.
- makerom received a good deal of changes. Listing them all would increase
the size of this file significantly. The more apparent changes relate to
the user interface and the configuration and database files. Because of
the new bootrom structure (two parts plus network driver) and the ability
to use different network drivers the database file format had to be changed.
Also, makerom now comes with a large database of pre-known network cards. If
you have a driver which is listed there, you don't need to enter more data
than absolutely necessary. Especially, the PCI vendor/device ID's and the
PnP ID (if applicable) get set automatically. If makerom is unable to
automatically detect your network drivers please let me know so that I can
update the card database.
- Some of the minor changes:
* support for blocksize and filesize TFTP options for a much faster
loading of boot image files (a suitable TFTP daemon can be downloaded
from the netboot home page - I don't include it with the netboot package
because it's not GPLed - or is it legally possible to include a program
covered by the BSD copyright into a GPLed package?).
* upon startup, the bootrom can now optionally ask the user if he/she
wants to start the network boot, or continue with a disk boot.
* changed all makefiles to run with non-GNU-make programs, like SysV.
* the new PXE memory layout now allows loading boot image files into
low memory (below 0x0010000)
* added a couple of additional Crynwr packet drivers
* many many bug fixes (and probably at least the same amount of new
bugs... :-((
Installation:
=============
Since the documentation has not been updated yet with this preview version,
here is a short installation instruction:
- Delete any old netboot directory (/usr/local/lib/netboot) or rename it
- After unpacking run:
./configure
make
make install
It is still possible to use netboot without installation, but to get the
most functionality you should install it.
- Copy all network drivers you have available for your network cards into
the netboot directory:
* Packet drivers should go into /usr/local/lib/netboot/netdrvr/pktdrvr
* NDIS drivers should go into /usr/local/lib/netboot/netdrvr/ndis
- Run makerom to generate a new bootrom
Everything else (generating boot image files etc.) works like with the old
netboot versions. Remember to re-generate your Linux boot image files with
the new mknbi-linux. If you have created a database file for your clients,
you can easily use the -b option of mknbi-linux.
Plans for the future:
=====================
Planned for the final release of 0.9 is a documentation update in addition
to fixing all the bugs you are telling me. The next version (0.9.1) will
then get DHCP support and some support for generic network drivers. Some
other future projects, for which I'm glad to receive support from you, are:
- Enhancements to MGL: The compiler needs a complete rework like internal
pseudo-op generation, better optimization and support for object file
output so that it becomes possible to link other object files and libraries
into an MGL program. This should make it possible to access the PXE bootrom
functions from an MGL program, and write small network programs completely
using MGL.
- Enhancements to makerom: I'm still thinking about a curses- and/or X11-
based user interface to makerom, but haven't had the time yet to implement
it.
If you are interested in contributing to the netboot project, please let
me know for further coordination of our work.
That's all for now. Hopefully, many of you send me your findings on testing
this new preview release. Remember, the more replies I get the sooner the
final version 0.9 will be released. At present I'm planning to release it
by the end of the year. Therefore, please test it and send me your findings.
Tell me if netboot works for you, and more importantly if it doesn't work.
Thanks in advance for your support.
gero.
--
The better technology does not always sell better, even if it is first.
- William J. Spencer, Xerox Corporation
--
Gero Kuhlmann, Hannover 0511/6497525 (Voice) gero@gkminix.han.de
===========================================================================
This Mail was sent to netboot mailing list by:
Gero Kuhlmann <gero@gkminix.han.de>
To get help about this list, send a mail with 'help' as the only string in
it's body to majordomo@baghira.han.de. If you have problems with this list,
send a mail to netboot-owner@baghira.han.de.
For requests or suggestions regarding this mailing list archive please write to netboot@gkminix.han.de.