Project Home
Project Home
Documents
Documents
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - Simple QNX Questions: (6 Items)
   
Simple QNX Questions  
Hey all, my goal is to make a simple, tiny QNX distribution as a hobby (for
one of my ancient x86 computers). I am building the kernel as I type this
and so far it seems to be building well and without problems. I have a few
questions. Any help is very much appreciated. I thought about Minix for a
while, but ditched it as an option for lack of USB support and shared
library support. Also, it can only execute a.out binaries. QNX looks very
interesting. I have used it before, but haven't gotten under the hood.

*Booting:*

   - What is the QNX bootloader? Is it also open source? Where can it be
   obtained?
   - Can I boot QNX with GRUB the same way Linux is booted (that is, without
   chainloading the QNX bootloader)?
   - What options can I pass to the bootlaoder? For example, with Linux, I
   can use GRUB to pass options such as: *INITRD=/boot/initrd.gz
   ROOT=/dev/hda INIT=/sbin/init ro quiet splash* and so on. What are the
   possible options I can pass to the QNX bootloader?
   - Does QNX use an initrd like Linux? Is it necessary to use an initrd?
   (In Linux, I can compile the fs drivers in the kernel and eliminate the need
   for an initrd. I understand that QNX is a microkernel and it is not possible
   to "build" the fs stuff into the kernel). Sorry for my newbish questions. I
   am interested in this area and am very new to QNX and have NO idea where to
   begin.

*Filesystems:*

   - What filesystems does QNX support?

*Installing The Kernel:*

   - Once I have successfully built the QNX Neutrino kernel and have a build
   stage userland, how do I go about actually using the stuff, provided I have
   a spare hard disk. How do I install the bootloader? How do I install the
   userland? How do I modify init scripts? I basically want to have a working
   QNX boot on my hard drive.


-- 
..::[ solarwind ]::..
RE: Simple QNX Questions  
Hi,

I'm also new to QNX, but perhaps can share my understanding:
 
>    - What is the QNX bootloader? Is it also open source?
> Where can it be
>    obtained?

QNX can be booted from generic bootloaders like u-boot / redboot /
others. In addition, there is also an option of having QNX bootloader
(called IPL  in QNX terminology) that can be used to boot. The
availability of this IPL depends upon the board. If it is available ofr
that particular board, it will be available in the BSP source package
buindle.

>    - Can I boot QNX with GRUB the same way Linux is booted (that is,
>    without chainloading the QNX bootloader)?

With grub, I'm not sure, but I've used it with a few other bootloaders
without chainloading. 

>    - What options can I pass to the bootlaoder? For example, with
>    Linux, I can use GRUB to pass options such as:
>    *INITRD=/boot/initrd.gz ROOT=/dev/hda INIT=/sbin/init ro quiet
>    splash* and so on. What are the possible options I can pass to the
>    QNX bootloader?

In case of QNX, the control does not directly go to the kernel. In fact
the bootloader passes the control to a "startup module" which is a part
of the BSP, which does some initializations and later on transfers
control to the kernel. It is possible to pass command line parameters to
both the startup as well as the kernel (procnto). For details of these
options, you can refer to them in the utilities reference...

http://www.qnx.com/developers/docs/6.3.2/neutrino/utilities/p/procnto.ht
ml


> - Does QNX use an initrd like Linux? Is it
> necessary to 
> use an initrd?
>    (In Linux, I can compile the fs drivers in the kernel and
>    eliminate the need for an initrd. I understand that QNX is a
> microkernel and 
> it is not possible
>    to "build" the fs stuff into the kernel). Sorry for my newbish
>    questions. I am interested in this area and am very new to QNX and
>    have NO idea where to begin.

It uses "image filesystem" created by mkifs utility.

> 
> *Filesystems:*
> 
>    - What filesystems does QNX support?

I don't know, but I think there is a file systems project on QNX site
that can give you answers.

> 
> *Installing The Kernel:*
> 
>    - Once I have successfully built the QNX Neutrino kernel
> and have a build
>    stage userland, how do I go about actually using the
> stuff, provided I have
>    a spare hard disk. How do I install the bootloader? How do
> I install the
>    userland? How do I modify init scripts? I basically want
> to have a working
>    QNX boot on my hard drive.

