motofan logo
46 страниц V « < 26 27 28 29 30 > »         
> 

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

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


Rock The Microphone
********

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

Рейтинг: 4654



Мануал: Компиляция приложений для 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 килобайт ) Кол-во скачиваний: 21679

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 килобайт ) Кол-во скачиваний: 21808

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 килобайт ) Кол-во скачиваний: 21983

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 мегабайт ) Кол-во скачиваний: 23248

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 килобайт ) Кол-во скачиваний: 21679
Прикрепленный файл PTC-demos.tar.gz   ( 33.29 килобайт ) Кол-во скачиваний: 21808
Прикрепленный файл Helloworld_GUI.tar.gz   ( 80.01 килобайт ) Кол-во скачиваний: 21983
Прикрепленный файл MgxBox.tar.gz   ( 5.23 мегабайт ) Кол-во скачиваний: 23248
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 15.9.2016, 18:25


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

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


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



Рейтинг: 1211



Цитата(fill.sa @ 15.9.2016, 19:39) *

Может у кого завалялся код демона для отслеживания нажатой клавиши?

Оно?
Прикрепленный файл vr.zip   ( 7.33 килобайт ) Кол-во скачиваний: 44
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Programmer-tm(Мотофан.)
сообщение 16.9.2016, 6:34


Мотофан
*******

Группа: Пользователи
Сообщений: 1 681
Регистрация: 21.3.2010
Из: Из мира сего
Пользователь №: 215 291
Модель телефона: Moto X Play
Прошивка: Модифицированная...


Настроение:
Делать невозможное возможным...



Рейтинг: 620



Ребятушки, кто-то еще пользуется интернетом по синезубу и usb?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 16.9.2016, 7:17


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

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


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



Рейтинг: 1211



Цитата(Programmer-tm(Мотофан.) @ Сегодня, 9:34)
* Ребятушки, кто-то еще пользуется интернетом по синезубу и usb?

Йа пользуюсь проводным интернетом в зине. laugh.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Programmer-tm(Мотофан.)
сообщение 16.9.2016, 8:23


Мотофан
*******

Группа: Пользователи
Сообщений: 1 681
Регистрация: 21.3.2010
Из: Из мира сего
Пользователь №: 215 291
Модель телефона: Moto X Play
Прошивка: Модифицированная...


Настроение:
Делать невозможное возможным...



Рейтинг: 620



VINRARUS,
Помоги в написании утилитки тогда) Желательно бы в лс или аське пересечься...

Почти вафельку победил... О чем ты говорил...

Сообщение отредактировал Programmer-tm(Мотофан.) - 16.9.2016, 8:23
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 16.9.2016, 17:08


Гуру
******

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

Рейтинг: 400



Цитата(VINRARUS @ 15.9.2016, 19:25) *

Цитата(fill.sa @ 15.9.2016, 19:39) *

Может у кого завалялся код демона для отслеживания нажатой клавиши?

Оно?

Может быть, нужно попробовать собрать.
Это я так понимаю для отслеживания голосовой кнопки?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 16.9.2016, 17:44


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

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


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



Рейтинг: 1211



Цитата(fill.sa @ Сегодня, 20:08)
* Это я так понимаю для отслеживания голосовой кнопки?

Нуу я не знаю за какую кнопку на зине оно будет отвечать. laugh.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Unreal_man
сообщение 17.9.2016, 9:47


Гуру
******

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


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



Рейтинг: 607



Парни! Очень нужен виджет погоды для зины. Неужели там всё так мутно? Есть же эльф тот же на p2k от om2804. Глянуть исходники, куда отправляет и как вообще это работает. Мне конечно всё кажется проще чем на самом деле, но может кто скажет что да почём. Готов обсудить стимуляцию разработчика.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 17.9.2016, 10:40


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

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


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



Рейтинг: 1211



Цитата(Unreal_man @ Сегодня, 12:47)
* Очень нужен виджет погоды для зины.

Почему то виджетописатели на зине не любят скриптописателей, по этому нету инструмента у меня шобы выводить картинки и текст на роб. стол. sad.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Unreal_man
сообщение 17.9.2016, 10:55


Гуру
******

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


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



Рейтинг: 607



Цитата
виджетописатели не любят скриптописателей

плохо. дружить надо.
Цитата
нету инструмента у меня

cry.gif
подожду, что скажет Programmer-tm(Мотофан.)

fill.sa тему читал, но не отписался

EXL написал, что нет у него необходимого инструментария. sad.gif

больше я не знаю кто из разрабов часто тут бывает

Сообщение отредактировал Unreal_man - 17.9.2016, 10:56
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 17.9.2016, 14:50


Rock The Microphone
********

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

Рейтинг: 4654



VINRARUS,
У тебя телеграм есть? Давай попробуем дописать клавиатурный даемон. Накропал вот за полчаса.

Стучитесь, кому интересно: https://telegram.me/exlmoto (советую установить Telegram на комп, лучший мессенджер ИМХО).

Код keyd.cpp:

Код
// MotoMAGX
#include <ZApplication.h>

// Qt
#include <qcopchannel_qws.h>
#include <qdatastream.h>
#include <qstring.h>
#include <qmap.h>

// C++
#include <iostream>

// Global
QCopChannel *keyChannel;
enum Errors { CONFIG_OK, CONFIG_ERROR };

// Classes
class ShittyCfgParser {
    int error;
    QString cfgData;
    QMap<int, QString> configMap;
    void parseConfigData() {
        QStringList configList = QStringList::split('\n', cfgData);
        for (uint i = 0; i < configList.count(); ++i) {
            QString configStr = configList[i];
            if (configStr.startsWith("#")) {
                continue;
            } else if (configStr[0].isDigit()) {
                QStringList tokenizeLine = QStringList::split(':', configStr);
                if (tokenizeLine.count() == 2) {
                    configMap.insert(tokenizeLine[0].toInt(), tokenizeLine[1]);
                }
            }
        }
        if (configMap.count() > 0) {
            error = CONFIG_OK;
        }
    }
public:
    ShittyCfgParser(const QString &fileName) : error(CONFIG_ERROR) {
        QFile configFile(fileName);
        if (configFile.exists()) {
            if (configFile.open(IO_ReadOnly)) {
                int size = configFile.size();
                char data[size];
                configFile.readBlock(data, sizeof(data));
                cfgData = data;
                parseConfigData();
            } else {
                std::cout << "Error opening file: " << fileName.ascii() << std::endl;
            }
        } else {
            std::cout << "Error: config file: " << fileName.ascii()
                      << " doesn't exist." << std::endl;
        }
        configFile.close();
    }
    ~ShittyCfgParser() { }
    int getError() const { return error; }
    QMap<int, QString> *getConfigMap() const {
        return const_cast<QMap<int, QString> *>(&configMap);
    }
};

class KeyD: public ZApplication {
    Q_OBJECT
    QMap<int, QString> *config;
public:
    KeyD(int& argc, char** argv) : ZApplication(argc, argv) {
        std::cout << "Initializing keyd (keyboard deamon)" << std::endl;
        if (QCopChannel::isRegistered("/hardkey/bc")) {
            keyChannel = new QCopChannel("/hardkey/bc", this);
            connect(keyChannel,                                 // <- Throws event
                    SIGNAL(received(const QCString &, const QByteArray &)),
                    this,                                       // <- Catch event
                    SLOT(catchButton(const QCString &, const QByteArray &)));
        }
    }
    KeyD::~KeyD() { }
    void setConfigMap(QMap<int, QString> *a_config) {
        config = a_config;
    }
private slots:
    void catchButton(const QCString &message, const QByteArray &data) {
        QDataStream stream(data, IO_ReadOnly);
        if (message == "keyMsg(int,int)") {
            int key, type;
            stream >> key >> type;
            std::cout << "key: " << key << " type: " << type << std::endl;
            /*
            QString system_call = config->value(key);
            if (system_call) {
                system(system_call.ascii());
            }
            */
        }
    }
    void slotShutdown() { processEvents(); }
    void slotQuickQuit() { processEvents(); }
    void slotRaise() { processEvents(); }
};

// Start
int main(int argc, char *argv[])
{
    int res = 0;
    QString dDir = argv[0];
    int i = dDir.findRev("/");
    dDir.remove(i + 1, dDir.length() - i);
    dDir += "/keyd.cfg";
    ShittyCfgParser *cfgParser = new ShittyCfgParser(dDir);
    if (!cfgParser->getError()) {
        KeyD *keyD = new KeyD(argc, argv);
        keyD->setConfigMap(cfgParser->getConfigMap());
        res = keyD->exec();
    } else {
        std::cout << "FATAL: Config error! Shutdown!" << std::endl;
    }
    return res;
}

// MOC
#include "moc_keyd.cpp"


Компилировать так:

Код
/arm-eabi/lib/qt-zn5/bin/moc keyd.cpp -o moc_keyd.cpp
/arm-eabi/bin/arm-linux-gnueabi-g++ -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -DNO_DEBUG -DEZX_ZN5 -I/arm-eabi/lib/qt-zn5/include -I/arm-eabi/lib/ezx-zn5/include -I /arm-eabi/arm-linux-gnueabi/include   -c -o keyd.o keyd.cpp
/arm-eabi/bin/arm-linux-gnueabi-gcc -Wl,-rpath-link,/arm-eabi/lib/ezx-zn5/lib -o keyd_ZN5 keyd.o   -L/arm-eabi/lib/ezx-zn5/lib -L/arm-eabi/arm-linux-gnueabi/lib -L/arm-eabi/lib/qt-zn5/lib -lm -lqte-mt -lezxappbase


Рядом с файлом keyd_ZN5 нужно положить вот такой вот конфиг (просто для примера пока), с именем keyd.cfg

Код
# Motorola ZN5 KeyCode Table
#
# KeyCodes with commands
4562:/mmc/mmca1/my_superscript.sh
3423:/mmc/mmca1/my_superscript2.sh
1334:/mmc/mmca1/my_superscript3.sh


Попробуй, позапускай в общем. По идее при нажатии кнопок должно сыпать в Telnet их кодами. Но я просто на 100% уверен, что где-то накосячил и нужно отлаживать. Если что, стучи в телеграм.

------------------------

Unreal_man,

Потом может быть посмотрю. Там нужно основательно замутить, без всяких китайских костылей. Но без какого-либо устройства писать что-то подобное слишком трудно, отладки тупо нету же. А в телеграм мне никто так и не стучался.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Programmer-tm(Мотофан.)
сообщение 17.9.2016, 16:24


Мотофан
*******

Группа: Пользователи
Сообщений: 1 681
Регистрация: 21.3.2010
Из: Из мира сего
Пользователь №: 215 291
Модель телефона: Moto X Play
Прошивка: Модифицированная...


Настроение:
Делать невозможное возможным...



Рейтинг: 620



Да виджеты не уперлись никому, у меня вот на Андроиде такой по умолчанию... А тут проще написать на скриптах такое чудо, если уж приспичило... И шустрее и интернет толковей юзать будет. Хотя, если уж кому-то это нужно, то написать такое не особо сложно. Если выводить сие графически и маленькой иконочкой... (Идея реализации на ручной вызов уже есть.) Это про погоду если что...

Сообщение отредактировал Programmer-tm(Мотофан.) - 17.9.2016, 16:24
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 17.9.2016, 22:46


Гуру
******

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

Рейтинг: 400



Цитата(EXL @ 8.8.2016, 21:43) *

Цитата(fill.sa @ Сегодня, 0:58)
* А остались у кого исходники на эмулятор pcsx4all ???

У меня остались.

Цитата(fill.sa @ Сегодня, 0:58)
* Да и на все остальные эмуляторы, поделитесь плиз.

Что именно нужно?

В архиве 3и версии, в чем их отличаи? Какой для зины лучше собирать?
И я правильно понял файл Makefile.wiz собирает вариант для консоли?

Сообщение отредактировал fill.sa - 17.9.2016, 22:47
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 18.9.2016, 6:07


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(fill.sa @ Сегодня, 4:46)
*
В архиве 3и версии, в чем их отличаи? Какой для зины лучше собирать?


Я не помню уже, шесть лет назад было. Вот ещё нашёл:

http://exlmoto.ru/pcsx4all-motomagx-source-code/

Код
curl http://motodev.do.am/Site/Sources/pcsx4all_source.tar.gz > pcsx4all_source.tar.gz


Наверное, это самые актуальные, версии 2.3

Цитата(fill.sa @ Сегодня, 4:46)
* И я правильно понял файл Makefile.wiz собирает вариант для консоли?


Да, а обычный Makefile -- для MotoMAGX.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 19.9.2016, 14:29


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

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


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



Рейтинг: 1211



Цитата(EXL @ 17.9.2016, 17:50)
* У тебя телеграм есть? Давай попробуем дописать клавиатурный даемон. Накропал вот за полчаса.

Стучитесь, кому интересно: https://telegram.me/exlmoto (советую установить Telegram на комп, лучший мессенджер ИМХО).

А как же аська? not_i.gif
Цитата(EXL @ 17.9.2016, 17:50)
* Попробуй, позапускай в общем. По идее при нажатии кнопок должно сыпать в Telnet их кодами. Но я просто на 100% уверен, что где-то накосячил и нужно отлаживать. Если что, стучи в телеграм.

Аж 2,5 кнопок работает: громкость +, громкость -, камера сильное нажатие, остальное не отображает.
Прикрепленное изображение
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Unreal_man
сообщение 19.9.2016, 14:39


Гуру
******

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


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



Рейтинг: 607



А можно сделать так, чтоб стандартный проигрыватель в фоне по зажатии клавиш громкости "+" переключал на следующий трек и "-" на предыдущий(в любом состоянии, в т.ч. и спящем), и чтоб при этом не открывались стили? Прошивка Зинимод.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 19.9.2016, 15:11


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

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


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



Рейтинг: 1211



Цитата(Unreal_man @ Сегодня, 17:39)
* А можно сделать так, чтоб стандартный проигрыватель в фоне по зажатии клавиш громкости "+" переключал на следующий трек и "-" на предыдущий

На сколько понимаю вообще не реально, нужно изменять код плеера, которого ни у кого нет.
Цитата(Unreal_man @ Сегодня, 17:39)
* в т.ч. и спящем

В спящем музика не играет.

Добавлено позже (19.9.2016, 18:28):
Цитата(EXL @ 17.9.2016, 17:50)
* лучший мессенджер ИМХО

Меседжер проверяющий содержимое трусов (логин исключительно по номеру телефона) не может быть лучшим в принципе.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 19.9.2016, 18:41


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(VINRARUS @ Сегодня, 20:29)
* А как же аська?


На GNU/Linux нет нормального клиента, да и устарела она сильно.

Цитата(VINRARUS @ Сегодня, 20:29)
* Аж 2,5 кнопок работает: громкость +, громкость -, камера сильное нажатие, остальное не отображает.


Ясно, скорее всего сообщения у ZN5 и Z6 отличаются, измени метод catchButton() таким образом:

Код
    void catchButton(const QCString &message, const QByteArray &data) {
        QDataStream stream(data, IO_ReadOnly);

        std::cout << "message: " << message << "; data: ";

        while(!stream.atEnd()) {
            int var = 0;
            stream >> var;
            std::cout << var << " ";
        }

        std::cout << std::endl;
    }


И посмотри, что вообще шлётся там.

Цитата(VINRARUS @ Сегодня, 21:11)
* На сколько понимаю вообще не реально, нужно изменять код плеера, которого ни у кого нет.


Можно попробовать реализовать хаком -- эмулировать нажатие стрелок <- и ->, когда клавиши громкости удерживаются.

Цитата(VINRARUS @ Сегодня, 21:11)
* Меседжер проверяющий содержимое трусов (логин исключительно по номеру телефона) не может быть лучшим в принципе.


Да, единственный его недостаток, но номер никому, кроме тебя не видно.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 19.9.2016, 19:48


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

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


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



Рейтинг: 1211



Цитата(EXL @ Сегодня, 21:41)
* На GNU/Linux нет нормального клиента, да и устарела она сильно.

А этот, жабер?
Цитата(EXL @ Сегодня, 21:41)
* Да, единственный его недостаток, но номер никому, кроме тебя не видно.

Это интернет, а не записная книжка. Кому нужно тому видно.
Цитата(EXL @ Сегодня, 21:41)
* Ясно, скорее всего сообщения у ZN5 и Z6 отличаются, измени метод catchButton() таким образом:

Ниче не поменялося. glare.gif
Прикрепленное изображение
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 19.9.2016, 20:55


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(VINRARUS @ Сегодня, 1:48)
* Ниче не поменялося.


А так попробуй: http://paste.org.ru/?nj9ku9
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 19.9.2016, 21:06


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

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


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



Рейтинг: 1211



Цитата(EXL @ Вчера, 23:55)
* А так попробуй:

Initializing keyd (keyboard deamon) и закрывается без ошибок.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 19.9.2016, 21:21


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(VINRARUS @ Сегодня, 3:06)
*
Initializing keyd (keyboard deamon) и закрывается без ошибок.


А, да. Забыл про ZApplication.

http://paste.org.ru/?zv23bo
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 19.9.2016, 21:27


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

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


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



Рейтинг: 1211



Цитата(EXL @ Сегодня, 0:21)
* А, да. Забыл про ZApplication.

Как и раньше реагрует на 3 кнопки, ну и 4я красная:
Код
ZApplication::slotSystemMessage msg=ReturnToIdle(int) data=��x
message: ReturnToIdle(int); data: -5000
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 19.9.2016, 21:46


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(VINRARUS @ Сегодня, 3:27)
* Как и раньше реагрует на 3 кнопки, ну и 4я красная:

Ооочень странно. Так, ради интереса, у тебя Z6 тоже при себе?

Проверь это от аргентинцев. Если отлавливает все кнопки на ZN5 и Z6, значит где-то мой косяк, буду разбираться. Если отлавливает все кнопки только на Z6, значит они всё опять поменяли и дропнули совместимость.
Прикрепленный файл vrs.zip   ( 16.42 килобайт ) Кол-во скачиваний: 51
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 19.9.2016, 22:02


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

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


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



Рейтинг: 1211



Цитата(EXL @ Сегодня, 0:46)
* Если отлавливает все кнопки только на Z6, значит они всё опять поменяли и дропнули совместимость.

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


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(VINRARUS @ Сегодня, 4:02)
* А если на Z6 ничо не отлавливает?

Тоже не все кнопки?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 19.9.2016, 22:24


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

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


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



Рейтинг: 1211



Цитата(EXL @ Сегодня, 1:19)
* Тоже не все кнопки?

Вообще 0.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 19.9.2016, 22:34


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(VINRARUS @ Сегодня, 4:24)
* Вообще 0.

И на ZN5 так же? Даже welcome не пишет? laugh.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 19.9.2016, 22:36


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

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


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



Рейтинг: 1211



Цитата(EXL @ 20.9.2016, 1:34) *

Цитата(VINRARUS @ Сегодня, 4:24)
* Вообще 0.

И на ZN5 так же? Даже welcome не пишет? laugh.gif

Угу, только спам о подсветке. pardon.gif

Добавлено позже (20.9.2016, 1:37):
Гляди шо я нашол. blind.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 19.9.2016, 22:50


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(VINRARUS @ Сегодня, 4:36)
* Угу, только спам о подсветке.


Хм. Пересобрал бинарники. У него ошибка там что ли...

Цитата(VINRARUS @ Сегодня, 4:36)
* Гляди шо я нашол.


Да это GUI-приложение, отловить кнопки в окне проще простого smile.gif А вот глобально надо изощряться.
Прикрепленный файл vrs_2.zip   ( 16.43 килобайт ) Кол-во скачиваний: 54
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 19.9.2016, 23:03


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

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


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



Рейтинг: 1211



Цитата(EXL @ Сегодня, 1:50)
* Хм. Пересобрал бинарники. У него ошибка там что ли...

тоже самое на обох апаратах.
Прикрепленное изображение
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 19.9.2016, 23:08


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(VINRARUS @ Сегодня, 5:03)
* тоже самое на обох апаратах.

Ясно. Ладно, придумаю может что-нибудь завтра.

Добавлено позже (20.9.2016, 6:12):
Нашёл в заголовочных файлах такое:

Код
#define PHONE_IDLE_KEYPAD_CHANNEL "/Phone/Idle/keypad/channel"
#define    SYSTEM_SETUP_CHANNEL                "/systemsetup/broadcast"


Попробуй в этом исходнике: http://paste.org.ru/?zv23bo

Подписаться на эти каналы событий, вместо

bcChannel = new QCopChannel("/hardkey/bc", this); -> bcChannel = new QCopChannel("/Phone/Idle/keypad/channel", this);

Ну и

sysChannel = new QCopChannel("EZX/System", this); -> sysChannel = new QCopChannel("/systemsetup/broadcast", this);

Или ещё sysChannel = new QCopChannel("EZX/QtServer", this);

Пробуй smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 20.9.2016, 20:38


Гуру
******

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

Рейтинг: 400



Цитата(EXL @ 18.9.2016, 7:07) *

Цитата(fill.sa @ Сегодня, 4:46)
*
В архиве 3и версии, в чем их отличаи? Какой для зины лучше собирать?


Я не помню уже, шесть лет назад было. Вот ещё нашёл:

http://exlmoto.ru/pcsx4all-motomagx-source-code/

Код
curl http://motodev.do.am/Site/Sources/pcsx4all_source.tar.gz > pcsx4all_source.tar.gz


Наверное, это самые актуальные, версии 2.3

Цитата(fill.sa @ Сегодня, 4:46)
* И я правильно понял файл Makefile.wiz собирает вариант для консоли?


Да, а обычный Makefile -- для MotoMAGX.


Спасибо. Версия по ссылке, кстати, оказалась эдентична 3му варианты в архиве.
А какой командой собрать? А то пробовал просто make , сразу ругалось на нехватку файлов SDL. Подсказали поменять пути вот так
Код
#LIBS       = `sdl-config --libs` -lSDL -lm -ldl
LIBS       = -L/arm-eabi/lib/SDL/lib/ -lSDL -lm -ldl
#CFLAGS        =     $(CPU_OPT) `sdl-config --cflags` -D__ARM_EABI__ -D__arm__ \
CFLAGS        =     $(CPU_OPT) -I/arm-eabi/lib/qt-zn5/include -I/arm-eabi/lib/ezx-zn5/include -I /arm-eabi/arm-linux-gnueabi/include -D__ARM_EABI__ -D__arm__ \

Сборка пошла, но теперь ругается на неизвесные функции из порта. Видимо папка порт почемуто ненаходится. Вариант из makefile.wiz собирается без проблем.
название

Код


fill@fill-virtual-machine:~/moto/source/pcsx4all_all/pcsx4all_source$ make
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/lib/qt-zn5/include -I/arm-eabi/lib/ezx-zn5/include -I /arm-eabi/arm-linux-gnueabi/include -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -c src/cdriso.cpp -o src/cdriso.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/lib/qt-zn5/include -I/arm-eabi/lib/ezx-zn5/include -I /arm-eabi/arm-linux-gnueabi/include -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -c src/cdrom.cpp -o src/cdrom.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/lib/qt-zn5/include -I/arm-eabi/lib/ezx-zn5/include -I /arm-eabi/arm-linux-gnueabi/include -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -c src/debug.cpp -o src/debug.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/lib/qt-zn5/include -I/arm-eabi/lib/ezx-zn5/include -I /arm-eabi/arm-linux-gnueabi/include -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -c src/decode_xa.cpp -o src/decode_xa.o
src/decode_xa.cpp:59: предупреждение: converting to `int' from `double'
src/decode_xa.cpp:59: предупреждение: converting to `int' from `double'
src/decode_xa.cpp:59: предупреждение: converting to `int' from `double'
src/decode_xa.cpp:59: предупреждение: converting to `int' from `double'
src/decode_xa.cpp:66: предупреждение: converting to `int' from `double'
src/decode_xa.cpp:66: предупреждение: converting to `int' from `double'
src/decode_xa.cpp:66: предупреждение: converting to `int' from `double'
src/decode_xa.cpp:66: предупреждение: converting to `int' from `double'
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/lib/qt-zn5/include -I/arm-eabi/lib/ezx-zn5/include -I /arm-eabi/arm-linux-gnueabi/include -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -c src/mdec.cpp -o src/mdec.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/lib/qt-zn5/include -I/arm-eabi/lib/ezx-zn5/include -I /arm-eabi/arm-linux-gnueabi/include -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=[/expand]\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -c src/misc.cpp -o src/misc.o
src/misc.cpp: In
function `int SaveState(const char*)':
src/misc.cpp:488: ошибка: `port_mute' undeclared (first use this function)
src/misc.cpp:488: ошибка: (Each undeclared identifier is reported only once for each function it appears in.)
src/misc.cpp:532: ошибка: `port_sync' undeclared (first use this function)
make: *** [src/misc.o] Ошибка 1
[close]
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 20.9.2016, 21:49


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

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


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



Рейтинг: 1211



Цитата(VINRARUS @ 15.9.2016, 21:25) *

Цитата(fill.sa @ 15.9.2016, 19:39) *

Может у кого завалялся код демона для отслеживания нажатой клавиши?

Оно?

Чото оно даже на Z6 не ловит кнопку после компиляции... not_i.gif


Добавлено позже (21.9.2016, 1:13):
Цитата(EXL @ Вчера, 2:08)
* Попробуй в этом исходнике: http://paste.org.ru/?zv23bo

Подписаться на эти каналы событий, вместо

Код
Initializing keyd (keyboard deamon)
Starting keyd (keyboard deamon)...done.

И всьо, никак не реагирует ни на какие кнопки...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 21.9.2016, 15:48


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(fill.sa @ Сегодня, 2:38)
* А какой командой собрать? А то пробовал просто make , сразу ругалось на нехватку файлов SDL. Подсказали поменять пути вот так


Да ты тут спрашивай, что тебе непонятно. Я всегда отвечаю, по мере возможности и не кусаюсь.

Собирать нужно с подгрузкой переменных окружения скриптом setenv-z6.sh, то есть вот так:

Код
. /путь_до_/setenv-z6.h
make


Там точка в начале первой команды важна, это не тупо выполнение скрипта, а подгрузка переменных окружения для текущего сеанса bash.

Сейчас проверил, нормально собирается, но там небольшой косячок в Makefile, исправь пожалуйста 44-строку с

Код
-DPSXREC


на

Код
-DPSXREC \


Забыл слеш доложить для конкатенации строки.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 21.9.2016, 18:11


Гуру
******

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

Рейтинг: 400



Цитата(EXL @ 21.9.2016, 16:48) *

Цитата(fill.sa @ Сегодня, 2:38)
* А какой командой собрать? А то пробовал просто make , сразу ругалось на нехватку файлов SDL. Подсказали поменять пути вот так


Да ты тут спрашивай, что тебе непонятно. Я всегда отвечаю, по мере возможности и не кусаюсь.

Собирать нужно с подгрузкой переменных окружения скриптом setenv-z6.sh, то есть вот так:

Код
. /путь_до_/setenv-z6.h
make


Там точка в начале первой команды важна, это не тупо выполнение скрипта, а подгрузка переменных окружения для текущего сеанса bash.

Сейчас проверил, нормально собирается, но там небольшой косячок в Makefile, исправь пожалуйста 44-строку с

Код
-DPSXREC


на

Код
-DPSXREC \


Забыл слеш доложить для конкатенации строки.

Это где мне такой файл setenv-z6.sh выдернуть?

EXL: В первом посту этой темы почитай. Там всё есть
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 21.9.2016, 18:17


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(VINRARUS @ Сегодня, 3:49)
* Чото оно даже на Z6 не ловит кнопку после компиляции...


Вот-вот. Сомневаюсь, что оно рабочее.

Цитата(VINRARUS @ Сегодня, 3:49)
*
И всьо, никак не реагирует ни на какие кнопки...


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


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

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


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



Рейтинг: 1211



Цитата(EXL @ Сегодня, 21:17)
* Есть ещё одна мысль, нужно проверить, выйди в аську тогда.

Ай ай, а я только кубунту поставил... smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 21.9.2016, 19:35


Гуру
******

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

Рейтинг: 400



Цитата(fill.sa @ 21.9.2016, 19:11) *


EXL: В первом посту этой темы почитай. Там всё есть

А я и незнал про этот файл, я sdk еще во времена z6 устанавливал. Там его небыло.
Вообщем скачал, заодно обновил sdc, сборка пошла но всеравно ошибка.
Вот конец лога, что нетак?

название
Код
src/port/sdl/frontend.cpp:8:21: SDL/SDL.h: Нет такого файла или каталога
In file included from src/port/sdl/frontend.cpp:10:
src/port/sdl/frontend_menu.h:2: ошибка: `Uint8' does not name a type
In file included from src/port/sdl/frontend.cpp:10:
src/port/sdl/frontend_menu.h:4803:4: предупреждение: no newline at end of file
In file included from src/port/sdl/frontend.cpp:12:
src/port/sdl/frontend_font.h:1: ошибка: `Uint8' does not name a type
In file included from src/port/sdl/frontend.cpp:12:
src/port/sdl/frontend_font.h:67:3: предупреждение: no newline at end of file
In file included from src/port/sdl/frontend.cpp:14:
src/port/sdl/config.h:36:3: предупреждение: no newline at end of file
In file included from src/port/sdl/frontend.cpp:21:
src/port/sdl/config.h:36:3: предупреждение: no newline at end of file
src/port/sdl/frontend.cpp: In function `void wiz_text(int, int, char*, int)':
src/port/sdl/frontend.cpp:102: ошибка: `fontdata8x8' undeclared (first use this function)
src/port/sdl/frontend.cpp:102: ошибка: (Each undeclared identifier is reported only once for each function it appears in.)
src/port/sdl/frontend.cpp: In function `unsigned int wiz_joystick_read(int)':
src/port/sdl/frontend.cpp:139: предупреждение: unused variable 'master_volume'
src/port/sdl/frontend.cpp: In function `void game_list_view(int*)':
src/port/sdl/frontend.cpp:243: ошибка: `menu_bmp' undeclared (first use this function)
src/port/sdl/frontend.cpp: In function `int show_options(char*)':
src/port/sdl/frontend.cpp:298: ошибка: `menu_bmp' undeclared (first use this function)
src/port/sdl/frontend.cpp:286: предупреждение: unused variable 'f'
src/port/sdl/frontend.cpp: In function `int frontend_run()':
src/port/sdl/frontend.cpp:672: предупреждение: в функции, которая должна возвращать значение, отсутствует оператор return
src/port/sdl/frontend.cpp: In function `int LoadConfig(char*)':
src/port/sdl/frontend.cpp:738: предупреждение: unused variable 'path'
src/port/sdl/frontend.cpp:791:3: предупреждение: no newline at end of file
src/port/sdl/frontend.cpp: At global scope:
src/port/sdl/frontend.cpp:72: предупреждение: 'dpad_rect' defined but not used
src/port/sdl/frontend.cpp:73: предупреждение: 'button_rect' defined but not used
make: *** [src/port/sdl/frontend.o] Ошибка 1

[close]
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 21.9.2016, 19:51


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(fill.sa @ Сегодня, 1:35)
* Вот конец лога, что нетак?


Замени кусок в Makefile таким:

Код
CFLAGS        =        $(CPU_OPT) $(shell sdl-config --cflags) -D__ARM_EABI__ -D__arm__ \
                -Isrc -Isrc/zlib -Isrc/spu/$(SPU) -D$(SPU) -Isrc/gpu/$(GPU) -D$(GPU) -D$(INTERPRETER) \
                -D$(RECOMPILER) -D$(GTE) -Isrc/port/$(PORT) -Isrc/gte/$(GTE) \
                -DXA_HACK -DBIOS_FILE=$(BIOS_FILE) -DMCD1_FILE=$(MCD1_FILE) -DMCD2_FILE=$(MCD2_FILE) \
                -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC \
                -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing \
                -mstructure-size-boundary=32 -fexpensive-optimizations \
                -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps \
                -finline -finline-functions -fno-common -fno-builtin \
                -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return

ASFLAGS = -march=armv6j -mcpu=arm1136jf-s -mfpu=vfp
# -mthumb-interwork

INCLUDES   =
LIBS       = $(shell sdl-config --libs) -lSDL -lm -ldl
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 21.9.2016, 20:30


Гуру
******

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

Рейтинг: 400



Цитата(EXL @ 21.9.2016, 20:51) *

Цитата(fill.sa @ Сегодня, 1:35)
* Вот конец лога, что нетак?


Замени кусок в Makefile таким:

Код
CFLAGS        =        $(CPU_OPT) $(shell sdl-config --cflags) -D__ARM_EABI__ -D__arm__ \
                -Isrc -Isrc/zlib -Isrc/spu/$(SPU) -D$(SPU) -Isrc/gpu/$(GPU) -D$(GPU) -D$(INTERPRETER) \
                -D$(RECOMPILER) -D$(GTE) -Isrc/port/$(PORT) -Isrc/gte/$(GTE) \
                -DXA_HACK -DBIOS_FILE=$(BIOS_FILE) -DMCD1_FILE=$(MCD1_FILE) -DMCD2_FILE=$(MCD2_FILE) \
                -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC \
                -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing \
                -mstructure-size-boundary=32 -fexpensive-optimizations \
                -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps \
                -finline -finline-functions -fno-common -fno-builtin \
                -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return

ASFLAGS = -march=armv6j -mcpu=arm1136jf-s -mfpu=vfp
# -mthumb-interwork

INCLUDES   =
LIBS       = $(shell sdl-config --libs) -lSDL -lm -ldl



Не помогает.
Заглянул в setenv-z6 там никаких путей к sdl.
Попробовал так дописать
Код
#!/bin/bash

export MOTOMAGXPATH=/home/fill/moto/motomagx
export TOOLPREFIX=$MOTOMAGXPATH/arm-eabi
export QTDIR=$TOOLPREFIX/lib/qt-2.3.8:$TOOLPREFIX/lib/SDL/lib
export EZXDIR=$TOOLPREFIX/lib/ezx-z6:$TOOLPREFIX/lib/SDL/lib
export PATH=$QTDIR/bin:$TOOLPREFIX/bin:$TOOLPREFIX/lib/SDL/bin:$TOOLPREFIX/arm-linux-gnueabi/bin:$PATH
export LFLAGS_EXTRA=" -Wl,-rpath-link,$TOOLPREFIX/arm-linux-gnueabi/lib "

export ARCH=iwmmxt
export CC=arm-linux-gnueabi-gcc
export CXX=arm-linux-gnueabi-g++
export LD=arm-linux-gnueabi-ld
export AR=arm-linux-gnueabi-ar
export AS=arm-linux-gnueabi-as
export OC=arm-linux-gnueabi-objcopy
export RANLIB=arm-linux-gnueabi-ranlib
export STRIP=arm-linux-gnueabi-strip
export TMAKEPATH=$TOOLPREFIX/tmakelib/pwd/arm-linux-g++/

все равно те же ошибки при сборке.

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

46 страниц V « < 26 27 28 29 30 > » 
Ответ в темуСоздание новой темы
7 чел. читают эту тему (гостей: 7, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 21.7.2025, 22:53

Форум живёт: