Установка qnx с флешки

Обновлено: 18.05.2024

Установка QNX

Вы можете подготовить набор инсталляционных дискет для установки QNX 4.25, используя образы инсталляционных дискет и программу makedisk.exe (для DOS) или qmakedsk.exe (для WIN32). Помощь по работе с этими программами можно получить, запустив их без параметров.

Распаковать qnx425A.bootdisk.F и qnx425.pdiskset.tar.F из-под WIN32 или DOS можно при помощи утилит freeze32.exe или freeze.exe и tar.exe .
При помощи freeze32.exe (из-под WIN32):
freeze32.exe -id qnx425A.bootdisk.F freeze32.exe -id pdiskset.tar.F При помощи freeze.exe (из-под DOS):
FREEZE.EXE -id QNX425

1.F
FREEZE.EXE -id QNX425

2.F
Затем с помощью tar.exe :
tar.exe -xf pdiskset.tar

Отформатировать загрузочную установочную дискету qnx425A.bootdisk нужно с фактором чередования секторов равным 2, например, с помощью утилиты fdformat.exe , запускать её нужно из-под DOS (из-под Windows 98 не работает) так:
fdformat.exe a: i2
В unix загрузочную дискету надо форматировать так:
fdformat -k0 -z2 /dev/fd0
Остальные дискеты отформатировать обычным способом:
fdformat.exe a:

Записать образы дискет можно на дискеты с помощью утилиты qmakedsk.exe (для WIN32, из-под DOS не запустится) или makedisk.exe (для DOS или WIN32, понимает только короткие имена) или rawrite.exe . Примеры запуска:
qmakedsk.exe qnx425A.bootdisk a: MAKEDISK.EXE QNX425

1.BOO A:
RAWRITE -f QNX425

  • qnx425A.bootdisk
  • Диск с лицензиями старого типа (хотя, вроде бы можно обойтись и без него)
  • disk1
  • disk2
  • disk3
  • disk4
  • disk5

Следуйте инструкциям на экране. У вас будет запрошен сначала диск с лицензиями старого типа для OS QNX (вроде бы можно это проигнорировать, если у вас такого диска нет — QNX всё равно установится), затем остальные диски. Если не знаете как ответить на некоторые вопросы, которые будут задаваться при установке, то выбирайте ответ по умолчанию, либо «Yes». Без лицензий старого типа можно вообще обойтись, можно использовать только лицензии нового типа, которые можно добавить в файл /.licenses уже после установки QNX 4.25.

Для установки патчей и прочего софта из архивов в формате .tar.F из-под QNX вы можете скопировать их с DOS-раздела в корневой каталог "/" на QNX-разделе и установить с помощью утилиты install .
Для того чтобы подмонтировать DOS раздел воспользуйтесь командой
Dosfsys -L
( Dosfsys — это устаревшая утилита, после установки последних патчей для QNX 4.25 используйте вместо неё утилиту Fatfsys ). Подмонтированные DOS-разделы будут видны в каталоге /dos :
/dos/a (если дискета находится в дисководе)
/dos/c
/dos/d

Далее советую вам установить файловый менеджер MiShell QNX Commander (MQC), триальную версию которого вы можете скачать здесь: mqc.trial.tar.F. От нетриальной версии этот MQC отличается тем, что занимает больше места в памяти (более 5 Мб), но зато бесплатен и не требует лицензию swdqc . С файловым менеджером гораздо удобнее работать, чем с командной строкой. Интерфейс MQC подобен DOS'овским программам NC (Norton Commander) или VC (Volkov Commander). Копирование файлов производится по нажатию клавиши F5 , а создание символической связи с помощью Shift - F5 .
ln -s /dos/c/mqc.trial.tar.F /
/etc/install -u mqc.trial.tar.F
Запускать MQC просто:
mqc

Установка Photon 1.14 из дистрибутивов в формате .tar.F

Устанавливать так (из корневого каталога):
/etc/install -u phrt1.14.tar.F
/etc/install -u phrt1.14.fulldocs.tar.F
/etc/install -u graphics_1.14B.tar.F
/etc/install -u phrt1.14C.tar.F

Чтобы запустить Photon, наберите команду:
ph

Установка программных продуктов для QNX 4.25 из дистрибутивов в формате .tarx с помощью утилиты pkginstall

После установки собственно QNX 4.25 и Photon microGUI 1.14 весь остальной софт (последние патчи G для QNX 4.25 и D для Photon 1.14, а также Photon Application Builder, Watcom C и Watcom C++, TCP/IP 4.25 Runtime и Toolkit, Voyager и т. д.) можно установить из дистрибутивов в формате .tarx с помощью утилиты pkginstall , которую нужно запускать из-под Photon. После запуска pkginstall нужно из его меню открыть каталог с .tarx -файлами, pkginstall просканирует его. Либо можно указать путь к .tarx -файлам из командной строки для pkginstall :
pkginstall -F /dos/c/updates

Лицензии нового типа можно занести вручную в файл /.licenses перед запуском pkginstall , либо через меню программы pkginstall .

«Горячие» клавиши:
F1 — Help
F2 — Start
F3 — Finish, Exit
F4 — Source
F5 — Add Licenses
F6 — View Readme
F7 — Product Info
F8 — Delete

Краткую справку по утилитам QNX 4.25 можно получить, используя утилиту use , например:
use use
use pkginstall
Более подробную информацию можно получить из документации, которую можно просмотреть из-под Photon с помощью Helpviewer.

Том в устройстве D не имеет метки
Серийный номер тома: 16E1-1C30
Содержимое папки D:Program Filesqnxbootfs

QNXBASE IFS 727 052 29.06.02 11:46 qnxbase.ifs
QNXBAS

1 IFS 727 052 29.06.02 11:46 qnxbasedma.ifs
QNXBASE QFS 50 577 920 29.06.02 11:46 qnxbase.qfs
ROOT QFS 1 468 006 400 29.06.02 11:45 root.qfs

В завершение программа установки попросит определить пароль (password) для пользователя root. Внимание! Не забудьте введенный пароль, QNX это UNIX, а в любом UNIX без прав root вы не можете устанавливать и конфигурировать программное обеспечение, систему т.е. ничего не сможете. В этом месте проявляется отличия QNX-ов, установленных в FAT раздел, и в QNX раздел диска. Здесь трудно сказать, обязаны ли мы в этом недосмотру QSSL, либо в этом есть глубокая сермяжная правда. Во-первых, FAT-установка не позволит завести пользователя root без пароля (с пустым паролем), а QNX-установка позволит (хотя это и слишком опасно и, поэтому, вряд ли имеет смысл). Во-вторых, и это существеннее, FAT-установка попросит (вернее потребует, потому, что иначе вы не пройдёте это место) завести имя ещё одного пользователя, и указать для него пароль (и уже этот пароль может быть пустым).

Примечание: Замечание о начальном вводе пароля. Первоначально, наверное, лучше ввести простейший цифровой пароль, например 1: пароль конвертируется из Microsoft UNICODE в реальный пароль, в том числе, и с преобразованием русских литер в результате не исключено, что вы не сможете войти в систему при первой загрузки. Позже, можно сразу же после первой загрузки, вы можете произвольно изменить пароль.

  • Windows
  • QNX Neutrino RTOS
  • QNX Neutrino RTOS (DMA Disabled)

Примечание: В начальной форме для определения параметров графического режима есть один малоприметный флажок, добраться к которому нет возможности после завершения инсталляции (при снятом флажке создаётся файл /etc/system/trap/nophoton). Этот флажок означает он что-то такое: всегда изначально входить в графическую среду Photon, и по умолчанию он установлен. Если вы, как истинный UNIX-ист, предпочитаете загрузку в режиме текстовой консоли снимите этот флажок: в графический режим Photon вы при этом в любое время сможете входить вручную (командой ph). Эту опцию можно установить (или снять) и позже, вручную удаляя (или создавая) файл nophoton в каталоге /etc/system/trap.

В завершение, посмотрим в окне терминала (pterm) каталог корневой директории созданной системы (он нам понадобится далее по тексту), здесь и далее я буду выделять жирным шрифтом те команды, которые мы вводим с консоли:

  • Файл .inodes это набор информационных записей (inode) файлов, присутствующих в системе, главный справочник файловой структуры диска, что характерно для всякого UNIX;
  • Файл .bitmap это битовая карта разметки участков секторов диска (бит 1 - сектор занят, 0 - свободен);
  • Файл .diskroot нулевой длины файл-признак корневой файловой системы QNX, в вашей дисковой системе может быть несколько альтернативных файловых систем QNX (но только файловых систем, созданных в QNX разделах, в FAT может быть создана только одна корневая файловая системы, даже на физически различных дисках). Если в компьютере найдено несколько корневых файловых систем, то при загрузке система запросит вас, какую из них монтировать как корневую;
  • Файлы .boot и .altboot основной и альтернативный образ ядра системы QNX (к ним мы ещё вернёмся).

