RTEMS/QEMU/GRUB on Windows

Massimo Tipaldi mtipaldi at cgspace.it
Fri Jan 9 11:16:56 UTC 2009


Joel,

from my little experience on RTEMS and GRUB and from our e-mail 
exchange, I can deduce that:

1) the GRUB is the reference implementation of the "Multiboot 
Specification": the images to be loaded should be in elf format or 
contain the load address information embedded in the Multiboot header
2) Since the hello.exe that comes out from the RTEMS compilation is 
correctly managed by the GRUB, it is in line with the multiboot 
specification (elf file)
3) the hello.exe compiled in examples-4.9.1/hello_world_c is not 
compliant: I think it is not an ELF file.

The reason is completely unknown to me.

Do you think that it depends on having used a Windows PC as a host?

Have the makefile and its included files (i.e. Makefile.inc) to be 
further modified?

If you compiled hello.exe on linux PC, is it correctly managed by QEMU?

In any case, thanks for your support; maybe, we have highlighted 
something to be tuned in the next RTEMS versions.

Massimo



Joel Sherrill ha scritto:
> Massimo Tipaldi wrote:
>> Joel,
>>
>> from your email, I have understood that I have generated my hello.exe 
>> correctly and that the "No multiboot header found" message is due to 
>> an format incompatibility between my hello.exe and the grub.
>>
>> Can you confirm this?
>>
>>   
> hello.exe is an ELF
> hello.ralf is netboot
> 
> I thought Grub could boot ELF files.
> What Grub can or cannot boot is unknown to me.
>> After compiling RTEMS (target=i386-rtems4.9 and RTEMS_BSP=”pc386”),
>> I have carried out the following steps to configure QEMU/GRUB(taken 
>> from http://www.rtems.com/wiki/index.php/QEMU):
>>
>> 1) From the RTEMS wiki, download the following files: qemu.bat, 
>> rtems-boot.img e rtems-grub.cfg
>> 2)Copy the file rtems-boot.img in d:\opt\rtems-4.9
>> 3)Copy the file qemu.bat in d:\opt\rtems-4.9
>> 4) Copy the file rtems-grub.cfg in 
>> /d/opt/src/rtems/i386/i386-rtems4.9/c/pc386/testsuites/samples
>> 5)Modify the file qemu.bat as follows:
>>
>> rem @echo off
>> set QEMU=D:\opt\rtems-4.9\qemu-0.9.0-windows
>> %QEMU%\qemu -L %QEMU% -m 128 -boot a -fda 
>> d:\opt\rtems-4.9\rtems-boot.img -hda fat:%1 %2 %3
>>
>> 6) In d:\opt\rtems-4.9, launch the batch file batch rtems.bat
>> 7) In the DOS shell launch the QEMU virtual machine as follows: qemu 
>> d:\opt\src\rtems\i386\i386-rtems4.9\c\pc386\testsuites\samples
>> 8)The GRUB is being launched: choose the application to start from the 
>> configured menu
>>
>> As previously written, the hello.exe produced during the RTEMS 
>> compilation is correctly booted from QEMU/GRUB. Unfortunately, this 
>> does not happen with my hello.exe.
>>
>> Can you suggest me a way to make compatible Grub with my hello.exe? 
>> How can I make my hello.exe an ELF file?
>>
>> Can you confirm me that I have installed QEMU correctly?
>>
>> Which ralf files are you referring to? The hello.ralf that comes from 
>> my compilation?
>>
>>
>>
>> Massimo
>>
>>
>>
>> Joel Sherrill ha scritto:
>>  
>>> Massimo Tipaldi wrote:
>>>    
>>>> Dear all,
>>>>
>>>> first of all, I wish you all the best for this year.
>>>>
>>>> I am still trying to work RTEMS on Windows. I have followed all the 
>>>> advices from Joel and Chris (Rtems 4.9.1 with the related examples 
>>>> and RTEMS tools 4.9).
>>>>
>>>> For what concerns the RTEMS installation:
>>>> 1) with the option "--enable-multilib", the installation fails 
>>>> (libnetworking/netinet/.deps/libnetworking_a-if_ether.Po: No such 
>>>> file or directory);
>>>> 2) without the option "--enable-multilib", the installation was 
>>>> successfully.
>>>> Are there any differences with the option --enable-multilib? Can I 
>>>> configure RTEMS without this option?
>>>>
>>>> For what concerns the compilation and execution of Hello_Word via 
>>>> QEMU, the issues described in my previous emails remain(see my 
>>>> previous emails for more details: the only difference is that RTEMS 
>>>> is now installed in d:\opt\src\rtems\i386\):
>>>> 1) I have to modify the Makefile.inc 
>>>> (d:\opt\src\rtems\i386\i386-rtems4.9\c\pc386\make)
>>>> 2) I have to create the two variables RTEMS_MAKEFILE_PATH and ARCH
>>>> 3) I have to copy start16.bin into the folder d:/msys1.0/lib
>>>>
>>>> Even though the hello.exe is created, it is not correctly managed by 
>>>> QEMU (the "No multiboot header found" message appears).
>>>> What I can further add, is that the dimension of my Hello Word is 17 
>>>> Kb, whereas the dimension of the Hello Word that comes from the 
>>>> RTEMS compliation (correctly run by QEMU)is about 1 Mb.
>>>>
>>>>         
>>> My ".ralf" files are reported as this by file:
>>>
>>> http://www.rtems.org/wiki/index.php/BoardSupportPackageInformation#PowerPC_BSPs 
>>>
>>>
>>> What about yours?
>>>
>>> What are you booting RTEMS from? How did you create your grub
>>>    
>>>> Why should I modify the Makefile.inc? Why is not sufficient to set 
>>>> the RTEMS_MAKEFILE_PATH variable (as stated in RTMES manuals)?       
>>> If you can build the example/hello, then it is OK and there
>>> is just a discrepancy between the executable format produced
>>> and how you are booting it (grub version, setup, etc?)
>>>    
>>>> How can I produce a Hello Word application manageable by QEMU?
>>>>
>>>> Joel, what does it means that the file hello.ralf should have had 
>>>> bin2boot run on it?       
>>> bin2boot converts it to a netboot image.  I do not know the
>>> relationship between that and a multiboot image.
>>>    
>>>> Should QEMU run somehow this file, instead of hello.exe? If yes, how?
>>>>
>>>>
>>>>         
>>> I am running ELF files from a qemu vfat.  I use the .exe files.
>>>    
>>>> Thanks in advance
>>>>
>>>> Massimo
>>>>
>>>>
>>>>
>>>>         
>>>     
>>
>>
>>   
> 
> 


-- 

Eng. Massimo Tipaldi
Technical Directorate
SW Principal Engineer


Carlo Gavazzi Space SpA
Via Tiengo, snc - 82100 Benevento BN - Italy
Tel: + 39 0824481733
Fax: +39 0824481730
e-mail: mtipaldi at cgspace.it
www.cgspace.it

<< Le informazioni contenute  in  questo messaggio  di posta elettronica 
e relativi allegati sono  riservate  e confidenziali  e  ne  e vietata 
la diffusione in qualunque modo eseguita. Qualora Lei non fosse la 
persona a cui il presente messaggio e destinato, La invitiamo ad 
eliminarlo e a darcene gentile comunicazione.Quanto precede ai fini del 
rispetto delle Legge 675/96 e del Decreto Legislativo 30/06/2003 n.196, 
sulla tutela dei dati personali >>

<< This e-mail is confidential and may well also be legally privileged. 
If you have received it in error, you are on notice of its status. 
Please notify us immediately by reply e-mail and then delete this 
message from your system.  Please do not copy it or use it for any 
purposes, or disclose its contents to any other person:  to do so could 
be a breach of confidence.  Thank you for your co-operation.  Please 
contact our IT Helpdesk on +3902380481 or email 
ml_servizi.informatici at cgspace.it if you need assistance>>



More information about the users mailing list