QNX RTP Logo QNX Realtime Platform: Русский Портал QNX
Thursday, 20 Nov 2008 13:01
Меню

Проект OpenNET - все о Unix
Главная

 · Начало · Статистика · Поиск ·

  QNX.ORG.RU —› Встраиваемые системы —› Как правильно создать билд-файл для конкретной системы?

Посл.ответ Сообщение


Дата: 28 Авг,  16:35

Добрый день.
Вот довелось столкнуться с необходимостью построить свою ifs под конкретную систему. В частности промышленный ПК.
Что мне надо конкретно - собственно загружаемый образ qnx, сеть, фотон и свое приложение.
Прочитал стать по созданию билд-файлов, в том числе и на этом сайте. Максимум что у меня получилось - создать загружаемый образ с настройкой сети и монтированием корневой системы. причем в качестве hard disk стоит КомпактФлеш, который распознается как Вторичный Мастер ИДЕ.

прилагаю свой билд файл


[virtual=x86,bios +compress] boot = {
startup-bios -s64k
PATH=/proc/boot procnto
}

[+script] startup-script = {
PATH=/proc/boot:/usr/bin:/bin
LD_LIBRARY_PATH=/proc/boot:/usr/lib:/lib

# Programs require the runtime linker (ldqnx.so) to be at a fixed location
procmgr_symlink ../../proc/boot/libc.so.2 /usr/lib/ldqnx.so.2


# sh=/bin/ksh

#IP="192.168.1.101"
#GATEWAY="192.168.1.50"


# Start up some consoles
# devc-con -n4 &
# reopen /dev/con1
#
# display_msg Welcome to QNX Neutrino on an PC compatible BIOS system


# Start the pci server
seedres
pci-bios &
waitfor /dev/pci

io-usb -duhci -dohci -dehci &


# Start ethernet driver
io-net -dspeedo -ptcpip
waitfor /dev/socket

ifconfig en0 192.168.1.101 netmask 255.255.255.0
route add default 192.168.1.50

display_msg "Detecting EIDE..."

devb-eide cam blk automount=hd0:/:qnx4 &

# display_msg "Starting sysinit ..."

# /bin/sh -c /etc/system/sysinit

#Start consoles
devc-con -n2 &


# Some common servers
pipe &
mqueue &
devc-ser8250 -e &
devc-pty &


# 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

#[type=link] /bin/sh=/bin/ksh

# We use the "c" shared lib (which also contains the runtime linker)
libc.so
libcam.so
io-blk.so
cam-disk.so
fs-qnx4.so
fs-dos.so
libhiddi.so
libusbdi.so


devu-ehci.so
devu-uhci.so
devu-ohci.so
devh-usb.so
devh-ps2ser.so


# Just incase someone needs floating point...
# fpemu.so.2

/lib/dll/devn-speedo.so
/lib/dll/npm-tcpip.so
libsocket.so

/etc/termcap = /etc/termcap
/etc/hosts = /etc/hosts

[type=link] /usr/lib/libc.so.1 = /proc/boot/libc.so.1
[type=link] /usr/lib/libc.so.2 = /proc/boot/libc.so.2
[type=link] /usr/lib/libsocket.so.1 = /proc/boot/libsocket.so.1

# 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 pci server
pci-bios
seedres
ifconfig
io-net
route
date
ping
devb-eide
devb-umass
umass-enum
umass-enum.cfg
io-usb
io-hid
devc-con-hid
mount
ksh



# Other executables
pdebug
pipe
mqueue
devc-ser8250
devc-pty
ls
cat
pidin
uname
ln
clear
#slogger
#sloginfo

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

Но есть маленькое НО.

Согласно статье "Фотон во страиваемых системах" я сделал все один к одному. Пытаюсь запустить стартовый скрипт фотона, и в консоли получаю ответ
./ph-start : /bin/sh no such file
где ph-start - стартовый скрипт фотона, который лежит в папке /phembed.
/bin - содержит файлы ksh,fesh и сделал символическую ссылку на sh -> /bin/ksh

где я ошибся? помогите пожалуйста, кто с этим сталкивался.
Заранее спасибо, а пока буду дальше читать маны...


Дата: 29 Авг,  07:02

Как раз в build файле вы почему-то закоментировали ссылку sh->ksh. Зачем? После запуска devb-eide сделайте waitfor для чего-нибудь на диске, чтобы убедиться что все подмонтировалось. И еще - зачем вы все пихаете в загрузочный образ? Многое из того, что вы делаете можно сделать из скрипта по типу как в sysinit, многие исполнимые файлы не нужные в процессе загрузки можно просто скопировать в файловую систему, которую вы монтируете, а не в образ тулить.


Дата: 29 Авг,  09:59

Поддержу предыдущего оратора. У меня в .boot только devc-con, devb-eide и запуск sysinit с жесткого диска.


Дата: 29 Авг,  12:17

я с билд файлами только столкнулся, поэтому и выглядит он не очень практично. если не трудно, могли бы вы выложить образец своего билд файла?


Дата: 29 Авг,  14:59

вобщем у меня так и не получается сделать что бы sh корректно работал, пишет что его нет..
если явно указать ksh то работает, но опять же скрипты из консоли не запускаются...

я уже сделал минимальный бил файл такого вида

[virtual=x86,bios +compress] boot = {
startup-bios -s64k
PATH=/proc/boot procnto
}

[+script] startup-script = {
PATH=/proc/boot:/usr/bin:/bin:/usr/sbin:/sbin
LD_LIBRARY_PATH=/proc/boot:/usr/lib:/l ib



# These env variables inherited by all the programs which follow
# SYSNAME=nto
# TERM=qansi


# Programs require the runtime linker (ldqnx.so) to be at a fixed location
procmgr_symlink ../../proc/boot/libc.so.2 /usr/lib/ldqnx.so.2



# Start the pci server
seedres
pci-bios &
waitfor /dev/pci

devb-eide cam blk automount=hd0:/:qnx4
waitfor /.diskroot


#Start consoles
devc-con -n1 &
# Start some extra shells on other consoles
# reopen /dev/con2
# [+session] ksh &


# Start the main shell
reopen /dev/con1
[+session] ksh
[+session] login -p

}



# We use the "c" shared lib (which also contains the runtime linker)
libc.so
libcam.so
io-blk.so
cam-disk.so
fs-qnx4.so
fs-dos.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 pci server
pci-bios
seedres
devb-eide
mount
ksh
login
ls


# Other executables

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

но я не могу понять, где я ошибаюсь...


Дата: 8 Сен,  09:47 · Поправил: olej


могли бы вы выложить образец своего билд файла?

http://qnxclub.net/modules.php?name=Forums&file=viewtopic&t=443

You must login to post.

©   2000-2003 Команда проекта QNX.ORG.RU // QNX.ORG.RU Team
Авторы проекта: Дмитрий Алексеев [dmi] и Дмитрий Васильев. Техническое сопровождение проекта: Игорь Сорокин [isorokin]. Информационное сопровождение: Дмитрий Алексеев [dmi]
QNX - зарегистрированная торговая марка QNX Software Systems, Ltd., Canada. Остальные упоминаемые на сайте торговые марки и логотипы являются исключительно собственностью их уважаемых владельцев. Ничьи права не затронуты. Материалы сайта не могут быть скопированы и где-либо использованы в той или иной форме без письменного разрешения разработчиков сайта.
Powered by Mambo Open Source