Осуществлять загрузку ядра системы с загрузочной дискеты, подготовленной в ходе инсталляции, как это описывалось выше. После завершения начальной загрузки, будет подмонтирована корневая файловая система с FAT32, ядро загружено в оперативную память, а дискета может быть удалена из привода. Начальная загрузка с дискеты не влияет на скорость последующей работы загруженной OS.

Ещё один способ совместного сосуществования на диске QNX с Windows NT / 2000 будет описан ниже, при рассмотрении установки OS в раздел QNX.

Типовая установка в раздел QNX. Это настоящая, взрослая установка, но здесь придётся повозиться существенно больше (и ещё больше в каждом действии понимать что же мы такое делаем). Вся установка QNX в раздел производится в текстовом консольном режиме (ни о каком GUI здесь не может быть и речи), при необходимости, некоторые параметры запрашиваются у пользователя в диалоге: будьте готовы к осмысленным ответам на вопросы.

  • робастая (устойчивая к сбоям)
  • существенно быстрее.

Сразу же обратим внимание, что дистрибутивный CD QNX загрузочный. При записи CD с ISO образа проявите особую тщательность и не вносите изменений, чтобы сохранить эту его особенность (возможно, создать QNX и с дефектного не загрузочного CD, но тогда всё становится на порядок сложнее, и такие варианты будут рассматриваться ниже). Пока мы будем рассматривать установку QNX в раздел диска именно в предположении загрузочности дистрибутива, такая установка и названа выше как типовая.

  • Полная загрузка работоспособной системы с CD. Получив, таким образом, работоспособную QNX OS, вы можете выполнять любые действия, пользуясь возможностями системы, в том числе, и ручную пооперационную установку нового экземпляра на диск. Но этот путь требует глубокого знания консольных команд QNX.
  • Загрузка OS с CD, с подмонтированием уже существующей корневой файловой системы QNX с диска. Позволяет таким образом работать с ранее созданным экземпляром системы (на диске может быть более одного экземпляра корневой файловой системы).
  • Режим создания нового QNX раздела на диске с последующей установкой в него системы QNX. Собственно этот режим нас сейчас и интересует.
  • всё свободное пространство;
  • половину свободного пространства;
  • четверть свободного пространства и т.д.
  • Подготавливает раздел к созданию файловой системы (команда dinit, см. ниже);
  • Отмечает созданный раздел как загрузочный;
  • Записывает начальный QNX загрузчик;
  • Копирует файл образа ядра .boot на раздел;
  • Копирует корневую файловую систему QNX на раздел.

Всё! Даже проще, чем в случае FAT32 (но это только в том случае, если абсолютно всё пройдёт гладко, что тоже иногда случается). Следующую перезагрузку вы делаете уже из раздела QNX под управлением загрузчика QNX. При загрузке он позволяет выбрать раздел диска, с которого будет происходить загрузка, т.е. выбрать одну из установленных у вас OS (при наличии нескольких дисков загрузчик QNX позволяет выбрать и диск загрузки). Такая установка разрешает и проблемы сосуществования QNX с Windows NT / 2000, о чём говорилось выше.

Рассмотрим, как и ранее, каталог корневой директории (приведено только начало):

Установка без загрузочного CD. А что делать в этом случае? Так бывает, например, когда запись CD произведена с отклонениями, пусть незначительными, от исходного ISO образа. Или другой случай и CD нормальный, но SETUP компьютера не позволяет установить загрузку с CD (на старых моделях компьютеров). Установку в раздел можно произвести и в этом случае.

Нам нужна минимальная загрузочная система QNX. Для этого воспользуемся загрузочной дискетой. Её создание - это и есть тот режим Create в правой части окна Windows-инсталляции, о котором я обещал рассказать позже (но дискету можно создать и автономно DOS-программой qmakedsk.exe, находящаяся в корневой директории дистрибутива QNX 6.2). В QNX 6.1 есть почти аналогичная программа, но она нас не устраивает в этом качестве: в QNX 6.1 система на дискете пригодна только для загрузки с монтированием уже ранее существующей корневой директории QNX, но не для создания раздела и корневой системы.

При загрузке с загрузочной дискеты (с нажатием пробел для выбора опциональных возможностей), мы можем по F10 (удобно вместе в F6 для режима детального вывода) перейти в полный цикл подготовки раздела и инсталляции, как это было описано выше.

Если уже ничего не помогает. Может возникнуть ситуация, когда нужно установить QNX на компьютер без CD привода, или при отсутствии загрузочного CD с QNX 6.1, наконец: что-то при установке пошло не так, как описано выше. Не всё ещё потеряно, можно установить QNX и в этом случае. При такой установке нам предстоит вручную, командами QNX, подготовить раздел, а потом перенести в него уже существующую систему. Самое важное, что если мы умеем это делать, то мы сможем произвольно переносить свою систему в любое место, например, во flash диск DiskOnChip! Но этот тип установки только для настоящих мужчин, любящих поработать руками.

Это вид команды для 1-го IDE диска в системе (часто это Primary Master), для других, соответственно: /dev/hd1, /dev/hd2, /dev/hd3 Возможный вид (текстового) экрана вывода fdisk показан ниже. На представленном на рисунке диске нет собственных QNX-разделов, QNX в данном случае установлен в FAT, но видно 2 Linux-раздела (native и swap: в Linux-нотации они привычней как 0x82 и 0x83, но QNX fdisk показывает тип системы в десятичной нотации). Клавишами стрелки Up-Down на клавиатуре вы можете перемещаться между разделами диска, а Left-Right между операциями меню в верхней части экрана. Чем приятен fdisk от QNX (так же как и fdisk в Linux), так это то, что он не сделает изменений (не напортит) в разбивке диска до тех пор, пока вы не выполните операцию Save в меню. Экспериментируйте!

FDISK
Ignore Next Prev 1 2 3 4 Change Delete Boot Unboot Restore Loader Save Quit

_____OS_____ Start End ______Number_____ Size Boot
name type Cylinder Cylinder Cylinders Blocks


Choose a partition by typing the partition number OR moving the pointer
with the UP/DOWN arrows.
Then, choose one of the actions on the top line of the screen.

Drive : /dev/hd0 Config: 255 Heads
Size : 9538 Mbytes 63 Sectors/track
Loader: QNX 1216 Cylinders
512 Block Size


Стандартных UNIX каталогов нет (да и откуда им пока взяться), обращает на себя внимание нулевой размер .boot и отсутствие .diskroot. К этой стадии завершено создание нового рабочего диска QNX, который вы можете примонтировать, например, в качестве /home (естественно, в таком качестве раздел не следует отмечать как загрузочный). Для получения системного диска нам осталось скопировать на него образ ядра системы, и поместить на него файл .diskroot, отмечающий файловую систему как корневую. Эти файлы мы можем взять с дискеты, которая создаётся в DOS программой qmakedsk.exe:
    Минимально необходимые комментарии к этим операциям:
  • не монтируйте дискету с типом DOS (часто используемый ключ t dos);
  • вместо операции cp мы используем POSIX операцию mv во избежание Permission denied, связанного со специфическими атрибутами файлов;

Примечание: В п.3 мы могли бы инициализировать раздел одновременно с созданием в нём образа системы .boot, и тем самым упростить себе последующую жизнь. Делается это такой командой: dinit -hf /fs/fd/.boot при этом, конечно, дискета должна быть уже предварительно смонтирована, как мы это делали в п.4. Но я изложил последовательный путь по шагам, который даёт больше для понимания.

Примечание: Выше было написано уничтожить старый её экземпляр, установленный в FAT - естественно, предполагалось не физическое уничтожение каталога D:/Program Files/qnx, а деинсталляцию по правилам Windows. Но есть ещё одна интересная возможность (иногда, полезная практически, но ещё более для понимания происходящего). Установим загрузку с раздела Windows, с config-меню выбора OS и т.д. При загруженном экземпляре QNX, установленном в FAT32, удалим файл .diskroot в корне её файловой системы. Перезагружаемся образ ядра системы QNX qnxbase.ifs при загрузке перестаёт видеть корневую систему на своём FAT32 разделе и без запроса выбора монтирует файловую систему на разделе QNX. Что мы получили OS, со всеми преимуществами установки в раздел QNX, может быть запускаема из стартового меню Windows.

В завершение. В результате проведения инсталляции любого из описанных выше видов, вы должны получить полноценную работающую OS QNX с установленной графической системой Photon. Возможный вид установленной системы показан на рисунке (обои экрана показанной на рисунке системы отличаются от того, что вы получите сразу после установки, но это дело вкуса и настроек).

Следующее, что вам предстоит это настройки параметров системы, с дальнейшим выбором и установкой программных инструментов, комплектуемых с OS QNX (на 1-м CD QNX Momentics, и более чем 400Mb на 2-м CD). Но это уже совсем другая история, и я постараюсь её описать как-то в другой раз.

Общая информация о QNX 6.X:

[2] - Олег Цилюрик, "Новое лицо QNX", журнал "Программист", №5, Москва, май 2002г.

[3] - Олег Цилюрик, Дмитрий Алексеев "Новое лицо операционной системы QNX", журнал "Компьютеры + Программы", Киев, №7/8, август 2002г.

Вот решил установить QNX на десктоп.
Несмотря не то, что QNX создавалась и используется преимущественно в промышленных, научных и военных целях, она оказалась с довольно приятным и проработанным GUI(в т.ч. с удобным и функциональным рабочим столом), удобной системой настроек и вообще произвела впечатление ОСи, созданной преимущественно для настольных ПК.

Прежде чем приступить к установке, - коротка справка:
QNX - "UNIX system-like" микроядерная операционная система реального времени. Обладает чрезвычайно низкой требовательностью к аппаратным ресурсам. Ядро этой ОС, называемое Neutrino, имеет размер всего 32 кб и выполняет только самые базовые функции, остальные же сервисы реализованы в динамически подключаемых модулях. В минимальной комплектации она умещается на обычной дискете. Главная область ее применения - сложное и ответственное производство с серьезными требованиями к надежности и непрерывности управления, а также ко времени реакции в аварийных ситуациях.

Итак, приступим.
Для начала идем на оф. сайт и скачиваем iso-образ, с которого будем ставить систему.
Там же указываем свой e-mail и, согласившись с положениями лицензии, получаем на свой почтовый ящик ключ активации.
Скачанный образ пишем на болванку, но в случае установки на виртуальную машину(в моем случае это VMware Workstation 5.5.3) это излишне. Создавая вирт.машину, все параметры можно оставить по-умолчанию. Подключаем образ и начинаем установку:
1).

Здесь либо жмем по изображению супер-юзера, либо в строке "Login" пишем "root", поле "Password" оставляем пустым. Как вы наверно уже заметили, в процессе установки создание учетных записей не предусматривалось.

Родная графическая среда - Photon. Его можно при желании сменить на устаревший GUI "QNX Window" либо на "юниксовский" "X Window", гораздо более прожорливый, чем Photon, но зато и более совместимый с другими приложениями.

That's all. Целью не ставилось доказать надежность работы QNX, да это и не нужно, так как использование ее во всех сверхтребовательных к производительности и стабильности работы ОС отраслях говорит само за себя. Целью ставилось представить ее как вполне юзерфрендли-систему, чего она вполне заслуживает.

Установка QNX
Привет и здравствуйте! Столкнулся с проблемой, было необходимо установить ОС QNX. Выбрал для.

установка QNX на VirtualBox
Добрый вечер, вообщем такая проблема при установке , если честно сам мало в этом понимаю, но всё же.

Как запустить qnx 6.3 на vmware 9.0?
Помогите пожалуйста, очень нужно поработать в qnx, однако не могу запустить. скачала виртуальную.

По какой ссылке скачать дистрибутив QNX
Какой дистрибутив QNX скачать для ознакомления, на официальном сайте много разных дистрибутивов, я.

Если вы где то качали лучше могли бы поделится ссылочкой или подсказать как из этого выкрутится?

QNX Программное получение командной строки процесса по известному PID
Известно, что по PID процесса можно получить его символическое имя, если пользоваться функцией.

QNX
А нет ли здесь работающих с QNX?

QNX Си
Ребят,помогите пожалуйста,нужно сдать лабораторную,не могу сделать задание,сижу в панике. .


QNX
Эта OS всё ещё является бесплатной или уже полность стала платной,кто-нибудь знает ?

Вопросы: Рассматриваются вопросы создания образа системы на базе QNX6 Neutrino в основном через интегрированную среду разработки IDE QNX Momentics.

Написано много руководств по установке QNX Neutrino с компакт диска на x86-е системы с BIOS, например книга " QNX Momentics. Основы применения " Сергея Зыля.

