<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=307378&amp;view=findpost&amp;p=2632846</guid>
        <pubDate>Tue, 29 Jun 2010 13:06:24 +0000</pubDate>
        <title>Первая игра, запуск с карточки без установки библиотек</title>
        <link>https://forum.sources.ru/index.php?showtopic=307378&amp;view=findpost&amp;p=2632846</link>
        <description><![CDATA[SVK: После <a class='tag-url' href='http://forum.sources.ru/index.php?showtopic=300413' target='_blank'>неудачной попытки с наскока</a> одолеть сборку Qt приложений переведём своё внимание на снаряды полегче. (к Qt вероятно мы ещё вернёмся)<br>
<br>
Наше приложение, в данном примере, будет базироваться на библиотеке <a class='tag-url' href='http://www.microwindows.org/' target='_blank'>Nano-X Window System - в прошлом, MicroWindows</a>. Если более конкретно, то мы соберём один из прилагающихся к ней пример.<br>
<br>
Конфигурация Nano-X задаётся содержимым файла <a class='tag-url' href='http://gitorious.org/gumstix-oe/mainline/blobs/verdex/recipes/microwindows/files/defconfig' target='_blank'>microwindows/files/defconfig</a>, который, чуть позже, нам ещё предстоит подредактировать.<br>
<br>
Устанавливаем общие настройки сборки<br>
<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">~/gumstix/gumstix-oe/extras/profile</div><div class="body">#<br>
# Environment setup for gumstix oe<br>
#<br>
<br>
export GUMSTIXTOP=&quot;&#036;{HOME}/gumstix/gumstix-oe&quot;<br>
export OEBRANCH=&quot;&#036;{GUMSTIXTOP}/org.openembedded.snapshot&quot;<br>
export GUMSTIXBRANCH=&quot;&#036;{GUMSTIXTOP}/com.gumstix.collection&quot;<br>
export USERBRANCH=&quot;&#036;{GUMSTIXTOP}/user.collection&quot;<br>
<br>
export PATH=&quot;&#036;{GUMSTIXTOP}/bitbake/bin:&#036;PATH&quot;<br>
export BBPATH=&quot;&#036;{GUMSTIXTOP}/build:&#036;{USERBRANCH}:&#036;{GUMSTIXBRANCH}:&#036;{OEBRANCH}&quot;<br>
<br>
umask 0002<br>
<br>
#<br>
# end gumstix oe<br>
#</div></div><br>
<br>
Запускаем сборку Nano-X (microwindows)<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">bitbake microwindows</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>Тем самым инициировав автоматическую скачку необходимых исходных кодов и их сборку; также автоматически будут собираться и все необходимые для этого проекта дополнительные модули. Зависимости указаны в скрипте сборки <a class='tag-url' href='http://gitorious.org/gumstix-oe/mainline/blobs/verdex/recipes/microwindows/microwindows_0.91.bb' target='_blank'>microwindows.bb</a>, а именно: <a class='tag-url' href='http://gitorious.org/gumstix-oe/mainline/blobs/verdex/recipes/microwindows/microwindows.inc' target='_blank'>microwindows.inc</a>.<br>
Если Вы выходите в интернет через proxy, то в случае неуспеха, целесообразно установить соответствующие переменные окружения:<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">export http_proxy=&#60;ip&#62;:&#60;port&#62;</div><div class="code_line">export ftp_proxy=&#60;ip&#62;:&#60;port&#62;</div></ol></div></div></div></div><br>
На выходе, получаем пакет для установки: ~/gumstix/gumstix-oe/tmp/deploy/glibc/ipk/armv5te/microwindows-*0.91-r2_armv5te.ipk<br>
<br>
Все скаченные исходники автоматом складываются в: /usr/share/sources<br>
И в процессе отработки собирающего скрипта разворачиваются в: ~/gumstix/gumstix-oe/tmp/work<br>
<br>
Как уже и было сказано выше, для сборки приложения, мы возьмём один из примеров: ~/gumstix/gumstix-oe/tmp/work/armv5te-angstrom-linux-gnueabi/microwindows-0.91-r2/microwindows-0.91/src/demos/nanox<br>
<br>
Мой взгляд пал на тетрис: ntetris.c, ntetric.h<br>
Чтоб действовать в рамках bitbake, создаём (пусть, nxdemo) директорию в: ~/gumstix/gumstix-oe/user.collection/packages<br>
В этой директории создаём сценарий сборки: nxdemo_1.0.0.bb<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">DESCRIPTION = &quot;hello world sample program&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">DEPENDS = &quot;microwindows&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">PR = &quot;r0&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">SRC_URI = &quot;file://ntetris.c\</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; file://ntetris.h&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">S = &quot;${WORKDIR}&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">do_compile () {</div><div class="code_line">&nbsp;&nbsp; &nbsp;${CC} ${CFLAGS} ${LDFLAGS} -lgcc_s -lnano-X -lm ntetris.c -o nxdemo</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">do_install () {</div><div class="code_line">&nbsp;&nbsp; &nbsp;install -d ${D}${bindir}/</div><div class="code_line">&nbsp;&nbsp; &nbsp;install -m 0755 ${S}/nxdemo ${D}${bindir}/</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">FILES_${PN} = &quot;${bindir}/nxdemo&quot;</div></ol></div></div></div></div>Создаём директорию files в nxdemo, куда и переносим интересующие нас исходники<br>
<br>
Далее, bitbake nxdemo и получаем на выходе очередной пакет ~/gumstix/gumstix-oe/tmp/deploy/glibc/ipk/armv5te/nxdemo_*1.0.0-r0_armv5te.ipk<br>
<br>
Имея эти два пакета, уже можно их попробовать запустить на <a class='tag-url' href='http://forum.sources.ru/index.php?showtopic=294431&view=findpost&p=2615251' target='_blank'>эмуляторе</a>, предварительно установив в систему: ipkg install &lt;имя.ipk&gt;<br>
Также, понадобится установить libjpeg62_6b-r7_armv5te.ipk необходимый для nano-X - параметризуется конфигурацией nano-X перед сборкой<br>
<br>
<br>
Всё это здорово, но для запуска на реальном железе это не совсем подходит - требуется мышь, да и обещан был запуск без установки в систему  ;)  <br>
<br>
Мышь, в нашем случае, призван заменить тачскрин, т.е. необходимо nano-X скрестить с имеющимся tslib<br>
Об этом информацию можно почерпнуть тут: <a class='tag-url' href='http://www.armbedded.eu/node/104' target='_blank'>Nano-X with tslib support</a><br>
Копируем патч <a class='tag-url' href='http://download.armbedded.eu/software/microwindows-tslib.patch' target='_blank'>microwindows-tslib.patch</a> в ~/gumstix/gumstix-oe/com.gumstix.collection/packages/microwindows/files<br>
Вставляем команду необходимости его внедрения в скрипт сборки microwindows_0.91.bb<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">require microwindows.inc</div><div class="code_line">&nbsp;</div><div class="code_line">SRC_URI = &quot; \</div><div class="code_line">&nbsp;&nbsp;ftp://ftp.microwindows.org/pub/microwindows/microwindows-src-${PV}.tar.gz \</div><div class="code_line">&nbsp;&nbsp;file://defconfig \</div><div class="code_line">&nbsp;&nbsp;file://pagesize.patch;patch=1 \</div><div class="code_line">&nbsp;&nbsp;file://staticwin.patch;patch=1 \</div><div class="code_line">&nbsp;&nbsp;file://microwindows-tslib.patch;patch=1 \</div><div class="code_line">&nbsp;&quot;</div></ol></div></div></div></div><br>
Корректируем defconfig<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">...</div><div class="code_line">SERMOUSE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = N</div><div class="code_line">...</div><div class="code_line">TSLIBMOUSE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = Y</div><div class="code_line">...</div></ol></div></div></div></div><br>
<br>
Пересобираем nano-X<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">bitbake -c clean microwindows</div><div class="code_line">bitbake microwindows</div></ol></div></div></div></div><br>
<br>
Теперь можно устанавливать в устройство....<br>
<br>
Для того, чтоб избежать установку, в данном случае, достаточно в систему прописать дополнительный путь к новым библиотекам.<br>
Прописывать следует в файл /etc/ld.so.conf и затем перезагрузиться или выполнить ldconfig<br>
В моём случае содержимое файла стало таковым (третья строчка моя):<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">/usr/local/lib</div><div class="code_line">/usr/X11R6/lib</div><div class="code_line">/media/hdd/usr/lib</div></ol></div></div></div></div>hhd - это флешка отформатированная в былые годы под HHD, но думаю, что это не принципиально, а купить MicroSD для этого дела руки никак не доходят :)<br>
<br>
Всё :huh: загружаемся, запускаемся, радуемся  :D <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">root@gumstix-custom-verdex:~$ ls /dev/input</div><div class="code_line">event0 &nbsp; &nbsp; &nbsp; &nbsp;touchscreen0</div><div class="code_line">root@gumstix-custom-verdex:~$ cd /media/hdd</div><div class="code_line">root@gumstix-custom-verdex:/media/hdd$ cat /etc/ld.so.conf</div><div class="code_line">/usr/local/lib</div><div class="code_line">/usr/X11R6/lib</div><div class="code_line">/media/hdd/usr/lib</div><div class="code_line">root@gumstix-custom-verdex:/media/hdd$ usr/bin/nano-X &amp;</div><div class="code_line">root@gumstix-custom-verdex:/media/hdd$ usr/bin/nxdemo</div></ol></div></div></div></div><br>
<br>
<a class='tag-url' href='http://www.flickr.com/photos/s-v-k/4745257035/sizes/l/' target='_blank'><img class='tag-img' src='http://farm5.static.flickr.com/4081/4745257035_0ccdc82de4_m.jpg' alt='user posted image'></a><br>
<br>
p.s. прикладываю содержимое с флешки и microwindows-tslib.patch<br>
p.p.s. исходное содержимое пакетов располагается в директориях install, для примера: ~/gumstix/gumstix-oe/tmp/work/armv5te-angstrom-linux-gnueabi/microwindows-0.91-r2/install<br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Сообщения были разделены в тему &quot;<a class='tag-url' href='https://forum.sources.ru/index.php?showtopic=419618' target='_blank'>Флуд</a>&quot;</span></span>]]></description>
        <author>SVK</author>
        <category>Gumstix</category>
      </item>
	
      </channel>
      </rss>
	