SIMPL on a floppy: Embedded Linux Workshop



The Embedded Linux Workshop tools are GPL'd and available at Sourceforge.   They are described in more detail in John Lombardo's book "Embedded Linux" ISBN 0-7357-0998-X.

Here's the process I used to create the SIMPL on a floppy image using the Embedded Linux Workshop toolset.

Installing the Embedded Linux Workshop

  1. you'll need to be "root" when you install this stuff
  2. download the Embedded Linux Workshop elw-20010925.tgz from Sourceforge.
  3. cd /usr/local
  4. put elw tarball there
  5. tar zxvf elw-20010925.tgz
  6. make a symbolic link in /usr/bin to /usr/local/elw/bin/elw

Creating the simplonfloppy Embedded Linux Workshop project

  1. mkdir ~home/elwstuff
  2. cd ~home/elwstuff
  3. elw --newproject simplonfloppy
  4. cd simplonfloppy/arch/i386/src
  5. mkdir simplonfloppy
  6. cd simplonfloppy
  7. put simpl.tar.gz  here and undo it
  8.  ln -s simpl simplonfloppy
  9. cd simplonfloppy
  10. export SIMPL_HOME=`pwd`
  11. build the SIMPL code by typing
        make install
  12. cd ../../kernel
  13. put your linux source here and create a link called "linux" to point
    at it.
  14. cd linux
  15. make menuconfig

    and set only the following options (ie. turn all others off)
    Processor type
        386 processor
        1G Maximum Physical Memory

    Loadable module support
        Enable loadable module support

    General setup
        Networking support
        System V IPC
        Kernel support for ELF binaries

    Networking options
        Packet socket
        TCP/IP

    Network devices
        Network device support

    Block Devices
        Normal PC floppy
        RAM disk
        Initial RAM disk (initd) support

    Character devices
        Virtual terminal
        Support for console on virtual terminal
        Standard/generic (dumb) serial support

    Filesystems
        DOS FAT fs
        MSDOS fs
        VFAT (Windows 95) fs
        /proc filesystem
        Second extended fs

    Console Drivers
        VGA
  16. make dep bzImage
  17. cd ~/elwstuff/simplonfloppy
  18. mkdir -p opt/simplonfloppy/bin
        mkdir -p opt/simplonfloppy/etc/rc
        mkdir -p opt/simplonfloppy/fifo
  19. create a Makefile at opt/simplonfloppy/Makefile
    which contains the following

    everytime:
        echo "hello"

    binaries:
        @cp -f ../../src/simplonfloppy/simplonfloppy/bin/fcshow bin
        @cp -f ../../src/simplonfloppy/simplonfloppy/benchmarks/bin/receiver bin
        @cp -f ../../src/simplonfloppy/simplonfloppy/benchmarks/bin/sender bin

    dependencies:
        @echo "libncurses"
  20. create the rc script called opt/simplonfloppy/etc/rc/S99simpl
    to contain

    #!/bin/sh
    export HOSTNAME=bob
    export FIFO_PATH=/fifo
    echo "FIFO_PATH=$FIFO_PATH"
    echo "Press a key for SIMPL..."
    read x
    receiver -n BOBR &
    fcshow
    sender -n BOBS -r BOBR -t 10000 -s 1024
  21. chmod a+x opt/simplonfloppy/etc/rc/S99simpl
  22. cp -P /usr/share/terminfo/l/linux opt/simplonfloppy
  23. run the elw command
        elw
  24. in order select

        a) build binaries
        b) build image
        c) build floppy (after inserting blank floppy)
  25. boot off the floppy