No idea about X86 ... :-(

HTH,

Rajat
Re: RE: Simple QNX Questions  
> 
> Hi,
> 
> I'm also new to QNX, but perhaps can share my understanding:
>  
> >    - What is the QNX bootloader? Is it also open source?
> > Where can it be
> >    obtained?
> 
> QNX can be booted from generic bootloaders like u-boot / redboot /
> others. In addition, there is also an option of having QNX bootloader
> (called IPL  in QNX terminology) that can be used to boot. The
> availability of this IPL depends upon the board. If it is available ofr
> that particular board, it will be available in the BSP source package
> buindle.
> 
> >    - Can I boot QNX with GRUB the same way Linux is booted (that is,
> >    without chainloading the QNX bootloader)?
> 
> With grub, I'm not sure, but I've used it with a few other bootloaders
> without chainloading. 
> 
> >    - What options can I pass to the bootlaoder? For example, with
> >    Linux, I can use GRUB to pass options such as:
> >    *INITRD=/boot/initrd.gz ROOT=/dev/hda INIT=/sbin/init ro quiet
> >    splash* and so on. What are the possible options I can pass to the
> >    QNX bootloader?
> 
> In case of QNX, the control does not directly go to the kernel. In fact
> the bootloader passes the control to a "startup module" which is a part
> of the BSP, which does some initializations and later on transfers
> control to the kernel. It is possible to pass command line parameters to
> both the startup as well as the kernel (procnto). For details of these
> options, you can refer to them in the utilities reference...
> 
> http://www.qnx.com/developers/docs/6.3.2/neutrino/utilities/p/procnto.ht
> ml
> 
> 
> > - Does QNX use an initrd like Linux? Is it
> > necessary to 
> > use an initrd?
> >    (In Linux, I can compile the fs drivers in the kernel and
> >    eliminate the need for an initrd. I understand that QNX is a
> > microkernel and 
> > it is not possible
> >    to "build" the fs stuff into the kernel). Sorry for my newbish
> >    questions. I am interested in this area and am very new to QNX and
> >    have NO idea where to begin.
> 
> It uses "image filesystem" created by mkifs utility.
> 
> > 
> > *Filesystems:*
> > 
> >    - What filesystems does QNX support?
> 
> I don't know, but I think there is a file systems project on QNX site
> that can give you answers.
> 
> > 
> > *Installing The Kernel:*
> > 
> >    - Once I have successfully built the QNX Neutrino kernel
> > and have a build
> >    stage userland, how do I go about actually using the
> > stuff, provided I have
> >    a spare hard disk. How do I install the bootloader? How do
> > I install the
> >    userland? How do I modify init scripts? I basically want
> > to have a working
> >    QNX boot on my hard drive.
> 
> No idea about X86 ... :-(
> 
> HTH,
> 
> Rajat

QNX supports qnx4 natively(part type 77-79).

reading this will help:
http://www.qnx.com/developers/docs/6.3.2/neutrino/building/about.html

in LInux init pid 0 is a process which started from kernel at last and source is in kernel too, in QNX similar procnto 
is a process which managed memory, process, path... and kernel is in this binary too which will be called by startup.(at
 least now, in theory kernel can be not in ) You should find it under $QNX_TARGET/cpu/boot/sys/ ,$QNX_TARGET/cpu/boot/
build/ includes some build file which can be used by mkifs to generate a ifs image which is used to boot. the ifs image 
included some necessary binaries, which is like an initrd if you didn't include necessary block driver in Linux kernel 
but QNX kernel (procnto) is in this image. initrd doesn't include kernel and not necessary but ifs is...
Re: Simple QNX Questions  
These are not simple questions ;-)

> Hey all, my goal is to make a simple, tiny QNX distribution as a hobby (for
> one of my ancient x86 computers). I am building the kernel as I type this
> and so far it seems to be building well and without problems. I have a few
> questions. Any help is very much appreciated. I thought about Minix for a
> while, but ditched it as an option for lack of USB support and shared
> library support. Also, it can only execute a.out binaries. QNX looks very
> interesting. I have used it before, but haven't gotten under the hood.
> 
> *Booting:*
> 
>    - What is the QNX bootloader?

Custom, but a any primary loader will do.

> Is it also open source?

Don't know

> Where can it be  obtained?

Don't know, maybe as part of a some BSP.

>    - Can I boot QNX with GRUB the same way Linux is booted (that is, without   chainloading the QNX bootloader)?

I suspect you have to chain load the QNX secondary loader. It knows how to decompress the image

>    - What options can I pass to the bootlaoder? For example, with Linux, I
>    can use GRUB to pass options such as: *INITRD=/boot/initrd.gz
>    ROOT=/dev/hda INIT=/sbin/init ro quiet splash* and so on. What are the  possible options I can pass to the QNX 
bootloader?

The way QNX is design this is not required

>    - Does QNX use an initrd like Linux? Is it necessary to use an initrd?

No ( although I don't know what initrd is )

>    (In Linux, I can compile the fs drivers in the kernel and eliminate the 
> need
>    for an initrd. I understand that QNX is a microkernel and it is not 
> possible
>    to "build" the fs stuff into the kernel). Sorry for my newbish questions. I
> 
>    am interested in this area and am very new to QNX and have NO idea where to
> 
>    begin.
> 

For a PC your need to build an image with all the stuff required to boot, kernel, hd driver, etc, then the image will 
typical lauch a script that it finds in the filesystem to complete the startup ( network driver, video driver, daemon 
etc).  Check /boot/image/...)

> *Filesystems:*
> 
>    - What filesystems does QNX support?

Their own, but they also support FAT*, EXT ( read only )
> 
> *Installing The Kernel:*
> 
>    - Once I have successfully built the QNX Neutrino kernel and have a build
>    stage userland, how do I go about actually using the stuff, provided I have
> 
>    a spare hard disk. How do I install the bootloader? How do I install the
>    userland? How do I modify init scripts? I basically want to have a working
>    QNX boot on my hard drive.

It would take time I don't have to answer all these, not to mention that it's all in online documentation.

That being said, as I told you on www.qnx.com, the stage stuff is NOT meant to be used to install a system.   The stage 
stuff is in fact a subset of all the binairies that are already present on your disk ( aside the fact that the source 
you got is a work in progress for 6.4).  The instruction to take these file to create a working system would take pages.
  The stuff you build doesn't have any drivers what so ever.


If I had to do this, I would install QNX directly on the HD via the CD. Then customize the content of the boot image and
 startup file.  If for some reason you need some stuff taken out.

I recommand you read the "Building Embedded Systems" and "Controlling How Neutrino Starts" in the only doc, accessible 
via the help viewer.  That should answer most of your question.

Re: Simple QNX Questions  
Thanks a lot. Also, why am I unable to see the post in the forum anymore?

On Wed, Aug 6, 2008 at 9:36 AM, Mario Charest <community-noreply@qnx.com>wrote:

> These are not simple questions ;-)
>
> > Hey all, my goal is to make a simple, tiny QNX distribution as a hobby
> (for
> > one of my ancient x86 computers). I am building the kernel as I type this
> > and so far it seems to be building well and without problems. I have a
> few
> > questions. Any help is very much appreciated. I thought about Minix for a
> > while, but ditched it as an option for lack of USB support and shared
> > library support. Also, it can only execute a.out binaries. QNX looks very
> > interesting. I have used it before, but haven't gotten under the hood.
> >
> > *Booting:*
> >
> >    - What is the QNX bootloader?
>
> Custom, but a any primary loader will do.
>
> > Is it also open source?
>
> Don't know
>
> > Where can it be  obtained?
>
> Don't know, maybe as part of a some BSP.
>
> >    - Can I boot QNX with GRUB the same way Linux is booted (that is,
> without   chainloading the QNX bootloader)?
>
> I suspect you have to chain load the QNX secondary loader. It knows how to
> decompress the image
>
> >    - What options can I pass to the bootlaoder? For example, with Linux,
> I
> >    can use GRUB to pass options such as: *INITRD=/boot/initrd.gz
> >    ROOT=/dev/hda INIT=/sbin/init ro quiet splash* and so on. What are the
>  possible options I can pass to the QNX bootloader?
>
> The way QNX is design this is not required
>
> >    - Does QNX use an initrd like Linux? Is it necessary to use an initrd?
>
> No ( although I don't know what initrd is )
>
> >    (In Linux, I can compile the fs drivers in the kernel and eliminate
> the
> > need
> >    for an initrd. I understand that QNX is a microkernel and it is not
> > possible
> >    to "build" the fs stuff into the kernel). Sorry for my newbish
> questions. I
> >
> >    am interested in this area and am very new to QNX and have NO idea
> where to
> >
> >    begin.
> >
>
> For a PC your need to build an image with all the stuff required to boot,
> kernel, hd driver, etc, then the image will typical lauch a script that it
> finds in the filesystem to complete the startup ( network driver, video
> driver, daemon etc).  Check /boot/image/...)
>
> > *Filesystems:*
> >
> >    - What filesystems does QNX support?
>
> Their own, but they also support FAT*, EXT ( read only )
> >
> > *Installing The Kernel:*
> >
> >    - Once I have successfully built the QNX Neutrino kernel and have a
> build
> >    stage userland, how do I go about actually using the stuff, provided I
> have
> >
> >    a spare hard disk. How do I install the bootloader? How do I install
> the
> >    userland? How do I modify init scripts? I basically want to have a
> working
> >    QNX boot on my hard drive.
>
> It would take time I don't have to answer all these, not to mention that
> it's all in online documentation.
>
> That being said, as I told you on www.qnx.com, the stage stuff is NOT
> meant to be used to install a system.   The stage stuff is in fact a subset
> of all the binairies that are already present on your disk ( aside the fact
> that the source you got is a work in progress for 6.4).  The instruction to
> take these file to create a working system would take pages.  The stuff you
> build doesn't have any drivers what so ever.
>
>
> If I had to do this, I would install QNX directly on the HD via the CD.
> Then customize the...
View Full Message
Re: Simple QNX Questions  
> Thanks a lot. Also, why am I unable to see the post in the forum anymore?
> 
Don`t know. I can see it. Maybe it`s the way they are sorted. I know that sometimes for me it seems to lost the setting 
and I have to reconfigure it.