Embedded QNX on X86 platform

Hi all - this is my first post on these forums, so I will let you know now that I am very new to QNX. I have however been doing a lot of reading to familiarize myself.

I am involved in a project on which QNX is to be installed onto a PC104 X86 computer. Currently it has a 32MB IDE HDD - which may not be sufficient.

I am getting extremely confused when it comes to customizing QNX for my particular application, whereby I will require dev/ser1 and dev/ser2 to read from a GPS sysem and a cars ECU. Data willl be collected and stored on a USB flash disk. At the same time I want the data collection to be displayed graphically on a 6.4 inch LCD.
I wish be able to install/transfer QNX onto the PC104 - however can someone please (in laymans terms for now) shed some light as to how I find the appropriate BSP and how to upload the system from either an XP based machine with Momentics or a QNX Neutrino full system (running on a standard PC). Also briefly how i can easily select which parts of QNX I require and which ones I do not.

I am unsure whether you will be able to help me. The QNX online documentation is excessivley confusing at times and appears to be written with the assumption that you are already familar with the OS.

Any help would be greatly appriciated
Andrew

Brisbane, Australia

Is this for commercial or non commercial type of project?

its a university based project (my final year thesis) so i assume possibly commercial. However Universities are looked upon

I have been looking at the BSP’s for an X86 system - qnx.com does not have any X86 BSP’s in their developer support. Am I correct in assuming the BSP’s for an X86 based system are already in Netrino under the appropriate directory?

There are some BSP for some special x86 based devices, but generaly one should find all that is required in the x86 directory (or easier on the selfhosted config).

One of the think you need to settle on soon, is if you have the evaluation version (6.3) you have 30 days to build yourself a custom image (core stuff) after that you won’t be able to. That can be a show stopper. Apparently full version are available for educational purposes.

Personnaly I find the documentation great. But you are right, some section are written as if you are familiar with the OS, but I’m not sure it can be done any other way. If a you are looking for a step by step guide that fits your need, forget it. It’s too flexible, too many possibilities, combinaisona. Every body has different need. It’s like a big lego kit, unless you know about all the different pieces it’s difficult to figure out how to build the house ;-)

Give more detail about your hardware first ;-) I have never heard of 32Meg IDE HD must be flash of some sort right. Well not true I do have 2 20Meg SCSI HD … but they are 20 years old ;-)

I’m building an embedded application as well, and am also a relative newbie. My target is also an x86 PC/104 (the MZ104 from Tri-M Systems).

Like Andrew I have been pretty darned confused about a lot of things. But Mario you may have answered my question about whether QNX is feasible for my project: what you’re saying is that the OS is essentially free, but to create images suitable for embedding, you need the full Momentics suite, and that the Momentics suite is only free for 30 days? Shoot, I downloaded it two weeks ago… I’m nowhere near figuring out how to create a workable image.

If that’s the case, I guess the next question is how much does the full version cost… but I’m sure it’s out of my budget. My application isn’t commercial (hobby, rather), but I’m not associated with a university, so I would probably still be lumped into commercial.

Andrew, if Neutrino doesn’t work out for you I’d be interested to hear what OS you do eventually use. I’m looking at Blue Cat Linux as an alternative, but at this point I really know nothing about it other than that it exists.

Luke

I’m not really qualify to specify whas is free and what isn’t. On paper there is no Non-Commercial version anymore, just an evaluation version. When the 30 days evaluation period ends some stuff will stop working some will keep working (most of the stuff will work).

In futur version its possible that after 30 days everything stop working ;-)

The Standard version is 4000$ while the Professional is 8000$ ( last time I checked )

Personnaly I would not use QNX for non commercial project, not sure what I would choose instead, though ;-) Linux would probably be on my list but if you thing it’s complicated to embedded QNX watch till you try it with Linux. I would give a serious look at Windows XP Embedded, the full eval version last 120 days ( but after 120 days everything stops working). The development seat is 1000$, 8 times less then QNX and you get more for you money feature wise, the development tools is way more mature.

Hi mario

thank you for replying. It is much appriciated.

I’ll fill you in on what I have.

  • QNX 6.3.0 non-commercial - so the 30 day trial doesnt affect me thank goodness

  • ICOP-6070 embedded Vortex86 CPU Module. (Running a processor at 166 MHz ). HAS NO ETHERNET FACILITIES

  • yes - the 32MB HDD is flash but plugs into the IDE (I’d never heared of this before either). Its about 3 years old now - so upgrading that is an option

  • RS232 expansion card for the PC104 - needed more than 2 I/O

  • Standard mini keyboard

  • 6.4 inch LCD display (which the guy from last year has ruined - very annoying)

I have started to understand customizing the operating system a little. It appears due to the restrictions in HDD size, that the Photonics (i think its called that - the GUI of QNX) may have to be sacrificed. There is probably no point in including it anyway.

2 questions for today:

1.) In creating a buildfile “The OS image is created by a program called mkifs (make image filesystem), which accepts information from two main sources: its command line and a buildfile” - now I interpret this as I have to write my own buildfile in order to customize what I want to exist in my customized OS. Is my thinking correct?
{I found on the QNX Developer Support site a “sample buildfile”, which I hopefully will be able to use as a template for my buildfile.}

2.) Once i’ve created my buildfile - running mkifs shell.bld shell.ifs “tells mkifs to use the buildfile shell.bld to create the image file shell.ifs”. Thats all good and well - however what do I do with shell.ifs in order to get that from the PC I created it on to the PC104 platform. Can I do this somehow via the serial RS232 ports? If it doesnt take you too long, would you be so kind as to breifly describe how - the documentation is very confusing for me here.

I’m going to start extremely simple with a very very basic version of QNX that almost does nothing - maybe I’ll get it to just display “hello world” for the time being - so basically include almost no drivers, etc. I think transferring the image to the PC104 may be the most difficult task

Thanks again for your help - I am slowly gaining a better understanding of this and hope in the future I’ll be able to return the favor by helping another newbie.

Kind regards

Andrew

If you have the non-commercial version you won’t be able to use mkifs. Unless you do it on the 30-day trial (I’m not sure about it. I have a commercial version).

“now I interpret this as I have to write my own buildfile in order to customize what I want to exist in my customized OS. Is my thinking correct?”

It is.

"{I found on the QNX Developer Support site a “sample buildfile”, which I hopefully will be able to use as a template for my buildfile.} "

Be careful. Those buildfiles have some little errors. For example, vi doesn´t work (you need more things for it to work)

" however what do I do with shell.ifs in order to get that from the PC I created it on to the PC104 platform."

It’s true the documentation is not clear. I said some months ago that because of that I wanted to make a tutorial for very new QNX users (as me :- >> ). Take a look at this site: versalogic.com/Support/WhitePaper/QNX.asp

Good luck :->>

Yes it will affect you. After 30 days some funtionnality will be lost.

You will probably want to get a network PC104 card to speed up development. Serial port is nice, but network is MUCH better.

I know about 32 Meg flash, I just didn’t know about 32Meg real HD :wink:

If you are developing in a self hosted environment then it’s just a matter of installing the flash disk on the PC and copying the stuff over .

If you are working under Windows that’s a little more involved. You will somehow need to get a QNX boot image on the system. I have never worked with the Windows environment so I can’t help you with that side of thing

Not really, depending on the feature you need Photon can be made fairly small. 32Meg should not be a problem. With the use of “inflator” you can compress the file on the the HDD. That could give you easely 50Meg of storage instead of 32Meg. Depending on file type you could even get 64Meg.

Yes, but that will only work for the first 30 days. mkifs is needed only to build the .boot file ( the core ). That file is small (3M). You may be able to get by without building one by using the default .boot file. It will be overkill but could be working ok.

Also in /boot/build/

Yes that is the nasty part mainly if you are doing the development under Windows. One possibility is to build a boot floppy that will mount a network drive over the windows machine and get all the files from there. You will need to build an custom build that floppy :wink:

Other option is to get a PC104 that will network boot from Windows, but I don’t know how to get Windows to become a bootp server.

What I would do is setup another PC with QNX6, then put the flash HD on it (not as a primary master) and copy the file to it. Then move the HD over the embedded system, see if that works and keep trying until you get it right.

Mario, thanks for the clarification. Given the hassle of developing in Windows, and the inability to use mkifs, I think that pretty much answers my question about QNX. You’re right, I’ve been looking at Linux the last few days, specifically Linux From Scratch, and it does look pretty complicated. I’ll figure something out though.

Ok, I’ll not hijack this thread any further. Good luck Andrew!

sorry mario - i didnt clarify

i have activated my version of QNX - thats why the 30 day trial is no problem.

Your help has been awesome - I very much appreciate it. I’m using Momentics in the QNX OS - i’ve ditched the windows computer because it all became too hard hehe

i’ve been working on a buildfile now - thanks to your guidance. I may have been confused with the HDD - i do appologize - it is flash. This was revealed after I took appart the PC104 yesterday.

I’ll post up again when I’ve made progress - I"m thinking of writing a short tut to help anyone else in the future in my position. I’ll have to familiarize myself some more and gain some experience.

also - to get the image to the HDD I will just unplug the CF card from the PC104 and put it in the development PC using a CF-IDE adapter card. Then I’ll use dinit to transfer the image.

Hopefully I can post it up on this site somewhere.

Even if you activate it, stuff will expire after 30 days. For not it not to expire you have to pay ;-)

I have been tiring to build a Neutrino install, but and running to problems. I have been able to use the mkifs command and the building of the ifs file goes will, but when I go to use the dinit command it seemed to one work twice, but now when I change/update the build and try to use the dinit command again it seems to not work.

Important information

OS: 6.2
Media: Compact Flash 512 Mb @ /dev/hd1
dinit commands:
dinit -h -B ipl-diskpc1 /dev/hd1
dinit -h -f /root/my.ifs -B ipl-diskpc2 /dev/hd1t77

       I am wondering if anyone can help me figure out why this is not working correctly, or suggest an alterative approach.

Thanks for your time.

I’m not sure about when it doesn’t work. Anyway, if you want to change/update your image, you don’t need to use dinit again. You can cahnge it copying your ifs file into the drive.
For example:
cp /root/my.ifs /fs/hd1-qnx/.boot

You said that sometimes it works, and sometimes not, and you wrote two calls, but you didn’t specify which is the one that works.

Hi guys

well I had a string of good luck/success today. Through reading tutorials written on the QNX developer support site, your kind guidance on this thread and the guidance of a more experienced QNX user at University - I successfully made a custom image and uploaded it to my flash disk. I am extremely pleased as I now have a far better understanding of how the sytem functions and how I may make use of it. I can now move on to developing my very simple buildfile to include all the drivers I require (I will do this by trial and error initially until I have a better feel) and after I am satisfied will develop a sysinit file so I dont have to constantly update the image every time I want to add a new set of code (relevant to the application I wish to design).

Hopefully through what I have learned I will be able to help someone like you helped me.

Andrew

Hi, I’m total new to QNX just hanging around for my AGV Project. I found the qnx-6.2.1-nc non-commercial .iso image on the following links.

public.planetmirror.com/pub/qnx/qnxnc/
ftp://ftp.fsn.hu/pub/CDROM-Images/qnx/

Maybe it would help a little.

pleased to know about your success :- >>

“Hopefully through what I have learned I will be able to help someone like you helped me.”

I still want to make a tutorial, and probably I’m going to have time enougth soon. I’ll need help. whiterabbits offered his. Hope you contribute too :- >> Tell you when I strat. Bye all.