Boot on Compact Flash Card (/dev/hd1)

Hi,

I read a lot of news about my problem but any is working.

I want to boot on my Compact Flash Card which is on /dev/hd1(Secondary
Master). I use RTP6.1 on an ETX - Geaode Board.

What I have done :

  • I use “fdisk /dev/hd1” to create a QNX partition and make it Bootable
  • I use “dinit -h /dev/hd1” to initialize the disk (
  • I modify the bios.ide.build file to replace “hd0t77” by “hd1”
  • I use “mkifs bios.ide.build bios.ide.img” to create the boot image and
    copy it at /fs/hd1/.boot
  • I copy all the required files by bios.ide.build at the right place on
    /fs/hd1
  • when I start I have the messages

Hit Esc for .altboot …
Welcome toNeutrino …
Path=0 - EIDE
target=0 lun=0 Direct-Access(0) - QUANTUM … Rev:
target=1 lun=0 CD-ROM(5) - MATSHITA … Rev: ZB21
Path=1 - EIDE
target=0 lun=0 Direct-Access(0) - Rev:
Unable to access “/x86/bin” (2)
Unable to start “pipe” (2)
Unable to start “mqueue” (2)
Unable to start “devc-ser8250” (2)
Unable to start “devc-pty” (2)
Unable to start “/dev/ser1” (2)
Unable to start “pdebug” (2)
Unable to start “sh” (2)
Unable to start “sh” (2)
Unable to start “sh” (2)
Unable to start “sh” (2)

This is my bios.ide.build file

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

Neutrino on an PC BIOS compatible system

This is for building a bootable neutrino image that will run from its

own filesystem partition.

To do this make a t79 partition for neutrino, then "mount /dev/hd0t79

/usr/nto"

This build file will also mount t77 partitions as “/usr/qnx4”

Note that the default image links at 4M. If you have 4M or less,

uncomment the line below

[image=1m]

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

[virtual=x86,bios +compress] boot = {
startup-bios -Nmachine-name
PATH=/proc/boot:/x86/bin
LD_LIBRARY_PATH=/proc/boot:/dev/shmem:/x86/lib:/x86/dll procnto
}

[+script] startup-script = {

Start up some consoles

devc-con -n4 &
reopen /dev/con1

display_msg Welcome to Neutrino on an PC compatible BIOS system

Start the pci server

seedres
pci-bios &
waitfor /dev/pci

Disk drivers (The default one and some fun others for your pleasure…)

devb-eide blk automount=hd1:/ &

devb-eide blk automount=hd0t79:/,cache=2m,delwri=5 &

Wait for a bin for the rest of the commands (up to 60 secs)

waitfor /x86/bin 60

Some common servers

pipe &
mqueue &
devc-ser8250 &
devc-pty &

Start a debug server for debugging programs

waitfor /dev/ser1
[+session] pdebug /dev/ser1 &

These env variables inherited by all the programs which follow

SYSNAME=nto
TERM=qansi

Start some extra shells on other consoles

reopen /dev/con2
[+session] sh &
reopen /dev/con3
[+session] sh &

Start a high priority shell just in case…

reopen /dev/con4
[pri=25 +session] sh &

Start the main shell

reopen /dev/con1
[+session] sh

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

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 symbolic links for bin and lib (files in /usr/nto. e.g. with

devb-eide)
[type=link] /bin=x86/bin
[type=link] /lib=x86/lib
[type=link] /dll=x86/dll
[type=link] /sys=x86/sys

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

libc.so

Just incase someone needs floating point…

fpemu.so.2

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

cdrom required shared libs

cam-cdrom.so
fs-cd.so

The files above this line can be shared by mutiple processes

[data=c]

Executables must currently be below this line

Include a console driver

devc-con

Include the disk drivers.

devb-eide

Include pci server

pci-bios
seedres

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

Interrupt Assignments

---------------------

vector: 0

trigger: rising edge

device: 8254 (system timer)

vector: 1

trigger: rising edge

device: Keyboard

vector: 2

trigger: rising edge

device: Cascade from second 8259 controller

vector: 3

trigger: rising edge

device: Serial 2

vector: 4

trigger: rising edge

device: Serial 1

vector: 5-12

trigger: rising edge

device: unassigned

vector: 13

trigger: rising edge

device: Coprocessor

vector: 14,15

trigger: rising edge

device: unassigned

vector: 0x80000000 (X86_INTR_CLASS_NMI+0) (non-maskable)

trigger: rising edge

device: system board error (SERR# NMI)

vector: 0x80000001 (X86_INTR_CLASS_NMI+1) (non-maskable)

trigger: rising edge

device: ISA I/O check error (IOCHK# NMI)

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



Thanks

Jeff HOFFMEYER

“Jeff Hoffmeyer” <jean-francois.hoffmeyer@schiller.fr> wrote in
news:a53132$pn8$1@nntp.qnx.com:

Unable to access “/x86/bin” (2)
Unable to start “pipe” (2)
Unable to start “mqueue” (2)
Unable to start “devc-ser8250” (2)
Unable to start “devc-pty” (2)
Unable to start “/dev/ser1” (2)
Unable to start “pdebug” (2)
Unable to start “sh” (2)
Unable to start “sh” (2)
Unable to start “sh” (2)
Unable to start “sh” (2)

On you host machine, you can do the following command:

errno 2

And it will tell you that it means, “No such file or directory”. This
indicates that the file either doesn’t exist or isn’t on the PATH, or you
PATH isn’t what you think it is at that point. One thing to try is to
sanity set the PATH just before mounting the CF, and echo it to the
terminal (include echo in your build image).

Another thing to try is to put the fully qualified path for each binary.
Eg. Instead of:
pipe

Try putting:
/x86/sbin/pipe

I noticed that sbin isn’t on your PATH, which if you’re doing a straight
copy of the /x86/ directory structure from your host machine, you’ll need.

Also note, that instead of "waitfor"ing on the path /x86/bin, you should
waitfor on the device /dev/hd1 . If the device never comes on line, then
you know you have deeper problems, other than the mount point /x86/bin not
existing.


Cheers,
Adam

QNX Software Systems Ltd.
[ amallory@qnx.com ]

With a PC, I always felt limited by the software available.
On Unix, I am limited only by my knowledge.
–Peter J. Schoenster <pschon@baste.magibox.net>

I think you have an error in your build file. You have to replace the
following line :

devb-eide blk automount=hd0t79:/ &

by :

devb-eide blk automount=hd1t77:/ &

and not by

devb-eide blk automount=hd1:/ &


To format disk, you have to use the following command :

dinit -h /dev/hd1t77

(verify your partition type : QNX77, QNX78 or QNX79)



Jeff Hoffmeyer a écrit dans le message …

Hi,

I read a lot of news about my problem but any is working.

I want to boot on my Compact Flash Card which is on /dev/hd1(Secondary
Master). I use RTP6.1 on an ETX - Geaode Board.

What I have done :

  • I use “fdisk /dev/hd1” to create a QNX partition and make it Bootable
  • I use “dinit -h /dev/hd1” to initialize the disk (
  • I modify the bios.ide.build file to replace “hd0t77” by “hd1”
  • I use “mkifs bios.ide.build bios.ide.img” to create the boot image and
    copy it at /fs/hd1/.boot
  • I copy all the required files by bios.ide.build at the right place on
    /fs/hd1
  • when I start I have the messages

Hit Esc for .altboot …
Welcome toNeutrino …
Path=0 - EIDE
target=0 lun=0 Direct-Access(0) - QUANTUM … Rev:
target=1 lun=0 CD-ROM(5) - MATSHITA … Rev: ZB21
Path=1 - EIDE
target=0 lun=0 Direct-Access(0) - Rev:
Unable to access “/x86/bin” (2)
Unable to start “pipe” (2)
Unable to start “mqueue” (2)
Unable to start “devc-ser8250” (2)
Unable to start “devc-pty” (2)
Unable to start “/dev/ser1” (2)
Unable to start “pdebug” (2)
Unable to start “sh” (2)
Unable to start “sh” (2)
Unable to start “sh” (2)
Unable to start “sh” (2)

This is my bios.ide.build file

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

Neutrino on an PC BIOS compatible system

This is for building a bootable neutrino image that will run from its

own filesystem partition.

To do this make a t79 partition for neutrino, then "mount /dev/hd0t79

/usr/nto"

This build file will also mount t77 partitions as “/usr/qnx4”

Note that the default image links at 4M. If you have 4M or less,

uncomment the line below

[image=1m]

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

[virtual=x86,bios +compress] boot = {
startup-bios -Nmachine-name
PATH=/proc/boot:/x86/bin
LD_LIBRARY_PATH=/proc/boot:/dev/shmem:/x86/lib:/x86/dll procnto
}

[+script] startup-script = {

Start up some consoles

devc-con -n4 &
reopen /dev/con1

display_msg Welcome to Neutrino on an PC compatible BIOS system

Start the pci server

seedres
pci-bios &
waitfor /dev/pci

Disk drivers (The default one and some fun others for your pleasure…)

devb-eide blk automount=hd1:/ &

devb-eide blk automount=hd0t79:/,cache=2m,delwri=5 &

Wait for a bin for the rest of the commands (up to 60 secs)

waitfor /x86/bin 60

Some common servers

pipe &
mqueue &
devc-ser8250 &
devc-pty &

Start a debug server for debugging programs

waitfor /dev/ser1
[+session] pdebug /dev/ser1 &

These env variables inherited by all the programs which follow

SYSNAME=nto
TERM=qansi

Start some extra shells on other consoles

reopen /dev/con2
[+session] sh &
reopen /dev/con3
[+session] sh &

Start a high priority shell just in case…

reopen /dev/con4
[pri=25 +session] sh &

Start the main shell

reopen /dev/con1
[+session] sh

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

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 symbolic links for bin and lib (files in /usr/nto. e.g. with

devb-eide)
[type=link] /bin=x86/bin
[type=link] /lib=x86/lib
[type=link] /dll=x86/dll
[type=link] /sys=x86/sys

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

libc.so

Just incase someone needs floating point…

fpemu.so.2

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

cdrom required shared libs

cam-cdrom.so
fs-cd.so

The files above this line can be shared by mutiple processes

[data=c]

Executables must currently be below this line

Include a console driver

devc-con

Include the disk drivers.

devb-eide

Include pci server

pci-bios
seedres

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

Interrupt Assignments

---------------------

vector: 0

trigger: rising edge

device: 8254 (system timer)

vector: 1

trigger: rising edge

device: Keyboard

vector: 2

trigger: rising edge

device: Cascade from second 8259 controller

vector: 3

trigger: rising edge

device: Serial 2

vector: 4

trigger: rising edge

device: Serial 1

vector: 5-12

trigger: rising edge

device: unassigned

vector: 13

trigger: rising edge

device: Coprocessor

vector: 14,15

trigger: rising edge

device: unassigned

vector: 0x80000000 (X86_INTR_CLASS_NMI+0) (non-maskable)

trigger: rising edge

device: system board error (SERR# NMI)

vector: 0x80000001 (X86_INTR_CLASS_NMI+1) (non-maskable)

trigger: rising edge

device: ISA I/O check error (IOCHK# NMI)

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



Thanks

Jeff HOFFMEYER
\

Hi Jeff!,

Doing the same thing here at work. I create a boot image that is loaded on
the CF on the Master second IDE. I was successful with it, but not always.
Some time the CF boots properly and sometime it will boot and stop with the
famous “.altboot.D”. Last boot image I create worked fine. I try to
re-create the image since we received a new board, but it doesn’t work. If
I use the CF that is working the board boots with no issues. I suspected at
first a bad CF, but the same CF with the new image produce the same results.
I looked in all documentation, and there is no mention what the “…D”
implies. I can not figure out if there is a issues

When it is working, booting is fast and painless. I do not use IDE drivers
in my boot image since I create a RAM Drive were any data is stored.

Here are the steps I use to create the boot image, similar to yours:

mkifs -v excalflash.build excalflash.ifs
dinit -f excalflash.ifs /dev/hd1
Using loader /x86boot/sys/ipl-deskpc2-flop

Disk ‘/dev/hd1’ contains 125441 blocks (62720k)


Cheers!, Steph

“Jeff Hoffmeyer” <jean-francois.hoffmeyer@schiller.fr> wrote in message
news:a53132$pn8$1@nntp.qnx.com

Hi,

I read a lot of news about my problem but any is working.

I want to boot on my Compact Flash Card which is on /dev/hd1(Secondary
Master). I use RTP6.1 on an ETX - Geaode Board.

What I have done :

  • I use “fdisk /dev/hd1” to create a QNX partition and make it Bootable
  • I use “dinit -h /dev/hd1” to initialize the disk (
  • I modify the bios.ide.build file to replace “hd0t77” by “hd1”
  • I use “mkifs bios.ide.build bios.ide.img” to create the boot image and
    copy it at /fs/hd1/.boot
  • I copy all the required files by bios.ide.build at the right place on
    /fs/hd1
  • when I start I have the messages

Hit Esc for .altboot …
Welcome toNeutrino …
Path=0 - EIDE
target=0 lun=0 Direct-Access(0) - QUANTUM … Rev:
target=1 lun=0 CD-ROM(5) - MATSHITA … Rev: ZB21
Path=1 - EIDE
target=0 lun=0 Direct-Access(0) - Rev:
Unable to access “/x86/bin” (2)
Unable to start “pipe” (2)
Unable to start “mqueue” (2)
Unable to start “devc-ser8250” (2)
Unable to start “devc-pty” (2)
Unable to start “/dev/ser1” (2)
Unable to start “pdebug” (2)
Unable to start “sh” (2)
Unable to start “sh” (2)
Unable to start “sh” (2)
Unable to start “sh” (2)

This is my bios.ide.build file


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

Neutrino on an PC BIOS compatible system

This is for building a bootable neutrino image that will run from its

own filesystem partition.

To do this make a t79 partition for neutrino, then "mount /dev/hd0t79

/usr/nto"

This build file will also mount t77 partitions as “/usr/qnx4”

Note that the default image links at 4M. If you have 4M or less,

uncomment the line below

[image=1m]

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

[virtual=x86,bios +compress] boot = {
startup-bios -Nmachine-name
PATH=/proc/boot:/x86/bin
LD_LIBRARY_PATH=/proc/boot:/dev/shmem:/x86/lib:/x86/dll procnto
}

[+script] startup-script = {

Start up some consoles

devc-con -n4 &
reopen /dev/con1

display_msg Welcome to Neutrino on an PC compatible BIOS system

Start the pci server

seedres
pci-bios &
waitfor /dev/pci

Disk drivers (The default one and some fun others for your pleasure…)

devb-eide blk automount=hd1:/ &

devb-eide blk automount=hd0t79:/,cache=2m,delwri=5 &

Wait for a bin for the rest of the commands (up to 60 secs)

waitfor /x86/bin 60

Some common servers

pipe &
mqueue &
devc-ser8250 &
devc-pty &

Start a debug server for debugging programs

waitfor /dev/ser1
[+session] pdebug /dev/ser1 &

These env variables inherited by all the programs which follow

SYSNAME=nto
TERM=qansi

Start some extra shells on other consoles

reopen /dev/con2
[+session] sh &
reopen /dev/con3
[+session] sh &

Start a high priority shell just in case…

reopen /dev/con4
[pri=25 +session] sh &

Start the main shell

reopen /dev/con1
[+session] sh

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

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 symbolic links for bin and lib (files in /usr/nto. e.g. with

devb-eide)
[type=link] /bin=x86/bin
[type=link] /lib=x86/lib
[type=link] /dll=x86/dll
[type=link] /sys=x86/sys

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

libc.so

Just incase someone needs floating point…

fpemu.so.2

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

cdrom required shared libs

cam-cdrom.so
fs-cd.so

The files above this line can be shared by mutiple processes

[data=c]

Executables must currently be below this line

Include a console driver

devc-con

Include the disk drivers.

devb-eide

Include pci server

pci-bios
seedres


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

Interrupt Assignments

---------------------

vector: 0

trigger: rising edge

device: 8254 (system timer)

vector: 1

trigger: rising edge

device: Keyboard

vector: 2

trigger: rising edge

device: Cascade from second 8259 controller

vector: 3

trigger: rising edge

device: Serial 2

vector: 4

trigger: rising edge

device: Serial 1

vector: 5-12

trigger: rising edge

device: unassigned

vector: 13

trigger: rising edge

device: Coprocessor

vector: 14,15

trigger: rising edge

device: unassigned

vector: 0x80000000 (X86_INTR_CLASS_NMI+0) (non-maskable)

trigger: rising edge

device: system board error (SERR# NMI)

vector: 0x80000001 (X86_INTR_CLASS_NMI+1) (non-maskable)

trigger: rising edge

device: ISA I/O check error (IOCHK# NMI)

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



Thanks

Jeff HOFFMEYER
\

A short note to the famous “.altboot.D” on QNX RTP 6.1

I have seen similar problems on a x86 system when i try to install on a
FLASH ATA-disk with IDE interface on a development system (dev/hd1) and then
moves the disk to another target system (/dev/hd0 + an other bios). The
development system bios settings (disk = auto detect and CHS translation)
and the disk settings shown in the QNX RTP 6.1 fdisk program are NOT the
same. When i set the bios on the target to the same values as shown in the
fdisk program then the target system boots without any problem - almost
happy !

I got some inspiration from QNX to install another loader on the disk with
‘dloader’
Doc: ‘use dloader’

Output when i executed the program (after fdisk and dinit):

dloader -vH /dev/hd1 pc1 /dev/hd1t77 pc2

Heads=16 Sectors/Track=63 Cylinders=124 Blocks=125953 Partoffset=0
Heads=16 Sectors/Track=63 Cylinders=124 Blocks=125953 Partoffset=63

With these new loaders the target boot with the bios setting set to auto
detect.

Otto Nielsen
otnie(a)wmdata.com