В этой статье будут рассмотрены вопросы подготовки образа операционной системы QNX6 для установки и загрузки целевой системы, т.е. тиражируемой единицы оборудования. Под загрузочным образом в QNX, в отличии от пользовательских систем, понимается не "слепок" всей системы, а бинарный файл, обеспечивающий старт ОСРВ QNX и "первичных" компонентов, а, при необходимости, и передачу управления другим скриптам и программам дальнейшей загрузки ОС. Понятие "образ системы" для QNX близко к понятию " образ ядра "(kernel image) для UNIX-систем.

1

При изучении данной статьи предполагается наличие установленной среды разработки IDE Momentics под Linux или Windows(Рис.1.).

Рис.1. Интегрированная среда QNX IDE Momentics

2

Также желательно установить ОСРВ QNX6 Neutrino, например на виртуальную машину (Рис.2.). Это поможет в вопросах выяснения зависимости компонентов/библиотек.

Рис.2. QNX Neutrino под виртуальной машиной VmWare

Чтобы исследовать такую зависимость на запущенной системе, на которой корректно работает необходимая Вам служба, можно выполнить команду вида "pidin -P <компонент> mem", где под "компонентом" понимается интересующий Вас, запущенный в QNX, процесс. Так для компонента поддержки удаленной отладки qconn вывод может быть такого вида:

Или без запуска компонента зависимость можно узнать следующим способом:

Из него видно, что на выбранной системе для работы qconn требуются библиотеки libc.so.3, libsocket.so.3.

Если Вы планируете создавать адаптированный образ системы под свои задачи, и на такой системе есть возможность запустить установленный с диска QNX Neutrino, то после запуска вы сможете таким же способом определить аппаратно-зависимые компоненты, которые необходимо включить в образ. Так сетевой менеджер io-pkt-v4-hc на системе, например, может зависеть от следующих компонентов:

т.е. от libc.so.3, devnp-shim.so, devn-rtl.so.

Описание образа ОСРВ QNX
Под описанием образа QNX (чаще называется "построением целевой системы") понимается описание функционала образа системы QNX Neutrino через текстовый файл *.build или через проект System Builder Project в среде разработки IDE Momentics.

В качестве основы для Build-файла можно использовать примеры из каталога /boot/build в QNX Neutrino, установленного с диска, или $/x86/boot/build на инструментальной системе (Windows, Linux, Neutrino). Файлы из данного каталога имеют определенную структуру и функционал, который можно изменить согласно своим требованиям, т.е. адаптировать образ под свои потребности.

Кроме того можно использовать удобный графический инструментарий среды разработки IDE Momentics. Данное описание основное внимание уделяет графическому описанию образа, как наиболее показательному и удобному.

3

Для создания проекта описания образа в IDE Momentics в нем необходимо выбрать File->New->Project. а в открывшемся окне "Select a wizard" отметить QNX->QNX System Builder Project (Рис.3)

Рис.3.Создание проекта-описания

4

Нажав Next, переходим к окну QNX System Builder, в котором задаём название проекта и, по желанию, его расположение(Рис.4)

Рис.4. Задание имени проекта

5

Следующее окно позволяет создать проект из готового примера, например из bios.build, через Import Existing Buildfile или создать пустой пример под выбранную аппаратную платформу через Create Generic ->Platform to create project for (Рис.5):

Рис.5. Выбор платформы проекта

6

Нажав на кнопку Finish, произойдет генерация проекта с выбранным именем, при этом созданный проект сразу же открывается для его редактирования(Рис.6).

Рис.6. Окно созданного проекта

Рассмотрим описание образа, созданного из готового build-файла bios.build (пример проекта можно получить по ссылке). Как и любой build-файл, bios.build можно логически разделить на три секции. Каждая секция имеет своё назначение, возможные параметры и порядок их указания. В среде разработки IDE Momentics разделение на секции реализовано через представление информации в различных вкладках.

7

Первая секция в среде IDE Momentics описывается в окне Properties, доступного через Window->Show View->Properties(Рис.7). Эта секция описывает создаваемый образ "в целом", т.е. для какой системы он предназначен(процессорная архитектура), параметры образа (базовый адрес, наличие компрессии), используемый модуль startup-* с параметрами, модуль микроядра и менеджера процессов procnto* с параметрами.

Рис.7. Параметры образа системы

В примере на Рис.7 указано, что создается образ для x86-й системы (поле CPU Type с выпадающим списком), при этом система с BIOS – т.е. используется модуль bios.boot (поле Boot File в IDE со значением bios из выпадающего списка) и информация, собранная BIOS, передается в startup-bios (поле Startup), образ создается сжатым по стандартному алгоритму UCL (поле Compressed в IDE). Более подробно доступные параметры и их значения указаны в описании утилиты создания бинарного образа mkifs . В IDE Momentics также доступны поля Image Name для задание имени получаемого бинарного файла *.ifs и поле Boot Script для указания скрипта-описания образа системы *.bsh. Это позволяет в рамках одного проекта создавать несколько различных бинарных образов системы.

В качестве startup* модуля (поле Startup с выпадающим списком) в примере используется стандартный для систем с BIOS startup-bios без дополнительных параметров, при необходимости можно добавить необходимые параметры в поле Startup Arguments согласно документации на startup-bios . Через эти параметры можно настроить вывод отладочной информации на консоль монитора или последовательного порта, произвести специфичные настройки оборудования – работа с процессором и прерываниями, поддержка режима расширенной адресации памяти и многое другое. Если на оборудовании возможны аппаратные проблемы, то можно настроить систему на перезагрузку при таком сбое, вместо того, чтобы просто выводить информацию о нем на экран. Для этого модулю startup-bios достаточно передать параметр "-A".

После исполнения startup* происходит загрузка модуля procnto*(поле Procnto с выпадающим списком в IDE), состоящего из микроядра QNX и менеджера процессов . Доступно несколько бинарных версий модуля procnto*, которые можно посмотреть и выбрать в выпадающем списке поля Procnto в IDE. Версии, оканчивающиеся на "-instr", называются инструментальными и позволяют производить отладку системы на этапе разработки или даже эксплуатации. Для некоторых архитектур (x86, ARM, PPC) доступны модули с поддержкой симметричной многопроцессорности – procnto-smp*, т.е. работа на многопроцессорных и/или многоядерных системах. Для ARM-архитектур с поддержкой расширенных инструкции ARMv7 доступны модули procnto-v6* .

При запуске модуля procnto* ему можно передать параметры через поле Procnto Arguments , указывающие микроядру или менеджеру процессов режимы их работы. Например такие, как ограничение количества файловых дескрипторов системы, принудительный отказ от использования FPU, управление дефрагментацией ОЗУ, ограничение доступных пользователю уровней приоритетов и много другое.

Ещё одним интересным параметром, передаваемым модулю procnto*, может быть параметр поля Use APS?, который включает в ядре поддержку технологии Адаптивного квотирования :

Модулю procnto* также можно передать базовые значения основных переменных окружения (поля Procnto $PATH и Procnto $LD_LIBRARY_PATH в IDE), которые будут применены для системы по умолчанию:

PATH=/proc/boot:/bin:/usr/bin LD_LIBRARY_PATH=/proc/boot:/lib:/usr/lib procnto-instr

Вторая секция описания образа представляет собой Boot Script с последовательностью команд запуска компонентов QNX Neutrino. Это описание в IDE Momentics представлено в виде файла *.bsh, создаваемого в структуре проекта(Рис.8).

8


Рис.8. Описание через bsh-файл

Эта последовательность команд выполняется сразу же после загрузки модуля procnto*. Из образа желательно запускать только критические по времени запуска компоненты, а остальные запускать с внешних носителей уже после старта соответствующих драйверов (сетевых, блочных, flash и т.п.). Для IDE есть возможность в рамках одного проекта иметь несколько bsh-описаний, которые можно выбирать в выпадающем списке поля Boot Script, при этом сборка будет производиться под выбранный скрипт и образ будет формироваться с именем из поля Image Name.

При описании второй секции последовательность команд определяется требованиями к скорости запуска компонентов и зависимостями между запускаемыми компонентами. То есть первыми запускаются те компоненты, требования по времени готовности к которым выше. Из примера такими компонентами могут быть консольный драйвер devc-con, системный логер slogger и сервер PCI – pci-bios. При этом сервер PCI является примером и зависимости компонентов, т.к. перед его запуском необходимо вызвать утилиту seedres. Сам pci-bios также необходимо вызвать предварительно при использовании в системе устройств, работающих по шине PCI (для x86-х систем чаще всего это сетевые, графические, аудио контроллеры, USB и PCI/ PCI-express устройства). При этом перед запуском компонента, который зависит от других, необходимо убедиться, что они корректно исполнились, для чего используются возвращаемые значения исполнения компонентов (обычно это значение "0") или проверяется, зарегистрировал ли свой префикс в /dev/ этот компонент. Например:

pci-bios &
waitfor /dev/pci

Информацию о зависимости компонентов можно найти в документации на интересующий вас основной модуль .

В рамках этого же описания можно использовать специфичный скриптовый язык для вывода информации на консоль при загрузке (команда display_msg <text>), создание символьных ссылок на компоненты (команда procmgr_symlink <источник ссылки> <новое имя ссылки>).

Для каждой команды запуска модуля в скрипте можно задать параметры работы процесса: дисциплина диспетчеризации и уровень приоритета:

[pri=20f] devc-con -n9 &

Можно указать ядро процессора, на котором должен исполняться модуль (для систем с поддержкой многопроцессорности):

[cpu=0] my_program

Исполнение стартового скрипта обычно завершается созданием терминальных консолей

reopen /dev/con1
[+session] sh

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

devb-eide blk automount=hd0t77:/
waitfor /etc/sysinit
sh /etc/sysinit

Кроме того, описание в bsh-скрипте позволяет предохранить систему от изменения последовательности запуска компонентов при старте системы. Таким образом стартовая последовательность может быть изменена только записью нового образа системы. Тем самым повышается надежность системы и защищенность на этапе запуска системы..

Третья секция в IDE Momentics представлена в отдельном окне при открытии файла project.bld созданного проекта (Рис.9).

9


Рис.9. Включение компонентов в образ

Эта секция содержит информацию о библиотеках, утилитах, системных менеджерах, которые включены в образ и необходимых для запуска системы и исполнения возложенного на него функционала на начальном этапе загрузки. В поле Images, по группам добавляются компоненты – утилиты (Binaries), библиотеки (Shared Libraries), ссылки (Symbolic Links). В поле Filesystem сразу же отображается структура полученной файловый системы, генерируемой при выполнении образа. Каждый добавленный компонент можно настроить через окно Properties – куда разместить, с какими правами, кому принадлежит, как работать с сегментами кода и данных и т.п.

Кроме того для каждого компонента через его свойства (Properties) можно указать из какого места на инструментальной системе использовать компонент при сборке (Filename on Host), куда его разместить на целевой системе (Location In Image) и какие права ему назначить (File Permissions).

В свойствах компонента через раздел Memory также можно указать, как должен исполняться сам компонент – код (Code Segment) и данные утилит (Data Segment) должны копироваться из места их размещения при каждом их вызове (значение Copy) или необходимо значения брать из места его размещения (Use In Place). Data Segment = Copy необходимо указывать, если возможен многократный вызов компонента, это актуально для большинства утилит и не применимо для библиотек.

10

После того, как описание образа закончено необходимо из такого описания получить бинарный образ для загрузки. В IDE Momentics для этого необходимо собрать проект стандартным способом: Build Project (Рис.10.).

Рис.10. Сборка образа системы

При этом выполняется команда, похожая на команду сборки образа из консоли:

mkifs -vvv bios.build bios.ifs

После чего в каталоге Images появится нужный образ bios.ifs. Полученный образ необходимо разместить в месте, из которого произойдет его загрузка и исполнение (например, каталог /.boot в разделе с файловой системой qnx6fs), или вручную перенести образ в память и запустить его на исполнение (пример реализации на ARM):

load -r -b 0x100000 test.raw; go 0x100000

11

Для большинства систем в проекте построения явно или неявно указано место в памяти, куда производиться загрузка образа. Однако, например для x86-х систем, стандартное значение в 4Mbyte (0x400000) для больших образов системы может приводить к проблеме загрузки. Для её решения необходимо вместо стандартного значения указать [image=8m] (в поле Image Address ввести значение 0x800000) (Рис.11).

Рис.11. Изменение адреса размещения образа системы

В остальном проблем при использовании стандартных методов загрузки через BIOS быть не должно, конечно если Ваша система поддерживается ОС QNX Neutrino.

Вывод: Используя продукт QNX, с помощью достаточно простого и в то же время функционального инструментария, можно создать адаптированный под Ваши требования и оборудование системный образ. Принцип описания образа достаточно простой и переносимый между версиями ОСРВ QNX Neutrino – при таком переносе изменения в образе вносить нет необходимости (или они делаются по-минимуму). При использовании мощного инструментария IDE Momentics создание образа сводится к выбору из выпадающего списка необходимых значений, указанию параметров образа, компонентов и описания последовательности запуска их при старте образа. Сборка самого образа производится на уровне упаковки компонентов в единый файл по принципу, подобному архивации, не используя компиляцию из исходных кодов, как в большинстве других систем, что существенно сокращает скорость сборки и проверки корректности его работы.

Читайте также: