Buildfile

Hi,

I’m trying to get a simple buildfile running on a pc104 board (on an eide based compact flash). All I want to do (for now) is have the system start up into a terminal console where I have access to all my programs. Using the buildfile below, it runs through a whole bunch of dots (what does that signify, copying the image??) then just sits there with the cursor blinking.

[virtual=x86,nobios] .bootstrap = {
    startup-bios -v
     PATH=/proc/boot:/bin:/usr/bin LD_LIBRARY_PATH=/proc/boot:/lib:/usr/lib procnto -v
}
[+script] .script = {
devc-con -n2 &
reopen

[+session]PATH=/proc/boot sh &
                                   }
[dperms=0777 uid=0 gid=0]
[gid=0 uid=0 perms=777 data=uip code=uip] /proc/boot/libc.so = /x86/lib/libc.so
[type=link] /usr/lib/ldqnx.so.2 = /proc/boot/libc.so
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/cp = /x86/bin/cp
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/devb-eide = /x86/sbin/devb-eide
[gid=0 uid=0 perms=777 data=uip code=uip] /proc/boot/libcam.so.2 = /x86/lib/libcam.so.2
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/devb-ram = /x86/sbin/devb-ram
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/devc-con = /x86/sbin/devc-con
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/devc-ser8250 = /x86/sbin/devc-ser8250
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/diskboot = /x86/sbin/diskboot
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/dloader = /x86/bin/dloader
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/echo = /x86/bin/echo
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/fdisk = /x86/sbin/fdisk
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/io-graphics = /x86/usr/photon/bin/io-graphics
[gid=0 uid=0 perms=777 data=uip code=uip] /proc/boot/libgri.so.2 = /x86/usr/lib/libgri.so.2
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/io-net = /x86/sbin/io-net
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/ls = /x86/bin/ls
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/mv = /x86/bin/mv
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/ping = /x86/usr/bin/ping
[gid=0 uid=0 perms=777 data=uip code=uip] /proc/boot/libsocket.so.2 = /x86/lib/libsocket.so.2
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/pci-bios = /x86/sbin/pci-bios
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/pci = /x86/usr/sbin/pci
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/rm = /x86/bin/rm
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/sh = /x86/bin/sh
[gid=0 uid=0 perms=777 data=uip code=uip] /proc/boot/libffb.so.2 = /x86/usr/lib/libffb.so.2
[gid=0 uid=0 perms=777 data=uip code=uip] /proc/boot/libdisputil.so.2 = /x86/usr/lib/libdisputil.so.2
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/devc-digiport = /fs/cd0/Drivers/devc-digiport
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/devc-gpio5070 = /fs/cd0/Drivers/devc-gpio5070
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/devc-i2c-ds1775 = /fs/cd0/Drivers/devc-i2c-ds1775
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/devc-i2c-eeprom = /fs/cd0/Drivers/devc-i2c-eeprom
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/devc-i2c2050 = /fs/cd0/Drivers/devc-i2c2050
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/devc-wdt2050 = /fs/cd0/Drivers/devc-wdt2050
[gid=0 uid=0 perms=777 data=uip code=uip] /proc/boot/devn-eepro.so = /lib/dll/devn-eepro.so
[gid=0 uid=0 perms=777 data=uip code=uip] /proc/boot/npm-tcpip.so = /lib/dll/npm-tcpip.so
[gid=0 uid=0 perms=777 data=uip code=uip] /proc/boot/npm-qnet.so = /lib/dll/npm-qnet.so
[gid=0 uid=0 perms=777 data=uip code=uip] /proc/boot/devg-chips_hiqv.so = /lib/dll/devg-chips_hiqv.so
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/devc-pty = /x86/sbin/devc-pty
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/seedres = /x86/sbin/seedres
[gid=0 uid=0 perms=777 data=copy code=uip] /proc/boot/pipe = /x86/sbin/pipe

Any suggestions?? I’m sure this is a reasonably simple one

Thanks

PS-Yes, I know many of these programs should go in a filesystem, but I havn’t gotten that far as I cant even get a console - baby steps

:slight_smile: That is a generated file from System Builder. I can tell!!!

You don’t want the nobios boot file unless you are actually booting this machine with a proper BIOSless IPL. Since you have a BIOS and are booting with it, change the Boot from nobios to bios. Also, in the boot script do…

devc-con -n2 &
waitfor /dev/con1
reopen /dev/con1

Otherwise you might get a race during startup.

Also, on a PC, the boot image is going to be limited in size to a couple of megs. Don’t exceed that.

Thanks Chris - worked like a charm!

Now I’ve tried to set up a filesystem over the past few days without many breakthroughs (other than knowing what doesn’t work). Essentially what I’m looking for is exactly the same as what comes as a standard install on the 6.2.1 disk. The compact flash is an ide so its identical (this also means I don’t need a flash file system or mkefs, correct??).

What I am doing now is partitioning the drive with fdisk, and without restarting devb-eide I write the build image to the raw device (hd1 as opposed to hd1t77) using dinit -h -f which always asks me if I really want to write to a raw drive (this makes me think theres something wrong with that, is there?).

Anyways, my questions are: 1. is the above paragraph the best way of doing things, 2. how would I add a qnx4 filesystem to this - do i need a new partition, do I have to dinit it (probably now that I think about it, hmmm…) or do I have to do something else. Basically, what is needed to be done to run devb-eide in the boot script and have a file system actually start (and how much of this can be done in the system builder)

Thanks a lot

Yep, fdisk is okay, but you should dinit the device - it puts the root dir in place and sets the
bitmap file up for you.
You can use dinit to also put your boot image in place. Have a look at the options.

Brent - once you fdisk to partition the drive you can use mount to force a re-enumeration of the partitions without restarting devb-eide…

mount -e /dev/hd0

…should do it for ya.