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/