Query based on : LILO for RTEMS

Angelo Fraietta angelo_f at bigpond.com
Mon Nov 18 21:08:05 UTC 2002

Find below the instructions / research into getting GRUB to work. See if 
it has something in it for you to work with. I originally had some 
problems with the install, however, I no longer do since following the 
instructions I made for myself.

Making a Grub Boot Disk

A custom Grub boot disk is required to boot the RTEMS operating system 
from a floppy disk.  After installing Grub onto your computer (I used 
Linux Red Hat 6.2), follow these instructions to make the customized 
Grub disk:

1.    Create a file called "floppy.lst" with the following entries
#this list requires that the executable "smart.exe: exists on this floppy
#timeout = 0 will make OS boot immediately
timeout = 0

default = 0

title RTEMS
root = (fd0)
#replace smart.exe with the name of your application
kernel =/smart.exe
2.    Copy the following files onto a standard FAT floppy disk: stage1, 
stage2, and floppy.lst.
3.    Boot your PC with a standard Grub disk. The instructions for this 
are in the file [grubdir]/docs/grub.info-1 under the heading "Installing 
GRUB on a floppy."
4.    Execute these commands at the Grub prompt:
grub> root = (fd0)
grub> install /stage1 (fd0) /stage2 /floppy.lst
5.    You can now boot your RTEMS exe by copying it to the floppy you 
just created and then booting your PC with that floppy.

This proved satisfactory at the beginning, however, swapping the floppy 
between the PC that runs the executable and the computer that I was 
using for development caused the floppy to wear out and start to jam in 
the computer.  The computer that was running RTEMS is attached to my 
network, so I decided to copy the built executable to the directory 
C:\rtems through the network while the computer was running Windows.  I 
would then re-boot the computer into RTEMS by using the following menu 
file on the Grub floppy:

# This is the amount GRUB waits in seconds before booting the default entry
# Set this when you're sure that the default entry is correct.
timeout 30

# Tell which entry to boot by default.  Note that this is origin zero
# from the beginning of the file.
default 0

title   Windows
rootnoverify (hd0,0)
chainloader +1

title RTEMS
root = (hd0,0)
kernel =/rtems/smart.exe

grub> root = (fd0)
grub> install /stage1 (fd0) /stage2 /winmenu.lst

This now allows me to boot the computer to either Windows or RTEMS 
without ever having to remove the floppy disk from the drive.

The next stage was to eliminate Windows entirely from the target 
computer. This was done using a Dos 6.22 / Linux dual boot computer as 
the test computer.  The computer used was a 386 PC with no co-processor, 
therefore making the system very similar to my final embedded target.  
Linux was installed onto the second partition of the first hard drive, 
with LILO installed onto the superblock of the partition, thus allowing 
to boot the partition using the chainloader feature of Grub .  I created 
the following Menu file, named "test.lst", to select the appropriate 
operating system to load at boot time:

# This is the amount GRUB waits in seconds before booting the default entry
# Set this when you're sure that the default entry is correct.
timeout 30

# Tell which entry to boot by default.  Note that this is origin zero
# from the beginning of the file.
default 1

title   Dos
rootnoverify (hd0,0)
chainloader +1

title Linux
rootnoverify (hd0,1)
chainloader +1

title Paranoia
root = (hd0,1)
kernel =/home/test/paranoia.exe

title Smart Controller
root = (hd0,1)
kernel =/home/test/smart.exe

I copied stage1, stage2, and test.lst to the directory /boot while the 
target was running Linux and the host was running WS_FTP LE in Windows 
NT4. I installed Grub to the MBR of the hard drive using the following 

grub > root = (hd0,1)
grub > install /boot/stage1 (hd0) /boot/stage2 /boot/test.lst

Grub was installed to the MBR of the hard drive, however, there was no 
menu.  I attempted to install Grub again from the DOS partition, 
however, this did not resolve the problem. I attempted to use the 
fat_stage1_5 file from the DOS partition without success.  I then tried 
using the e2fs_stage1_5 on the Linux partition using the following commands:

grub > root = (hd0,1)
grub > install /boot/stage1 (hd0) /e2fs_stage1_5 /test.lst

which proved successful.  The menu list and the test RTEMS kernels can 
be modified using ftp.  The result is that I should never require a 
floppy disk in the test computer under normal testing circumstances.

I later had to re-install Linux, and as such, the e2fs_stage1_5 and 
test.lst were no longer on the partition.  I was then unable to install 
GRUB using the previous method as I would always get a sector out of 
alignment error message.  I eventually overcame this by booting with the 
GRUB floppy and inserting a DOS formatted floppy with the stage1 file on 
it.  The stage2 and test.lst files were on the Linux partition in the 
/boot directory.  I then executed the commands:

grub > root (fd0)
grub > install /stage1 (hd0) (hd0,1)/boot/stage2 (hd0,1)/boot/test.lst

which proved to be successful.  I decided to attempt to boot the 
computer with the stage2 and test.lst files on the DOS partition, just 
to prove that I did not just jag it.  I modified test.lst and saved it 
to the DOS partition.  The DOS partition had only stage2 and test.lst 
(as well as the whole of MSDOS).  I proceeded as per the previous 
example except the install command was as follows:
grub > install /stage1 (hd0) (hd0,0)/stage2 (hd0,0)/test.lst

The computer booted using the menu on the dos partition.  I proved this 
by booting into DOS and modifying test.lst.  The new menu appeared when 
I re-booted.  I then booted into Linux and removed the stage1 and the 
e2fs_stage1_5 files from that partition.  I re-booted with the GRUB 
floppy and installed GRUB with the menu and stage2 files on the /boot 
directory of the Linux partition.
grub > root (fd0)
grub > install /stage1 (hd0) (hd0,1)/boot/stage2 (hd0,1)/boot/test.lst

Erwin Rol wrote:

>Hello Rakesh,
>As you can see in the email header i also sent this mail to the RTEMS
>list, which is normaly the best place to ask "gerneral" questions. I
>personaly don't know grub to well , and can't really give you any help
>on that topic, i just sugested trying it to make sure the problem you
>had was really lilo related.
>To everybody else, just read the mails below and maybe someone can give
>Rakesh some help ?
>- Erwin
>On Thu, 2002-11-14 at 07:50, Rakesh.V.R wrote:
>>Hi Erwin,
>>     Thanks for your reply. I tried to boot with GRUB following the
>>directions specified in the HOWTO doc, provided along with the RTEMS
>>snapshot. But on giving the "install" command, "File Not Found" error is
>>displayed. I've attached the HOWTO doc with this mail.
>>I tried using plex86 simulator. Still not successful to run RTEMS based
>>application. Expecting your suggestions.
>>----- Original Message -----
>>From: "Erwin Rol" <erwin at muffin.org>
>>To: "Rakesh.V.R" <rakesh at atinav.com>
>>Sent: Thursday, November 14, 2002 2:44 AM
>>Subject: Re: Query based on : LILO for RTEMS
>>>Hello Rakesh,
>>>On Thu, 2002-11-07 at 07:17, Rakesh.V.R wrote:
>>>>Hello Erwin,
>>>>    I configured and build RTEMS for target i386-rtems and pc386 bsp.
>>>Then I
>>>>edited the path in Makefile.inc provided in your liloboot package to
>>>>sample helloworld application created. I created the zImage and tried
>>>>boot the same using lilo. System successfully booted to RTEMS. But
>>>>of printing *** HELLO WORLD TEST ***, etc specified in the printf()
>>>>statements, it printed number 8000 for some 10 times and stopped.
>>>Could you
>>>>please suggest something in this regard.
>>>Hmmm hard to say, i wrote the lilo stuff a _long_ time ago so it might
>>>be something with the newer RTEMS kernels that goes wrong. Did you try
>>>to boot with grub to verify that RTEMS itself works on your hardware ?
>>>>Is there any good pc386 emulator, which can be used for running the
>>>I used BOCH's to boot RTEMS, that should still work. Else you can try
>>>vmware. BOCH's is opensource vmware is closed commercial software.
>>>I know the reaction was a bit slow, but i hope it still helps you a bit,
>>>>----- Original Message -----
>>>>From: "Erwin Rol" <erwin at muffin.org>
>>>>To: "RTEMS" <rtems-users at oarcorp.com>
>>>>Sent: Saturday, January 29, 2000 3:57 AM
>>>>Subject: LILO for RTEMS
>>>>>Hello all,
>>>>>due to the positive reactions here the source to
>>>>>make a image that can be booted with lilo.
>>>>>Few notes:
>>>>>it is hacked linux kernel code, which makes it GPL.
>>>>>The Makefile.inc holds the path to the "image" that should
>>>>>be booted. after a 'make' you will have a zImage wich can
>>>>>be dd'ed to floppy or booted with lilo.
>>>>>lilo offers the possibility pass boot parameters and to pass
>>>>>the memory size and it sets up the video modes.
>>>>>These things might be usefull for the pc386 BSP ?
>>>>>also I am interested to see if it solves those strange reboot
>>>>>I never have had serious problems with the 4.0.0 version and grub
>>>>>was very supriced to see the C++/sp/hello wolrd (the only ones i
>>>>>worked in one go now.
>>>>>I hope it is usefull and maybe can be integrated in the pc386 BSP
>>>>>it is GPL)
>>>>>- Erwin
>>>>>PS. can someone tell me what the best way would be to interegrate
>>>>>into the
>>>>>build process ? now i run make manualy on it and have to chnage the
>>>>>image name in the makefile.

Angelo Fraietta

PO Box 859
Hamilton NSW 2303

Home Page


There are those who seek knowledge for the sake of knowledge - that is CURIOSITY
There are those who seek knowledge to be known by others - that is VANITY
There are those who seek knowledge in order to serve - that is LOVE
    Bernard of Clairvaux (1090 - 1153)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20021119/0e85ee23/attachment-0001.html>

More information about the users mailing list