motofan logo
20 страниц V  1 2 3 > »         
> 

Пробуем портировать игры и проги сами

Lubomyr
сообщение 19.5.2008, 17:49


Ветеран
*****

Группа: Пользователи
Сообщений: 541
Регистрация: 25.8.2005
Из: Україна, Львів
Пользователь №: 49 683
Модель телефона: Samsung i5700
Прошивка: Android 2.1

Рейтинг: 285.5



Пробуем портировать игры и проги сами

Что для этого нужно

Вариант 1 (Windows+Cygwin+a1200devezx sdk)

1) Устанавливаем Cygwin под виндой (CygWin берем отсюда http://cygwin.com/ )
выбираем нужные пакеты при установке

devel->gcc
devel->make
devel->autoconf
devel->automake
perl->perl
utils->patch

2) копируем свои либы с телефона
для этого используем консоль или телнет

cd /usr/lib
tar zcvf /mmc/mmca1/ezx-lib.tar.gz *

после этой опрации на карте памяти должен появится файл ezx-lib.tar.gz копируем его на комп

3) качаем сдк http://www.motorolafans.com/MotoModFiles/E...20080304.tar.gz

4) качаем игровое окружение (games-env-cygwin.tar.gz)
Изображение
Зеркало1 на megaupload.com
Зеркало2 на humyo.com

5) копируем
ezx-lib.tar.gz
samr7-ezx-crosstool-foxe6-sdk-20080304.tar.gz
games-env.tar.gz
в папку где установлен Cygwin (по умолчанию C:\cygwin)

6) запускаем Cygwin
и выполняем следующие операции для распаковки архивов

cd /
tar zxvf samr7-ezx-crosstool-foxe6-sdk.tar.gz

cd /opt/dev-ezx/a1200/lib (или cd /opt/dev-ezx/e6/lib в зависимости от модели)
tar xvf ezx-lib.tar.gz

cd /
tar -C /usr/local/ -xzvf /games-env-cygwin.tar.gz

Все теперь все окружение для портирования готово

после запуска CygWin набираем

source /usr/local/setenv-a1200.sh

(или вместо a1200 - e6 в зависимости от вашей модели телефона)

7) качаем исходники игры которую хотим портировать и распаковываем в нужную папку (для примера /home/lubomyr)
рекомендуется чтоб в исходниках присутствовал файл configure или (autogen.sh, configure.am, makefile.am)
в зависимости насколько мы правильно зададим параметры конфигурации зависит и наш успех портации игры
пареметры которые могут использоватся при конфигурации можно увидить используя

./configure --help

в конце списка флажки которые нужно указать перед конфигурацией

CFLAGS='-O2 -pipe -mcpu=iwmmxt -mtune=iwmmxt'
CXXFLAGS='-O2 -pipe -mcpu=iwmmxt -mtune=iwmmxt'
NM=arm-linux-nm
LD=arm-linux-ld
CC=arm-linux-gcc
CXX=arm-linux-g++
RANLIB=arm-linux-ranlib
AR=arm-linux-ar
AS=arm-linux-as
STRIP=arm-linux-strip
OC=arm-linux-objcopy
LDFLAGS='-L/opt/dev-ezx/a1200/lib/ezx/lib/inputmethods -L/opt/crosstool/gcc-3.3.6-glibc-2.3.2/arm-linux/arm-linux/lib -L/opt/dev-ezx/a1200/lib -L/opt/dev-ezx/a1200/lib/ezx/lib -L/usr/local/lib'
CPPFLAGS='-I/opt/crosstool/gcc-3.3.6-glibc-2.3.2/arm-linux/arm-linux/include -I/opt/dev-ezx/a1200/include -I/opt/dev-ezx/a1200/include/ezx -I/usr/local/include'
LIBS='-ldl -lutil -lqte-mt -lpthread -lezxappbase -lezxappsdk -lezxopenwindow -lipp-miscGen -lipp-jp -lezxjpeg -lezxpm -lpthread'

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

параметры при конфигурации которые можно использовать
./configure
--build=x86_64-unknown-linux-gnu
--host=arm-linux
--backend=sdl
--with-includes=/usr/local/include
--with-libraries=/usr/local/lib
--with-sdl
--with-sdl-gfx
--with-sdl-sound
--with-mikmod
--enable-shared
--disable-debug
--disable-mmx
--disable-ati
--disable-gtk-player
--disable-opengl-player
--without-gtk
--enable-threads

