Project Home
Project Home
Trackers
Trackers
Documents
Documents
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - System builder problem: (21 Items)
   
System builder problem  
Hello all

I have QNX® Momentics® Integrated Development Environment
Version: 4.5.0
Build id: I20081019


I try to create bootable image.

I create bootable partition (type 179) with fdisk. Write to it loader. All ok.

Then I create System Builder project (Name qnxbase)and try to create qnxbase.ifs file. All ok, until size of IFS file < 
3M. 

Then I googled this probelm, and find this solution.

Solution:

I add to my system builder project Efs image. Add binary (for example - pidin) to efs image. I build efs image - as 
result - qnxbase-flash-1.efs. 
Then I build my qnxbase project  -as result  -   efs-qnxbase.bin. Then i download this image to my target. When I boot 
all - ok, but I don't find binary, that i add to efs image. I don't find  pidin. 


What I do wrong? Please help? 
Re: System builder problem  
Hi, Oleg,

The EFS image won't be useful until it is mounted.  This is commonly 
done in the IFS boot script.  See the mount reference documentation for 
details:

http://www.qnx.com/developers/docs/6.4.0/neutrino/utilities/m/mount.html

HTH,

Christian

On 27/02/10 02:54 AM, Oleg Gopov wrote:
> Hello all
>
> I have QNX® Momentics® Integrated Development Environment
> Version: 4.5.0
> Build id: I20081019
>
>
> I try to create bootable image.
>
> I create bootable partition (type 179) with fdisk. Write to it loader. All ok.
>
> Then I create System Builder project (Name qnxbase)and try to create qnxbase.ifs file. All ok, until size of IFS file<
  3M.
>
> Then I googled this probelm, and find this solution.
>
> Solution:
>
> I add to my system builder project Efs image. Add binary (for example - pidin) to efs image. I build efs image - as 
result - qnxbase-flash-1.efs.
> Then I build my qnxbase project  -as result  -   efs-qnxbase.bin. Then i download this image to my target. When I boot
 all - ok, but I don't find binary, that i add to efs image. I don't find  pidin.
>
>
> What I do wrong? Please help?
>
>
>
> _______________________________________________
>
> QNX Momentics Community Support
> http://community.qnx.com/sf/go/post48467
>    

Re: System builder problem  
Hello, Christian .


I don't find usefull information in mount reference.

I don't understand how to extract efs file from my COMBINED image file  -  
efs-qnxbase.bin   , when my system booted. I find in forums, that I must invoke  DEVF-RAM driver. This is driver for 
flash filesystem. 
It create /dev/fs0 and /dev/fs0p0 files. But mount command with this special devices is failed. I read in "Building 
Embedded systems" document , that I must cat to this files image file . For example, cat xxx.efs > /dev/fs0p0.  Then if 
I reboot DEVF-RAM driver,  System create /fs0p1 directory , where  belonged files from EFS - image.

I have very interest question.

How to extract efs - image from my COMBINED image file, that I create in System Builder Perspective
Re: System builder problem  
Hi, Oleg,

If you are combining your IFS and EFS images using the mkimage tool 
(which the IDE's System Builder uses to combine images) then it is my 
understanding that procnto should find all of the embedded files and 
make them available in the run-time filesystem.  Other procedures for 
mounting EFSes should only be necessary if the images aren't combined, 
for example, if an EFS is included as a regular file in the IFS.

Do you see any warning messages in the System Builder's build console 
when you build and combine your images?  Do you get different results if 
you use the command-line tools, yourself, instead of System Builder?

Originally, you indicated that the image stopped working correctly when 
its size exceeded 3MB.  If you are combining images, would you not still 
have that problem?  It seems that the work-around would require 
downloading and mounting the EFS separately from the boot image ...

Cheers,

Christian

On 02/03/10 08:00 AM, Oleg Gopov wrote:
> Hello, Christian .
>
>
> I don't find usefull information in mount reference.
>
> I don't understand how to extract efs file from my COMBINED image file  -
> efs-qnxbase.bin   , when my system booted. I find in forums, that I must invoke  DEVF-RAM driver. This is driver for 
flash filesystem.
> It create /dev/fs0 and /dev/fs0p0 files. But mount command with this special devices is failed. I read in "Building 
Embedded systems" document , that I must cat to this files image file . For example, cat xxx.efs>  /dev/fs0p0.  Then if 
I reboot DEVF-RAM driver,  System create /fs0p1 directory , where  belonged files from EFS - image.
>
> I have very interest question.
>
> How to extract efs - image from my COMBINED image file, that I create in System Builder Perspective
>
>
>
> _______________________________________________
>
> QNX Momentics Community Support
> http://community.qnx.com/sf/go/post48604
>    

Re: System builder problem  
> Hi, Oleg,
> 
> If you are combining your IFS and EFS images using the mkimage tool 
> (which the IDE's System Builder uses to combine images) then it is my 
> understanding that procnto should find all of the embedded files and 
> make them available in the run-time filesystem.  Other procedures for 
> mounting EFSes should only be necessary if the images aren't combined, 
> for example, if an EFS is included as a regular file in the IFS.
> 
> Do you see any warning messages in the System Builder's build console 
> when you build and combine your images?  Do you get different results if 
> you use the command-line tools, yourself, instead of System Builder?
> 
> Originally, you indicated that the image stopped working correctly when 
> its size exceeded 3MB.  If you are combining images, would you not still 
> have that problem?  It seems that the work-around would require 
> downloading and mounting the EFS separately from the boot image ...
> 
> Cheers,

Hi Cheers.


This is output. I find no warnings.





Building Image: qnxbase
C:\QNX640\host\win32\x86\usr\bin\mkifs.exe -vvv C:/Docs/workspace/.metadata/.plugins/com.qnx.tools.ide.builder.core/.
projects/new-vp9/qnxbase.mkxfs C:/Docs/workspace/new-vp9/Images/qnxbase.ifs 
  Offset   Size    Entry   Ramoff Target=Host
  400000    3f8        0      --- C:/QNX640/target/qnx6/x86/boot/sys/bios.boot
Execute: ldrel -s!* -p -l -t 0x4004f8 "C:/QNX640/target/qnx6/x86/boot/sys/startup-bios-32" "C:\DOCUME~1\05AC~1\LOCALS~1\
Temp\QE7000a50fee.tmp"
Execute: qcc -bootstrap -nostdlib -Wl,--no-keep-memory -Vgcc_ntox86 -Wl,-Ttext -Wl,0xf0016000 -o"C:\DOCUME~1\05AC~1\
LOCALS~1\Temp\QE7000a510c9.tmp" "C:/QNX640/target/qnx6/x86/boot/sys/procnto"
  4003f8    100     ----      --- Startup-header
  4004f8  137d8   404038      --- C:\DOCUME~1\05AC~1\LOCALS~1\Temp\QE7000a50fee.tmp (480015334)
  4138d8     5c     ----      --- Image-header
  413934    be8     ----      --- Image-directory
    ----    ---     ----      --- fs
  41451c    608     ----      --- proc/boot/.script=C:\DOCUME~1\05AC~1\LOCALS~1\Temp\QE7000a50fad.tmp
  414b24     18     ----      --- etc/fstab=C:\QNX640\target\qnx6\etc\fstab (191537521)
  414b3c     12     ----      --- proc/boot/unlink_list=C:\DOCUME~1\05AC~1\LOCALS~1\Temp\QE7000a50fbe.tmp (449623294)
  414b4e      7     ----      --- .diskroot=C:\QNX640\target\qnx6\etc\.diskroot (2932538503)
  415000  6b000 f0047ef0      --- proc/boot/procnto=C:\DOCUME~1\05AC~1\LOCALS~1\Temp\QE7000a510c9.tmp (2071201803)
  480000  75000    3d05a      --- proc/boot/libc.so.3=C:\QNX640\target\qnx6\x86\lib\libc.so (76736551)
    ----    ---     ----      --- proc/boot/libc.so=libc.so.3 (76736551)
  4f5000   6cae     17f0      --- proc/boot/libhiddi.so.1=C:\QNX640\target\qnx6\x86\lib\libhiddi.so (2601117683)
    ----    ---     ----      --- proc/boot/libhiddi.so=libhiddi.so.1 (2601117683)
  4fc000   b060     3120      --- proc/boot/libusbdi.so.2=C:\QNX640\target\qnx6\x86\lib\libusbdi.so (2085745603)
  507060    bcd     ----      --- etc/system/sysinit=C:/QNX640/target/qnx6/etc/system/sysinit (3480538215)
    ----    ---     ----      --- proc/boot/libusbdi.so=libusbdi.so.2 (2085745603)
  508000  104d0     3550      --- proc/boot/libcam.so.2=C:\QNX640\target\qnx6\x86\lib\libcam.so (4090673103)
    ----    ---     ----      --- proc/boot/libcam.so=libcam.so.2 (4090673103)
  519000  2462a     4d20      --- proc/boot/io-blk.so=C:\QNX640\target\qnx6\x86\lib\dll\io-blk.so (3853069029)
  53e000   d537     1550      --- proc/boot/fs-qnx4.so=C:\QNX640\target\qnx6\x86\lib\dll\fs-qnx4.so (2356113523)
  54c000   fbd4     1bf0      --- proc/boot/fs-qnx6.so=C:\QNX640\target\qnx6\x86\lib\dll\fs-qnx6.so (2560413354)
  55c000  12e1e     1e30      --- proc/boot/fs-dos.so=C:\QNX640\target\qnx6\x86\lib\dll\fs-dos.so (2706432591)
  56f000   d819     16f0      ---...
View Full Message
Re: System builder problem  
Hi, Oleg,

Did you specify a mount point in your EFS build file using the "mount" 
attribute?  If so, I think you should find your EFS mounted, there.  The 
default if you don't specify a mount point is something like /fs0p1, 
/fs0p2, etc. for each successive combined EFS (/fs0/p0 is the boot image 
partition, which is mounted specially).

I could be wrong, but I think that the devf-ram driver should 
automatically mount your combined EFSes.

HTH,

Christian

Re: System builder problem  
> Hi, Oleg,
> 
> Did you specify a mount point in your EFS build file using the "mount" 
> attribute?  If so, I think you should find your EFS mounted, there.  The 
> default if you don't specify a mount point is something like /fs0p1, 
> /fs0p2, etc. for each successive combined EFS (/fs0/p0 is the boot image 
> partition, which is mounted specially).
> 
> I could be wrong, but I think that the devf-ram driver should 
> automatically mount your combined EFSes.
> 
> HTH,
> 
> Christian

Hello Christian. Thank you for your reply

When I specify mount attribute to /fs  - >  nothing change. 

When I don't specify mount attribute ->  /fs0p1, /fs0p2, /fs0p3  directories system don't create. Maybe problem in boot 
script. I attach it.


Attachment: Text qnxbase.bsh 2.12 KB
Re: System builder problem  
Hi, Oleg,

Thanks for the boot script -- that explains it.

The boot script doesn't start the RAM driver.  Start up devf-ram and you should see each EFS mounted into a partition as
 I described, previously.

HTH,

Christian


On 05/03/10 01:24 AM, Oleg Gopov wrote: 

		Hi, Oleg,
		
		Did you specify a mount point in your EFS build file using the "mount" 
		attribute?  If so, I think you should find your EFS mounted, there.  The 
		default if you don't specify a mount point is something like /fs0p1, 
		/fs0p2, etc. for each successive combined EFS (/fs0/p0 is the boot image 
		partition, which is mounted specially).
		
		I could be wrong, but I think that the devf-ram driver should 
		automatically mount your combined EFSes.
		
		HTH,
		
		Christian
		    

	
	Hello Christian. Thank you for your reply
	
	When I specify mount attribute to /fs  - >  nothing change. 
	
	When I don't specify mount attribute ->  /fs0p1, /fs0p2, /fs0p3  directories system don't create. Maybe problem in boot
 script. I attach it.
	
	
	
	
	
	
	_______________________________________________
	
	QNX Momentics Community Support
	http://community.qnx.com/sf/go/post48873
	  



-- 
Christian W. Damus
Software Developer, IDE Team
QNX Software Systems <http://www.qnx.com/>;  
Re: System builder problem  
Hello Cristian.

Ok. I do , that devf-ram is start when system booted.

As result, fs0p0(fs0p1,fs0p2 ....) directory doesn't created. But, /dev/fs0 and /dev/fs0p0 is created.
Re: System builder problem  
Then I read in help - 

"You must format and erase a devf-ram partition before you can mount the flash filesystem. e.g. ". 

I add command - flashctl -p /dev/fs0p0 -e -f -m.    As result, /fs0p0 directory is created. But it EMPTY. How to mount 
to this directory EFS part of my COMBINED image ????????????????
Re: System builder problem  
Cristian. Where you are???
Combined EFSes not mounted [was Re: System builder problem]  
Hi, Oleg,

Sorry for the delayed reply.

I wouldn't think that initializing a new flash device should be necessary, because devf-ram should already have mounted 
your EFSes.

In any case, this doesn't appear to be a system builder problem, so I have changed the subject line.  Hopefully somebody
 that knows more about how these image filesystems work than I do will pitch in to help further.  You might also try 
asking about this problem in the filesystems forum; you will find more knowledge there than I can offer.

Cheers,

Christian


On 09/03/10 01:00 AM, Oleg Gopov wrote: 

	Then I read in help - 
	
	"You must format and erase a devf-ram partition before you can mount the flash filesystem. e.g. ". 
	
	I add command - flashctl -p /dev/fs0p0 -e -f -m.    As result, /fs0p0 directory is created. But it EMPTY. How to mount 
to this directory EFS part of my COMBINED image ????????????????
	
	
	
	_______________________________________________
	
	QNX Momentics Community Support
	http://community.qnx.com/sf/go/post49062
	
	  



-- 
Christian W. Damus
Software Developer, IDE Team
QNX Software Systems <http://www.qnx.com/>;  
Re: System builder problem  
> Then I read in help - 
> 
> "You must format and erase a devf-ram partition before you can mount the flash
>  filesystem. e.g. ". 
> 
> I add command - flashctl -p /dev/fs0p0 -e -f -m.    As result, /fs0p0 
> directory is created. But it EMPTY. How to mount to this directory EFS part of
>  my COMBINED image ????????????????

You cannot if the combined image is being written to a Hard disk drive partition (/dev/hd0t179 as you said).  An EFS 
image is not the correct thing to be creating in this situation. Instead you want a qnx6 (also called "Power Fail Safe")
 filesystem image.  I might be wrong, but I do not think the IDE can create a pre-built qnx6 filesystem image. 

Instead, on the target, you need to run "mkqnx6fs /dev/hd1t179" to format the qnx6 filesystem on the partition you 
created.  There is one mkqnx6fs option which you should be careful about: the -T option.  This is a hint for how many 
inodes to create, based on the usage of the disk.  The three options are:

-T desktop
-T media
-T runtime

Select the option that is best for you.


After mkqnx6fs formats the filesystem, you may mount the partition with 

mount -tqnx6 /dev/hd0t179  <mountpoint>

And then copy all of your files to the new mountpoint.  

Regards,

David
Post Deleted
Re: System builder problem  
> I don't find usefull information in mount reference.
> 
> I don't understand how to extract efs file from my COMBINED image file  -  
> efs-qnxbase.bin   , when my system booted. I find in forums, that I must 
> invoke  DEVF-RAM driver. This is driver for flash filesystem.

Yes. and EFS is only for flash.   That is why you must use devf-* to mount an EFS image.  

 
> It create /dev/fs0 and /dev/fs0p0 files. But mount command with this special 
> devices is failed. I read in "Building Embedded systems" document , that I 
> must cat to this files image file . For example, cat xxx.efs > /dev/fs0p0.  
> Then if I reboot DEVF-RAM driver,  System create /fs0p1 directory , where  
> belonged files from EFS - image.

I think you are confused about when to use an EFS.  You are describing the process for using an EFS on a target board 
which uses NOR flash.  The IFS would be padded to a flash sector boundary, and then the EFS would be "cat" to the end of
 the padded IFS.  At boot time, devf-generic, or some other devf would be started, and would scan the NOR flash to 
discover the EFS and mount it.

In your first post, you mention creating a HDD partition.  For this you want to use either the qnx4 or qnx6 filesystem, 
and one of the devb-* drivers.  After you fdisk the drive to set the partition size, then use either "dinit" for qnx4 
filesystem, or "mkqnxfs" for qnx6 filesystem, targetting the partition you wish to use (either /dev/hd0t79 or /dev/
hd0t179).

> 
> I have very interest question.
> 
> How to extract efs - image from my COMBINED image file, that I create in 
> System Builder Perspective

You have to burn the image to NOR flash, and then start the correct devf driver for your board. 

Regards,

David
Re: System builder problem  
Thank you Davidl. Please tell me, whaat is NOR flash or NAND flash?????
Re: System builder problem  
And why when I invoke mkdir command (for example , mkdir /tmp) I have a error 

----->   mkdir : /tmp: Function not implemented
Re: System builder problem  
But in /fs/hd0-qnx6 directory mkdir is OK. For instance, mkdir /fs/hd0-qnx6/tmp -------->    all OK.
RE: System builder problem  
Your /tmp directory might be a symbolic link to /dev/shmem, which looks
like a filesystem but really isn't, and doesn't support the creation of
directories. See:

 
http://www.qnx.com/developers/docs/6.4.1/neutrino/sys_arch/fsys.html#DEV
SHMEM


Steve Reid (stever@qnx.com)
Technical Editor
QNX Software Systems 
 

> -----Original Message-----
> From: Oleg Gopov [mailto:community-noreply@qnx.com] 
> Sent: Wednesday, March 17, 2010 2:38 AM
> To: momentics-community
> Subject: Re: System builder problem
> 
> But in /fs/hd0-qnx6 directory mkdir is OK. For instance, 
> mkdir /fs/hd0-qnx6/tmp -------->    all OK.
> 
> 
> 
> _______________________________________________
> 
> QNX Momentics Community Support
> http://community.qnx.com/sf/go/post49695
> 
> 
Re: System builder problem  
> And why when I invoke mkdir command (for example , mkdir /tmp) I have a error 
> 
> 
> ----->   mkdir : /tmp: Function not implemented


Could you post output of "mount" command?

Probably your "/" is not serviced by a "filesystem" with mkdir functionality.

PKY
Re: System builder problem  
Output of mount command


/dev/hd0t6 on /fs/hd0-dos type dos (fat16)
/dev/hd0t179 on /fs/hd0-qnx6 type qnx6