Strange system startup problem

I have been trying to get an ‘embedded’ image to boot properly, and I’m
seeing some really strange behaviour with the system.

The system is just an x86 PC-like board, with a DiskOnChip flash disk. All I
want to do is have QNX boot straight into our app, as fast as possible. So,
I created the following:
a. A simple boot image that just starts some consoles, the disk driver, and
then calls /etc/system/sysinit (as laid out in the M-sys docs for booting
QNX off DOC2000)
b. A modified version of sysinit that starts io-net with the explicit
network driver and IP address, avoiding the enumeration stuff. Otherwise,
it does everything the QNX original does.
c. A rc.local file that starts our application

What happens when booting is that everything (including our application)
starts just fine. BUT, as soon as the
“exec which tinit &” line in rc.sysinit is executed, our app terminates.
If I remove this line from rc.sysinit, everything is fine too, but of course
there’s no login.

The strange thing is that if I do the same thing in starting the app in
rc.local on a vanilla QNX 6.2 install, everything works just fine. All I can
see from poking around the system is that the regular QNX 6.2 install calls
diskboot from the boot image. What does diskboot do that’s different from
calling “sh -c /etc/system/sysinit &” in the boot image?

Does anyone have any idea why this problem might be occurring? What files do
I need to post to help diagnose the problem?

Thanks
Marc Rudolph

What happens when booting is that everything (including our application)
starts just fine. BUT, as soon as the
“exec which tinit &” line in rc.sysinit is executed, our app terminates.
If I remove this line from rc.sysinit, everything is fine too, but of course
there’s no login.

Do not start /etc/system/sysinit as a [+session] and your troubles will
likly go away. tinit wants to be the session leader and gets upset if it
is run from someone else that already is the session leader.

chris


Chris McKillop <cdm@qnx.com> “The faster I go, the behinder I get.”
Software Engineer, QSSL – Lewis Carroll –
http://qnx.wox.org/

Do not start /etc/system/sysinit as a [+session] and your troubles will
likly go away. tinit wants to be the session leader and gets upset if it
is run from someone else that already is the session leader.

Thanks, that did the trick. I guess I’ll have to complain to M-sys about
their misleading example boot file…