binary naming

Johannes Kliemann Johannes.Kliemann at ...250...
Wed Oct 25 11:00:32 CEST 2017


Hi,

thanks for that info, but I think there's a misunderstanding.
The kernel command line "init=" is only evaluated if the kernel boots 
without initrd or initramfs. Initramfs does always need /init (such as 
an initrd always needs /linuxrc) [1]. This is only relevant to the init 
system used after the root fs is mounted. This is supported by man 7 
bootparam which says

> 'init=...'
>               This sets the initial command to be executed by the kernel.  If this is not set, or cannot be found, the kernel will try /sbin/init, then /etc/init, then /bin/init, then /bin/sh  and  panic  if
>               all of this fails.

I have also tested this behavior by running Genode on Linux with 
init=/genode/core which still resulted in the kernel loading /init from 
the initramfs.

Sorry for the slight off topic. If I have any mistakes in my thoughts 
please correct me.

Regards,
Johannes

[1]: https://wiki.debian.org/initramfs


On 10/24/17 18:59, Nobody III wrote:
> Also, you could use the kernel command line, e.g. "init=/genode/core".
> 
> On Tue, Oct 24, 2017 at 10:20 AM, Johannes Kliemann 
> <Johannes.Kliemann at ...250... 
> <mailto:Johannes.Kliemann at ...250...>> wrote:
> 
>     Hi again,
> 
>     I fixed the file naming and I don't need to rename the files anymore
>     (I forgot to prepend the correct directory in the cpio archive).
>     With the cpio initramfs I chdir into /genode from the ROM session
>     and correctly find the libraries. Yet the segfault and warning I
>     described in the last mail still appear.
> 
>     To reproduce the problem with the current state, check out [1]. The
>     build configuration is the same as in the last mail.
> 
>     Regards,
>     Johannes
> 
>     [1]:
>     https://github.com/jklmnn/genode/commit/2c899063f2bad1318bbde88f2472e017fc72be34
>     <https://github.com/jklmnn/genode/commit/2c899063f2bad1318bbde88f2472e017fc72be34>
> 
> 
>     On 10/24/17 11:27, Johannes Kliemann wrote:
> 
>         Hi,
> 
>         while booting Genode directly on Linux I encountered the problem
>         that
>         Linux requires to call `/init` in the initramfs. Unfortunately
>         Genode
>         requires to call `core` which loads `init` so renaming core to init
>         isn't enough.
> 
> 
>         I renamed init to init2 core to init and called it with
>         "label=init2"
>         which works at first (core finds all ROM sessions) but then
>         segfaults
>         with "init2[45]: segfault at 7f11c473b128 ip 00007f11c4645f40 sp
>         00007ffc1c8c15f8 error 4 in ld.lib.so
>         <http://ld.lib.so>[7f11c45c5000+95000]" and the
>         warning "Warning: blocking canceled in entrypoint constructor".
> 
>         This warning was addressed on Linux before in [0] and fixed in
>         ad2859b6b9dae96c48329eebc0a73527ba4deb9b. I have already
>         included this
>         patch.
> 
>         To boot Genode on Linux with this behaviour, checkout [1] and change
>         "KERNEL_RUN_OPT(linux) := --include power_on/linux --include
>         log/linux"
>         to
>         "KERNEL_RUN_OPT(linux) := $(QEMU_RUN_OPT)"
>         in your etc/build.conf (with linux as kernel ofc).
> 
>         Beside renaming I also tried to make the ROM session chdir into
>         a sub
>         directory or to prepend this directory to the binary name.
>         Neither of
>         made Genode correctly find the binaries. I have to say that
>         Linux is not
>         booting into a real fs but is using a initramfs which consists
>         of a cpio
>         archive.
> 
>         What would be the way to go to either rename the binaries to a Linux
>         compatible scheme or to change the library search to find its
>         binaries
>         in a cpio archive (both options should be changeable at build
>         time to
>         still use the current linux)?
> 
>         Regards,
>         Johannes
> 
>         [0]: https://github.com/genodelabs/genode/issues/2521
>         <https://github.com/genodelabs/genode/issues/2521>
>         [1]:
>         https://github.com/jklmnn/genode/commit/ef4becffcfc4bfc4079ff411872023b0362f346c
>         <https://github.com/jklmnn/genode/commit/ef4becffcfc4bfc4079ff411872023b0362f346c>
> 
>         ------------------------------------------------------------------------------
>         Check out the vibrant tech community on one of the world's most
>         engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>         _______________________________________________
>         genode-main mailing list
>         genode-main at lists.sourceforge.net
>         <mailto:genode-main at lists.sourceforge.net>
>         https://lists.sourceforge.net/lists/listinfo/genode-main
>         <https://lists.sourceforge.net/lists/listinfo/genode-main>
> 
> 
>     ------------------------------------------------------------------------------
>     Check out the vibrant tech community on one of the world's most
>     engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>     _______________________________________________
>     genode-main mailing list
>     genode-main at lists.sourceforge.net
>     <mailto:genode-main at lists.sourceforge.net>
>     https://lists.sourceforge.net/lists/listinfo/genode-main
>     <https://lists.sourceforge.net/lists/listinfo/genode-main>
> 
> 
> 
> 
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> 
> 
> 
> _______________________________________________
> genode-main mailing list
> genode-main at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main
> 




More information about the users mailing list