Martin Decky wrote:
The second binary also fails to load, but this is silently ignored. If the last binary fails to load, it is considered a RAM disk with the initial root file system (the kernel does not touch the RAM disk, it only passes it to the user space) and nothing is reported.
We could do a one line notice that would say something like 'Found RAM disk 
'<binary-name>'.

I know, this is not very user-friendly for debugging, but it is simply the way it is supposed to work.
Now that actually all our boot methods support binary names, we could change 
it. Currently:
- last binary that fails to load is a RAM disk (which is not executed)
- a binary that is statically linked, nevertheless has a PT_INTERP header is 
the loader (which is not executed)

I believe the latter makes the loader binary quite unusual, leading to 
http://trac.helenos.org/ticket/430 (which is IMHO a bug in strip/BFD). We could 
change it so that:

- the binary named 'initrd' is the ram disk
- the binary named 'loader' is the loader

and we might want to announce the loader and RAM disk (always) in the kernel 
log - we don't need to announce regular executables, since they will usually 
print their own banner when they start.

-Jiri


Error code -11 is ENOTSUP (returned from program_create_from_image()) which means that the elf_load() failed. I have committed a small changeset to our mainline branch which shows the return value of elf_load() if the kernel is compiled with the CONFIG_LOG (Detailed kernel logging) option.

Thus the obvious thing to do now is to look at elf_load() and analyse what it dislikes about your binaries.


M.D.

_______________________________________________
HelenOS-devel mailing list
[email protected]
http://lists.modry.cz/cgi-bin/listinfo/helenos-devel




_______________________________________________
HelenOS-devel mailing list
[email protected]
http://lists.modry.cz/cgi-bin/listinfo/helenos-devel

Reply via email to