motofan logo
181 страниц V « < 163 164 165 166 167 > »         
> 

Софт для ZN5 и прочих MotoMAGX: MGX и PEP, Разработка, портирование и обсуждение нативного софта

EXL
сообщение 26.8.2011, 12:34 Закрепленное сообщение!


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 872
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4598.5



Мануал: Компиляция приложений для 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.2. Скачиваем VMware Player - Скачать можно с официального сайта: [Download | Скачать] или тут: [Mirror | Зеркало]

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. Запускаем терминал и выполняем в нём следующее:
Код

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.
Код

sudo mkdir /mmc
sudo chown user -R /opt
sudo chown user -R /home
sudo chown user -R /mmc
sudo ln -s -d /opt/toolchains/motomagx/arm-eabi -t /
mkdir /opt/toolchains
mkdir /home/z6
mkdir /mmc/mmca1
tar -C /opt/toolchains -xzvf /home/user/motomagx-toolchains_12_08_2011.tar.gz
cp /opt/toolchains/motomagx/setenv-z6.sh /home/z6
cp /opt/toolchains/motomagx/setenv-z6-2.sh /home/z6

4.3. Обратите внимание на имя скаченного вами архива с тулчейном! Именно его нужно вводить в восьмой строке кода, приведённого выше!
4.4. Установленный тулчейн:
Прикрепленное изображение

5. Запуск окружения, компиляция программ и helloworld'a.

5.1. Чтобы запустить окружение для компиляции под MotoMagx, достаточно выполнить в терминале следующее:
Код

cd /home/z6
. setenv-z6.sh

После этого, компиляторы, библиотеки и хэдеры будут браться из нашего тулчейна, а не с компьютера.

5.2. HelloWorld.
5.2.1. Создаём пустой файл с именем hello.c в папке /home/z6 (Правой клавишей по пустому месту, "Create Document" -> "Empty File")
5.2.2. Редактируем его содержимое следующим образом, сохраняем:
Код

// Hello World for Motorola Magx!

#include <stdio.h>

int main(void)
{
    printf ("Hello Moto!!!\n");
    return 0;
}

5.2.3. Компилируем:
Код

cd /home/z6
arm-linux-gnueabi-gcc hello.c -o hello

5.2.4. Полученный исполнительный файл "hello" кидаем на телефон и запускаем через телнет!
Код

Mobilinux(TM) 4.1
Welcome 2 Motorola ZN5!
[root@Symbiosis ~]
#> /mmc/mmca1/hello
Hello Moto!!!


5.3. Работа с утилитой Make* и SDL библиотекой.
* - Утилита Make позволяет компилировать достаточно сложные проекты. Подробнее тут: http://ru.wikipedia.org/wiki/Make
5.3.1. Скачиваем следующие исходники, распаковываем в папку /home/z6:
Прикрепленный файл ballgame_src.tar.gz   ( 34 килобайт ) Кол-во скачиваний: 21038

5.3.2. Запускаем терминал и окружение для компиляции, переходим в папку с проектом, выполняем команду make:
Код

cd /home/z6/ballgame_src
make

После выполнения команды будет выполнена компиляция проекта и создан mgx пакет. Для очистки проекта от объектного кода и бинарников, следует выполнить make clean. Для создание mgx пакета - команду make mgx.
5.3.3. Теперь можно кинуть пакет на карту памяти и попробовать запустить. (Для SDL приложений вам потребуется установленные SDL-библиотеки!)
5.3.4. Структура простейшего Makefile для компиляции HelloWorld'a:
Код

# 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 # Путь к нужным либам

BIN = hello # Бинарник

all:
    $(CC) -c hello.c -o hello.o $(INCLUDE)
    $(CC) -o $(BIN) hello.o $(LIBS)
    $(STRIP) $(BIN)
clean:
    rm -f ./*.o $(BIN)

Если положить данный Makefile рядом с hello.c, и выполнить make, получим исполнительный файл.
5.3.5. Замена строк, для портирования SDL проектов:
Код

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:
Прикрепленный файл PTC-demos.tar.gz   ( 33.29 килобайт ) Кол-во скачиваний: 21101

5.4.2. Выполняем следующее:
Код

cd /home/z6/PTC-demos
./configure --host=arm-linux-gnueabi
make

После этих команд у нас появятся исполнительные файлы Fire и Tunnel. Копируем их в корень карточки телефона.
5.4.3. Запускаем через телнет следующим образом:
Код

export LD_LIBRARY_PATH=/mmc/mmca1/games/lib:$LD_LIBRARY_PATH
chmod +x /mmc/mmca1/Fire
/mmc/mmca1/Fire

5.4.4. Для установки файлов в нужную директорию используется prefix и команда make install:
Код

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):
Код

ulimit -c unlimited
./<bin_app>
Segmentation fault (core dumped)
файл <core> будет создан
../bin/gdb ./<bin_app> <core>

5.5.3 Выполняем (strace):
Код

../bin/strace ./<bin_app>


5.6. Скрипт запуска для SDL приложений:
Код

#!/bin/sh
mypath=${0%/*}
LIBDIR1=/ezxlocal/download/mystuff/games/lib
LIBDIR2=/mmc/mmca1/games/lib
LIBDIR3=$mypath/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LIBDIR1:$LIBDIR2:$LIBDIR3
export HOME=$mypath
export SDL_QT_INVERT_ROTATION=1
cd $mypath
sleep 1

exec $mypath/<bin_app>

5.6.1. Если нужен вывод лога в файл, заменяем последнюю строку в скрипте на
Код
exec $mypath/bin_app >$mypath/stdout.txt 2>$mypath/stderr.txt


5.7. HelloWorld с использованием GUI и функций телефона.
5.7.1. Скачиваем архив, распаковываем в /home/z6:
Прикрепленный файл Helloworld_GUI.tar.gz   ( 80.01 килобайт ) Кол-во скачиваний: 21323

5.7.2. Выполняем:
Код

cd /home/z6/папка с нужным проектом
make PLATFORM=EZX-ZN5

или просто make
5.7.3. Кидаем исполнительные файлы на телефон и пробуем запустить, должно получиться что-то типа этого:
Прикрепленное изображение

5.8. Собираем MgxBox.
5.8.1. Скачиваем архив, распаковываем в /home/z6:
Прикрепленный файл MgxBox.tar.gz   ( 5.23 мегабайт ) Кол-во скачиваний: 22588

5.8.2. Выполняем:
Код

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, редактируем его содержимое следующим образом:
Код

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", редактируем его содержимое следующим образом:
Код

[Actions]
Silent=0
InstallApp = 1  
AddAppToMenu = 1

[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
http://dl.openhandhelds.org/cgi-bin/gp2x.cgi?0,0,0,0,46
http://dl.openhandhelds.org/cgi-bin/dingoo.cgi?0,0,0,0,46
7.1.2. Исходники проектов, базирующихся на QT:
http://www.elsix.org/index.php?w=browse - В основном там под Sharp Zaurus, но идеи создания приложений и сорцы найти можно.

7.2. Документация, темы для прочтения:
Пробуем портировать игры и проги сами
Разработка софта под MOTOMAGX, начну небольшой HOWTO
Компиляция нативных приложений под E6/A1200, Создание окружения для компиляции
SDL библиотека
http://plg.lrn.ru/wiki/Заглавная_Страница
http://plg.lrn.ru/doc/sdl/index.html
http://doc.qt.nokia.com

7.3. Проекты:
http://code.google.com/p/open-mgx/ - исходники программ от Ant-On'a
http://code.google.com/p/sdl-magx/ - библиотека SDL HW для MotoMAgx от Ant-On'a
http://code.google.com/p/zmessanger/ - нативная аська, автор Ant-On
http://sourceforge.net/projects/qte2console/ - qte2console от DoomChisel
http://code.google.com/p/motocakerteam/ - исходники программ от испанцев MotoCakerTeam
http://code.google.com/p/zsoft/

8. Мануалы данной темы:

Если кто не может запустить ZN5Encoder в Magic box - пост #290
Нативные заставки на основе портированных мной и Neomoto демок! - пост #291
Мануал по установке Tmake в тулчейн, и правки созданного им MakeFile - пост #484
Изучение разделяемых библиотек (so) - пост #1440
Эмуляция нажатия клавиш на Motorola ZN5 - пост #1684


© EXL for MotoFan.Ru 27.08.2011
Прикрепленный файл ballgame_src.tar.gz   ( 34 килобайт ) Кол-во скачиваний: 21038
Прикрепленный файл PTC-demos.tar.gz   ( 33.29 килобайт ) Кол-во скачиваний: 21101
Прикрепленный файл Helloworld_GUI.tar.gz   ( 80.01 килобайт ) Кол-во скачиваний: 21323
Прикрепленный файл MgxBox.tar.gz   ( 5.23 мегабайт ) Кол-во скачиваний: 22588
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Unreal_man
сообщение 24.10.2021, 22:34


Гуру
******

Группа: Разработчики
Сообщений: 720
Регистрация: 16.12.2009
Из: Другого Края Земли
Пользователь №: 211 211
Модель телефона: Motorola Moto Z Play


Настроение:
:-I



Рейтинг: 515



Цитата(VINRARUS @ Вчера, 20:05)
* Ага, понятно, просто я пробовал и из меню запускать, и ярлыками на роб. столе

У тебя zDeskLauncher? Проверю позже эту гипотезу.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 25.10.2021, 3:15


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 872
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4598.5



Цитата(VINRARUS @ Сегодня, 0:05)
* Теперь стало ясно чо оно через раз закрывалося: потому шо если стартовать ярлыками то ОС прибивает весь другой фоновый софт, с какого то поноса! shok.gif

Найти бы тот метод, которым OS прибивает весь фоновый софт и LD_PRELOAD'нуть его так же. Там в логах может есть что-нибудь полезное и интересное?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 25.10.2021, 4:04


Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



Unreal_man, стандартные 4 ярлыка быстрого запуска.
З zDeskLauncher дольше запускать.
Цитата(EXL @ Сегодня, 6:15)
* Найти бы тот метод, которым OS прибивает весь фоновый софт и LD_PRELOAD'нуть его так же.

Это именно сам АМ ставит, или может какая то стандартная либа?
Цитата(EXL @ Сегодня, 6:15)
* Там в логах может есть что-нибудь полезное и интересное?

АМных?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 25.10.2021, 4:38


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 872
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4598.5



Цитата(VINRARUS @ Сегодня, 11:04)
* Это именно сам АМ ставит, или может какая то стандартная либа?

Я не знаю, но подозреваю что именно он.

Цитата(VINRARUS @ Сегодня, 11:04)
* АМных?

Да любых. Возможно где-то что-то пишется когда am начинает своевольничать подобным образом. И ещё на MotoMAGX много где встречается такая штука как aplog, никто логи оттуда читать не пробовал? Туда по идее должно всё системное сливаться.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 25.10.2021, 9:48


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 872
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4598.5



Господа, выполните "lsmod" и "ls -R /dev" на Motorola ZN5 и запостите выхлоп. Хочу посмотреть что там за модули подгружены со старта и какие устройства доступны.

Вот думаю, возможно ли как-то через какое-нибудь устройство программно отправлять глобально нажатия клавиш, чтобы система их понимала. Есть идеи?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 25.10.2021, 18:19


Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



Цитата(EXL @ Сегодня, 12:48)
* Господа, выполните "lsmod" и "ls -R /dev" на Motorola ZN5 и запостите выхлоп.

На, дегустируй. laugh.gif

Код

Mobilinux(tm) 4.1, Linux/armv6l 2.6.10_dev
MotoMAGX: LinuxJava 6.3, ZiniMOD beta 2
21:15:22 ._.
# lsmod
sd8xxx 175568 1 - Live 0xbf097000
sdio 25308 2 sd8xxx, Live 0xbf08f000
tvout_driver 11068 0 - Live 0xbf08b000
suapi 114945 19 - Live 0xbf06d000
dmcam 5812 0 - Live 0xbf06a000
dmmsg 19608 1 dmcam, Live 0xbf064000
dmspi 9916 2 dmcam,dmmsg, Live 0xbf060000
fuse 27148 2 - Live 0xbf058000
fm_radio 3668 0 - Live 0xbf056000
ihal 22704 24 - Live 0xbf04f000
netmux_linkdriver 8504 0 - Live 0xbf04b000
netmux 52456 29 netmux_linkdriver, Live 0xbf03d000
mpmdrv 34928 1 - Live 0xbf033000
profilerdrv 6156 1 - Live 0xbf030000
gpiodev 7776 0 - Live 0xbf02d000
sipcdrv 177592 0 - Live 0xbf000000

# ls -1Rp /dev/
/dev/:
.devfsd
<NULL>0
<NULL>1
<NULL>10
<NULL>11
<NULL>12
<NULL>13
<NULL>14
<NULL>15
<NULL>2
<NULL>3
<NULL>4
<NULL>5
<NULL>6
<NULL>7
<NULL>8
<NULL>9
accy
acm0@
apal
avehostdrv
console
dam
discs/
dmcam
efuse
fb/
fb0@
fm_radio
full
fuse
gpiodev/
i2c/
ihal0
inotify
input/
ipc
ipcmem
jpgnode
keypad
keypad0
keypadB
keypadI
kmem
kmsg
loop/
mem
mfiq
misc/
mmc/
mmca
mmca1
mpm
mpm_stats
mtd/
mtdblock/
mxc_ipc/
mxc_ipu_pf
mxc_ipu_pp
mxc_mu/
netmux/
null
port
power_ic
ppp
profiler
ptmx
pts/
random
rd/
root@
rtc_sw
sahara
shm/
sim
ssi1
ssi2
suapi
suapipriv
supanic
tty
ttymxc/
ttymxc0@
ttymxc1@
ttymxc2@
tvout
urandom
vc/
vcc/
video0@
zero

/dev/discs:
disc0@

/dev/fb:
0
1

/dev/gpiodev:
bluetooth/
bp_panic
camera_ext_pwrdn
camera_reset_b
display1_reset
display1_sd
edio_raw
gpio_raw

/dev/gpiodev/bluetooth:
btwake
hostwake
power

/dev/i2c:
0

/dev/input:

/dev/loop:
0
1
2
3
4
5
6
7

/dev/misc:
fuse
rtc

/dev/mmc:
blk0/

/dev/mmc/blk0:
disc
part1
part2

/dev/mtd:
0
0ro
1
10
10ro
11
11ro
12
12ro
13
13ro
14
14ro
15
15ro
16
16ro
17
17ro
18
18ro
19
19ro
1ro
2
20
20ro
2ro
3
3ro
4
4ro
5
5ro
6
6ro
7
7ro
8
8ro
9
9ro
bpsw
device_tree
fota_ua
fota_up
ho_data
kern
kpanic
lang
logo
logo_cli
mass_storage
panel_script
pds
resrc
root
rsv
secure
setup
ua_backup
ua_temp
user

/dev/mtdblock:
0
1
10
11
12
13
14
15
16
17
18
19
2
20
3
4
5
6
7
8
9
bpsw
device_tree
fota_ua
fota_up
ho_data
kern
kpanic
lang
logo
logo_cli
mass_storage
panel_script
pds
resrc
root
rsv
secure
setup
ua_backup
ua_temp
user

/dev/mxc_ipc:
0
1
2
3
4
5

/dev/mxc_mu:
0
1
2
3

/dev/netmux:
audio
csd_tty0
dlog_ctrl
efem
gps
mm_com_audio_dc
mm_com_audio_en
muxtest_direct1
muxtest_direct2
muxtest_tty1
muxtest_tty2
netmon
nvm_proxy
opprof
power
psc
psd_nsapi10
psd_nsapi5
psd_nsapi6
psd_nsapi7
psd_nsapi8
psd_nsapi9
sim_proxy
subsidy_lock
telephony
test_cmd
udi_ctrl
udi_data
udi_ptp
uma_rrc
uma_urlc

/dev/pts:
0

/dev/rd:
0
1
10
11
12
13
14
15
2
3
4
5
6
7
8
9

/dev/shm:
lock/
log/
medl_buf_shm
medl_obj_shm
run/
tmp/

/dev/shm/lock:

/dev/shm/log:
log.smbd
wtmp

/dev/shm/run:
account_policy.tdb
accyd.pid
apr.pid
battd.pid
brlock.tdb
connections.tdb
deferred_open.tdb
devcontd.pid*
fts.pid
gencache.tdb
group_mapping.tdb
hdtsrv.pid
inetd.pid
lmd.pid
locking.tdb
messages.tdb
nand_watchdog.pid
netmon.pid
ntdrivers.tdb
ntforms.tdb
ntprinters.tdb
pmdaemon.pid
printing/
registry.tdb
sessionid.tdb
share_info.tdb
smbd.pid
ssd.pid

/dev/shm/run/printing:

/dev/shm/tmp:
.dosfsck_result
.fg-dhcpcd-eth0.lock
.pushdaemonready.dat
.unsocket=
ES-notify-431=
EventBroker=
HeaderServer_AppInfoFile.cfg
OS
am_socketserver=
am_ssd_server_socket=
ap_tcmd.pid
audio_mgr_q
audio_mixer_key
battsock=
com_agent_path=
dataDevice0=
dataDevice1=
dataDevice2=
dataDevice3=
dataDevice4=
dataDevice5=
dataDevice6=
dataLinkManager1=
db/
db_ipc=
dhcp_dynamic_info
dm/
dnsmasq/
drm_ipc_unix.str=
emergency_call
extra-mmserver=
ezx_activeprofile.cfg
ezx_keylock_address=
ezx_system.cfg
ezxphonecom/
ezxrecentcallcom/
flowplayer_pid
hdtclientsock=
hdtpostsock=
imsstate1.shm
lj-ui-framework-keyfile
lm_lcdCh=
lm_ssCh=
lmsock=
massock=
medl.pid
misc-funlight=
misc-vibrate=
mms/
mms_tem.data
mmserver1=
mmsproxy=
mp_pid
msg_advlistsmsapi=
notify_crash|
opprofdaemonsock=
panic_daemon.pid
pdpipe|
phone_launch.data
phone_pid
pm_proxy_=
pmd-socket=
powerdownbak/
qsharepixmap_FSBA_1
qsharepixmap_FSBA_2
qsharepixmap_FSBA_3
qsharepixmap_FSBA_4
qsharepixmap_FSBA_5
qsharepixmap_FSBA_LOCK
qsharepixmap_ZHeader_Left_Mask
qsharepixmap_ZHeader_Left_Pixmap
qsharepixmap_ZHeader_Right_Mask
qsharepixmap_ZHeader_Right_Pixmap
qsharepixmap_main_wallpaper
qsharepixmap_offscreen_pixmap
qtembedded-ezx/
qtembedded-qmaster/
sh_player/
sme_sock=
smeconf.txt*
ssd_sock=
tableids
tapisock=
tmp@
touch_sound_msg
uacsock=
uma_diagnostics.txt
uns_qwssocket=
usbsocket=
vin/
wcm_ev_sock=
wcm_msg_sock=
wifisomnus.ini
wins-watcher=
wlan_net_info.txt
wlan_startup.log
ws.pid
wsp_debug
wspsock=
zBookmark@
zStartTime2
zheadershareinfo

/dev/shm/tmp/db:
__db.001
temp.db*

/dev/shm/tmp/dm:
##lock##0*
##lock##1*
##lock##2*
##lock##3*
##lock##4*
##lock##5*
##lock##6*
##lock##7*
##lock##8*
##lock##9*
##lock##f1*
##lock##g*

/dev/shm/tmp/dnsmasq:
dnsmasq_eth0
pid_eth0

/dev/shm/tmp/ezxphonecom:
voicecall_interface=

/dev/shm/tmp/ezxrecentcallcom:
recentcall_interface=

/dev/shm/tmp/mms:
msgcrash/

/dev/shm/tmp/mms/msgcrash:
msgcrash.sys*

/dev/shm/tmp/powerdownbak:
powerdownbak.sys*

/dev/shm/tmp/qtembedded-ezx:
QtEmbedded-0=

/dev/shm/tmp/qtembedded-qmaster:
QtEmbedded-0=

/dev/shm/tmp/sh_player:
DIRKA@
SH_pley@
db.tmp*
dj*
hot*
how*
list.db@
mount.log*
size
treck
vol*

/dev/shm/tmp/vin:

/dev/ttymxc:
0
1
2

/dev/vc:
0
1
10
11
12
13
14
15
16
17
18
19
2
20
21
22
23
24
25
26
27
28
29
3
30
31
32
33
34
35
36
37
38
39
4
40
41
42
43
44
45
46
47
48
49
5
50
51
52
53
54
55
56
57
58
59
6
60
61
62
63
7
8
9

/dev/vcc:
0
1
a0
a1
#
#
#
#
#
#
#
#
# ls -1Rp /lib/modules/
/lib/modules/:
2.6.10_dev/
boot/
dmcam.ko*
dmmsg.ko*
dmspi.ko*
fm_radio.ko*
fuse.ko*
gpiodev.ko*
ihal.ko*
modembridge.ko*
modemrelay.ko*
mpmdrv.ko@
netmux.ko*
netmux_linkdriver.ko*
profilerdrv.ko*
rlim.ko*
sd8xxx.ko*
sdio.ko*
suapi.ko*
tvout-driver.ko*

/lib/modules/2.6.10_dev:
532mpmdrv.ko*
740mpmdrv.ko*
kernel/
modules.dep*

/lib/modules/2.6.10_dev/kernel:
arch/
drivers/
fs/
net/

/lib/modules/2.6.10_dev/kernel/arch:
arm/

/lib/modules/2.6.10_dev/kernel/arch/arm:
nwfpe/

/lib/modules/2.6.10_dev/kernel/arch/arm/nwfpe:

/lib/modules/2.6.10_dev/kernel/drivers:
bluetooth/
char/
i2c/
ipc/
media/
misc/
net/
otg/

/lib/modules/2.6.10_dev/kernel/drivers/bluetooth:
btsleep.ko*
hci_uart.ko*

/lib/modules/2.6.10_dev/kernel/drivers/char:

/lib/modules/2.6.10_dev/kernel/drivers/i2c:

/lib/modules/2.6.10_dev/kernel/drivers/ipc:

/lib/modules/2.6.10_dev/kernel/drivers/media:
video/

/lib/modules/2.6.10_dev/kernel/drivers/media/video:

/lib/modules/2.6.10_dev/kernel/drivers/misc:

/lib/modules/2.6.10_dev/kernel/drivers/net:

/lib/modules/2.6.10_dev/kernel/drivers/otg:
functions/
ocd/
otgcore/

/lib/modules/2.6.10_dev/kernel/drivers/otg/functions:
acm/
generic/
msc/
mtp/
network/
pbg/

/lib/modules/2.6.10_dev/kernel/drivers/otg/functions/acm:
tty_if.ko*

/lib/modules/2.6.10_dev/kernel/drivers/otg/functions/generic:
generic_cf.ko*

/lib/modules/2.6.10_dev/kernel/drivers/otg/functions/msc:
msc_if.ko*

/lib/modules/2.6.10_dev/kernel/drivers/otg/functions/mtp:
mtp_if.ko*

/lib/modules/2.6.10_dev/kernel/drivers/otg/functions/network:
network_if.ko*

/lib/modules/2.6.10_dev/kernel/drivers/otg/functions/pbg:
pbg_if.ko*

/lib/modules/2.6.10_dev/kernel/drivers/otg/ocd:
brassboard/

/lib/modules/2.6.10_dev/kernel/drivers/otg/ocd/brassboard:
brassboard_tr.ko*
brassboard_tr_fx2lp.ko*

/lib/modules/2.6.10_dev/kernel/drivers/otg/otgcore:
otgcore.ko*

/lib/modules/2.6.10_dev/kernel/fs:

/lib/modules/2.6.10_dev/kernel/net:
bluetooth/
sipcdrv/

/lib/modules/2.6.10_dev/kernel/net/bluetooth:
bluetooth.ko*
bnep/
hidp/
l2cap.ko*
rfcomm/
sco.ko*

/lib/modules/2.6.10_dev/kernel/net/bluetooth/bnep:
bnep.ko*

/lib/modules/2.6.10_dev/kernel/net/bluetooth/hidp:
hidp.ko*

/lib/modules/2.6.10_dev/kernel/net/bluetooth/rfcomm:
rfcomm.ko*

/lib/modules/2.6.10_dev/kernel/net/sipcdrv:
sipcdrv.ko*

/lib/modules/boot:
#

[close]

Цитата(EXL @ Сегодня, 12:48)
* Вот думаю, возможно ли как-то через какое-нибудь устройство программно отправлять глобально нажатия клавиш, чтобы система их понимала.

А нашо? smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 26.10.2021, 5:01


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 872
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4598.5



VINRARUS, Ага, вижу некие /dev/keypad* читать их можно как какой-нибудь /dev/fb0? Или записывать туда что-либо? Не пробовал?

Цитата(VINRARUS @ Сегодня, 1:19)
* А нашо?

Во-первых, хочу добить вот этот VNC-сервер: VNC Server
Во-вторых, было бы весьма полезно сделать утилитку по типу:

Код
$ pushkey GreenButton down
$ pushkey GreenButton up

Её можно было бы применить для твоего Web-сервера, чтобы иметь возможность не только удалённого просмотра дисплея телефона, но и управления им из браузера.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 26.10.2021, 20:40


Гуру
******

Группа: Разработчики
Сообщений: 1 226
Регистрация: 8.2.2011
Из: Беларусь
Пользователь №: 223 758
Модель телефона: z6 V8
Прошивка: Linux SAedition MOD

Рейтинг: 400



Цитата(EXL @ Сегодня, 6:01)
* Во-вторых, было бы весьма полезно сделать утилитку по типу:

Код
$ pushkey GreenButton down
$ pushkey GreenButton up

Её можно было бы применить для твоего Web-сервера, чтобы иметь возможность не только удалённого просмотра дисплея телефона, но и управления им из браузера.

Где-то я выкладывал оболочку для виртуальной клавы, вот туда было бы прикольно прикрутить.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 29.10.2021, 14:13


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 872
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4598.5



fill.sa, VINRARUS,
В продолжение темы оригинальных MPKG-пакетов от Motorola и немного истории. Добрался до MOTODEV Studio for Linux и вот что выяснил. Оказывается, испаноговорящие разработчики, которые видимо и прикрутили собственноручно сделанные MPKG-пакеты на Z6 и V8 использовали как основу старый оригинальный формат MPKG-пакетов (или ещё PKG-пакетов) с платформы EZX. Примерно такие же пакеты использовались на Motorola ROKR E2, Motorola ROKR E6, Motorola MING A1200 и др. Там в архив пакета просто добавлялся специальный *.desktop-файлик, для платформы EZX он выглядел следующим образом:

Код
[Desktop Entry]
Name=2048
Version=1.0, 05-May-2021
Author=EXL
Comment=Popular and simple puzzle game. Collect the "2048 tile" using arrow keys and touchscreen on game board.
Vendor=exlmoto.ru
Exec=2048-EZX
Icon=ezx_sml_32x24.png
BigIcon=ezx_big_68x43.png
Type=Application
Category=Games
Shared=2

Точно поддерживались MIME-type'ы, на почившем openezx-wiki есть немного информации про формат этих пакетов и то как устанавливать MIME-type'ы, а вот был ли автозапуск мне неизвестно, но подозреваю что должен был быть. Ставилось всё это дело в директорию ".system/QTDownLoad/" относительно хранилища.

Самопальный формат *.desktop-файлика у MPKG-пакетов от испаноговорящих разработчиков с форума ModMyMobile (M3) имел примерно следующую структуру:

Код
[Desktop Entry]
Name=2048
Encoding=UTF-8
Version=1.0, 18-Sep-2021
Author=EXL
Comment=Popular and simple puzzle game. Collect the "2048 tile" using arrow keys and touchscreen on game board.
Vendor=exlmoto.ru
Directory=2048-MotoMAGX
Exec=2048-MotoMAGX_Z6
Icon=icon_usr.png
BigIcon=icon_usr.png
OSVersion=1.0
Type=Application

По сути калька с формата EZX'а, но есть пара исключений. К тому же MIME-type'ы наверное не поддерживались, как и автозапуск. Теперь переходим к самому вкусному. Оказывается формат официальных MPKG-пакетов для MotoMAGX должен был сильно отличаться. Во-первых, вместо *.desktop-файла разработчики Motorola заюзали специальный файлик "package.descriptor", который имеет XML-подобный формат. Во-вторых, вместо использования чисто UNIX'ового архиватора и компрессора, то есть формата *.tar.gz, используется обычный *.zip, как в Java J2ME-файлах с расширением *.jar, даже утилита file выдаёт следующую информацию:

Код
$ file 2048-MotoMAGX_EMU_v1.0_29-Oct-2021.mpkg
2048-MotoMAGX_EMU_v1.0_29-Oct-2021.mpkg: Java archive data (JAR)

В-третьих, установочная директория вместо ".system/QTDownLoad/" как на EZX относительно хранилища другая, это ".system/Untrusted/native/", что довольно интересно. Внутренняя структура архива пакета следующая:

Код
$ tree -h 2048-MotoMAGX_EMU_v1.0_29-Oct-2021
2048-MotoMAGX_EMU_v1.0_29-Oct-2021
├── [  47K]  2048-MotoMAGX
├── [ 2.2K]  icon_usr.png
├── [ 4.0K]  META-INF
│   └── [   53]  MANIFEST.MF
└── [  973]  package.descriptor

1 directory, 4 files

В файлике "META-INF/MANIFEST.MF" содержится просто вспомогательная информация о том, каким софтом был сгенерирован пакет:

Код
Manifest-Version: 1.0
Created-By: MOTODEV Studio

Похожий файлик присутствует во всех Java J2ME-приложениях. Содержимое главного файла "package.descriptor" выглядит так:

Код
<?xml version="1.0" encoding="ISO-8859-1"?>
<Descriptor version="1.0">
    <AppIcon>
        <small/>
        <large>icon_usr.png</large>
        <animated/>
        <svg/>
        <simple/>
    </AppIcon>
    <AppID>a9b5b6c7-cc34-4253-ad3e-6a13b930a074</AppID>
    <AppName>
        <ResourceID/>
        <default>2048</default>
    </AppName>
    <AppExecName>2048-MotoMAGX</AppExecName>
    <AppExecArgs/>
    <PkgType>Install</PkgType>
    <RequiredSpace>56561</RequiredSpace>
    <AppType>Native</AppType>
    <Description>
        <ResourceID/>
        <default>A 2048 puzzle game that has become very popular lately</default>
    </Description>
    <MIMEType/>
    <Version>1.0</Version>
    <Vendor>EXL</Vendor>
    <DateIssued>29 Oct 2021</DateIssued>
    <IsLockable>No</IsLockable>
    <IsVisible>Yes</IsVisible>
    <IsAutoRun>No</IsAutoRun>
    <IsErasable>Yes</IsErasable>
    <LogicalAppLoc>e8c83dac-db4e-4fb5-98a6-61de1998b277</LogicalAppLoc>
</Descriptor>

Как видно из XML-тегов, поддерживается как автозапуск, так и MIME-type'ы. И даже поддерживается какое-то частичное обновление пакета вместо переустановки. Ещё видимо предполагалась подпись пакетов, но похоже её не завезли. Короче говоря, структура оригинального нативного MPKG-пакета под MotoMAGX примерно такая, какая была у MPKG-пакетов виджетов в VE66/EM35, которые являлись не виджетами, а приложениями которые юзали движок WebKit в браузере. Некоторые из них кстати работают и в эмуляторе, например, этот виджет. В общем, всё это можно установить в самой IDE, просто тыкая на кнопочки:

Прикрепленное изображение Прикрепленное изображение Прикрепленное изображение Прикрепленное изображение

Я поробовал проверить MIME-type'ы, добавив "application/zip" и действительно, приложение начало запускаться при выборе ZIP-архива в файловом менеджере. А вот "image/png" что-то не подхватился, видимо потому что этот MIME-type был уже забит приложением галереи. Кроме того проверил автозапуск и он действительно работает, приложение запускается после старта эмулятора сразу.

А вот как бы выглядела установка нативного софта через файловый менеджер, если бы эту фичу не вырезали из прошивок, эх:

Прикрепленное изображение Прикрепленное изображение Прикрепленное изображение Прикрепленное изображение Прикрепленное изображение

Прикрепленное изображение Прикрепленное изображение Прикрепленное изображение Прикрепленное изображение Прикрепленное изображение

Установленное приложение замечательно интегрируется в систему, его можно прикреплять на главный экран и т. д. По сути этот мотороловский формат MPKG-пакетов не отстаёт от PEP.

Прикрепленное изображение

Если кому интересно поковыряться, прикрепляю пакетик для эмулятора MotoMAGX.
Сам эмулятор и всё нужное для него я причешу и выложу позже в тему MOTODEV Studio for Linux - Preview v0.3

Прикреплённые файлы:
Прикрепленный файл 2048-MotoMAGX_EMU_v1.0_29-Oct-2021.mpkg   ( 22.68 килобайт ) Кол-во скачиваний: 12
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 29.10.2021, 15:59


Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



EXL, ну, инженеры и програмисты у Motorola хорошые были, но управляющие манагеры — потомственные идиоты. comando.gif Ломать не строить.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Софт для ZN5 и прочих MotoMAGX: MGX и PEP, Разработка, портирование и обсуждение нативного софта · Motorola ZINE ZN5, ZN5 T-Mobile · Forum
 

181 страниц V « < 163 164 165 166 167 > » 
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



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

Форум живёт: