devb-eide question

Cross posting this from the Open QNX forums in the hopes that someone
here might be able to help me:


I have a card cage board PC wth everything self contained on the board
including CPU, RAM, Compact Flash card etc.

Under 6.1 when I booted, the time to boot the system was only a few
seconds from the time of the detection of the compact flash card till
I got a login prompt.

Now under 6.3 the boot time has increased to almost 2 full minutes
which isn’t really acceptable.

What happens when I boot is that I get to the prompt where it says
‘hit ESC for .altboot’ just fine (a couple seconds into the boot).
But right after that as devb-eide starts I notice a huge difference
from 6.1. Several screens of spew are printed to my screen. By spew I
mean all kinds of info/warning messages that go into the syslog. At
the end of that it finds my compact flash card. This takes about 1-3
seconds for the spew to finish/detect my compact flash card. Then
instead of booting from the compact flash card, the cursor sits there
twiddling slowly for about 2 full minutes. At the end of that time the
OS goes on to attempt to start a pile of scsi drivers (devb-aha*) all
of which take less than a second to return failure since there is no
SCSI device present. Then finally the OS decides to boot from the
compact flash card, mounts the drive and continues on to boot
successfully.

My question is, why is devb-eide sitting there for a full 2 minutes
and what’s it trying to locate during that time when it already has a
bootable device (the compact flash)?

For what it’s worth, the compact flash is located on the Secondary
Master IDE channel instead of the Primary one. There are no other
devices on any IDE channel besides the flash card. Of course this
worked in 6.1 so I assume it can’t be because it’s on the secondary
master or can it???

Also if I attach a QNX harddrive to the primary master IDE channel the
whole thing boots up in a few seconds and gives me the option to mount
either the HD or Compact Flash as the root file system.

In any case it seems to me that devb-eide finishes it’s scan in a
couple of seconds but then hesitates to decide what to boot from for
some reason.

Lastly, I have turned off DMA access in diskboot in the .boot image
otherwise QNX fails entirely to detect the flash card.

Here’s what sloginfo contains after a boot using the Sandisk:

Time Sev Major Minor Args
Jan 06 16:03:54 2 19 0 eide_identify_devices: Intel 82371AB vid 8086,
did 7111, class 10180 rev 1, busno 0, dfunc 39
Jan 06 16:03:54 2 19 0 eide_identify_devices: cmd_addr 1f0, cntl_addr
3f4, irq e, chnl 0, udma 2, mdma 2, sdma 0, pio 4
Jan 06 16:03:54 2 19 0 eide_command: BSY/DRQ set: 8
Jan 06 16:03:54 2 19 0 eide_identify: IDENTIFY failed: cmd a1, tid 0,
status 8, error 8
Jan 06 16:03:54 2 19 0 eide_identify_devices: Intel 82371AB vid 8086,
did 7111, class 10180 rev 1, busno 0, dfunc 39
Jan 06 16:03:54 2 19 0 eide_identify_devices: cmd_addr 170, cntl_addr
374, irq f, chnl 1, udma 2, mdma 2, sdma 0, pio 4
Jan 06 16:03:54 2 19 0 eide_display_devices: SanDisk SDCFH-10 tid 0,
cable 40, max udma -1, cur udma -1, max mdma 2, cur mdma 2, max sdma
-1, cur sdma -1, pio 4, mblk 1
Jan 06 16:03:54 2 19 0 eide_init_devices: SanDisk SDCFH-10 path 0, tid
0, udma -1, mdma -1, sdma -1, pio 4, mblk 1
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: path=0, target=0, lun=0,
cam_status=c4, scsi_status=2
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: error=70, sense=5, asc=24,
ascq=0
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: SK_ILLEGAL command 5a in
databyte
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: path=0, target=0, lun=0,
cam_status=c4, scsi_status=2
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: error=70, sense=5, asc=24,
ascq=0
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: SK_ILLEGAL command 5a in
databyte
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: path=0, target=0, lun=0,
cam_status=c4, scsi_status=2
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: error=70, sense=5, asc=24,
ascq=0
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: SK_ILLEGAL command 5a in
databyte
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: path=0, target=0, lun=0,
cam_status=c4, scsi_status=2
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: error=70, sense=5, asc=24,
ascq=0
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: SK_ILLEGAL command 5a in
databyte
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: path=0, target=0, lun=0,
cam_status=c4, scsi_status=2
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: error=70, sense=5, asc=24,
ascq=0
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: SK_ILLEGAL command 5a in
databyte
Jan 06 16:03:55 2 5 0 Path=0 - Intel 82371AB
Jan 06 16:03:55 2 5 0 target=0 lun=0 Direct-Access(0) - SanDisk
SDCFH-10 Rev: HDX
Jan 06 16:05:01 5 14 0 tcpip starting
Jan 06 16:05:01 3 14 0 Using pseudo random generator. See “random”
option

Here’s what it contains if I change out the Sandisk with a Harddisk
and CD-Rom.

Time Sev Major Minor Args
Jan 06 09:43:31 2 19 0 eide_identify_devices: Intel 82371AB vid 8086,
did 7111, class 10180 rev 1, busno 0, dfunc 39
Jan 06 09:43:31 2 19 0 eide_identify_devices: cmd_addr 1f0, cntl_addr
3f4, irq e, chnl 0, udma 2, mdma 2, sdma 0, pio 4
Jan 06 09:43:31 2 19 0 eide_display_devices: MAXTOR 4K020H1 tid 0,
cable 40, max udma 2, cur udma 5, max mdma 0, cur mdma 2, max sdma
-1, cur sdma -1, pio 4, mblk 16
Jan 06 09:43:31 2 19 0 eide_init_devices: MAXTOR 4K020H1 path 0, tid
0, udma -1, mdma -1, sdma -1, pio 4, mblk 16
Jan 06 09:43:31 2 19 0 eide_identify_devices: Intel 82371AB vid 8086,
did 7111, class 10180 rev 1, busno 0, dfunc 39
Jan 06 09:43:31 2 19 0 eide_identify_devices: cmd_addr 170, cntl_addr
374, irq f, chnl 1, udma 2, mdma 2, sdma 0, pio 4
Jan 06 09:43:31 2 19 0 eide_display_devices: QSI CD-ROM SCR-2 tid 0,
cable 40, max udma 2, cur udma 2, max mdma 0, cur mdma 2, max sdma
-1, cur sdma -1, pio 4, mblk 0
Jan 06 09:43:31 2 19 0 eide_init_devices: QSI CD-ROM SCR-2 path 0, tid
0, udma -1, mdma -1, sdma -1, pio 4, mblk 0
Jan 06 09:43:36 5 14 0 tcpip starting
Jan 06 09:43:36 3 14 0 Using pseudo random generator. See “random”
option


The point where ‘tcpip starting’ is printed is when the sysinit is
being executed. In the HD case it happens 5 seconds after devb-eide
runs and in the Sandisk case it happens 1:06 later which is a LONG
time.

What is also puzzling is that in the Sandisk case I get all those
scsi_interpret_sense errors/commands attempting to start/detect
devices. This is the exact same board so I can’t see why QNX thinks
there are scsi parts there when there aren’t.

I’ve tried specifying a BUNCH of different options to devb-eide
including all of ‘noslave, noreset, nolegacy, nobmstr,
master=udma=off’ and none of them or all of them together have zero
effect on boot time. So it’s something else entirely. Tomorrow I am
going to work on specifying the exact device and controller to see if
that works unless anyone has any other ideas to try.

Tim

Hi Tim

Figure out the exact commandlines that are eventually used and write you own
boot image without diskboot.

It’s diskboot ‘trying’ so many different options that takes so long. This
is a good thing when your writing an OS where you have no idea of the exact
hardware you’ll be running on. But it’s a horible thing to do in an
environment where you know exactly what you want to to.

And it will only get worse with future verysion.

“Tim” <tim_sowden@bio-rad-dot-com.no-spam.invalid> wrote in message
news:crmpl5$nor$1@inn.qnx.com

Cross posting this from the Open QNX forums in the hopes that someone
here might be able to help me:


I have a card cage board PC wth everything self contained on the board
including CPU, RAM, Compact Flash card etc.

Under 6.1 when I booted, the time to boot the system was only a few
seconds from the time of the detection of the compact flash card till
I got a login prompt.

Now under 6.3 the boot time has increased to almost 2 full minutes
which isn’t really acceptable.

What happens when I boot is that I get to the prompt where it says
‘hit ESC for .altboot’ just fine (a couple seconds into the boot).
But right after that as devb-eide starts I notice a huge difference
from 6.1. Several screens of spew are printed to my screen. By spew I
mean all kinds of info/warning messages that go into the syslog. At
the end of that it finds my compact flash card. This takes about 1-3
seconds for the spew to finish/detect my compact flash card. Then
instead of booting from the compact flash card, the cursor sits there
twiddling slowly for about 2 full minutes. At the end of that time the
OS goes on to attempt to start a pile of scsi drivers (devb-aha*) all
of which take less than a second to return failure since there is no
SCSI device present. Then finally the OS decides to boot from the
compact flash card, mounts the drive and continues on to boot
successfully.

My question is, why is devb-eide sitting there for a full 2 minutes
and what’s it trying to locate during that time when it already has a
bootable device (the compact flash)?

For what it’s worth, the compact flash is located on the Secondary
Master IDE channel instead of the Primary one. There are no other
devices on any IDE channel besides the flash card. Of course this
worked in 6.1 so I assume it can’t be because it’s on the secondary
master or can it???

Also if I attach a QNX harddrive to the primary master IDE channel the
whole thing boots up in a few seconds and gives me the option to mount
either the HD or Compact Flash as the root file system.

In any case it seems to me that devb-eide finishes it’s scan in a
couple of seconds but then hesitates to decide what to boot from for
some reason.

Lastly, I have turned off DMA access in diskboot in the .boot image
otherwise QNX fails entirely to detect the flash card.

Here’s what sloginfo contains after a boot using the Sandisk:

Time Sev Major Minor Args
Jan 06 16:03:54 2 19 0 eide_identify_devices: Intel 82371AB vid 8086,
did 7111, class 10180 rev 1, busno 0, dfunc 39
Jan 06 16:03:54 2 19 0 eide_identify_devices: cmd_addr 1f0, cntl_addr
3f4, irq e, chnl 0, udma 2, mdma 2, sdma 0, pio 4
Jan 06 16:03:54 2 19 0 eide_command: BSY/DRQ set: 8
Jan 06 16:03:54 2 19 0 eide_identify: IDENTIFY failed: cmd a1, tid 0,
status 8, error 8
Jan 06 16:03:54 2 19 0 eide_identify_devices: Intel 82371AB vid 8086,
did 7111, class 10180 rev 1, busno 0, dfunc 39
Jan 06 16:03:54 2 19 0 eide_identify_devices: cmd_addr 170, cntl_addr
374, irq f, chnl 1, udma 2, mdma 2, sdma 0, pio 4
Jan 06 16:03:54 2 19 0 eide_display_devices: SanDisk SDCFH-10 tid 0,
cable 40, max udma -1, cur udma -1, max mdma 2, cur mdma 2, max sdma
-1, cur sdma -1, pio 4, mblk 1
Jan 06 16:03:54 2 19 0 eide_init_devices: SanDisk SDCFH-10 path 0, tid
0, udma -1, mdma -1, sdma -1, pio 4, mblk 1
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: path=0, target=0, lun=0,
cam_status=c4, scsi_status=2
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: error=70, sense=5, asc=24,
ascq=0
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: SK_ILLEGAL command 5a in
databyte
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: path=0, target=0, lun=0,
cam_status=c4, scsi_status=2
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: error=70, sense=5, asc=24,
ascq=0
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: SK_ILLEGAL command 5a in
databyte
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: path=0, target=0, lun=0,
cam_status=c4, scsi_status=2
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: error=70, sense=5, asc=24,
ascq=0
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: SK_ILLEGAL command 5a in
databyte
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: path=0, target=0, lun=0,
cam_status=c4, scsi_status=2
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: error=70, sense=5, asc=24,
ascq=0
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: SK_ILLEGAL command 5a in
databyte
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: path=0, target=0, lun=0,
cam_status=c4, scsi_status=2
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: error=70, sense=5, asc=24,
ascq=0
Jan 06 16:03:54 2 5 0 scsi_interpret_sense: SK_ILLEGAL command 5a in
databyte
Jan 06 16:03:55 2 5 0 Path=0 - Intel 82371AB
Jan 06 16:03:55 2 5 0 target=0 lun=0 Direct-Access(0) - SanDisk
SDCFH-10 Rev: HDX
Jan 06 16:05:01 5 14 0 tcpip starting
Jan 06 16:05:01 3 14 0 Using pseudo random generator. See “random”
option

Here’s what it contains if I change out the Sandisk with a Harddisk
and CD-Rom.

Time Sev Major Minor Args
Jan 06 09:43:31 2 19 0 eide_identify_devices: Intel 82371AB vid 8086,
did 7111, class 10180 rev 1, busno 0, dfunc 39
Jan 06 09:43:31 2 19 0 eide_identify_devices: cmd_addr 1f0, cntl_addr
3f4, irq e, chnl 0, udma 2, mdma 2, sdma 0, pio 4
Jan 06 09:43:31 2 19 0 eide_display_devices: MAXTOR 4K020H1 tid 0,
cable 40, max udma 2, cur udma 5, max mdma 0, cur mdma 2, max sdma
-1, cur sdma -1, pio 4, mblk 16
Jan 06 09:43:31 2 19 0 eide_init_devices: MAXTOR 4K020H1 path 0, tid
0, udma -1, mdma -1, sdma -1, pio 4, mblk 16
Jan 06 09:43:31 2 19 0 eide_identify_devices: Intel 82371AB vid 8086,
did 7111, class 10180 rev 1, busno 0, dfunc 39
Jan 06 09:43:31 2 19 0 eide_identify_devices: cmd_addr 170, cntl_addr
374, irq f, chnl 1, udma 2, mdma 2, sdma 0, pio 4
Jan 06 09:43:31 2 19 0 eide_display_devices: QSI CD-ROM SCR-2 tid 0,
cable 40, max udma 2, cur udma 2, max mdma 0, cur mdma 2, max sdma
-1, cur sdma -1, pio 4, mblk 0
Jan 06 09:43:31 2 19 0 eide_init_devices: QSI CD-ROM SCR-2 path 0, tid
0, udma -1, mdma -1, sdma -1, pio 4, mblk 0
Jan 06 09:43:36 5 14 0 tcpip starting
Jan 06 09:43:36 3 14 0 Using pseudo random generator. See “random”
option


The point where ‘tcpip starting’ is printed is when the sysinit is
being executed. In the HD case it happens 5 seconds after devb-eide
runs and in the Sandisk case it happens 1:06 later which is a LONG
time.

What is also puzzling is that in the Sandisk case I get all those
scsi_interpret_sense errors/commands attempting to start/detect
devices. This is the exact same board so I can’t see why QNX thinks
there are scsi parts there when there aren’t.

I’ve tried specifying a BUNCH of different options to devb-eide
including all of ‘noslave, noreset, nolegacy, nobmstr,
master=udma=off’ and none of them or all of them together have zero
effect on boot time. So it’s something else entirely. Tomorrow I am
going to work on specifying the exact device and controller to see if
that works unless anyone has any other ideas to try.

Tim

bilcarwrote:

Figure out the exact commandlines that are eventually used and write
you own boot image without diskboot.

How do I do that? I’ve done a ‘pidin A’ after booting but the args to
devb-eide are just the ones I specify to diskboot. How can I figure
out exactly what it is that I need to put on the command line to
start things faster?

I’ve tried adding in the IDE controller VID/DID info on the devb-eide
command line with no luck in changing the boot time.

bilcarwrote:

It’s diskboot ‘trying’ so many different options that takes so long.
This
is a good thing when your writing an OS where you have no idea of
the exact hardware you’ll be running on. But it’s a horible thing to

do in an

environment where you know exactly what you want to to.

What’s really strange is that this works so well under 6.1. I can
understand it taking a LITTLE longer in 6.3 with more supported
hardware but to go from 4-5 seconds to 60+ seconds is crazy.

I’m positive something else is going on here because of the fact that
diskboot feels the urge to run the devb-eide followed by all the
devb-aha* scsi drivers. It’s like it couldn’t find any bootable
device (or ignored the flash card which is clearly finds in the first
4-5 seconds) so it tries all the scsi drivers then decides to come
back and do the flash card as a final resort. It fits with the fact
that as soon as I add a HD onto the IDE controller it boots in 5
seconds and never starts any of the devb-aha* scsi drivers.

Tim

I assume you mean, ‘pidin ar’. That is exactly how you find the command
lines to use. And you’re right, the arguments are essentially the same.
Pay close attention to syntax punction. Look up each command. Understand
that those arguments are doing.

Be aware that most arguments passed to io-net are passed via the mount
command. You may of course continue to use this approach. Or you could
save a quarter sesond while booting by guiving those arguments on the io-net
commandline.

Pay close attention to command line punctuation. You’re half way there.

Good Luck

Bill Caroselli

“Tim” <tim_sowden@bio-rad-dot-com.no-spam.invalid> wrote in message
news:crumok$l69$1@inn.qnx.com

bilcarwrote:

Figure out the exact commandlines that are eventually used and write
you own boot image without diskboot.


How do I do that? I’ve done a ‘pidin A’ after booting but the args to
devb-eide are just the ones I specify to diskboot. How can I figure
out exactly what it is that I need to put on the command line to
start things faster?

I’ve tried adding in the IDE controller VID/DID info on the devb-eide
command line with no luck in changing the boot time.

bilcarwrote:

It’s diskboot ‘trying’ so many different options that takes so long.
This
is a good thing when your writing an OS where you have no idea of
the exact hardware you’ll be running on. But it’s a horible thing to
do in an
environment where you know exactly what you want to to.


What’s really strange is that this works so well under 6.1. I can
understand it taking a LITTLE longer in 6.3 with more supported
hardware but to go from 4-5 seconds to 60+ seconds is crazy.

I’m positive something else is going on here because of the fact that
diskboot feels the urge to run the devb-eide followed by all the
devb-aha* scsi drivers. It’s like it couldn’t find any bootable
device (or ignored the flash card which is clearly finds in the first
4-5 seconds) so it tries all the scsi drivers then decides to come
back and do the flash card as a final resort. It fits with the fact
that as soon as I add a HD onto the IDE controller it boots in 5
seconds and never starts any of the devb-aha* scsi drivers.

Tim

Bill,

Sorry for the late reply. Got caught up in meetings and other side
tracking items I needed to take care of.

As for pidin, I meant ‘Pidin A’. It does the same thing as ‘pidin ar’
(I checked).

OK, here’s the results of the experiments I performed:

  1. I first set my diskboot line to the following in my build file:

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

This resulted in the system taking 1+ minutes to boot. At that time
the ‘pidin A’ command produced the following:

6 devb-eide blk auto=partition dos exe=all eide nobmstr

with a sloginfo of:

Time Sev Major Minor Args
Jan 12 14:57:47 5 17 0 pci_server: Apr 30 2004 18:06:51
Jan 12 14:57:47 5 17 0 scan_device Bus 0 - Device 0 -
Function 0
Jan 12 14:57:47 5 17 0 Vendor 8086 Device 7190 Index 0
ClassCode 60000
Jan 12 14:57:47 5 17 0 scan_device Bus 0 - Device 1 -
Function 0
Jan 12 14:57:47 5 17 0 Vendor 8086 Device 7191 Index 0
ClassCode 60400
Jan 12 14:57:47 5 17 0 Min_Gnt = 136 - Max_Lat = 0 -
Bandwidth = 126322568
Jan 12 14:57:47 5 17 0 scan_device Bus 0 - Device 13 -
Function 0
Jan 12 14:57:47 5 17 0 Vendor 1011 Device 22 Index 0
ClassCode 60400
Jan 12 14:57:47 5 17 0 Min_Gnt = 6 - Max_Lat = 0 - Bandwidth
= 0
Jan 12 14:57:47 5 17 0 scan_device Bus 0 - Device 7 -
Function 0
Jan 12 14:57:47 5 17 0 Vendor 8086 Device 7110 Index 0
ClassCode 60100
Jan 12 14:57:47 5 17 0 scan_device Bus 0 - Device 7 -
Function 1
Jan 12 14:57:47 5 17 0 Vendor 8086 Device 7111 Index 0
ClassCode 10180
Jan 12 14:57:47 5 17 0 IO f000 10
Jan 12 14:57:47 5 17 0 IO f000 10
Jan 12 14:57:47 5 17 0 scan_device Bus 0 - Device 7 -
Function 2
Jan 12 14:57:47 5 17 0 Vendor 8086 Device 7112 Index 0
ClassCode c0300
Jan 12 14:57:47 5 17 0 IO 9000 20
Jan 12 14:57:47 5 17 0 IO 9000 20
Jan 12 14:57:47 5 17 0 scan_device Bus 0 - Device 7 -
Function 3
Jan 12 14:57:47 5 17 0 Vendor 8086 Device 7113 Index 0
ClassCode 68000
Jan 12 14:57:47 5 17 0 scan_device Bus 0 - Device 10 -
Function 0
Jan 12 14:57:47 5 17 0 Vendor 8086 Device 1229 Index 0
ClassCode 20000
Jan 12 14:57:47 5 17 0 Min_Gnt = 8 - Max_Lat = 56 -
Bandwidth = 115500000
Jan 12 14:57:47 5 17 0 MEM d7201000 1000
Jan 12 14:57:47 5 17 0 IO 9400 40
Jan 12 14:57:47 5 17 0 MEM d7000000 100000
Jan 12 14:57:47 3 17 0 Range check failed (ROM) - Dev 1229 -
Vend 8086 - Class 20000 - Addr 0 - Size 100000
Jan 12 14:57:47 5 17 0 ROM 0 - 100000
Jan 12 14:57:47 5 17 0 MEM d7201000 1000
Jan 12 14:57:47 5 17 0 IO 9400 40
Jan 12 14:57:47 5 17 0 MEM d7000000 100000
Jan 12 14:57:47 5 17 0 scan_device Bus 0 - Device 11 -
Function 0
Jan 12 14:57:47 5 17 0 Vendor 8086 Device 1229 Index 1
ClassCode 20000
Jan 12 14:57:47 5 17 0 Min_Gnt = 8 - Max_Lat = 56 -
Bandwidth = 99000000
Jan 12 14:57:47 5 17 0 MEM d7200000 1000
Jan 12 14:57:47 5 17 0 IO 9800 40
Jan 12 14:57:47 5 17 0 MEM d7100000 100000
Jan 12 14:57:47 3 17 0 Range check failed (ROM) - Dev 1229 -
Vend 8086 - Class 20000 - Addr 0 - Size 100000
Jan 12 14:57:47 5 17 0 ROM 0 - 100000
Jan 12 14:57:47 5 17 0 MEM d7200000 1000
Jan 12 14:57:47 5 17 0 IO 9800 40
Jan 12 14:57:47 5 17 0 MEM d7100000 100000
Jan 12 14:57:47 5 17 0 scan_device Bus 1 - Device 0 -
Function 0
Jan 12 14:57:47 5 17 0 Vendor 102c Device c0 Index 0
ClassCode 30000
Jan 12 14:57:47 5 17 0 MEM d4000000 1000000
Jan 12 14:57:47 3 17 0 Range check failed (ROM) - Dev c0 -
Vend 102c - Class 30000 - Addr 0 - Size 40000
Jan 12 14:57:47 5 17 0 ROM 0 - 40000
Jan 12 14:57:47 5 17 0 MEM d4000000 1000000
Jan 12 14:57:47 5 17 0 io_open for id = 3
Jan 12 14:57:47 5 17 0 io_close_ocb
Jan 12 14:57:47 5 17 0 io_open for id = 3
Jan 12 14:57:47 5 17 0 io_open for id = 4
Jan 12 14:57:47 2 19 0 eide_identify_devices: Intel 82371AB
vid 8086, did 7111, class 10180 rev 1, busno 0, dfunc 39
Jan 12 14:57:47 2 19 0 eide_identify_devices: cmd_addr 1f0,
cntl_addr 3f4, irq e, chnl 0, udma 2, mdma 2, sdma 0, pio 4
Jan 12 14:57:47 2 19 0 eide_identify_devices: Intel 82371AB
vid 8086, did 7111, class 10180 rev 1, busno 0, dfunc 39
Jan 12 14:57:47 2 19 0 eide_identify_devices: cmd_addr 170,
cntl_addr 374, irq f, chnl 1, udma 2, mdma 2, sdma 0, pio 4
Jan 12 14:57:47 2 19 0 eide_display_devices: QSI CD-ROM
SCR-2 tid 0, cable 40, max udma 2, cur udma 2, max mdma 0, cur mdma
2, max sdma -1, cur sdma -1, pio 4, mblk 0
Jan 12 14:57:47 2 19 0 eide_display_devices: SanDisk
SDCFH-10 tid 1, cable 40, max udma -1, cur udma -1, max mdma 2, cur
mdma 2, max sdma -1, cur sdma -1, pio 4, mblk 1
Jan 12 14:57:47 2 19 0 eide_init_devices: QSI CD-ROM SCR-2
path 0, tid 0, udma -1, mdma -1, sdma -1, pio 4, mblk 0
Jan 12 14:57:47 2 19 0 eide_init_devices: SanDisk SDCFH-10
path 0, tid 1, udma -1, mdma -1, sdma -1, pio 4, mblk 1
Jan 12 14:57:47 2 5 0 xpt_peripheral_drivers: dlopen
cam-cdrom.so errno No such file or directory path 0, target 0, lun 0
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: path=0,
target=1, lun=0, cam_status=c4, scsi_status=2
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: error=70,
sense=5, asc=24, ascq=0
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: SK_ILLEGAL
command 5a in databyte
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: path=0,
target=1, lun=0, cam_status=c4, scsi_status=2
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: error=70,
sense=5, asc=24, ascq=0
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: SK_ILLEGAL
command 5a in databyte
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: path=0,
target=1, lun=0, cam_status=c4, scsi_status=2
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: error=70,
sense=5, asc=24, ascq=0
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: SK_ILLEGAL
command 5a in databyte
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: path=0,
target=1, lun=0, cam_status=c4, scsi_status=2
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: error=70,
sense=5, asc=24, ascq=0
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: SK_ILLEGAL
command 5a in databyte
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: path=0,
target=1, lun=0, cam_status=c4, scsi_status=2
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: error=70,
sense=5, asc=24, ascq=0
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: SK_ILLEGAL
command 5a in databyte
Jan 12 14:57:48 2 5 0 Path=0 - Intel 82371AB
Jan 12 14:57:48 2 5 0 target=0 lun=0 CD-ROM(5)

  • QSI CD-ROM SCR-242 Rev: CXAC
    Jan 12 14:57:48 2 5 0 target=1 lun=0 Direct-Access(0)
  •      SanDisk SDCFH-10 Rev: HDX
    

Jan 12 14:58:54 5 14 0 tcpip starting
Jan 12 14:58:54 3 14 0 Using pseudo random generator. See
“random” option
Jan 12 14:58:54 5 17 0 io_open for id = 3
Jan 12 14:59:06 5 17 0 io_open for id = 5
Jan 12 14:59:06 5 17 0 io_close_ocb
Jan 12 14:59:06 5 17 0 io_open for id = b0005
Jan 12 14:59:06 5 17 0 io_close_ocb
Jan 12 14:59:06 5 21 0 run fault pid 393234 tid 12 signal 6
code 0 ip 0xb032d4f1 ./spm


2) So based on what you said I changed the arguments to diskboot to
devb-eide to be the following:

[pri=10o] PATH=/proc/boot diskboot -vvvvv -b1 -D0 -odevc-con,-n4
-o"devb-eide, blk auto=partition dos exe=all eide, nobmstr"

This also resulted in the system taking 1+ minutes to boot. At that
time the ‘pidin A’ command produced the following:

6 devb-eide blk auto=partition dos exe=all eide nobmstr blk
auto=partition dos exe=all eide, nobmstr

Which is clearly not passing the arguments corrently to devb-eide
since they are repeated twice and the blk commands are mis placed in
the eide part of the driver.

The sloginfo was essentially the same.

  1. So since the blk commands can’t be specified properly to devb-eide
    I changed diskboot back to:

[pri=10o] PATH=/proc/boot diskboot -vvvvv -b1 -D0 -odevc-con,-n4
-o"devb-eide, nobmstr"

This also resulted in the system taking 1+ minutes to boot. At that
time the ‘pidin A’ command produced the following:

6 devb-eide blk auto=partition dos exe=all eide nobmstr nobmstr

which is closer to the default with only the nobmstr repeated twice
which I assume has zero effect on the driver.


Bottom line is none of the arguments seem to make any different on the
diskboot line. I even tried:

[pri=10o] PATH=/proc/boot diskboot -v -b1 -D0 -odevc-con,-n4
-o"devb-eide, vid=8086,did=7111,nolegacy,nomaster,nobios cam
verbose"

in hopes of specifying the vid/did directly along with other eide
options. But no go. The options are passed just fine to devb-eide as
seen with pidin but the boot takes 1+ minutes.

So I’m at a loss. Any ideas to try?

One thing. The -b1 command to diskbook tells the system to boot from a
harddrive. The other options are b2=CDRom or b3=INSTALL. Clearly the
compact flash is not a CD-Rom and I tried b3 and it attempted to
install the OS which is could not do. So b1 is all I can use there.
Or should I just remove it entirely from the line since maybe the
driver is insisting on booting from an HD which is thinks the compact
flash is not.

