pkg-installer bus error

Hi,
I’ve just installed QNX 6.1.0 on my old Pentium 200 laptop with 16MB ram
since I was under the impression QNX could be scaled to work great on
older machines.
The thing is, photon eats up nearly all the ram, and a swapfile doesn’t
seem to help. AND the big problem is that pkg-installer crashes with
“bus error” or some kind of “…memory…” error while getting
repository data from either internet or the install cd. I have assumed
this has to do with the fact that I only have 16mb’s of ram (though I
might be wrong). I have tried slay:ing every unnecessary process, shelf,
pwm etc leaving only a terminal running under photon and the memory
hungry io-graphics (1mb) but I still get the same errors.
I untared the patchA in linux and sent it to the laptop and overwrote
the old files (including pkg-installer) but this didn’t seem to help at all.
Please help me because I want to play with compilers on it, and for that
I need to be able to use pkg-installer to install them =(.

//David Holm

Hi David,

David Holm <dholm@iname.com> wrote in article <3BD492BC.10802@iname.com>…

Hi,
I’ve just installed QNX 6.1.0 on my old Pentium 200 laptop with 16MB ram
since I was under the impression QNX could be scaled to work great on
older machines.

QNXRTP should work fine on your laptop without Photon :slight_smile:. And I believe it can work with Photon too
Try to reduce cache size for hard disk driver, it uses too much memory by default. Read carefully
docs for devb-eide and io-blk.so (you can find html docs under /usr/help/…). Try to slay
devb-eide and restart with new arguments. After you find optimal cache size, you can want to write
arguments of devb-eide in the file /etc/system/enum/include/block

Best regards,
Eduard.

ed1k wrote:

Hi David,

David Holm <> dholm@iname.com> > wrote in article <> 3BD492BC.10802@iname.com> >…

Hi,
I’ve just installed QNX 6.1.0 on my old Pentium 200 laptop with 16MB ram
since I was under the impression QNX could be scaled to work great on
older machines.


QNXRTP should work fine on your laptop without Photon > :slight_smile:> . And I believe it can work with Photon too
Try to reduce cache size for hard disk driver, it uses too much memory by default. Read carefully
docs for devb-eide and io-blk.so (you can find html docs under /usr/help/…). Try to slay
devb-eide and restart with new arguments. After you find optimal cache size, you can want to write
arguments of devb-eide in the file /etc/system/enum/include/block

Best regards,
Eduard.

Thanks for the tips. I have tried messing with the cache and alloc
settings as much as possible, but still devb-eide’s memory footprint
hasn’t changed at all and “sin args|pipe more” doesn’t show my
alloc=xxk,cache=xxk settings at all, should it be like that?
Also, fs-pkg eats as much or more ram than devb-eide, what is this
really used for? killing it kills my entire fs, but I thought this was
something used only by the pkg-installer?

David Holm <dholm@iname.com> wrote in article <3BD799D5.3050401@iname.com>…

Thanks for the tips. I have tried messing with the cache and alloc
settings as much as possible, but still devb-eide’s memory footprint
hasn’t changed at all and “sin args|pipe more” doesn’t show my
alloc=xxk,cache=xxk settings at all, should it be like that?

Sorry if I miss something. I will look deeply into this problem. I know in QRTP6.0 it required to
rebuild image. But I think it is not required in QRTP6.1. And I’m more familiar with “pidin”
command :slight_smile: Is anybody who knows more about QRTP with small RAM configuration? I guess slaying and
restarting devb-eide is enough, maybe it’s wrong assumption.

Also, fs-pkg eats as much or more ram than devb-eide, what is this
really used for? killing it kills my entire fs, but I thought this was
something used only by the pkg-installer?

No. I don’t quite understand what is package file system (I cannot explain it). Simply don’t kill
it :wink:

Eduard.

Hi David,

David Holm <dholm@iname.com> wrote in article <3BD799D5.3050401@iname.com>…

ed1k wrote:

Hi David,

David Holm <> dholm@iname.com> > wrote in article <> 3BD492BC.10802@iname.com> >…

Hi,
I’ve just installed QNX 6.1.0 on my old Pentium 200 laptop with 16MB ram
since I was under the impression QNX could be scaled to work great on
older machines.


QNXRTP should work fine on your laptop without Photon > :slight_smile:> . And I believe it can work with Photon
too
Try to reduce cache size for hard disk driver, it uses too much memory by default. Read
carefully
docs for devb-eide and io-blk.so (you can find html docs under /usr/help/…). Try to slay
devb-eide and restart with new arguments. After you find optimal cache size, you can want to
write
arguments of devb-eide in the file /etc/system/enum/include/block

I’m sorry. The main conception was right, but I was wrong in details :slight_smile:
Try the next way:

  1. log in as root
  2. cp /boot/build/qnxbasedma.build /root/custom.build

  3. cp /.boot /root/.boot

  4. Edit the custom.build file. You’ll have to insert command to start devb-eide before diskboot
    command and to put -xdevb-eide option for diskboot. See my custom.build file below
  5. mkifs ./custom.build /.boot

  6. shutdown

After reboot (press Esc and verify all steps if troubles occur)
7) # pidin mem |grep devb-eide
and # pidin arg |grep devb-eide
to verify memory usage by hard disk driver.

File “custom.build”

====================================

Best regards,
Eduard.



Thanks for the tips. I have tried messing with the cache and alloc
settings as much as possible, but still devb-eide’s memory footprint
hasn’t changed at all and “sin args|pipe more” doesn’t show my
alloc=xxk,cache=xxk settings at all, should it be like that?
Also, fs-pkg eats as much or more ram than devb-eide, what is this
really used for? killing it kills my entire fs, but I thought this was
something used only by the pkg-installer?

Oh, sorry :wink:
Here is custom.build file

The build file for qnx RTP booting on a PC

[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:/usr/bin 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 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.

Start devb-eide with tiny cache

devb-eide blk auto=partition,cache=2m cam quiet eide dma,ioport=0x1f0,irq=14 eide
dma,ioport=0x170,irq=15 &

Start other stuff without devb-eide

display_msg Welcome to custom (tiny RAM) QNX RTP

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

}

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 tie files for the default filesystems

libcam.so
io-blk.so
cam-disk.so
fs-qnx4.so
fs-dos.so
fs-ext2.so
cam-cdrom.so
fs-cd.so

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

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

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

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

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

[data=uip]
seedres
pci-bios
devb-eide
devb-amd
devb-aha2
devb-aha4
devb-aha7
devb-aha8
devb-ncr8
diskboot
slogger
fesh

These files will be unlinked after the system has started

to release the memory back to the system. They are only

needed during boot. If needed later on, they will be loaded

from the boot device.

unlink_list={
/proc/boot/devb-*
}

=============================

Regards,
Eduard.

Eduard,

I am unfamiliar with the unlink feature in your build file.

When is the unlink_list processed and by whom?

ed1k wrote:

These files will be unlinked after the system has started

to release the memory back to the system. They are only

needed during boot. If needed later on, they will be loaded

from the boot device.

unlink_list={
/proc/boot/devb-*
}

=============================

Regards,
Eduard.

Scott L. Linke, Sr. Proj. Engr. PHN: 765.451.9301
Delphi Automotive Systems FAX: 765.451.1852
Delco Electronics Systems sllinke@eng.delcoelect.com

Hello Scott,

/proc/boot is placed in memory. I guess the comment gives a clearly explanation on it. During
bootup diskboot has devb-* files under /proc/boot/. No disk access yet, so drivers for hdd are
included to image. unlink_list removes these files at the end of bootup procedure. You could simply
remove extra drivers (SCSI) from image. I think it is a better idea :wink:. That’s because my build
file is standard build file (see /boot/build/qnxbasedma.build in your system) with minor change.
unlink_list is a QNXRTP 6.1 feature :wink:

For details, read articles at QDN web site:
http://qdn.qnx.com/articles/oct1901/Using_buildfiles.html#unlink

Best regards,
Eduard.

Scott L. Linke <sllinke@eng.delcoelect.com> wrote in article
<3BE94EC3.13ABD180@eng.delcoelect.com>…

Eduard,

I am unfamiliar with the unlink feature in your build file.

When is the unlink_list processed and by whom?

ed1k wrote:

These files will be unlinked after the system has started

to release the memory back to the system. They are only

needed during boot. If needed later on, they will be loaded

from the boot device.

unlink_list={
/proc/boot/devb-*
}

=============================

Regards,
Eduard.

Scott L. Linke, Sr. Proj. Engr. PHN: 765.451.9301
Delphi Automotive Systems FAX: 765.451.1852
Delco Electronics Systems > sllinke@eng.delcoelect.com

Thanks Eduard, it’s hard to stay on top of these things…

Scott

ed1k wrote:

Hello Scott,

/proc/boot is placed in memory. I guess the comment gives a clearly explanation on it. During
bootup diskboot has devb-* files under /proc/boot/. No disk access yet, so drivers for hdd are
included to image. unlink_list removes these files at the end of bootup procedure. You could simply
remove extra drivers (SCSI) from image. I think it is a better idea > :wink:> . That’s because my build
file is standard build file (see /boot/build/qnxbasedma.build in your system) with minor change.
unlink_list is a QNXRTP 6.1 feature > :wink:

For details, read articles at QDN web site:
http://qdn.qnx.com/articles/oct1901/Using_buildfiles.html#unlink

Best regards,
Eduard.

Scott L. Linke <> sllinke@eng.delcoelect.com> > wrote in article
3BE94EC3.13ABD180@eng.delcoelect.com> >…
Eduard,

I am unfamiliar with the unlink feature in your build file.

When is the unlink_list processed and by whom?

ed1k wrote:

These files will be unlinked after the system has started

to release the memory back to the system. They are only

needed during boot. If needed later on, they will be loaded

from the boot device.

unlink_list={
/proc/boot/devb-*
}

=============================

Regards,
Eduard.

Scott L. Linke, Sr. Proj. Engr. PHN: 765.451.9301
Delphi Automotive Systems FAX: 765.451.1852
Delco Electronics Systems > sllinke@eng.delcoelect.com

Scott L. Linke, Sr. Proj. Engr. PHN: 765.451.9301
Delphi Automotive Systems FAX: 765.451.1852
Delco Electronics Systems sllinke@eng.delcoelect.com