solarwind z
08/05/2008 12:25 PM
post11453
|
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 ]::..
|
|
|
Rajat Jain
08/06/2008 1:23 AM
post11471
|
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
|
|
|
Yao Zhao(deleted)
|
Re: RE: Simple QNX Questions
|
Yao Zhao(deleted)
08/06/2008 9:19 AM
post11478
|
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...
|
|
|
Mario Charest
08/06/2008 9:36 AM
post11479
|
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.
|
|
|
solarwind z
08/07/2008 12:13 PM
post11532
|
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
|
|
|
Mario Charest
08/07/2008 5:22 PM
post11555
|
> 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.
|
|
|
|