Tim

Don’t use diskboot, I don’t think it belongs in an
embedded system.
Look at the examples provided in the documentation
e.g. under Building embedded systems,
look at sample buildfiles.

I was suggesting that you remove the diskboot command all together.

Load the devb-eide command yourself. You will notice that diskboot also
loads things like serial/parellel drivers, which you will also have to load
yourself.

“Tim” <tim_sowden@bio-rad-dot-com.no-spam.invalid> wrote in message
news:cs4rk9$emb$1@inn.qnx.com

Bill,

Sorry for the late reply. Got caught up in meetings and other side
tracking items I needed to take care of.

As for pidin, I meant ‘Pidin A’. It does the same thing as ‘pidin ar’
(I checked).

OK, here’s the results of the experiments I performed:

  1. I first set my diskboot line to the following in my build file:

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

This resulted in the system taking 1+ minutes to boot. At that time
the ‘pidin A’ command produced the following:

6 devb-eide blk auto=partition dos exe=all eide nobmstr

with a sloginfo of:

Time Sev Major Minor Args
Jan 12 14:57:47 5 17 0 pci_server: Apr 30 2004 18:06:51
Jan 12 14:57:47 5 17 0 scan_device Bus 0 - Device 0 -
Function 0
Jan 12 14:57:47 5 17 0 Vendor 8086 Device 7190 Index 0
ClassCode 60000
Jan 12 14:57:47 5 17 0 scan_device Bus 0 - Device 1 -
Function 0
Jan 12 14:57:47 5 17 0 Vendor 8086 Device 7191 Index 0
ClassCode 60400
Jan 12 14:57:47 5 17 0 Min_Gnt = 136 - Max_Lat = 0 -
Bandwidth = 126322568
Jan 12 14:57:47 5 17 0 scan_device Bus 0 - Device 13 -
Function 0
Jan 12 14:57:47 5 17 0 Vendor 1011 Device 22 Index 0
ClassCode 60400
Jan 12 14:57:47 5 17 0 Min_Gnt = 6 - Max_Lat = 0 - Bandwidth
= 0
Jan 12 14:57:47 5 17 0 scan_device Bus 0 - Device 7 -
Function 0
Jan 12 14:57:47 5 17 0 Vendor 8086 Device 7110 Index 0
ClassCode 60100
Jan 12 14:57:47 5 17 0 scan_device Bus 0 - Device 7 -
Function 1
Jan 12 14:57:47 5 17 0 Vendor 8086 Device 7111 Index 0
ClassCode 10180
Jan 12 14:57:47 5 17 0 IO f000 10
Jan 12 14:57:47 5 17 0 IO f000 10
Jan 12 14:57:47 5 17 0 scan_device Bus 0 - Device 7 -
Function 2
Jan 12 14:57:47 5 17 0 Vendor 8086 Device 7112 Index 0
ClassCode c0300
Jan 12 14:57:47 5 17 0 IO 9000 20
Jan 12 14:57:47 5 17 0 IO 9000 20
Jan 12 14:57:47 5 17 0 scan_device Bus 0 - Device 7 -
Function 3
Jan 12 14:57:47 5 17 0 Vendor 8086 Device 7113 Index 0
ClassCode 68000
Jan 12 14:57:47 5 17 0 scan_device Bus 0 - Device 10 -
Function 0
Jan 12 14:57:47 5 17 0 Vendor 8086 Device 1229 Index 0
ClassCode 20000
Jan 12 14:57:47 5 17 0 Min_Gnt = 8 - Max_Lat = 56 -
Bandwidth = 115500000
Jan 12 14:57:47 5 17 0 MEM d7201000 1000
Jan 12 14:57:47 5 17 0 IO 9400 40
Jan 12 14:57:47 5 17 0 MEM d7000000 100000
Jan 12 14:57:47 3 17 0 Range check failed (ROM) - Dev 1229 -
Vend 8086 - Class 20000 - Addr 0 - Size 100000
Jan 12 14:57:47 5 17 0 ROM 0 - 100000
Jan 12 14:57:47 5 17 0 MEM d7201000 1000
Jan 12 14:57:47 5 17 0 IO 9400 40
Jan 12 14:57:47 5 17 0 MEM d7000000 100000
Jan 12 14:57:47 5 17 0 scan_device Bus 0 - Device 11 -
Function 0
Jan 12 14:57:47 5 17 0 Vendor 8086 Device 1229 Index 1
ClassCode 20000
Jan 12 14:57:47 5 17 0 Min_Gnt = 8 - Max_Lat = 56 -
Bandwidth = 99000000
Jan 12 14:57:47 5 17 0 MEM d7200000 1000
Jan 12 14:57:47 5 17 0 IO 9800 40
Jan 12 14:57:47 5 17 0 MEM d7100000 100000
Jan 12 14:57:47 3 17 0 Range check failed (ROM) - Dev 1229 -
Vend 8086 - Class 20000 - Addr 0 - Size 100000
Jan 12 14:57:47 5 17 0 ROM 0 - 100000
Jan 12 14:57:47 5 17 0 MEM d7200000 1000
Jan 12 14:57:47 5 17 0 IO 9800 40
Jan 12 14:57:47 5 17 0 MEM d7100000 100000
Jan 12 14:57:47 5 17 0 scan_device Bus 1 - Device 0 -
Function 0
Jan 12 14:57:47 5 17 0 Vendor 102c Device c0 Index 0
ClassCode 30000
Jan 12 14:57:47 5 17 0 MEM d4000000 1000000
Jan 12 14:57:47 3 17 0 Range check failed (ROM) - Dev c0 -
Vend 102c - Class 30000 - Addr 0 - Size 40000
Jan 12 14:57:47 5 17 0 ROM 0 - 40000
Jan 12 14:57:47 5 17 0 MEM d4000000 1000000
Jan 12 14:57:47 5 17 0 io_open for id = 3
Jan 12 14:57:47 5 17 0 io_close_ocb
Jan 12 14:57:47 5 17 0 io_open for id = 3
Jan 12 14:57:47 5 17 0 io_open for id = 4
Jan 12 14:57:47 2 19 0 eide_identify_devices: Intel 82371AB
vid 8086, did 7111, class 10180 rev 1, busno 0, dfunc 39
Jan 12 14:57:47 2 19 0 eide_identify_devices: cmd_addr 1f0,
cntl_addr 3f4, irq e, chnl 0, udma 2, mdma 2, sdma 0, pio 4
Jan 12 14:57:47 2 19 0 eide_identify_devices: Intel 82371AB
vid 8086, did 7111, class 10180 rev 1, busno 0, dfunc 39
Jan 12 14:57:47 2 19 0 eide_identify_devices: cmd_addr 170,
cntl_addr 374, irq f, chnl 1, udma 2, mdma 2, sdma 0, pio 4
Jan 12 14:57:47 2 19 0 eide_display_devices: QSI CD-ROM
SCR-2 tid 0, cable 40, max udma 2, cur udma 2, max mdma 0, cur mdma
2, max sdma -1, cur sdma -1, pio 4, mblk 0
Jan 12 14:57:47 2 19 0 eide_display_devices: SanDisk
SDCFH-10 tid 1, cable 40, max udma -1, cur udma -1, max mdma 2, cur
mdma 2, max sdma -1, cur sdma -1, pio 4, mblk 1
Jan 12 14:57:47 2 19 0 eide_init_devices: QSI CD-ROM SCR-2
path 0, tid 0, udma -1, mdma -1, sdma -1, pio 4, mblk 0
Jan 12 14:57:47 2 19 0 eide_init_devices: SanDisk SDCFH-10
path 0, tid 1, udma -1, mdma -1, sdma -1, pio 4, mblk 1
Jan 12 14:57:47 2 5 0 xpt_peripheral_drivers: dlopen
cam-cdrom.so errno No such file or directory path 0, target 0, lun 0
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: path=0,
target=1, lun=0, cam_status=c4, scsi_status=2
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: error=70,
sense=5, asc=24, ascq=0
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: SK_ILLEGAL
command 5a in databyte
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: path=0,
target=1, lun=0, cam_status=c4, scsi_status=2
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: error=70,
sense=5, asc=24, ascq=0
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: SK_ILLEGAL
command 5a in databyte
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: path=0,
target=1, lun=0, cam_status=c4, scsi_status=2
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: error=70,
sense=5, asc=24, ascq=0
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: SK_ILLEGAL
command 5a in databyte
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: path=0,
target=1, lun=0, cam_status=c4, scsi_status=2
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: error=70,
sense=5, asc=24, ascq=0
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: SK_ILLEGAL
command 5a in databyte
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: path=0,
target=1, lun=0, cam_status=c4, scsi_status=2
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: error=70,
sense=5, asc=24, ascq=0
Jan 12 14:57:47 2 5 0 scsi_interpret_sense: SK_ILLEGAL
command 5a in databyte
Jan 12 14:57:48 2 5 0 Path=0 - Intel 82371AB
Jan 12 14:57:48 2 5 0 target=0 lun=0 CD-ROM(5)

  • QSI CD-ROM SCR-242 Rev: CXAC
    Jan 12 14:57:48 2 5 0 target=1 lun=0 Direct-Access(0)
  •      SanDisk SDCFH-10 Rev: HDX
    

Jan 12 14:58:54 5 14 0 tcpip starting
Jan 12 14:58:54 3 14 0 Using pseudo random generator. See
“random” option
Jan 12 14:58:54 5 17 0 io_open for id = 3
Jan 12 14:59:06 5 17 0 io_open for id = 5
Jan 12 14:59:06 5 17 0 io_close_ocb
Jan 12 14:59:06 5 17 0 io_open for id = b0005
Jan 12 14:59:06 5 17 0 io_close_ocb
Jan 12 14:59:06 5 21 0 run fault pid 393234 tid 12 signal 6
code 0 ip 0xb032d4f1 ./spm


2) So based on what you said I changed the arguments to diskboot to
devb-eide to be the following:

[pri=10o] PATH=/proc/boot diskboot -vvvvv -b1 -D0 -odevc-con,-n4
-o"devb-eide, blk auto=partition dos exe=all eide, nobmstr"

This also resulted in the system taking 1+ minutes to boot. At that
time the ‘pidin A’ command produced the following:

6 devb-eide blk auto=partition dos exe=all eide nobmstr blk
auto=partition dos exe=all eide, nobmstr

Which is clearly not passing the arguments corrently to devb-eide
since they are repeated twice and the blk commands are mis placed in
the eide part of the driver.

The sloginfo was essentially the same.

  1. So since the blk commands can’t be specified properly to devb-eide
    I changed diskboot back to:

[pri=10o] PATH=/proc/boot diskboot -vvvvv -b1 -D0 -odevc-con,-n4
-o"devb-eide, nobmstr"

This also resulted in the system taking 1+ minutes to boot. At that
time the ‘pidin A’ command produced the following:

6 devb-eide blk auto=partition dos exe=all eide nobmstr nobmstr

which is closer to the default with only the nobmstr repeated twice
which I assume has zero effect on the driver.


Bottom line is none of the arguments seem to make any different on the
diskboot line. I even tried:

[pri=10o] PATH=/proc/boot diskboot -v -b1 -D0 -odevc-con,-n4
-o"devb-eide, vid=8086,did=7111,nolegacy,nomaster,nobios cam
verbose"

in hopes of specifying the vid/did directly along with other eide
options. But no go. The options are passed just fine to devb-eide as
seen with pidin but the boot takes 1+ minutes.

So I’m at a loss. Any ideas to try?

One thing. The -b1 command to diskbook tells the system to boot from a
harddrive. The other options are b2=CDRom or b3=INSTALL. Clearly the
compact flash is not a CD-Rom and I tried b3 and it attempted to
install the OS which is could not do. So b1 is all I can use there.
Or should I just remove it entirely from the line since maybe the
driver is insisting on booting from an HD which is thinks the compact
flash is not.

Tim

Alex/Systems 104 wrote:

Don’t use diskboot,

At least not the one that comes with QNX 6.3.

That’s been the source of some other wierd problems.

Did we ever get a resolution on diskboot’s role
in copy protection, and the difficulty with running
file recovery from a safe mode?

John Nagle

OK. I am attempting to create my own custom build image for my flash
disk.

This is what I have taking my old one with diskboot and modifying for
my needs:

#======================================================================

customNetwork.bld

The build file for qnx RTP booting on an instrument using the MIC

3000 CPU cards

This build gives networking capability

This boot assumes that the following directories have been fully

loaded

with the appropriate executables, libraries and config files

/sbin : /bin : /usr/bin : /usr/lib : /etc

The script is used in the following way

flash_boot_make_image

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

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

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

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 -vvvvv -b1 -D0

-odevc-con,-n4 -o"devb-eide, nobmstr"

pci-bios &
devc-con -n4 &
devb-eide blk auto=partition dos exe=all eide nobmstr &

display_msg “customNetwork Build Ver 1.1”

devc-ser8250 -b 9600 &

wait until the disk manifests itself

waitfor /usr 10

run the sysinit to create the login consoles and the auto

start of

the software.

sh /etc/system/sysinit
}

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
devc-con
devb-eide
devc-ser8250
diskboot
slogger
rm
mkdir
sh


As you can see, I commented out the original diskboot command and
added the starting of the devc-con and devb-eide and devc-ser8250
manually along with adding the executables into my image (borrowed
most of this from this link on creating custom images:

http://www.qnx.com/developers/docs/momentics621_docs/neutrino/building/config.html

I created the image and put it on my compact flash disk.

However when I boot I get the following error:

‘sh /etc/system/sysinit’ no such file or directory.

So of course no consoles are ever opened nor is my software
auto-started (and yes /etc/system/sysinit exists).

What am I missing here to get the system to run the sysinit file and
finish the rest of QNX?

As for devb-eide, I have no idea if it’s booting faster or not since I
can’t log in yet so I am not sure when it finishes. However the
waitfor command seems to return success instantly which would
indicate it has the flash mounted. But I need to get the sysinit
working first before I can tell.

Thanks,

Tim

Hmm,

Annoyingly I can’t seem to edit my own posts here on this board yet I
can on the QNX community portal…

Anyway forgot to mention I run tinit to create my consoles inside
/etc/system/sysinit just in case anyone is wondering why I was saying
I didn’t get any consoles created.

Tim

“Tim” <tim_sowden@bio-rad-dot-com.no-spam.invalid> wrote in message
news:csh5c1$mbb$2@inn.qnx.com

Hmm,

Annoyingly I can’t seem to edit my own posts here on this board yet I
can on the QNX community portal…

This is a newsgroup and not a forum I do beleive newsgroup support edition
of posted message (since there is no password protection anybody could edit
any message :wink: ).

Anyway forgot to mention I run tinit to create my consoles inside
/etc/system/sysinit just in case anyone is wondering why I was saying
I didn’t get any consoles created.

Tim

Mario Charestwrote:
"This is a newsgroup and not a forum I do beleive newsgroup support

edition

of posted message (since there is no password protection anybody
could edit
any message > :wink: > ).

D’oh. That would explain a lot :wink:

I wondered what the difference was when I followed the link from the
QNX community portal

Anyway, I got everything to work finally using the following:

#================================================================

customNetwork.bld

The build file for qnx RTP booting on an instrument using the MIC

3000 CPU cards

This build gives networking capability

This boot assumes that the following directories have been fully

loaded

with the appropriate executables, libraries and config files

/sbin : /bin : /usr/bin : /usr/lib : /etc

The script is used in the following way

flash_boot_make_image

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

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

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

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

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

TDS: As of 6.3 custom booting takes places because diskboot

takes over 1 minute to boot from flash disk

[pri=10o] PATH=/proc/boot diskboot -s -v -b1 -D0

-odevc-con,-n4

Tell devb-eide dirty block time is 0 (immediate writes)

(delwri=0)

Tell devb-eide commit level is medium (commit=medium)

Tell devb-eide to automount flash disk

(automount=hd0t77:/:qnx4)

Tell devb-eide to not use DMA on IDE drives (nobmstr)

pci-bios &
devc-con &
devb-eide blk delwri=0,commit=medium,automount=hd0t77:/:qnx4
eide nobmstr &
devc-ser8250 -b 9600 &

Wait until the disk manifests itself

waitfor /dev/hd0t77 10

delete the /tmp directory

rm -rf /tmp
mkdir /tmp

Do all the system init from /etc/system/sysinit including

creation of consoles via tinit.

sh /etc/system/sysinit
}

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
devc-con
devb-eide
devc-ser8250
diskboot
slogger
rm
mkdir


All that was really wrong was the waitfor was looking for /usr which
appears in the proc filesystem (duh). Once I changed to wait for the
actual hard disk it worked like a champ.

Best of all, it finds the flash and boots QNX in a couple of seconds
which is exactly what I wanted. I removed the timeout for dirty
writes because of flash disk corruption fears.

Thanks to everyone for their help, esp the tip on getting rid of
diskboot!

Tim

Tim wrote:

Mario Charestwrote:
This is a newsgroup and not a forum I do beleive newsgroup support
edition
of posted message (since there is no password protection anybody
could edit any message > :wink: > ).

It’s more fundamental than that. Usenet is a fire-and-forget system not unlike Email. Everyone gets there own copy of the message so editing an old one is pointless.


D’oh. That would explain a lot > :wink:

I wondered what the difference was when I followed the link from the
QNX community portal

You should prolly not use that php script to post to Usenet either as it does not appear to correctly reply by always replying to the original posting.


Evan

Evan Hillas wrote:

Tim wrote:
I wondered what the difference was when I followed the link from the
QNX community portal


You should prolly not use that php script to post to Usenet either as it
does not appear to correctly reply by always replying to the original
posting.

Mozilla is very good at managing newsgroups - highly recommended. :slight_smile: