logo
Литература_1 / photon_old

Сборка всего этого в единое целое

А теперь соберём все эти кусочки вместе и построим простой сценарий, который будет запускать наш встроенный Photon. Вы должны уже были создать следующие директории:

Скопируйте в /phembed/bin необходимые бинарники:

cp /usr/photon/bin/Photon /phembed/bin

cp /usr/photon/bin/phfontFF /phembed/bin

cp /usr/photon/bin/io-graphics /phembed/bin

cp /usr/photon/bin/devi-hirun /phembed/bin

cp /usr/photon/bin/pwm /phembed/bin

Скопируйте в /phembed/lib необходимые библиотеки:

cp /usr/lib/libph.so.1 /phembed/lib

cp /usr/lib/libphrender.so.1 /phembed/lib

cp /usr/lib/libffb.so.1 /phembed/lib

cp /usr/lib/libdisputil.so.1 /phembed/lib

cp /lib/dll/devg-rage.so /phembed/lib

Нам понадобится ещё одна библиотека. Если Вы хотите запускать приложения, разработанные в PhAB, которые требуют libAp.so.1, то Вам эта библиотека и понадобится. Мы рекомендуем сделать её доступной:

cp /lib/libAp.so.1 /phembed/lib

Нам также надо создать линки в директории /phembed/lib. Это нужно для того, чтобы приложения, которые вместо .so.1 смотрят в .so, работали нормально. Выполните следующее:

cd /phembed/lib

ln -s libAp.so.1 libAp.so

ln -s libph.so.1 libph.so

ln -s libphrender.so.1 libphrender.so

ln -s libffb.so.1 libffb.so

ln -s libdisputil.so.1 libdisputil.so

Теперь рассмотрим графические драйверы. В приведенном выше примере мы запускали драйвер devg-rage.so со следующими опциями:

dldevg-rage.so -IO -d0x1002, 0x4c42

(Мы говорили об этом при обсуждении выхода pidin arg).

Если у Вас имеется другой графический драйвер, Вы должны его скопировать в /phembed/lib.

Теперь мы можем снова взглянуть на шрифты. У Вас имеется директория /phembed/font_repository, заполненная нужными Вам файлами .ttf и содержащая файлы fontmap, fontdir и fontext, модифицированные так, как это описано выше.

Теперь у нас есть все кусочки, необходимые нам для того, чтобы попытаться собрать нашу встроенную систему Photon. Простейшим способом попробовать это выполнить – использовать вторую машину, соединённую с первой по telnet или нуль-модемному последовательному кабелю.

Если Вы используете нуль-модемный кабель, Вы можете запустить оболочку shell на Вашей терминальной машине, набрав –t /dev/ser1 Ksh на машинке с QNX Neutrino. Если скорость передачи (baud rate) и управление потоком на последовательных портах согласованы, на Вашем терминале появится приглашение оболочки (#). Мы предполагаем, что вы добились работы этого соединения и что у вас доступно приглашение оболочки на каком-то терминале, который связан с Вашей машиной QNX Neutrino.

Полезно было бы иметь для запуска Photon'а какой-то скрипт – основной сценарий. Вот основной сценарий, который запускает Photon, использующийся в приведенном выше примере:

cd /phembed/bin

./Photon &

on -w /dev/photon -W10

./phfontFF -d /phembed/font_repository -c 20K -j -s 50K -F 10 -S 50 &

on -w /dev/phfont -W10

./io-graphics -g1024x768x32 -dldevg-rage.so -I0 -d0x1002,0x4c42 &

/usr/photon/bin/phcalc -x100 -y100 &

/usr/photon/bin/phcalc -x300 -y100 &

Скопирйте этот скрипт в файл /phembed/ph-start и сделайте его исполняемым (chmod a+x ph-start).

Обратите внимание в приведенном выше сценарии на следующее:

До тех пор, пока не доступно имя требуемого устройства, для прекращения сценария мы используем команду on. Более подробно см. "Справочник утилит QNX Neutrino".

Если Вы всё выполнили удачно, Вы можете (из Вашего терминала) запустить основной сценарий ph-start и увидеть Photon с двумя окнами калькуляторов бок о бок на экране. Убедитесь, что Вы вышли из какой-либо сессии Phonon'а перед тем, как запустить сценарий ph-start.

Yandex.RTB R-A-252273-3
Yandex.RTB R-A-252273-4