![>](style_images/1/nav_m.gif)
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.148.145.215] |
![]() |
|
Сообщ.
#1
,
|
|
|
После неудачной попытки с наскока одолеть сборку Qt приложений переведём своё внимание на снаряды полегче. (к Qt вероятно мы ещё вернёмся)
Наше приложение, в данном примере, будет базироваться на библиотеке Nano-X Window System - в прошлом, MicroWindows. Если более конкретно, то мы соберём один из прилагающихся к ней пример. Конфигурация Nano-X задаётся содержимым файла microwindows/files/defconfig, который, чуть позже, нам ещё предстоит подредактировать. Устанавливаем общие настройки сборки ~/gumstix/gumstix-oe/extras/profile # # Environment setup for gumstix oe # export GUMSTIXTOP="${HOME}/gumstix/gumstix-oe" export OEBRANCH="${GUMSTIXTOP}/org.openembedded.snapshot" export GUMSTIXBRANCH="${GUMSTIXTOP}/com.gumstix.collection" export USERBRANCH="${GUMSTIXTOP}/user.collection" export PATH="${GUMSTIXTOP}/bitbake/bin:$PATH" export BBPATH="${GUMSTIXTOP}/build:${USERBRANCH}:${GUMSTIXBRANCH}:${OEBRANCH}" umask 0002 # # end gumstix oe # Запускаем сборку Nano-X (microwindows) ![]() ![]() bitbake microwindows Если Вы выходите в интернет через proxy, то в случае неуспеха, целесообразно установить соответствующие переменные окружения: ![]() ![]() export http_proxy=<ip>:<port> export ftp_proxy=<ip>:<port> На выходе, получаем пакет для установки: ~/gumstix/gumstix-oe/tmp/deploy/glibc/ipk/armv5te/microwindows-*0.91-r2_armv5te.ipk Все скаченные исходники автоматом складываются в: /usr/share/sources И в процессе отработки собирающего скрипта разворачиваются в: ~/gumstix/gumstix-oe/tmp/work Как уже и было сказано выше, для сборки приложения, мы возьмём один из примеров: ~/gumstix/gumstix-oe/tmp/work/armv5te-angstrom-linux-gnueabi/microwindows-0.91-r2/microwindows-0.91/src/demos/nanox Мой взгляд пал на тетрис: ntetris.c, ntetric.h Чтоб действовать в рамках bitbake, создаём (пусть, nxdemo) директорию в: ~/gumstix/gumstix-oe/user.collection/packages В этой директории создаём сценарий сборки: nxdemo_1.0.0.bb ![]() ![]() DESCRIPTION = "hello world sample program" DEPENDS = "microwindows" PR = "r0" SRC_URI = "file://ntetris.c\ file://ntetris.h" S = "${WORKDIR}" do_compile () { ${CC} ${CFLAGS} ${LDFLAGS} -lgcc_s -lnano-X -lm ntetris.c -o nxdemo } do_install () { install -d ${D}${bindir}/ install -m 0755 ${S}/nxdemo ${D}${bindir}/ } FILES_${PN} = "${bindir}/nxdemo" Далее, bitbake nxdemo и получаем на выходе очередной пакет ~/gumstix/gumstix-oe/tmp/deploy/glibc/ipk/armv5te/nxdemo_*1.0.0-r0_armv5te.ipk Имея эти два пакета, уже можно их попробовать запустить на эмуляторе, предварительно установив в систему: ipkg install <имя.ipk> Также, понадобится установить libjpeg62_6b-r7_armv5te.ipk необходимый для nano-X - параметризуется конфигурацией nano-X перед сборкой Всё это здорово, но для запуска на реальном железе это не совсем подходит - требуется мышь, да и обещан был запуск без установки в систему ![]() Мышь, в нашем случае, призван заменить тачскрин, т.е. необходимо nano-X скрестить с имеющимся tslib Об этом информацию можно почерпнуть тут: Nano-X with tslib support Копируем патч microwindows-tslib.patch в ~/gumstix/gumstix-oe/com.gumstix.collection/packages/microwindows/files Вставляем команду необходимости его внедрения в скрипт сборки microwindows_0.91.bb ![]() ![]() require microwindows.inc SRC_URI = " \ ftp://ftp.microwindows.org/pub/microwindows/microwindows-src-${PV}.tar.gz \ file://defconfig \ file://pagesize.patch;patch=1 \ file://staticwin.patch;patch=1 \ file://microwindows-tslib.patch;patch=1 \ " Корректируем defconfig ![]() ![]() ... SERMOUSE = N ... TSLIBMOUSE = Y ... Пересобираем nano-X ![]() ![]() bitbake -c clean microwindows bitbake microwindows Теперь можно устанавливать в устройство.... Для того, чтоб избежать установку, в данном случае, достаточно в систему прописать дополнительный путь к новым библиотекам. Прописывать следует в файл /etc/ld.so.conf и затем перезагрузиться или выполнить ldconfig В моём случае содержимое файла стало таковым (третья строчка моя): ![]() ![]() /usr/local/lib /usr/X11R6/lib /media/hdd/usr/lib ![]() Всё ![]() ![]() ![]() ![]() root@gumstix-custom-verdex:~$ ls /dev/input event0 touchscreen0 root@gumstix-custom-verdex:~$ cd /media/hdd root@gumstix-custom-verdex:/media/hdd$ cat /etc/ld.so.conf /usr/local/lib /usr/X11R6/lib /media/hdd/usr/lib root@gumstix-custom-verdex:/media/hdd$ usr/bin/nano-X & root@gumstix-custom-verdex:/media/hdd$ usr/bin/nxdemo ![]() p.s. прикладываю содержимое с флешки и microwindows-tslib.patch p.p.s. исходное содержимое пакетов располагается в директориях install, для примера: ~/gumstix/gumstix-oe/tmp/work/armv5te-angstrom-linux-gnueabi/microwindows-0.91-r2/install Сообщения были разделены в тему "Флуд" Прикреплённый файл ![]() |