For a machine which has no floppy disk or CD-ROM drive it will be convenient to be able to boot and / or install Bering-uClibc 4.x using PXELINUX (boot over the network).
The developments required to support this are:
1. Extend buildimage.pl to generate a .tar.gz file to install on the PXE (TFTP) server. This will need to include "pxelinux.0" (from the syslinux source package) in addition to the kernel, initrd, .lrp and other files.
2. Modify "linuxrc" (actually /init on a running system) to download leaf.cfg and the .lrp files using TFTP instead of loading these from local media. (Need to change the format of PKGPATH?)
3. Optionally provide a facility to write the downloaded files to local Compact Flash or similar media so that subsequent boots will be from that local media rather than using PXE. Also need to be able to partition, format and "syslinux" the local media.
4. Optionally provide a facility to upload configdb.lrp and moddb.lrp to a TFTP server for full diskless operation (machine always boots using PXE).
A key objective should be to permit a PC Engines ALIX or similar machine to have Bering-uClibc installed without physical access to the machine.
See also http://leaf.sourceforge.net/doc/buci-ide3.html#id3226960
A small part of Step 1 is now complete, in as much as the buildimage.pl script recognizes "pxelinux" as a build image type.
We could provide a leaf version as an application for use in Qemu or virtualbox that can act as an PXE server with script for installing on target.
The same application could also install itself locally.
This would bypass the problem with using disk.img that lacks ioctl and different media having different metrics.
There exist some old stuff a pxe.lrp
http://leaf.sourceforge.net/doc/bupxebooting.html
While it is essential to use TFTP for the very first step - downloading pxelinux.0 (or gpxelinux.0) and its configuration file - it is not essential to use TFTP for all of the subsequent downloads.
By using gpxelinux.0 either HTTP or FTP can be used to download the kernel and initrd.
Then, for downloading leaf.cfg and the Package .lrp files, any sensible file transfer mechanism can be used:
Basically all that we need is to establish network connectivity when running "init" and to provide the relevant file transfer client software for the chosen protocol.
We should try to support as many of these file transfer protocol options as is practical, with some simple means of specifying which one should be used. Other distributions (e.g. http://www.minimyth.org/) do this by using a "URL" format for the path. For example we might choose to support:
Provisionally allocated to Milestone 4.1
Seems that "curl" might be a good option for the file download (and upload) rather than using multiple different file transfer protocol clients. It supports lots of good protocols:
and several more email-related protocols (e.g. SMTP, IMAP, POP3)
I have a "curl" package in development (for "asterisk" as it happens). Sounds like it might be a useful utility to have available anyway.
I am making some progress on this and now have PXE boot working on a development system.
The basic requirements are:
Automatically saving back changes over the network is more complicated so I propose to leave that for later.
There are some more design decisions to make: