On Mon, 27 Aug 2001, Verma, Lohit wrote:
> Could someone guide me how to make a floppy bootable image something
> like miniRTL I searched the net and various mailing lists , though i
> could find some images but no documentation / procedure regarding how
> to make this image. A detailed procedure would be very welcome and
> appreciated

You need the following things for a boot floppy:

- A Linux Kernel with your favourite realtime patch [RTAI|RTL]. There is
  no need to install it as root in /usr/src/..., you can put it in your
  developer's home directory. Configure it as usual; for the beginning it
  is easier to include everything you need statically, so you don't have
  to fiddle around with modules.

- You need a boot loader. A very simple way is to make everything on a
  normal DOS formated floppy, so you can for example use 'syslinux' as
  a boot loader. Please searche on Freshmeat for it's homepage. Syslinux
  has a very simple configuration file and loads the kernel itself,
  which you should put on the disk as well (named 'linux' is standard).

- Now, a root filesystem is needed. Just use dd to create a file with
  your preferred size (dd if=/dev/zero of=my_file bs=1k count=mysize).
  Make a filesystem on the file (e.g. with mkfs.minix). Afterwards you
  can mount it using the loop device:

   mount -t minix -o loop my_file /mnt_or_somewhere_else

- Start with a C library now. For very small systems uClibc is a very
  good choice. You'll find it on opensource.lineo.com (look at the
  'Projects' menu entry). uClibc has to be configured with it's Config
  file. You'll leave most of the things there as they are, but look
  especially at the path where it wants to install itself and change it
  to the location of your mounted file system. While you are playing
  around it might be a good idea to use a normal directory and copy
  the stuff over to the mounted image if everything works as expected.
  Compile uClibc and 'make install PREFIX=/path/to/my/root'. Be careful,
  the exact syntax of this has changed recently, so it might be different.
  Look at the install target in the Makefile for how it works.

- Download Busybox from opensource.lineo.com. uClibc installs a
  gcc compiler wrapper on your development host which has the right
  paths and command line parameters for compiling and linking with
  uClibc. Configure Busybox as you wish (look at the README files;
  be sure to include the applets for 'init' and 'linuxrc') and
  compile it with the wrapper:

    make CC=/usr/i386-linux-uclibc/bin/gcc

  Install it with 'make install PREFIX=/path/to/my/root'.

- Do the same procedure with Tinylogin, also to be found on Lineo's
  Opensource web page. Configuration, compilation and installation
  are nearly the same.

- After you have installed all that in your root directory you are mostly
  finished. The Busybox applet for 'init' runs even without a
  configuration file and 'linuxrc' takes care of proper mounting of the
  initial ramdisk.

- Add some salt and pepper, uhm, I mean look at your normal devleopment
  host for what else you might need to be happy (for example /etc/passwd
  and friends or a properly configured /etc/inittab).

While playing aroud with such a system it is always a good idea to load
your root filesystem not from the disk but via NFS (the Diskless-root-NFS
HOWTO on linuxdoc.org tells you how this is done). This way you can play
around with the files and you see immediately what happens. You can also
boot the kernel via NFS (look at the Diskless HOWTO) or even (as I do it
with my development system) change the BIOS to boot directly with DHCP and
TFTP over the net. This way you don't even need a disk during the
development stage and you can switch the power of the system off whenever
you want...

Sorry for not giving much details, but I think it is very important to do
the steps one after another yourself, just to find out how things work.

Please feel free to ask if you have questions!

Robert
-- 
 +--------------------------------------------------------+
 |             Dipl.-Ing. Robert Schwebel                 |
 |      Linux Solutions for Science and Industry          |
 |  Braunschweiger Stra�e 79, 31134 Hildesheim, Germany   |
 |     Phone: +49-5121-28619-0  Fax: +49-5121-28619-4     |
 +--------------------------------------------------------+

-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/

Reply via email to