для примера для портации большинства игр я использовал
./configure --build=x86_64-unknown-linux-gnu --host=arm-linux

а по умолчанию рекомендую использовать как минимум
./configure --host=arm-linux

8) если конфигурация успешно проходит выполняем команду
make

9) если make успешно проходит остается только протестировать не телефоне, ну еще поковырятся в исходниках и поправить клавиатуру под наши телефоны

Вариант 2 (Linux+a1200blackhawk sdk)

для пользователей винды устанавливаеи andlinux http://www.andlinux.org/downloads.php

1) устанавливаем такие пакеты под Линуксом
make
automake
autoconf
patch

2) копируем свои либы с телефона
для этого используем консоль или телнет

# cd /mmc/mmca1
# tar -C /usr -czvf a1200-lib.tar.gz lib

после этой опрации на карте памяти должен появится файл a1200-lib.tar.gz копируем его на комп

3) качаем a1200crosstool http://rapidshare.com/files/124067106/a120...ool.tar.gz.html

4) качаем sdk http://keaglez.e2mod.com/upload/sdk/a1200-...680i-SDK.tar.gz

5) качаем окружение для портирования (games-env-linux.tar.gz)
Зеркало 1 http://fileshare.in.ua/1852796
Зеркало 2 http://www.megaupload.com/?d=HNX25H19
Зеркало 3 http://www.humyo.com/F/784305-347095687

6) запускаем под линуксом Терминал

$ su // после ввода этой команды набираем root password (

# mkdir /opt/a1200
# mkdir /opt/sdk
# cd /
# tar -C /opt -xzvf /a1200-crosstool.tar.gz
# tar -C /usr/local -xzvf /games-env-linux.tar.gz
# tar -C /opt/a1200 -xzvf /a1200-lib.tar.gz
# tar -C /opt/sdk -xzvf /a1200-e2-e680i-SDK.tar.gz
# cp -a /opt/sdk/a1200/* /opt/a1200

Я не уверен правильно ли я описал все операции но если у вас в результате будут на месте такие папки значит все получилось правильно

/opt/a1200/ezx
/opt/a1200/lib
/opt/a1200/qt
/opt/crosstool/arm-linux-gnu
/opt/crosstool/bin
/opt/crosstool/include
/opt/crosstool/lib
/opt/crosstool/ и др.
/usr/local/setenv-a1200.sh
/usr/local/bin
/usr/local/include
/usr/local/lib

Все теперь все окружение для портирования готово

теперь после запуска термила будем набирать

source /usr/local/setenv-a1200.sh

7) качаем исходники игры которую хотим портировать и распаковываем в нужную папку (для примера /home/lubomyr)
рекомендуется чтоб в исходниках присутствовал файл configure или (autogen.sh, configure.am, makefile.am)
в зависимости насколько мы правильно зададим параметры конфигурации зависит и наш успех портации игры
пареметры которые могут использоватся при конфигурации можно увидить используя

./configure --help

в конце списка флажки которые нужно указать перед конфигурацией

CFLAGS='-O2 -pipe -mcpu=iwmmxt -mtune=iwmmxt'
CXXFLAGS='-O2 -pipe -mcpu=iwmmxt -mtune=iwmmxt'
LDFLAGS='/opt/crosstool/arm-linux-gnu/lib /opt/a1200/lib /opt/a1200/lib/ezx/lib /opt/a1200/lib/ezx/lib/inputmethods /usr/local/lib'
CFLAGS='/opt/crosstool/arm-linux-gnu/include /opt/a1200/ezx/include /opt/a1200/qt/include /usr/loca/include'
LIBS='-ldl -lutil -lqte-mt -lpthread -lezxappbase -lezxappsdk -lezxopenwindow -lipp-miscGen -lipp-jp -lezxjpeg -lezxpm'

параметры при конфигурации которые можно использовать те же что и для Cygwin
./configure --build=x86_64-unknown-linux-gnu --host=arm-linux
и т.д.

8) если конфигурация успешно проходит выполняем команду
make

9) если make успешно проходит остается только протестировать не телефоне, ну еще поковырятся в исходниках и поправить клавиатуру под наши телефоны

при создании даного решения
использовались материалы
http://www.motorolafans.com/forums/showthread.php?t=17584
http://keaglez.blogspot.com/2008/01/a1200e...-blackhawk.html
SDL-либы и SDL-окружение от Евгения (eug)

Сообщение отредактировал Lubomyr - 16.3.2009, 19:43
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Borman92
сообщение 19.5.2008, 19:14


Мастер
****

Группа: Пользователи
Сообщений: 252
Регистрация: 14.1.2008
Из: Москва
Пользователь №: 160 063
Модель телефона: A1200e
Прошивка: R541_G_11.52.14R_U3

Рейтинг: 55



Цитата(Lubomyr @ 19.5.2008, 20:49) *

<...>
параметры при конфигурации которые можно использовать
./configure
--build=x86_64-unknown-linux-gnu
--host=arm-linux
--without-x
--target=sdl
--backend=sdl
--enable-zlib
--enable-vorbis
--enable-mad
--enable-flac
<...>


--build=x86_64-unknown-linux-gnu
А ведь после такого народ ломанется ставить этот параметр... И обязательно кто-то им что-то сломает... Короче - если не понимаете его смысл, лучше не ставить
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Yoda_49
сообщение 19.5.2008, 21:26


Мастер
****

Группа: Пользователи
Сообщений: 191
Регистрация: 5.3.2008
Из: РБ Минск
Пользователь №: 165 650
Модель телефона: Razr XT912 / XT1080M
Прошивка: xxx

Рейтинг: 3



Lubomyr, а не мог бы ты объяснить людям далёким от линукса, все эти термины smile.gif Всё расписано нормально, но только хотелось бы знать:
1) что такое cygwin и с чем его едят? Это обычный компилятор для линукса?
2) Другие пакеты, на которых галочка стоит, нужны?

4) Зачем нужен телнет при копировании библиотек?
5) Что значит 'свои' либы?
6) Что такое игровое окружение?

Не серчай smile.gif Тут людей разбирающихся в этом единицы и им это уже не нужно. А вот остальным пояснение поможет. И вообще, на первый взгляд, всё так просто..... чёж никто этим раньше не занимался? sad.gif

Сообщение отредактировал Yoda_49 - 19.5.2008, 21:37
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Borman92
сообщение 20.5.2008, 5:28


Мастер
****

Группа: Пользователи
Сообщений: 252
Регистрация: 14.1.2008
Из: Москва
Пользователь №: 160 063
Модель телефона: A1200e
Прошивка: R541_G_11.52.14R_U3

Рейтинг: 55



Yoda_49,
1) Cygwin - имитация линукса под винду, с тем же успехом можншь работать просто в линуксовой консоли
2) галочки лучше не убирай
3) странная у тебя нумерация...
4) телнет чтобы зайти в консоль на теле и сделать архив с либами, потом любым способом копируешь его на комп
5) родные либы телефона - те, которые внедрены в прошивку (моторолой)
6) окружение - набор прог, скриптов, заголовков для компиляции... как-то строго определить это трудно
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
kyst123
сообщение 20.5.2008, 9:33


Интересующийся
**

Группа: Пользователи
Сообщений: 66
Регистрация: 28.1.2008
Пользователь №: 161 573
Модель телефона: А1200е
Прошивка: кутопия

Рейтинг: 0



пробовал под федорой 8 жалуестья на точто у него нет arm-linux-strip
не подскажете где это взять и что это есть?

Сообщение отредактировал kyst123 - 20.5.2008, 9:34
Пользователю запрещено создавать сообщения
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Lubomyr
сообщение 20.5.2008, 11:26


Ветеран
*****

Группа: Пользователи
Сообщений: 541
Регистрация: 25.8.2005
Из: Україна, Львів
Пользователь №: 49 683
Модель телефона: Samsung i5700
Прошивка: Android 2.1

Рейтинг: 285.5



Цитата(kyst123 @ 20.5.2008, 12:33) *

пробовал под федорой 8 жалуестья на точто у него нет arm-linux-strip
не подскажете где это взять и что это есть?


Возможно под федорой 8 нужно будет использовать другой сдк
http://keaglez.blogspot.com/2008/01/a1200e...-blackhawk.html

там вместо arm-linux добавляется префикс gnu (arm-linux-gnu)

и используется окружение с блекхаковского сдк
a1200-e2-e680i-SDK.tar/pictureflow/setenv-a1200.sh

Цитата

#!/bin/bash

export EZXDIR=/opt/a1200/ezx
export QTDIR=/opt/a1200/qt
export QMAKESPEC=$QTDIR/mkspecs/qws/linux-gnu-ezx-g++
export TMAKEPATH=$QTDIR/tmake/lib/qws/linux-gnu-ezx-g++
export CROSSTOOL_DIR=/opt/crosstool
export PATH=$QTDIR/bin:$QTDIR/tmake/bin:$CROSSTOOL_DIR/bin:$PATH
export LFLAGS_EXTRA=" -Wl,-rpath-link,$CROSSTOOL_DIR/arm-linux-gnu/lib "

export ARCH=iwmmxt
export CC=arm-linux-gnu-gcc
export CXX=arm-linux-gnu-g++
export LD=arm-linux-gnu-ld
export AR=arm-linux-gnu-ar
export AS=arm-linux-gnu-as
export OC=arm-linux-gnu-objcopy
export RANLIB=arm-linux-gnu-ranlib
export STRIP=arm-linux-gnu-strip


Сообщение отредактировал Lubomyr - 20.5.2008, 11:38
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Borman92
сообщение 20.5.2008, 11:46


Мастер
****

Группа: Пользователи
Сообщений: 252
Регистрация: 14.1.2008
Из: Москва
Пользователь №: 160 063
Модель телефона: A1200e
Прошивка: R541_G_11.52.14R_U3

Рейтинг: 55



Вообще-то, под линуксом совершенно нормально собирается сдк из dev-ezx, который выложен здесь в первом посте скомпилированный, и инструкция по компиляции которого (с минимальными изменениями применимая и под линуксом) выложена в теме (если не вру) "Компиляция нативных приложений". Короче, поиск рулит wink.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Lubomyr
сообщение 23.5.2008, 11:26


Ветеран
*****

Группа: Пользователи
Сообщений: 541
Регистрация: 25.8.2005
Из: Україна, Львів
Пользователь №: 49 683
Модель телефона: Samsung i5700
Прошивка: Android 2.1

Рейтинг: 285.5



Все таки я сделал большую ошибку добавив в стартовый скрипт /usr/local/setenv.sh строчки

export CFLAGS='-O2 -pipe -mcpu=iwmmxt -mtune=iwmmxt'
export CXXFLAGS='-O2 -pipe -mcpu=iwmmxt -mtune=iwmmxt'

у меня с этими параметрами перестал компилится ScummVM

вместо этого ставим в стартовый скрипт
export LDFLAGS='-L/opt/dev-ezx/a1200/lib/ezx/lib/inputmethods -L/opt/crosstool/gcc-3.3.6-glibc-2.3.2/arm-linux/arm-linux/lib -L/opt/dev-ezx/a1200/lib -L/opt/dev-ezx/a1200/lib/ezx/lib -L/usr/local/lib'
export CPPFLAGS='-I/opt/crosstool/gcc-3.3.6-glibc-2.3.2/arm-linux/arm-linux/include -I/opt/dev-ezx/a1200/include -I/opt/dev-ezx/a1200/include/ezx -I/usr/local/include'

чтоб нормально конфигурировался путь к либам и хидерам

или просто меняем файл /usr/local/setenv.sh

Сообщение отредактировал Lubomyr - 23.5.2008, 11:56
Прикрепленный файл setenv.zip   ( 1.43 килобайт ) Кол-во скачиваний: 441
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
perk11
сообщение 23.5.2008, 18:01


Интересующийся
**

Группа: Пользователи
Сообщений: 42
Регистрация: 8.3.2006
Из: Москва
Пользователь №: 73 374
Модель телефона: LG Optimus Black

Рейтинг: 16



А что нужно ставить под линуксом для кросскомпиляции? а то Cygwin тянуть не хочется..
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
John Johonson
сообщение 24.5.2008, 0:36


Новичок
*

Группа: Пользователи
Сообщений: 11
Регистрация: 30.5.2007
Из: Новосибирск >> Академгородок
Пользователь №: 136 554
Модель телефона: SLVR L7
Прошивка: HotMix E0R_RB

Рейтинг: 2



Цитата(perk11 @ 24.5.2008, 1:01) *

А что нужно ставить под линуксом для кросскомпиляции? а то Cygwin тянуть не хочется..

mkezx.org там mkezx, но при сборке он пытается все зависимости вытянуть из инета =/
openezx.org там ezx crosstools для linux, доступный пакет там кажется для федоры
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Пробуем портировать игры и проги сами · Motorola ROKR E6, E6e, E6tv, MING A1200, A1200i, A1200e, A1200r, A1200w, A1600 · Forum
 

20 страниц V  1 2 3 > » 
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 26.4.2024, 14:57

Форум живёт: