mk.build -> .boot -> bad qnet

Hi…

I have the following mk.build file that produces a .boot image.

Every thing works (i.e. the system boots, I can ping, etc.), but the
qnet aspect of it is both slow and unreliable (i.e. qnet resets all the
time, drops out in the mist of data transfer, etc.).

However, when I slay io-net and restart it all over again, then… it
works fine!

(1) Any suggestions on what to do so that qnet starts correctly the
first time around? Is there any thing missing in this .build file??

(2) I wonder if you could indicate what to do so that I start the
/etc/rc.d/rc.local file from the script? Do I just call it from the
script?

Thanks…

Miguel.

###########################################################################
[search=/sbin:/usr/sbin:/bin:/usr/bin:/lib:/lib/dll:/boot/sys]
[virtual=x86,bios +compress] boot = {

startup-bios -Nmachine-name

startup-bios -s 64k
PATH=/proc/boot:/bin:/sbin
LD_LIBRARY_PATH=/proc/boot:/dev/shmem:/lib:/lib/dll:/usr/lib procnto
}

[+script] startup-script = {

Populate the kernel resource database

seedres

Start the PCI server for drivers that need pci.

display_msg “Starting pci-bios server…”
pci-bios &
waitfor /dev/pci

These env variables inherited by all the programs which follow

TERM=qansi
PATH=/proc/boot:/bin:/usr/bin:/sbin:/usr/sbin
LD_LIBRARY_PATH=/proc/boot:/lib:/lib/dll:/usr/lib
DL_DEBUG=1

Start the standard PC console driver and

make it the default output (reopen).

display_msg “Starting up console driver…”
devc-con -n4 &
waitfor /dev/con1
reopen /dev/con1

Pipe provides pipe() services.

display_msg “Starting pipe manager…”
pipe &
mqueue &
devc-pty &
waitfor /dev/pipe

Start eide driver to get drive access.

display_msg “Starting eide driver…”
devb-eide blk automount=hd0t79:/ &
#devb-eide eide dma,slave blk
auto=partition,cache=94M,alloc=94M,delwri=60 &
waitfor /bin 30

\

Network drivers and filesystems

display_msg “Starting Network driver…”
io-net -dspeedo -ptcpip
sleep 4
waitfor /dev/io-net
ifconfig en0 10.0.0.205 netmask 255.255.255.0 up
sleep 2
waitfor /dev/socket
mount -Tio-net -o"host=me5.me.com" npm-qnet.so
sleep 2
waitfor /net/saic5
netmanager
sleep 2

fs-nfs2 10.2:/usr/nto / 10.2:/ /usr/qnx4 &

welcome

display_msg “Welcome to Neutrino on an PC compatible BIOS system”

Start some extra shells on other consoles

reopen /dev/con2
[+session pri=10r] fesh &
reopen /dev/con3
[+session pri=10r] fesh &

[+session] fesh &

Start a high priority shell just in case…

reopen /dev/con4
[+session pri=30r] fesh &

[pri=25 +session] fesh &

Start the main shell

reopen /dev/con1
[+session pri=10r] fesh &

[+session] fesh

[+session] login -p

}

Cheat and make the /temp point to the shared memory area…

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

Redirect console messages for syslog

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

We use the “c” shared lib (which also contains the runtime linker)

/lib/libc.so

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

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

Just incase someone needs floating point…

#fpemu.so

Include the socket library

libsocket.so

Include the hard disk files so we can access files on the disk

libcam.so
io-blk.so

filesystem required shared libs

cam-disk.so
fs-qnx4.so

Include the network files so we can access files across the net

#devn-speedo.so
#npm-tcpip.so
#npm-qnet.so


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

The files above this line can be shared by mutiple processes

###############################################################
[data=c]
seedres
devc-con # Include a console driver
devb-eide # Include DiskOnChip driver.
pci-bios # Include pci server

/bin/mount
/bin/fesh
/sbin/pipe
/sbin/mqueue
/usr/bin/sleep
/usr/bin/ifconfig
################################################################


my opinions are mine, only mine, solely mine, and they are not related
in any possible way to the institution(s) in which I study and work.

Miguel Simon
Research Engineer
School of Aerospace and Mechanical Engineering
University of Oklahoma
http://www.amerobotics.ou.edu/
http://www.saic.com

Hi Miguel,

See below…

Miguel Simon <simon@ou.edu> wrote:

Hi…

I have the following mk.build file that produces a .boot image.

Every thing works (i.e. the system boots, I can ping, etc.), but the
qnet aspect of it is both slow and unreliable (i.e. qnet resets all the
time, drops out in the mist of data transfer, etc.).

However, when I slay io-net and restart it all over again, then… it
works fine!

(1) Any suggestions on what to do so that qnet starts correctly the
first time around? Is there any thing missing in this .build file??

What happens if you start the system without setting up any networking,
then, once the system is going you start the networking, does it work
fine or do you need to kill it off and start it again?

(2) I wonder if you could indicate what to do so that I start the
/etc/rc.d/rc.local file from the script? Do I just call it from the
script?

Yup, this should work fine (from script /etc/rc.d/rc.local)


Thanks

Erick.




Thanks…

Miguel.

###########################################################################
[search=/sbin:/usr/sbin:/bin:/usr/bin:/lib:/lib/dll:/boot/sys]
[virtual=x86,bios +compress] boot = {

startup-bios -Nmachine-name

startup-bios -s 64k
PATH=/proc/boot:/bin:/sbin
LD_LIBRARY_PATH=/proc/boot:/dev/shmem:/lib:/lib/dll:/usr/lib procnto
}

[+script] startup-script = {

Populate the kernel resource database

seedres

Start the PCI server for drivers that need pci.

display_msg “Starting pci-bios server…”
pci-bios &
waitfor /dev/pci

These env variables inherited by all the programs which follow

TERM=qansi
PATH=/proc/boot:/bin:/usr/bin:/sbin:/usr/sbin
LD_LIBRARY_PATH=/proc/boot:/lib:/lib/dll:/usr/lib
DL_DEBUG=1

Start the standard PC console driver and

make it the default output (reopen).

display_msg “Starting up console driver…”
devc-con -n4 &
waitfor /dev/con1
reopen /dev/con1

Pipe provides pipe() services.

display_msg “Starting pipe manager…”
pipe &
mqueue &
devc-pty &
waitfor /dev/pipe

Start eide driver to get drive access.

display_msg “Starting eide driver…”
devb-eide blk automount=hd0t79:/ &
#devb-eide eide dma,slave blk
auto=partition,cache=94M,alloc=94M,delwri=60 &
waitfor /bin 30

\

Network drivers and filesystems

display_msg “Starting Network driver…”
io-net -dspeedo -ptcpip
sleep 4
waitfor /dev/io-net
ifconfig en0 10.0.0.205 netmask 255.255.255.0 up
sleep 2
waitfor /dev/socket
mount -Tio-net -o"host=me5.me.com" npm-qnet.so
sleep 2
waitfor /net/saic5
netmanager
sleep 2

fs-nfs2 10.2:/usr/nto / 10.2:/ /usr/qnx4 &

welcome

display_msg “Welcome to Neutrino on an PC compatible BIOS system”

Start some extra shells on other consoles

reopen /dev/con2
[+session pri=10r] fesh &
reopen /dev/con3
[+session pri=10r] fesh &

[+session] fesh &

Start a high priority shell just in case…

reopen /dev/con4
[+session pri=30r] fesh &

[pri=25 +session] fesh &

Start the main shell

reopen /dev/con1
[+session pri=10r] fesh &

[+session] fesh

[+session] login -p

}

Cheat and make the /temp point to the shared memory area…

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

Redirect console messages for syslog

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

We use the “c” shared lib (which also contains the runtime linker)

/lib/libc.so

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

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

Just incase someone needs floating point…

#fpemu.so

Include the socket library

libsocket.so

Include the hard disk files so we can access files on the disk

libcam.so
io-blk.so

filesystem required shared libs

cam-disk.so
fs-qnx4.so

Include the network files so we can access files across the net

#devn-speedo.so
#npm-tcpip.so
#npm-qnet.so



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

The files above this line can be shared by mutiple processes

###############################################################
[data=c]
seedres
devc-con # Include a console driver
devb-eide # Include DiskOnChip driver.
pci-bios # Include pci server

/bin/mount
/bin/fesh
/sbin/pipe
/sbin/mqueue
/usr/bin/sleep
/usr/bin/ifconfig
################################################################


my opinions are mine, only mine, solely mine, and they are not related
in any possible way to the institution(s) in which I study and work.

Miguel Simon
Research Engineer
School of Aerospace and Mechanical Engineering
University of Oklahoma
http://www.amerobotics.ou.edu/
http://www.saic.com

Hi…

Hardware Support Account wrote:

Hi Miguel,

See below…

Miguel Simon <> simon@ou.edu> > wrote:
Hi…


(1) Any suggestions on what to do so that qnet starts correctly the
first time around? Is there any thing missing in this .build file??

What happens if you start the system without setting up any networking,
then, once the system is going you start the networking, does it work
fine or do you need to kill it off and start it again?

This is running in an embedded system, and if I do not start it at boot
up, then I have to manually start the network later. However, when I do
this (start the network manually), all works fine.

(2) I wonder if you could indicate what to do so that I start the
/etc/rc.d/rc.local file from the script? Do I just call it from the
script?

Yup, this should work fine (from script /etc/rc.d/rc.local)

Thanks. I am now doing this, and all is fine. :slight_smile:

The solution that I found was rather simple. All I had to do was to
sleep() for a few seconds.

A question is: what does ‘netmanager’ do? Do I have to have netmanager
working in the background?

Thanks for your help.

Regards…

Miguel.

Thanks

Erick.

Thanks…

Miguel.

###########################################################################
[search=/sbin:/usr/sbin:/bin:/usr/bin:/lib:/lib/dll:/boot/sys]
[virtual=x86,bios +compress] boot = {

startup-bios -Nmachine-name

startup-bios -s 64k
PATH=/proc/boot:/bin:/sbin
LD_LIBRARY_PATH=/proc/boot:/dev/shmem:/lib:/lib/dll:/usr/lib procnto
}

[+script] startup-script = {

Populate the kernel resource database

seedres

Start the PCI server for drivers that need pci.

display_msg “Starting pci-bios server…”
pci-bios &
waitfor /dev/pci

These env variables inherited by all the programs which follow

TERM=qansi
PATH=/proc/boot:/bin:/usr/bin:/sbin:/usr/sbin
LD_LIBRARY_PATH=/proc/boot:/lib:/lib/dll:/usr/lib
DL_DEBUG=1

Start the standard PC console driver and

make it the default output (reopen).

display_msg “Starting up console driver…”
devc-con -n4 &
waitfor /dev/con1
reopen /dev/con1

Pipe provides pipe() services.

display_msg “Starting pipe manager…”
pipe &
mqueue &
devc-pty &
waitfor /dev/pipe

Start eide driver to get drive access.

display_msg “Starting eide driver…”
devb-eide blk automount=hd0t79:/ &
#devb-eide eide dma,slave blk
auto=partition,cache=94M,alloc=94M,delwri=60 &
waitfor /bin 30

\

Network drivers and filesystems

display_msg “Starting Network driver…”
io-net -dspeedo -ptcpip
sleep 4
waitfor /dev/io-net
ifconfig en0 10.0.0.205 netmask 255.255.255.0 up
sleep 2
waitfor /dev/socket
mount -Tio-net -o"host=me5.me.com" npm-qnet.so
sleep 2
waitfor /net/saic5
netmanager
sleep 2

fs-nfs2 10.2:/usr/nto / 10.2:/ /usr/qnx4 &

welcome

display_msg “Welcome to Neutrino on an PC compatible BIOS system”

Start some extra shells on other consoles

reopen /dev/con2
[+session pri=10r] fesh &
reopen /dev/con3
[+session pri=10r] fesh &

[+session] fesh &

Start a high priority shell just in case…

reopen /dev/con4
[+session pri=30r] fesh &

[pri=25 +session] fesh &

Start the main shell

reopen /dev/con1
[+session pri=10r] fesh &

[+session] fesh

[+session] login -p

}

Cheat and make the /temp point to the shared memory area…

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

Redirect console messages for syslog

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

We use the “c” shared lib (which also contains the runtime linker)

/lib/libc.so

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

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

Just incase someone needs floating point…

#fpemu.so

Include the socket library

libsocket.so

Include the hard disk files so we can access files on the disk

libcam.so
io-blk.so

filesystem required shared libs

cam-disk.so
fs-qnx4.so

Include the network files so we can access files across the net

#devn-speedo.so
#npm-tcpip.so
#npm-qnet.so

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

The files above this line can be shared by mutiple processes

###############################################################
[data=c]
seedres
devc-con # Include a console driver
devb-eide # Include DiskOnChip driver.
pci-bios # Include pci server

/bin/mount
/bin/fesh
/sbin/pipe
/sbin/mqueue
/usr/bin/sleep
/usr/bin/ifconfig
################################################################


my opinions are mine, only mine, solely mine, and they are not related
in any possible way to the institution(s) in which I study and work.

Miguel Simon
Research Engineer
School of Aerospace and Mechanical Engineering
University of Oklahoma
http://www.amerobotics.ou.edu/
http://www.saic.com

my opinions are mine, only mine, solely mine, and they are not related
in any possible way to the institution(s) in which I study and work.

Miguel Simon
Research Engineer
School of Aerospace and Mechanical Engineering
University of Oklahoma
http://www.amerobotics.ou.edu/
http://www.saic.com