can anybody tell me how to make a system on an CF card

[size=150]can anybody tell me how to make a system on an CF card with sdp 6.4.1 and the phab app with sdp 6.4.1[/size]

I think your question is a little broad. What aspect of creating a system on a CF card and what aspect of creating a Phab application are you having trouble with? While there are some special issues for running a system on CF cards, they behave more or less the same as a hard disk, at least until you wear them out.

[size=150]oh,I am so sorry,I also think it a little broad,my opinion is the basic system that can work on a x86 pc,it can no graphic just only a # ,I also think it more or less as a hard disk,but it doesn’t work when I make the ifs file like the hard disk build file

I do the work on a linux system and my build file like this:
[virtual=x86,bios +compress] .bootstrap = {
startup-bios
PATH=/proc/boot:/bin LD_LIBRARY_PATH=/proc/boot:/lib:/dll procnto
}

[+script] .script = {
pci-bios &
devc-con &
reopen /dev/con1

Disk drivers

devb-eide blk cache=2m,automount=hd0t79:/,automount=cd0:/cd &

Wait for a bin for the rest of the commands

waitfor /x86 10

Some common servers

pipe &
mqueue &
devc-pty &

Start the main shell

[+session] esh &

}

make /tmp point to the shared memory area

[type=link] /tmp=/dev/shmem

Redirect console messages

[type=link] /dev/console=/dev/ser1

Programs require the runtime linker (ldqnx.so) to be at

a fixed location

[type=link] /usr/lib/ldqnx.so.2=/proc/boot/libc.so

Add for HD support

[type=link] /usr/lib/libcam.so.2=/proc/boot/libcam.so

add symbolic links for bin, dll, and lib

(files in /x86 with devb-eide)

[type=link] /bin=/x86/bin
[type=link] /dll=/x86/lib/dll
[type=link] /lib=/x86/lib

We use the C shared lib (which also contains the runtime linker)

libc.so

Just in case someone needs floating point and our CPU doesn’t

have a floating point unit

fpemu.so.2

Include the hard disk shared objects so we can access the disk

libcam.so
io-blk.so

For the QNX 4 filesystem

cam-disk.so
fs-qnx4.so

For the UDF filesystem and the PCI

cam-cdrom.so
fs-udf.so
pci-bios

Copy code and data for all executables after this line

[data=copy]

Include a console driver, shell, etc.

esh
devb-eide
devc-con

any error?[/size]

Now I have make my system worked,but when I run devb-eide in the script there is no /dev/hd0 appears and so I can’t access the CF card,why???How to do

How do you start devb-eide? Try sloginfo, is there an error message?

thanks
I have start my system and run the slogger and sloginfo and I write down the infomation about my card as below:
sep 01 21:12:41 2 19 0 eide_display_devices:md1 ELITE PROCF CARD 4G sn 5b942200 fw ver2.21k Tid 0,cable 40,max udma 5,cur udma 0,max mdma 2,cur mdama 2,max sbdma -1,cur sdma -1,pio 4,mflk 1

what should i do?

qdog,

Two things:

  1. Are you sure your CF card had QNX installed on a t79 partition and not t78 or t77?

  2. I don’t know if you can have multiple automounts as arguments to devb-eide (I’ve never tried it). So why don’t you try removing the 2nd one (the CD Rom) and see if that mounts the CF card. If it does then you can always mount the CD later in a script.

Tim

Tim

for 1:I am sure the QNX installed on t79
for 2: I am now not run devb-eide in the script but run it after the system has started,as follow I do

devb-eide &
when it runs .there should be /dev/hd0 appeared,is it??
but there is no /dev/hd0 appeared

qdog,

I’m not sure what you mean when you say you start devb-eide after the system has started. You have to run devb-eide in the script (your bootimage) other wise there won’t ever be any hard drive mounted so you could never run devb-eide off the hard drive (a chicken and egg problem). This is the reason devb-eide has to be in the boot image script.

One more thing to check. In the BIOS on your machine (a PC104 board I assume) is the CF card recognized and treated as an eide hard drive?

Here is my script for starting our CF card on an Ampro PC104 board (using QNX 6.3 but I doubt there is any real difference between 6.3 and 6.4 in this regard). Why do you build a boot image with it and see if you get your hard drive to appear.

Tim

###############################################################################

The build file for starting QNX on the Ampro Board.

This image is designed for fast booting. Only the bare minimum of services

(IDE/SATA disk driver and serial driver) are installed in this image.

Everything else will be started by the rc.sysinit file.

This boot image assumes that the QNX 6.3 SP3 Runtime kit has been installed

on the compact flash drive.

###############################################################################
[virtual=x86,bios +compress] boot = {
# Reserve 64k of video memory to handle multiple video cards
startup-bios -s64k

# PATH is the *safe* path for executables (confstr(_CS_PATH...))
# LD_LIBRARY_PATH is the *safe* path for libraries (confstr(_CS_LIBPATH))
#    i.e. This is the path searched for libs in setuid/setgid executables.
PATH=/proc/boot:/bin:/sbin:/usr/bin:/usr/sbin LD_LIBRARY_PATH=/proc/boot:/lib:/usr/lib:/lib/dll:/opt/lib procnto

}

[+script] startup-script = {
# To save memory make everyone use the libc in the boot image!
# For speed (less symbolic lookups) we point to libc.so.2 instead of
# libc.so
procmgr_symlink …/…/proc/boot/libc.so.2 /usr/lib/ldqnx.so.2

# Default user programs to priorty 10, other scheduler (pri=10o)
display_msg "amproBoard Build Ver 1.0"

[pri=10o] PATH=/proc/boot pci-bios &
devc-con -n4 &
   
# Disk Driver
devb-eide blk cache=2m,automount=hd0t79:/ & 

# Wait until the disk manifests itself
waitfor /x86  10

# Some common servers and drivers (serial) 	
pipe &
devc-pty -n32 &
devc-ser8250 -u1 3f8,4 2f8,3 -u3 3e8,11 -u4 2e8,10 &

# Do all the system init from /etc/rc.d/rc.sysinit
sh /etc/rc.d/rc.sysinit

# Start the console sessions for logging in	
reopen /dev/con1
[+session] login &
	
reopen /dev/con2
[+session] login &

reopen /dev/con3
[+session] login &

reopen /dev/con4
[+session] login &

}

Include the current “libc.so”. It will be created as a real file using

it’s internal “SONAME”, with “libc.so” being a symlink to it. The symlink

will point to the last “libc.so.*” so if an earlier libc is needed

(e.g. libc.so.1) add it before the this line.

libc.so

Include all the files for the default filesystems

libcam.so
io-blk.so
cam-disk.so
fs-qnx4.so

#------------------------------------------------------------

This comment from example text file - disregard it.

XX These programs only need to be run once from the boot image.

XX “data=uip” will waste less memory as the ram from the boot

XX image will be used directly without making a copy of the data

XX (i.e. as the default “data=cpy” does). When they have been

XX run once, they will be unlinked from /proc/boot.

#------------------------------------------------------------
[data=copy]
seedres
pci-bios
devb-eide
slogger
devc-con
esh

I’m not sure what you mean when you say you start devb-eide after the system has started. You have to run devb-eide in the script (your bootimage) other wise there won’t ever be any hard drive mounted so you could never run devb-eide off the hard drive (a chicken and egg problem). This is the reason devb-eide has to be in the boot image script.

[size=150]My opinion is I doesn’t run devb-eide in the script but run it when the system start because it doesn’t work right in the script.

I check that my CF card treated as IDE secondary Master and the name is ELITE PRO CF CARD 4G

I use your build files for a test,but failed,it give a prompt that can’t access the /dev/con and so on,I think it the PATH is wrong,and now I set
PATH=/bin:/proc/boot:.
LD_LIBRARY_PATH=/usr/lib:/dll:/lib:.
in my own ifs’s script because I find that the script runs wrong if I doesn’t set the veriable
and I also fount a problem that if I set a link libc.so.2 to ldqnx.so.2,the script doesn’t work but set a link libc.so to ldqnx.so.2 script work correctly
so why ?[/size]

qdog,

The bld script is not actually residing in the boot image. The script merely tells the mkifs program what to include in the .boot image file and the what to start after the kernel loads. So it’s not a startup script in the sense that sysinit, rc.sysinit etc are. This is why at the end of the bld script you list the files and supporting libraries to include in the .boot image because there is no CF/hard drive access capability in the .boot image. If you want to access a hard drive or CF card you must include (and start) the minimum to support devb-eide.

So if you do not include AND start devb-eide in your .bld file you won’t ever get CF card access.

Good. At least it’s recognized by the BIOS.

As I mentioned, this script works on QNX 6.3. It’s possible some files/directory paths changed in 6.4 which would cause this problem. Especially libc.so because 6.4 is a new version of the O/S and 6.3 is a later incarnation of 6.0.

What you can do is on your 6.4 system locate where those files are and then set the path to them accordingly so that mkifs can find them when it builds the boot image.

Tim

I have included devb-eide in my .bld file but doesn’t run it in the script and run it when the system started ,Now I have run devb-eide in the script but have no effect.

I also find a problem when I set veriable of PATH and LD_LIBRARY_PATH in the beginning of script,if LD_LIBRARY_PATH include /proc/boot the system can’t start

so why

qdog,

I am still not sure by what you mean ‘it doesn’t run it’.

Way up above you posted some output from devb-eide in slogger. That indicates that devb-eide ran and ran from the script.

So why are you saying devb-eide doesn’t run?

If having LD_LIBRARY_PATH look in /proc/boot causes the system to hang then just remove that particular path. But it does indicate something is wrong because adding that path should not cause the system to hang. The only reason I can think is you are somehow mixing 6.3 and 6.4 libraries.

Tim

thanks very much!

my opinion is it = devb-eide,so you?

Now I have changed another method to start my pc104,I build an ifs by qnxbase.build,and Now there is still something wrong with my system,but it better than before,Now I put some directory and execute file on my CF card,but I need a minimized sysinit for my system which can only start a #