Re: Is initrd enough?` - Embedded

This is a discussion on Re: Is initrd enough?` - Embedded ; I'm not sure whether you know of or have considered using the PXE protocol to boot your client nodes. Most modern Ethernet NICs allow you to boot off a central server using the TFTP protocol. For smallish applications you don't ...

+ Reply to Thread
Results 1 to 2 of 2

Thread: Re: Is initrd enough?`

  1. Re: Is initrd enough?`

    I'm not sure whether you know of or have considered using the PXE
    protocol to boot your client nodes. Most modern Ethernet NICs allow you
    to boot off a central server using the TFTP protocol. For smallish
    applications you don't really need a hard disk (or cf disk). If you have
    bigger space requirements you could potentially NFS mount a shared
    directory structure from the central server.

    You first assemble a target root filesystem (rootfs) with your OS and
    application, which you will eventually package as an initrd image. You
    then compile a light-weight kernel according to your needs and ensure
    that it has initrd support enabled. Both the kernel and rootfs are shared
    from the central controller and each client accesses them from the PXE
    environment. Your whole OS exists in RAM and is cleaned on every boot
    (you can save files either onto a local cf disk or NFS mount).

    If you need more information, search for "TinyGentoo" using Google.


  2. Re: Is initrd enough?`

    Hi,

    > I'm not sure whether you know of or have considered using the PXE
    > protocol to boot your client nodes.


    Yes I did.

    These machines are going to be connected most of the time, and/or in
    most installation. They have to be able to boot without net
    connectivity as well, though. And their local environment (is there
    a server on the same LAN? etc.) is not very well-defined.

    So network-boot is not an option for me.

    As an update to my oldish post:

    Yes, not only is it perfectly acceptable to not switch roots if your
    system does not require it. It works, too. And it is not even against
    any law :-).

    I now have a system that boots from CF using SysLinux. Then loads
    an initramfs-image from said CF and uses that as final root-fs. It
    then goes on initializing using minit and in that process loads
    modules for network and the FAT-filesystem the CF is formatted as.
    Finally it mounts said CF again unter /mnt to read per-device
    configuration and allow a bit of persistent storage. It is also
    possible to update the little thingies in the field by supplying
    a fresh kernel and/or initramfs to the mounted FAT-fs over SCP (as
    the rootfs-image has been loaded into RAM and is not mounted in
    itself) and then reboot them.

    I built that system using T2 (http://www.t2-project.org). Without any
    special aggressive tuning measures it is very full-featured based on
    a current kernel and weighs in at about 7MB Kernel+gzipped initramfs.
    After boot 18MB of RAM are used.

    Ciao, MM
    --
    Marian Aldenhövel, Rosenhain 23, 53123 Bonn
    http://www.marian-aldenhoevel.de
    "Success is the happy feeling you get between the time you
    do something and the time you tell a woman what you did."

+ Reply to Thread