Мануал: Компиляция приложений для MotoMAGX OS, создание пакетов
Для портирования и сборки приложений для нашей платформы в первую очередь нам нужны:
1. Компьютер с Linux OS. Или Windows OS с установленным Virtual BOX/VMware Player, в крайнем случае под виндой можно воспользоваться AndLinux'ом или Cygwin'ом. 2. SDK & Toolchains для MotoMagX + Исходники программ/приложений. 3. Программист/Разработчик или начинающий программист (1 шт.).
Я рассмотрю наиболее приемлемый многим начинающим разработчикам способ, с использованием популярного дистрибутива Ubuntu 11 (Linux OS) в виртуальной машине VMware Player в Windows OS. Те пользователи, у которых стоит Linux OS на компе, могут скачать SDK & Toolchains и сразу перескочить на пункт #4.
Итак, начнём:
1. Загрузка необходимых для разработки инструментов и файлов:
1.1. Скачиваем ISO-образ диска Ubuntu 11. Я качал себе в городской сетке, пошарьтесь в своих тоже, может найдёте. На всякий случай, ссылка: [Download | Скачать] на скачивание с официального сайта: http://www.ubuntu.com Там вы можете выбрать любую конфигурацию под свой компьютер (amd/i386) итд.
1.3. Скачиваем SDK & Toolchains для MotoMagX. [Download | Скачать] - полная версия, включающая в себя 2 тулчейна SDL (От испанцев) + QT (От Ant-On'a) а так же python, bennugd, boost и множество различных библиотек. Инструкция по установке есть внутри или ниже можно прочитать подробно. Тем, кто хочет разрабатывать приложения на SDL, можно скачать небольшой тулчейн для сборки приложений: [Download | Скачать][Mirror | Зеркало]
2. Мануалы по установке VMware, Ubuntu и SDK & Toolchains в картинках:* * - картинки открывать лучше всего в новом окне, нажав колёсико мышки. После открытия воспользуйтесь масштабированием, например в стандартном просмоторщике картинок.
2.1. Установка программы VMware для самых маленьких. 2.2. Установка Linux OS в программу VMware, на примере Ubuntu 11. 2.3. Установка дополнительных инструментов (VMware-tools) в Ubuntu 11. Необходимо для перемещения файлов между Ubuntu в виртуальной машине и виндой.
2.1.: 2.2.: 2.3.:
3. Мануалы по установке, текстом.
3.1. Установка VMware-tools для Ubuntu 11. 3.1.1. Стартуем Ubuntu 11, вверху нажимаем "Virtual Machine", затем "Install VMware Tools... 3.1.2. Ждём загрузки инструментов (нужно подключение к интернету!), затем снова вверху нажимаем "Virtual Machine" -> "Install VMware Tools... 3.1.3. С открывшегося диска копируем архив в формате *.tar.gz например в /home/user (user - ваше имя при установке Ubuntu), распаковываем его. 3.1.4. Запускаем терминал и выполняем в нём следующее:
Code
cd /home/user/vmware-tools-distrib sudo ./vmware-install.pl
После команды sudo надо ввести пароль, который мы указывали при установке Ubuntu. 3.1.5. Умный скрипт сам предложит вам вводить нужные значения (в квадратных скобках), вводите их. 3.1.6. После успешной установки инструментов, перезагрузите компьютер. 3.1.7. Данные инструменты помогут с лёгкостью переносить файлы из Windows в Linux Ubuntu, просто копируя их или перенося из окна в окно, как вы это делали в Windows. Кроме того, появится множество разрешений для экрана системы.
3.2. Общие папки между системами для обмена файлами. 3.2.1. Стартуем Ubuntu 11, вверху нажимаем "Virtual Machine", затем "Virtual Machine Settings" 3.2.2. Переходим на вкладку "Options", выбираем "Shared Folders" 3.2.3. Переключатель "Folder sharing" ставим в положение "Always enabled", нажимаем кнопку "Add". 3.2.4. На компьютере выбираем любую папку, добавляем её, жмём ОК. 3.2.5. Теперь в Ubunte, в папке /mnt/hgfs видим добавленную нами папку из Windows.
4. Установка SDK & Toolchains.
4.1. Скачиваем архив тулчейна (*.tar.gz), перемещаем его в папку /home/user (user - ник при установке Ubuntu). 4.2. Выполняем команды, новая строка - Enter, вместо user естественно пишем своё имя, после команды sudo потребуется ввести пароль, который мы указывали при установке Ubuntu.
4.3. Обратите внимание на имя скаченного вами архива с тулчейном! Именно его нужно вводить в восьмой строке кода, приведённого выше! 4.4. Установленный тулчейн:
5. Запуск окружения, компиляция программ и helloworld'a.
5.1. Чтобы запустить окружение для компиляции под MotoMagx, достаточно выполнить в терминале следующее:
Code
cd /home/z6 . setenv-z6.sh
После этого, компиляторы, библиотеки и хэдеры будут браться из нашего тулчейна, а не с компьютера.
5.2. HelloWorld. 5.2.1. Создаём пустой файл с именем hello.c в папке /home/z6 (Правой клавишей по пустому месту, "Create Document" -> "Empty File") 5.2.2. Редактируем его содержимое следующим образом, сохраняем:
Code
// Hello World for Motorola Magx!
#include <stdio.h>
int main(void) { printf ("Hello Moto!!!\n"); return 0; }
5.2.3. Компилируем:
Code
cd /home/z6 arm-linux-gnueabi-gcc hello.c -o hello
5.2.4. Полученный исполнительный файл "hello" кидаем на телефон и запускаем через телнет!
5.3. Работа с утилитой Make* и SDL библиотекой. * - Утилита Make позволяет компилировать достаточно сложные проекты. Подробнее тут: http://ru.wikipedia.org/wiki/Make 5.3.1. Скачиваем следующие исходники, распаковываем в папку /home/z6: [Download | Скачать] 5.3.2. Запускаем терминал и окружение для компиляции, переходим в папку с проектом, выполняем команду make:
Code
cd /home/z6/ballgame_src make
После выполнения команды будет выполнена компиляция проекта и создан mgx пакет. Для очистки проекта от объектного кода и бинарников, следует выполнить make clean. Для создание mgx пакета - команду make mgx. 5.3.3. Теперь можно кинуть пакет на карту памяти и попробовать запустить. (Для SDL приложений вам потребуется установленные SDL-библиотеки!) 5.3.4. Структура простейшего Makefile для компиляции HelloWorld'a:
Code
# MakeFile for HelloWorld # Motorola MotoMAGX
CC = arm-linux-gnueabi-gcc STRIP = arm-linux-gnueabi-strip
CFLAGS = # Необходимые флаги LDFLAGS = # Необходимые флаги OPTIMIZATION = -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -O2 # Оптимизация под процессор
INCLUDE = $(CFLAGS) $(OPTIMIZATION) -I/dir # Путь к нужным хэдэрам. LIBS = $(LDFLAGS) -L/dir # Путь к нужным либам
Если положить данный Makefile рядом с hello.c, и выполнить make, получим исполнительный файл. 5.3.5. Замена строк, для портирования SDL проектов:
Code
CC:=gcc ---> CC:=arm-linux-gnueabi-gcc cc=gcc ---> CC=arm-linux-gnueabi-gcc cxx=g++ ---> CXX=arm-linux-gnueabi-g++ ld=ld ---> LD=arm-linux-gnueabi-ld ar=ar ---> AR=arm-linux-gnueabi-ar as=as---> AS=arm-linux-gnueabi-as oc=oc ---> OC=arm-linux-gnueabi-objcopy ranlib=ranlib ---> RANLIB=arm-linux-gnueabi-ranlib strip=strip ---> STRIP=arm-linux-gnueabi-strip В INCLUDE или CFLAGS добавляем `sdl-config --cflags` В LIBS или LDFLAGS добавляем `sdl-config --libs` -lнеобходимая_библиотека
5.4. Работа с утилитой configure* и SDL библиотекой. * - Скрипт configure создаёт Makefile и позволяет компилировать сложные проекты, состоящие из множества файлов. Подробнее тут: http://en.wikipedia.org/wiki/Configure_script 5.4.1. Пример работы. Скачиваем исходники, распаковываем в папку /home/z6: [Download | Скачать] 5.4.2. Выполняем следующее:
Code
cd /home/z6/PTC-demos ./configure --host=arm-linux-gnueabi make
После этих команд у нас появятся исполнительные файлы Fire и Tunnel. Копируем их в корень карточки телефона. 5.4.3. Запускаем через телнет следующим образом:
5.4.4. Для установки файлов в нужную директорию используется prefix и команда make install:
Code
mkdir /home/z6/test cd /home/z6/PTC-demos ./configure --host=arm-linux-gnueabi --prefix=/home/z6/test make make install
После этого нужные нам файлы будут в папке /home/z6/test. 5.4.5. Для чистки объектного кода и бинарников используется команда make clean, для удаления сконфигурированных Makefile'ов используется команда make distclean (полная очистка).
5.5. Деббагер "Segmentation fault" 5.5.1. Качаем gdb и распаковываем архив на карту памяти, в папку /mmc/mmca1/games Исполнительные файлы должны быть собраны с префиксом '-g' и не должны быть пострипаные 5.5.2. Выполняем (gdb):
Code
ulimit -c unlimited ./<bin_app> Segmentation fault (core dumped) файл <core> будет создан ../bin/gdb ./<bin_app> <core>
cd /home/z6/MgxBox/MgxBox_GUI_ru make PLATFORM=EZX-ZN5 cd /home/z6/MgxBox/p7zip_9.20.1 make all2 make install cp -r /mmc/mmca1/p7zip/lib/p7zip /home/z6/MgxBox/Release/app/p7zip
5.8.3. Кидаем папку /home/z6/MgxBox/Release на телефон и пробуем запустить бинарник в папке Release/app, если всё нормально, должно получиться что-то типа этого:
6. Создание пакетов вручную.
6.1. Создание MGX пакета: 6.1.1. Создаём папку, помещаем в нее необходимые файлы (дата файлы приложения, исполнительные файлы, скрипт запуска, иконку). 6.1.2. Создаём в папке файл "Имя папки".cfg, редактируем его содержимое следующим образом:
Code
Name = Test Exec = run.sh Icon = icon.png Author = Ant-ON Version = 1.0 Comment = Port for ZN5 by EXL
Где, Name - имя программы, Exec - запускаемый файл, Icon - иконка, Author - Автор программы, Version - Версия программы, Comment - Комментарий. 6.1.3. Запаковываем папку в любой удобный вам архив (RAR, TAR, GZ, 7Z, ZIP), и переименовываем в "имя программы".mgx
6.2. Создание PEP пакета: 6.2.1. Создаём папку с именем "app", помещаем в нее необходимые файлы (дата файлы приложения, исполнительные файлы, скрипт запуска). 6.2.2. Создаём рядом с папкой файл "description.ini", редактируем его содержимое следующим образом:
[InstallApp] Name = Jump n Blob Exec = run.sh InstallPath = ../../mmc/mmca1/.Programs/jump_n_blob/ AppLockable = 1 Author = http://www.2d-retroperspectives.org | Philipp. Port by -=Strelok=-, EXL (c) MotoFan.Ru 08.01.2010 Version = 0.1 Daemon = 1 BigIcon= icon.png AniIcon= icon.png Icon= icon.png
[AddAppToMenu] ParentFolder= root
Где, Name - имя программы, Exec - запускаемый файл, Icon | AniIcon | BigIcon - иконка, Author - Автор программы, Version - Версия программы, InstallPath - Путь установки. 6.2.3. Создаём иконку, рядом с папкой "app" и "description.ini". 6.2.4. Запаковываем иконку, папку "app" и "description.ini" в архив формата TAR, затем сжимаем его в GZ переименовываем в "имя программы".pep
7. Полезные ссылки, документация, наши проекты.
7.1. Исходники, сайты с исходниками. Множество интересных проектов есть на code.google.com и sf.net 7.1.1. Исходники проектов, базирующихся на SDL: libsdl.org/games libsdl.org/demos [url=http://dl.openhandhelds.org/cgi-bin/gp2x.cgi?0,0,0,0,46]http://dl.openhandhelds.org/cgi-bin/gp2x.cgi?0,0,0,0,46[/url] [url=http://dl.openhandhelds.org/cgi-bin/dingoo.cgi?0,0,0,0,46]http://dl.openhandhelds.org/cgi-bin/dingoo.cgi?0,0,0,0,46[/url] 7.1.2. Исходники проектов, базирующихся на QT: http://www.elsix.org/index.php?w=browse - В основном там под Sharp Zaurus, но идеи создания приложений и сорцы найти можно.
Онлайн кредиты. Как много сломанно копий. И Как много еще сломают. Небольшая статья по теме Онлайн кредитования утверждение кредита в режиме он-лайн очень практично в том случае, если у Вас нет времени на походы по банкам. Конечно же, не все банки предлагают такую услугу, но все же на сайтах лидирующих банков Вы сыщет нужную Вам страничку.
Сразу уточним, что через интернет можно оформить покупательский кредит. На выдачу же более порядочных займов в режиме онлайн можно получить только утверждение кредитного комитета, после чего Вам никак не удастся избегнуть посещения банка, так как ему необходимо будет кропотливо протестировать Вашу платежеспособность. Впрочем, в банк достанется идти даже и по поводу узкопотребительского кредита, так как финансы на дом никто не дает.
Через интернет банки призывают оформить заявку на снятие кредита в распорядке онлайн. Однако, пока что именно это величают онлайн-кредитованием. Для этого, зайдя на сайт нужно Вам банка и найдя раздел «онлайн-сервис» или «онлайн-заявка», необходимо заполнить анкету. Если банк согласен предоставить заемщику кредит, то его оповещают об этом по телефонному аппарату, после чего просят прийти в ближайшее помещение банка, где и начинает конечное решение о выдаче денег. вестимо, такое решение принимается после проверки всех необходимых документов. Таким образом, онлайн-кредитование помогает выгадать. ant. потратить время на заполнение заявки на выуживание кредита. В остальном вся процедура является стандартной.
Сейчас онлайн-кредиты не используют особой репутациею, так как не имеют совершенно никаких положительных сторон перед средними. Со слов банков, работа через интернет содействует спад себестоимости операций, поэтому бывает замечена вероятность рекомендовать сетевым посетителям более соблазнительные условия кредитования. Возможно, со временем это действительно осуществиться. http://rusbanksite.ru/%D0%B1%D0%B0%D0%BD%D0%BA-%D0%BE%D0%BD%D0%BB%D0%B0%D0%B9%D0%BD-%D0%B7%D0%B0%D1%8F% D0%B2%D0%BA%D0%B0-%D0%BD%D0%B0-%D0%BA%D1%80%D0%B5%D0%B4%D0%B8%D1%82/