Skip navigation.
Home
The QNX Community Portal

View topic - Need help on building image on Compact Flash card of PC104

Need help on building image on Compact Flash card of PC104

General Help about QNX

Need help on building image on Compact Flash card of PC104

Postby doncmh » Tue May 15, 2012 1:42 am

I am a new user of QNX. I am picking up a project which uses QNX6. My project applies QNX on PC104.
The project has built a boot file already. However, I need to modify this boot file. I am planning to rewrite everything onto a new Compact Flash (CF) card. That lead me to following questions.
1) The old thesis told me that they build the OS image through Neutrino. What command should I use to mount the CF card through a USB card reader?
2) I understand I need to format and initialize the compact flash. How should I confirm I am formatting the CF drive ? and how to set it into type 77?
3) What is the command to build the OS image into compact flash?

I have tried to Google the above information for a week. But I still cannot find the above information (may be I am too stupid >.<). If my questions are too basic, would you mind giving some links about that to read it?

Thank you very much,
Don
doncmh
Active Member
 
Posts: 16
Joined: Thu May 10, 2012 7:12 am

Re: Need help on building image on Compact Flash card of PC1

Postby maschoen » Tue May 15, 2012 5:31 am

doncmh wrote:1) The old thesis told me that they build the OS image through Neutrino.


This statement is a little ambiguous. It could mean that they built the OS image using Neutrino/Momentics, which probably means on a Windows machine using the Eclipse IDE.
If that's the case, someone else will have to help you.

If on the other hand they mean they built the OS on a QNX Neutrino machine, the command is mkifs. Look for a directory /boot and within it a directory build. It may have one more .build files. These are script files used to define the boot image as well as run a startup script from within it.

What command should I use to mount the CF card through a USB card reader?


On QNX 6.5, if you plug in a USB reader with CF card, you should find it auto-mounted, probably at /fs/usb0. That is if it has a QNX file system on it.

2) I understand I need to format and initialize the compact flash. How should I confirm I am formatting the CF drive ? and how to set it into type 77?


You would not format the CF drive. I think you might want to initialize it.
If it is mounted at /fs/usb0 you would first want to unmount it:

# umount /fs/usb0

You would then want to look in /dev

# ls /dev/umass*

If you find /dev/umass0t77 then you know it is type 77. Otherwise unmount it:

# umount /dev/umass0t??

and run fdisk:

# fdisk /dev/umass0

In the program you can modify the partition however you like. My guess is you want to delete any partition that is there, create a 77 with the full disk space, and mark it bootable.

At this point you could enumerate the partitions with "mount -e" and mount it manually or just remove the device and re-insert it.

After that you can initialize the partition as follows:

# dinit -h /dev/umass0t77

3) What is the command to build the OS image into compact flash?


You build the OS image separately using mkifs. You then copy the file you create to root on the drive, eg:

# cd /boot
# mkifs -v build/qnxbasesmp.build fs/qnxbasesmp.ifs
# cp fs/qnxbasesmp.ifs /fs/usb0/.boot
maschoen
QNX Master
 
Posts: 2644
Joined: Wed Jun 25, 2003 5:18 pm

Re: Need help on building image on Compact Flash card of PC1

Postby doncmh » Wed May 16, 2012 2:57 am

Thank you very much for your help maschoen. I made some more progression from your help.
I still have a small problem of create a type 77 drive.

I have followed your steps:

# fdisk /dev/umass0

In the program you can modify the partition however you like. My guess is you want to delete any partition that is there, create a 77 with the full disk space, and mark it bootable.

At this point you could enumerate the partitions with "mount -e" and mount it manually or just remove the device and re-insert it.

After that you can initialize the partition as follows:

# dinit -h /dev/umass0t77


I used fdisk to chose the partition type as 77 and make it as boot. Then I physically remove the card reader and plug it in again. But I cannot find umass1t77 in /dev . did I miss any step to build a type 77 drive?
doncmh
Active Member
 
Posts: 16
Joined: Thu May 10, 2012 7:12 am

Re: Need help on building image on Compact Flash card of PC1

Postby doncmh » Thu May 17, 2012 4:01 am

Thank you very much maschoen. Now I have done up to "mount -e" as you mentioned.

I have do "fdisk /dev/umass1" and created it as 77 and bootable.
Then I used "mount -e /dev/umass1"
after that I phically disconnect and plug the CF to the computer but I still cannot find umass1t77.
Did I do any step wrong?

Thanks for your help

maschoen wrote:In the program you can modify the partition however you like. My guess is you want to delete any partition that is there, create a 77 with the full disk space, and mark it bootable.

At this point you could enumerate the partitions with "mount -e" and mount it manually or just remove the device and re-insert it.

After that you can initialize the partition as follows:

# dinit -h /dev/umass0t77

doncmh
Active Member
 
Posts: 16
Joined: Thu May 10, 2012 7:12 am

Re: Need help on building image on Compact Flash card of PC1

Postby maschoen » Mon May 21, 2012 5:39 am

doncmh wrote:
I used fdisk to chose the partition type as 77 and make it as boot. Then I physically remove the card reader and plug it in again. But I cannot find umass1t77 in /dev . did I miss any step to build a type 77 drive?


Well, I'm not sure what you found. Here are two possibilities

1) umass#
In this case the system didn't enumerate the drive, so you can do that yourself:

# mount -e /dev/umass#

After that you can mount it anywhere you like, although the convention is usually in /fs

# mount /dev/umass#t77 /fs/umass#

The other possibility is that you are seeing nothing in /dev. That would be pretty strange.
It suggests that your system isn't auto-mounting the usb drive. You could try starting the usb disk driver directly. I think it might be devb_umass or something similar.
maschoen
QNX Master
 
Posts: 2644
Joined: Wed Jun 25, 2003 5:18 pm

Re: Need help on building image on Compact Flash card of PC1

Postby denkelly » Mon May 21, 2012 10:55 am

In 6.2/6.3 first usb drive may show up as /dev/hd10t77
denkelly
Senior Member
 
Posts: 161
Joined: Sat Aug 02, 2008 3:27 pm

Re: Need help on building image on Compact Flash card of PC1

Postby doncmh » Tue May 22, 2012 6:08 am

denkelly wrote:In 6.2/6.3 first usb drive may show up as /dev/hd10t77

Thanks denkelly. My QNX is 6.3.2 but I am pretty sure it shows as umass#t## because after I formatted it into FAT32 it shows as /dev/umass1t11

maschoen wrote:Well, I'm not sure what you found. Here are two possibilities

1) umass#
In this case the system didn't enumerate the drive, so you can do that yourself:

# mount -e /dev/umass#

After that you can mount it anywhere you like, although the convention is usually in /fs

# mount /dev/umass#t77 /fs/umass#

The other possibility is that you are seeing nothing in /dev. That would be pretty strange.
It suggests that your system isn't auto-mounting the usb drive. You could try starting the usb disk driver directly. I think it might be devb_umass or something similar.


Thanks maschoen. I think I am in case 1. After I disconnect and re-insert the card reader, /dev/umass1 exists but not umass1t77.

I have tried to use
# mount -e /dev/umass1
then
# mount /dev/umass1t77 /fs/umass1

it gives me
mount: Can't mount /fs/umass1 (type qnx4)
mount: Possible reaseon: Invalid argument

However if I try to
# mount /dev/umass1 fs/umass1
it gives me a file which is not accessable with Size 0 (I guess this is not the type I want to access, I should access type 77 file)
doncmh
Active Member
 
Posts: 16
Joined: Thu May 10, 2012 7:12 am

Re: Need help on building image on Compact Flash card of PC1

Postby maschoen » Tue May 22, 2012 6:19 am

I don't know what is going wrong. Did you dinit the partition?
maschoen
QNX Master
 
Posts: 2644
Joined: Wed Jun 25, 2003 5:18 pm

Re: Need help on building image on Compact Flash card of PC1

Postby denkelly » Tue May 22, 2012 12:42 pm

It seems you cannot "dinit -h /dev/umass0t77" without /dev/umass0t77 appearing!

Here's what I would try... Assuming /dev/umass0 exists...
# dd if=zero of=/dev/umass0
You do not need to let this complete (it would take a long time) - just let it run a minute to erase the beginning of the drive.

Now...
# fdisk /dev/umass0
and create one t77 partition.

Pull the card reader and re-insert.
Verify that /dev/umass0t77 is now present. If so...

# dinit -h /dev/umass0t77
# mount /dev/umass0t77 /q4

IF my theory is right, I will explain why it was failing. If not, I will keep my theory it to myself :)
denkelly
Senior Member
 
Posts: 161
Joined: Sat Aug 02, 2008 3:27 pm

Re: Need help on building image on Compact Flash card of PC1

Postby denkelly » Tue May 22, 2012 7:05 pm

>>> dd if=zero of=/dev/umass0

I need to correct this line...

dd if=/dev/zero of=/dev/umass0
denkelly
Senior Member
 
Posts: 161
Joined: Sat Aug 02, 2008 3:27 pm

Re: Need help on building image on Compact Flash card of PC1

Postby doncmh » Wed May 23, 2012 7:16 am

thanks denkelly and maschoen

denkelly is correct that /dev/umass1t77 does not appear (/dev/umass1 appears) so I cannot dinit /dev/umass1t77
denkelly wrote:It seems you cannot "dinit -h /dev/umass0t77" without /dev/umass0t77 appearing!


denkelly wrote:# dd if=/dev/zero of=/dev/umass0
# fdisk /dev/umass0
and create one t77 partition.
Pull the card reader and re-insert.
Verify that /dev/umass0t77 is now present. If so...


I have tried this approach, but umass1t77 still does not appear.

However I have found another trick to make umass1t77 to appear.

denkelly wrote:In 6.2/6.3 first usb drive may show up as /dev/hd10t77

I remembered that denkelly said usb card reader may appear as /dev/hd1# and I found this appears everytime I restart my desktop with the card reader connected to it. I did the following steps

# dd if=/dev/zero of=/dev/umass0
# fdisk /dev/umass0
and create one t77 partition.
reboot the desktop
and /dev/hd11t77 appears
dinit -h /dev/hd11t77
from now on, if I pull the card reader and re-insert it, it come up as /dev/umass1 and /dev/umass1t77
after that, I use dloader to /dev/umass1 and /dev/umass1t77 it boot up correctly as what I want in PC104

Thank you very much to denkelly and maschoen
doncmh
Active Member
 
Posts: 16
Joined: Thu May 10, 2012 7:12 am

Re: Need help on building image on Compact Flash card of PC1

Postby denkelly » Wed May 23, 2012 11:12 am

Glad you got it working Don.

The fact that a partition table entry 77 does not show up in /dev as a "t77" is a bug (as we all can see). The roots of the issue lie in the fact that QNX does not REQUIRE a partition table to mount a filesystem - certainly a difference from the early days of the PC. For example, you can dinit /dev/umass0 as qnx4fs and then "mount -tqnx4 /dev/umass0". (Of course, without a partition table, the disk would be totally foreign to an MS o/s.) In this case, the qnx4fs filesystem has to be detected by examining only the CONTENTS of the partition.

So apparently, the logic sees the partition type 77 as a "hint", looks AT THE CONTENT which does not match t77, and correctly chooses not to automount the filesystem. However, it also removes the "t77" entry from /dev - which it should not do, since now you cannot dinit the partition!

That is why I suggested using "dd" to clear the partition contents.
denkelly
Senior Member
 
Posts: 161
Joined: Sat Aug 02, 2008 3:27 pm


Return to Help

Who is online

Users browsing this forum: No registered users and 1 guest