I make a boot image. It can boot normal on X86 machine.
and I write a program , it can run normal on the QNX host.
But I want the program run on the Boot Image on the x86 machine.
Follow is my image:
[virtual=x86,bios +compress] .bootstrap = {
startup-bios -Nnode120 -vvvv -D8250..115200 -K8250..115200
PATH=/proc/boot procnto -smp
}
[+script] startup-script = {
display_msg "Welcome to QNX Neutrino on an PC compatible BIOS system for SMP"
#serial prot driver
devc-ser8250 -e -b115200 &
waitfor /dev/ser1
reopen /dev/ser1
display_msg " Open serial port "
# Start 1 keyboard console
devc-con -n4 &
# Start serial A driver
waitfor /dev/con1
reopen /dev/con1
seedres
pci-bios &
waitfor /dev/pci
pipe
syslogd
slogger
# scan IDE machine
[b]devb-eide
waitfor /dev/hd0
mount /dev/hd0 /[/b]
devc-pty &
/USB driver*/
display_msg “Start USB driver…”
io-usb -duhci -dohci -dehci
waitfor /dev/io-usb/io-usb 4
reopen /dev/con2
[+session] esh &
reopen /dev/con3
[+session] esh &
reopen /dev/ser1
[+session] esh &
waitfor /dev/con1
reopen /dev/con1
[+session] esh &
display_msg " Startup"
}
Make /tmp point to the shared memory area…
[type=link] /tmp=/dev/shmem
[type=link] /dev/console = /dev/ser1
Programs require the runtime linker (ldqnx.so) to be at
a fixed location
[type=link] /usr/lib/ldqnx.so.2=/proc/boot/libc.so
[type=link] /bin/sh=/bin/esh
We use the “c” shared lib (which also contains the
runtime linker)
libc.so
libm.so
libsocket.so
npm-tcpip.so
npm-tcpip-v4.so
libcpp.so.3
#D-link net card LIB
devn-via-rhine.so
#RTL net card LIB
devn-rtl.so
devn-i82544.so
devn-speedo.so
io-blk.so
fs-qnx4.so
fs-dos.so
cam-disk.so
libcam.so
#####/uncomment for USB driver/
libusbdi.so
devu-uhci.so
devu-ohci.so
devu-ehci.so
devn-asix.so
######/end USB driver/
The files above this line can be shared by multiple
processes
[data=c]
devc-con
devc-ser8250
devc-pty
pci-bios
seedres
mqueue
pipe
io-net
echo
stty
#/dev/socket=/dev/socket
cat
tail
pci
#chat
ifconfig
ping
syslogd
#touch
slogger
ls
qconn
pidin
pdebug
slay
mount
devb-eide
ftp
inetd
shutdown
sin
use
esh
mount
umount
sloginfo
telnet
mkdir
rm
cp
#####/USB/
io-usb
usb
devb-umass
#####/end USB/
#program_name
/root/program_name=/root/FCS2000/program_name
#Services (telnetd etc) config
/usr/sbin/telnetd=telnetd
/usr/sbin/ftpd=ftpd
/bin/login=login
/bin/sh=esh
/etc/ppp/chap-secrets = {
Client Server Secret Addrs
#########################################
-
* "password" *
}
/etc/syslog.conf = {
. /tmp/syslog
. /…/…
}
Inetd config Files
/etc/services= /etc/services
/etc/protocols= /etc/protocols
/etc/termcap= /etc/termcap
/etc/passwd= /etc/passwd
/etc/default/login= /etc/default/login
/etc/resolv.conf= /etc/resolv.conf
/etc/shadow = /etc/shadow
/etc/inetd.conf = {
telnet stream tcp nowait root /usr/sbin/telnetd in.telnetd
ftp stream tcp nowait root /usr/sbin/ftpd in.ftpd
-l
}
/etc/services={
ftp 21/tcp
telnet 23/tcp
}
/etc/ftpusers={
}
/etc/shadow={
root:CDIdxOja3k5lk:1166770462:0:0
}
/etc/passwd={
root::0:0:Superuser:/:/bin/sh
ftp:x:14:80:FTP User:/:
ftplogin:x:0:0::/:/bin/sh
}
I[b] run the program , the error message:
#./program_name
Permossion denied
- I don’t know the message
- If I want "mkdir " a path in the /root , How do I make?[/b]
- “mkdir” in the “bin” path in the QNX host
My Boot image “mkdir” in the “/proc/boot” path why?