pci-bios problems

I’m trying to migrate from RTP 6.0C to 6.1 on an embedded processor (ADL
PC-104 PII-266) and I’m having problems with the pci-bios driver. Below I
have a minimal buildfile for booting up to a shell on the device. Using
‘mkifs’ with this buildfile under 6.0C creates a boot image that works
exactly as expected, but under 6.1 I get an error of:
“unable to start pci-bios (83)”.

The output of the driver startups (with to the verbosity switches) seems to
be identical until this error occurs (and there is no further description of
the error type).

Does anyone have any ideas as to why this isn’t working?


Thanks much,
Dan Helmick

minimal buildfile for shell

[virtual=x86,bios +compress] .bootstrap = {
startup-bios -vv
PATH=/proc/boot LD_LIBRARY_PATH=/proc/boot procnto -vv
}

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

shell

[+session] esh &
}

load standard c library

libc.so

for the PCI bus

pci-bios

[data=copy]
devc-con
esh

I just tried to use the pci-bios found at
http://developers.qnx.com/Fixes/Software/ to no avail. It doesn’t have a
description, so I had no idea what the ‘fix’ was but it didn’t help this
problem.

-Dan


“Dan Helmick” <danielhelmick@earthlink.net> wrote in message
news:9lropf$l4d$1@inn.qnx.com

I’m trying to migrate from RTP 6.0C to 6.1 on an embedded processor (ADL
PC-104 PII-266) and I’m having problems with the pci-bios driver. Below I
have a minimal buildfile for booting up to a shell on the device. Using
‘mkifs’ with this buildfile under 6.0C creates a boot image that works
exactly as expected, but under 6.1 I get an error of:
“unable to start pci-bios (83)”.

The output of the driver startups (with to the verbosity switches) seems
to
be identical until this error occurs (and there is no further description
of
the error type).

Does anyone have any ideas as to why this isn’t working?


Thanks much,
Dan Helmick

minimal buildfile for shell

[virtual=x86,bios +compress] .bootstrap = {
startup-bios -vv
PATH=/proc/boot LD_LIBRARY_PATH=/proc/boot procnto -vv
}

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

shell

[+session] esh &
}

load standard c library

libc.so

for the PCI bus

pci-bios

[data=copy]
devc-con
esh

Dan Helmick <danielhelmick@earthlink.net> wrote:
: I just tried to use the pci-bios found at
: http://developers.qnx.com/Fixes/Software/ to no avail. It doesn’t have a
: description, so I had no idea what the ‘fix’ was but it didn’t help this
: problem.

: -Dan

Error 83, is that it can’t access the shared library. Make sure that
you are including the correct ldqnx.so.2 in your build image:

[taken from the sample build file qnxbasedms.build]

[+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)

Tell “diskboot” this is a hard disk boot (-b1)

Tell “diskboot” to use DMA on IDE drives (-D1)

Start 4 text consoles buy passing “-n4” to “devc-con” (-o)

By adding “-e” linux ext2 filesystem will be mounted as well.

[pri=10o] PATH=/proc/boot diskboot -b1 -D1 -odevc-con,-n4
}

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

Try basing your minimal build file on the new samples.

Peter


: “Dan Helmick” <danielhelmick@earthlink.net> wrote in message
: news:9lropf$l4d$1@inn.qnx.com
:> I’m trying to migrate from RTP 6.0C to 6.1 on an embedded processor (ADL
:> PC-104 PII-266) and I’m having problems with the pci-bios driver. Below I
:> have a minimal buildfile for booting up to a shell on the device. Using
:> ‘mkifs’ with this buildfile under 6.0C creates a boot image that works
:> exactly as expected, but under 6.1 I get an error of:
:> “unable to start pci-bios (83)”.
:>
:> The output of the driver startups (with to the verbosity switches) seems
: to
:> be identical until this error occurs (and there is no further description
: of
:> the error type).
:>
:> Does anyone have any ideas as to why this isn’t working?
:>
:>
:> Thanks much,
:> Dan Helmick
:>
:> # minimal buildfile for shell
:>
:> [virtual=x86,bios +compress] .bootstrap = {
:> startup-bios -vv
:> PATH=/proc/boot LD_LIBRARY_PATH=/proc/boot procnto -vv
:> }
:>
:> [+script] .script = {
:> pci-bios -v
:> waitfor /dev/pci
:> devc-con -e &
:> reopen /dev/con1
:> # shell
:> [+session] esh &
:> }
:>
:> # load standard c library
:> libc.so
:>
:> # for the PCI bus
:> pci-bios
:>
:> [data=copy]
:> devc-con
:> esh
:>
:>

Thanks Peter… that was the problem, I was including ldqnx.so.1 instead
of ldqnx.so.2

-Dan


“Peter Martin” <peterm@qnx.com> wrote in message
news:9lu4es$e1r$1@nntp.qnx.com

Dan Helmick <> danielhelmick@earthlink.net> > wrote:
: I just tried to use the pci-bios found at
: > http://developers.qnx.com/Fixes/Software/ > to no avail. It doesn’t have
a
: description, so I had no idea what the ‘fix’ was but it didn’t help this
: problem.

: -Dan

Error 83, is that it can’t access the shared library. Make sure that
you are including the correct ldqnx.so.2 in your build image:

[taken from the sample build file qnxbasedms.build]

[+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)

Tell “diskboot” this is a hard disk boot (-b1)

Tell “diskboot” to use DMA on IDE drives (-D1)

Start 4 text consoles buy passing “-n4” to “devc-con” (-o)

By adding “-e” linux ext2 filesystem will be mounted as well.

[pri=10o] PATH=/proc/boot diskboot -b1 -D1 -odevc-con,-n4
}

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

Try basing your minimal build file on the new samples.

Peter


: “Dan Helmick” <> danielhelmick@earthlink.net> > wrote in message
: news:9lropf$l4d$> 1@inn.qnx.com> …
:> I’m trying to migrate from RTP 6.0C to 6.1 on an embedded processor
(ADL
:> PC-104 PII-266) and I’m having problems with the pci-bios driver.
Below I
:> have a minimal buildfile for booting up to a shell on the device.
Using
:> ‘mkifs’ with this buildfile under 6.0C creates a boot image that works
:> exactly as expected, but under 6.1 I get an error of:
:> “unable to start pci-bios (83)”.
:
:> The output of the driver startups (with to the verbosity switches)
seems
: to
:> be identical until this error occurs (and there is no further
description
: of
:> the error type).
:
:> Does anyone have any ideas as to why this isn’t working?
:
:
:> Thanks much,
:> Dan Helmick
:
:> # minimal buildfile for shell
:
:> [virtual=x86,bios +compress] .bootstrap = {
:> startup-bios -vv
:> PATH=/proc/boot LD_LIBRARY_PATH=/proc/boot procnto -vv
:> }
:
:> [+script] .script = {
:> pci-bios -v
:> waitfor /dev/pci
:> devc-con -e &
:> reopen /dev/con1
:> # shell
:> [+session] esh &
:> }
:
:> # load standard c library
:> libc.so
:
:> # for the PCI bus
:> pci-bios
:
:> [data=copy]
:> devc-con
:> esh
:
:

Dan Helmick <danielhelmick@earthlink.net> wrote:

“unable to start pci-bios (83)”.

Does anyone have any ideas as to why this isn’t working?

As mentioned, it is a library linking issue, but one suggestion to avoid
these problems that I use is to start the mkifs utility with -v. This will
allow you to see exactly which lib/binary gets pulled from where.

-Adam
amallory@qnx.com