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

Разработка софта под MOTOMAGX, начну небольшой HOWTO

Abram
сообщение 21.5.2008, 21:56


Прелесть какая гадость
*******

Группа: Разработчики
Сообщений: 1 963
Регистрация: 24.6.2005
Из: .ru - рідна Україна
Пользователь №: 44 825
Модель телефона: Moto G XT1033
Прошивка: CyanogenMod
Победитель конкурса 2008

Рейтинг: 744



Ну вот и пришла нам пора писать под наши телефоны нативный софт smile.gif.

Итак, поехали. Для начала нам нужен Linux и Z6 SDK. Linux берем кто какой хочет, желательно 32-битный (64-битного SDK нет, а как он себя поведет под 64-битной ОС - не знаю). Пользователи Windows могут воспользоваться, например, andLinux: http://www.andlinux.org/. Я буду рассматривать Ubuntu. Для Debian или andLinux все то же самое. Разница с другими дистрибутивами - в основном только в способе установки програм. С этого момента я считаю, что у вас уже установлен Linux, настроена сеть, установлены subversion (svn) и ncftp. Если же нет:
Код
sudo apt-get install subversion ncftp

Небольшое введение насчет Linux я написал, дабы избежать пустых вопросов shuffle.gif
SDK берем здесь:
Код
svn co https://ezx.darktech.org/svn/trunk/arm-eabi

Не забывем иногда делать
Код
svn up

Я, например, иногда кое-что изменяю для совместимости с Е2. Патчи и фиксы, а также дополнения приветствуются! clap.gif
Кто не знает что такое SVN - тем в гугл.

Временно сабж лежит здесь: http://depositfiles.com/files/7781186 и здесь: http://narod.ru/disk/2474622000/arm-eabi.tar.gz.html
Теперь рассмотрим на примере

Возьмем, например, Z6SnesX (эмулятор SNES для Z6, будет выложен позже. Ребят, GPL - он и в Африке GPL, но кто скомпилит - не выкладывайте, имейте совесть! Дождитесь моего релиза)
Код
svn co https://fig.vam/svn/ne/dam

Рассмотрим немного порезаный Makefile:
Код
TOOLPREFIX:=    /home/abram/z6/arm-eabi
#TOOLPREFIX:=    /arm-eabi
#Remember to set your own TOOLPREFIX.
QTDIR    :=    $(TOOLPREFIX)/lib/qt-2.3.8
EZXDIR    :=    $(TOOLPREFIX)/lib/ezx-z6
UPLOAD_PATH :=  /mmc/mmca1/bin/
CC    =    $(TOOLPREFIX)/bin/arm-linux-gnueabi-gcc
CXX    =    $(TOOLPREFIX)/bin/arm-linux-gnueabi-g++
LD    =    $(TOOLPREFIX)/bin/arm-linux-gnueabi-g++
CFLAGS    =    -pipe -Wall -W -O2 -DNO_DEBUG $(INCPATH)
CXXFLAGS=    -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -DNO_DEBUG $(INCPATH)
INCPATH    =    -I$(QTDIR)/include -I$(EZXDIR)/include -I $(TOOLPREFIX)/arm-linux-gnueabi/include
LDFLAGS    =    -s
LINK    =    $(TOOLPREFIX)/bin/arm-linux-gnueabi-gcc
LFLAGS    =    
LIBS    =    $(SUBLIBS) -L$(TOOLPREFIX)/arm-linux-gnueabi/lib -L$(QTDIR)/lib -L$(EZXDIR)/lib -lm -lqte-mt -lezxpm -ljpeg -lezxappbase -lezxtapi-xscale-r -llog_util -llighting
MOC    =    $(QTDIR)/bin/moc
UIC    =    $(QTDIR)/bin/uic

TAR    =    tar -cf
GZIP    =    gzip -9f

...пропустим...

install: $(TARGETS)
    ncftpput -u root -p "" 192.168.16.2 $(UPLOAD_PATH) $(TARGETS)

Для компиляции нужно лишь заменить переменную TOOLPREFIX.
Подробнее рассмотрим цель install: она автоматически заливает все на телефон cool.gif через ftp и зависит от целей компиляции. То есть, если выполнить make install - програма скомпилируется (если нужно) и установится на телефон в UPLOAD_PATH. Для этого нужна утилита ncftpput - установите ее с помощью менеджера пакетов своего дистрибутива.

Запуск програмы

Для запуска програмы подключаемся к телефону через telnet, cd в нужную папку и запускаем smile.gif. Например,
Код
./Z6SnesX

Имейте ввиду, перед запуском програм из telnet нужно установить необходимые переменные окружения! Для этого скопируем прямо в консоль содержимое файла /etc/initservices/services/ezxenv.sh
Для Z6 это:
Код
#! /bin/sh
#set up environment
export QTDIR=/usr/lib/ezx
export LD_LIBRARY_PATH=$QTDIR/lib:/usr/lib:/lib:/usr/language/vui/english/lib:/usr/language/vui/mandarin/lib:/usr/language/vui/common/lib:/usr/local/lib
export LD_HWCAP_MASK=
export EZX_PLUGINS_DIR=/hatcreek/plugins

# font path
if test -f /usr/language/fonts/fontdef.cfg;
then
    export EZX_RES_FONT_PATH=/usr/language/fonts
else
    export EZX_RES_FONT_PATH=$QTDIR/lib/fonts
fi

# slidertone path
export EZX_RES_SOUNDS_SLIDERTONE_PATH=/usr/data_resource/sound/slider_tones

# icon path
export EZX_RES_ICON_PATH=/usr/data_resource/icon

# string path
export EZX_RES_STRING_PATH=/usr/language/string

export EZX_NATIVE_APP_PATH=/usr/SYSqtapp
export EZX_PRELOAD_APP_PATH=/usr/data_resource/preloadapps
export AM_SYS_STATE_SHM_PATH=/usr/SYSqtapp/am

# per LIBll14192, set LOCPATH
export LOCPATH=/usr/language/string
export PREF_LANGUAGE_PATH=${LOCPATH}
export EZX_LANG=/usr/language/

export EZX_LOCAL_PATH=/ezxlocal/
export EZX_LOCAL_DOWNLOAD_PATH=${EZX_LOCAL_PATH}download/
export EZX_LOCAL_APP_WRITE_PATH=/ezxlocal/download/appwrite
export EZX_APP_WRITE_PATH=/ezxlocal/download/appwrite

export LJ_DATA_VISIBLE=/ezxlocal/download/mystuff/.system
export LJ_DATA_PRIVATE=/ezxlocal/download/appwrite
export LJ_CONFIG=/ezxlocal/download/appwrite

export TPA_HOME=${EZX_LOCAL_PATH}

#sound path
export EZX_RES_SOUNDS_PATH=/usr/data_resource/sound
export EZX_RES_SOUNDS_UISOUNDS_PATH=/usr/data_resource/sound/ui_sounds
export EZX_RES_SOUNDS_RINGTONES_PATH=/usr/data_resource/sound/ringtones

#dm
export dm_setting_root=${EZX_APP_WRITE_PATH}/setup
export dm_setting_plugin=/usr/lib/ezx/lib/dm_plugin

export EZX_EXTRA_SYS_DATA_PATH='/ezxlocal/.system/'

#java
export J2ME_SECURITY_DIR='/ezxlocal/download/java'
export JAVA_HOME_CARD1='/mmc/mmca1/.system/java'
export JAVA_HOME_CARD2='/mmc/mmcb1/.system/java'

export J2ME_SYSDATA_DIR=${LJ_DATA_VISIBLE}/java
export JAVA_HOME_FLASH=${LJ_DATA_VISIBLE}/java

export MIDP_SYSDIR='/ezx_user/download/appwrite/java'
export J2ME_POLICY_DIR='/usr/securesetup'

export MYSTUFF_DATA_PATH='/ezxlocal/download/mystuff/'

#browser
export BROWSER_FS_ROOT=/ezxlocal/download/browser

export FLASH_MOUNT_PATH=/ezxlocal
export EZX_INSTALLED_QT_PATH=/ezxlocal
export MYSTUFF_DATA_PATH=/ezxlocal/download/mystuff/

Для V8 и других не знаю sad.gif. Кто скажет - с меня плюс. Хотя скорее всего такой же.
Итак, запускаем и вуаля! - видим на экране телефона свою програму clap.gif. Или не видим. Или видим Segmentation fault - это уж кто как напишет wink.gif.

Удачи!
Разбор библиотек
Читаем здесь: https://ezx.darktech.org/wiki/ReverseSo

Флуд и оффтоп наказываю! Уже трое людей получило по -2 с удалением сообщения
На вопросы отвечаю smile.gif

Сообщение отредактировал Abram - 8.9.2008, 10:49
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Bogd@n
сообщение 22.5.2008, 11:08


Авторитет
********

Группа: Пользователи
Сообщений: 2 492
Регистрация: 3.11.2007
Из: Украина,Артёмовск
Пользователь №: 152 746
Модель телефона: XT1060
Прошивка: 4.4 root


Настроение:
Качай разум, а не мышцы.



Рейтинг: 1059



это теперь можно теперь любой софт с компового линуха на мобилу портировать?

Не любой, конечно! - Abram

по каким принципам определяется подлежит сфот портированию или нет?

Зависит от используемых библиотек, в основном. Например, большинство графических програм портировать очень сложно. С некоторыми проще - например, у XMMS2 рабочий бинарник и бинарник интерфейса находятся отдельно. Также не стоит забывать, что на телефоне все-таки спецефический Linux - Abram


Сообщение отредактировал Abram - 28.5.2008, 19:58
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
azt59
сообщение 22.5.2008, 12:57


Мастер
****

Группа: Пользователи
Сообщений: 258
Регистрация: 26.9.2005
Из: Perm
Пользователь №: 52 732
Модель телефона: E398/V3x/C650/Z6
Прошивка: ---

Рейтинг: 140



Вопросик по SDK..
сливаем его с нета кладём куда удобно а дальше что? требуется ли какаято настройка компиляторов или самого СДК и тд...
расскажи по поведу тулчейна...
//ну это до полноты мануала)

Нет, никаких настроек не нужно. Все что нужно - все в Makefile. Конечно же, для некоторых программ другие системы сборок, но направление я дал - Abram

Сообщение отредактировал Abram - 22.5.2008, 18:16
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Wisher
сообщение 22.5.2008, 22:07


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

Группа: Пользователи
Сообщений: 39
Регистрация: 18.5.2005
Пользователь №: 42 650
Модель телефона: Rizr Z3, Rokr Z6

Рейтинг: 0



это теперь можно портировать с е2 или с минга черный и белый список звонящих?

С Е2 можно портировать почти всё. Сорцы в студию smile.gif - Abram

не уверен что есть сырцы, китайцы писали https://forum.motofan.ru/index.php?act=Attach&type=post&id=141465

Тогда наверное не судьба biggrin.gif - Abram

Сообщение отредактировал Abram - 23.5.2008, 10:09
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
ruffus_kz
сообщение 23.5.2008, 16:28


Новичок
*

Группа: Пользователи
Сообщений: 3
Регистрация: 25.3.2008
Пользователь №: 167 643
Модель телефона: Z6
Прошивка: R60_G80.33.44R

Рейтинг: 0



Если портировать какую-либо программу для работы с Интернетом, например консольную ICQ, подключится ли она к серверу. Или gprs/edge требует нечто иное?

Нужно ковырять NAPI и DSM. Не подключится sad.gif. Даже wget не работает. Есть мысль посмотреть в сторону BindToSocket... Но для сетевых функций нет хедеров sad.gif. Если кто может помочь - я не против biggrin.gif - Abram

Сообщение отредактировал Abram - 23.5.2008, 16:40
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
_brn
сообщение 24.5.2008, 9:32


Новичок
*

Группа: Пользователи
Сообщений: 10
Регистрация: 22.5.2008
Пользователь №: 172 898
Модель телефона: z6

Рейтинг: 0



Цитата(Abram @ 22.5.2008, 1:56) *


Необходима помощь в доводке до ума этого проекта:
Код
svn co https://ezx.darktech.org/svn/trunk/projects/regman

Это даст нам возможность реализовать на Z6 менеджер установленного софта.



Не удается получить его с svn. Какая-то ошибка 200

Тьфу, перепутал линк. "был пьян. вспылил" smile.gif. Уже поправил. s/browser/svn/ - Abram

Сообщение отредактировал Abram - 24.5.2008, 12:10
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ivan A-R
сообщение 24.5.2008, 12:06


Новичок
*

Группа: Пользователи
Сообщений: 4
Регистрация: 10.1.2008
Из: SPb
Пользователь №: 159 630
Модель телефона: Z6
Прошивка: R60_G_80.33.44R

Рейтинг: 0



Цитата(_brn @ 24.5.2008, 13:32) *

Не удается получить его с svn. Какая-то ошибка 200


Правильно
Код
svn co https://ezx.darktech.org/svn/trunk/projects/regman/

Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
_brn
сообщение 28.5.2008, 17:32


Новичок
*

Группа: Пользователи
Сообщений: 10
Регистрация: 22.5.2008
Пользователь №: 172 898
Модель телефона: z6

Рейтинг: 0



Так. появилось свободное время. Могу заняться.
Что вообще требуется от менеджера пакетов? Какой формат пакетов? Может выделим в отдельную тему? Наметим ключевые точки развития проекта?

Не собирает "ld cannot find -lezxam"

В makefile есть строки
Код
CC    =    $(TOOLPREFIX)/bin/arm-linux-gnueabi-gcc
CXX    =    $(TOOLPREFIX)/bin/arm-linux-gnueabi-g++
LD    =    $(TOOLPREFIX)/bin/arm-linux-gnueabi-g++

ИМХО, должно быть
Код
CC    =    $(TOOLPREFIX)/bin/arm-linux-gnueabi-gcc
CXX    =    $(TOOLPREFIX)/bin/arm-linux-gnueabi-g++
LD    =    $(TOOLPREFIX)/bin/arm-linux-gnueabi-ld


Хотя так тоже не собирает

Сообщение отредактировал _brn - 28.5.2008, 18:13
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
BeZ
сообщение 28.5.2008, 18:53


Moto(sh)Coder
*******

Группа: Разработчики
Сообщений: 1 542
Регистрация: 8.10.2003
Пользователь №: 743
Модель телефона: только не moto

Рейтинг: 788.5



все нормально собирается...
я собирал это...

может ты toolprefix не правильно указал?
вродебы это единственное, что необходимо проверить у себя на машине...

так же пересобирал Z6Snes...
правда не без помощи Abrama...

так же уже второй день экспериментирую GUI...

все это делаю под форточками с установленным в них andLinux...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Abram
сообщение 28.5.2008, 19:37


Прелесть какая гадость
*******

Группа: Разработчики
Сообщений: 1 963
Регистрация: 24.6.2005
Из: .ru - рідна Україна
Пользователь №: 44 825
Модель телефона: Moto G XT1033
Прошивка: CyanogenMod
Победитель конкурса 2008

Рейтинг: 744



Цитата(_brn @ 28.5.2008, 20:32) *

Так. появилось свободное время. Могу заняться.
Что вообще требуется от менеджера пакетов? Какой формат пакетов? Может выделим в отдельную тему? Наметим ключевые точки развития проекта?

Не собирает "ld cannot find -lezxam"

В makefile есть строки
Код
CC    =    $(TOOLPREFIX)/bin/arm-linux-gnueabi-gcc
CXX    =    $(TOOLPREFIX)/bin/arm-linux-gnueabi-g++
LD    =    $(TOOLPREFIX)/bin/arm-linux-gnueabi-g++

ИМХО, должно быть
Код
CC    =    $(TOOLPREFIX)/bin/arm-linux-gnueabi-gcc
CXX    =    $(TOOLPREFIX)/bin/arm-linux-gnueabi-g++
LD    =    $(TOOLPREFIX)/bin/arm-linux-gnueabi-ld


Хотя так тоже не собирает

Регистрируйся на https://ezx.darktech.org, там открыт проэкт и несколько тикетов. Высылай наработки, дам доступ на аплоад.

Добавлено позже (28.5.2008, 22:48):
Цитата(_brn @ Сегодня, 20:32)

Не собирает "ld cannot find -lezxam"
*


Либы нет... Щас посмотрю, если что - солью.

Добавлено позже (28.5.2008, 22:52):
Добавил нужную библиотеку, svn up в папке с тулчейном и пробуй собирать.
С Makefile-ом все нормально.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Разработка софта под MOTOMAGX, начну небольшой HOWTO · Motorola ROKR Z6, RIZR Z6, Z6w, RAZR² V8 · Forum
 

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

 



Текстовая версия Сейчас: 28.3.2024, 16:48

Форум живёт: