motofan logo
46 страниц V « < 34 35 36 37 > »         
> 

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

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


Rock The Microphone
********

Группа: Администраторы
Сообщений: 3 140
Регистрация: 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 килобайт ) Кол-во скачиваний: 21669

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

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

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

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


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

Группа: Пользователи
Сообщений: 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:09)
* Как будет исключительно под мой мод, сразу напишу, а пока она для всех.

Пока ты будеш пренебрегать совместимостью твой софт и будет исключительно токо под твой мод.
Цитата(fill.sa @ Вчера, 20:09)
* Эммм, предлагаеш распаковывать архивы без архиватора?

Предлагаеш перешывать телефон для установки твоей оболочки разархиватора?
Цитата(fill.sa @ Вчера, 20:09)
* Ты столько лет уже с линуксом, а до сих пор не знаешь как все устроено. А пора бы.

Если б в GNU Linux так же относились к установке софта как и ты то под него б и браузера нормального небыло, уж не говорю о каких то 3D играх.

Поюзай десктопный линукс хотя б месяц, поучись у людей совместимости в софте (обеспечить все зависимости куда сложнее чем добавить в папку с програмой сторонние бинарники, с чем ты не справился).
Цитата(fill.sa @ Вчера, 20:09)
* Добавь себе нормальные архиваторы и будет тебе счастье.

Ну давай, продемонстрируй как ты с помощью unrar и unzip будеш архивировать. Изображение А потом ещо хочу увидеть un7zip, который не p7zip.
Цитата(fill.sa @ Вчера, 20:09)
* А то на твоем моде скоро вообще ничего работать не будет.

Если я не буду думать о совместимости в своем софте твой мод даже не запустит его.
Например ты решыл /etc/resolv.conf запихнуть далеко и не туда где у всех, пришлось это учитывать в коде спецыально.
Цитата(fill.sa @ Вчера, 20:09)
* Так я про это и пишу, без геморного парсинга, кроме tar никто нормально список не показывает.

Ты програмист или веб-дизайнер? lol.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 19.6.2018, 22:18


Гуру
******

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

Рейтинг: 400



VINRARUS,
т.е. ты решил выкинуть архиваторы и мне говоришь про совместимость?

Цитата(VINRARUS @ Сегодня, 20:56)
* Предлагаеш перешывать

Предлагаю тебе делать мод по нормальному, а не идти своими извращенными путями и удивляться что ничего на нем не работает.

Цитата(VINRARUS @ Сегодня, 20:56)
* Поюзай десктопный линукс хотя б месяц,

Ну ну и чем там? настал момент офигительных историй )) Много ты там за месяц на пользовался? А то я свой первый редхат где-то в 2006 поставил.

Цитата(VINRARUS @ Сегодня, 20:56)
* поучись у людей совместимости в софте

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


Цитата(VINRARUS @ Сегодня, 20:56)
* Например ты решыл /etc/resolv.conf

Ты нормальный? /etc/resolv.conf лежит в /etc/resolv.conf и нечего тут изобретать велосипед.


Цитата(VINRARUS @ Сегодня, 20:56)
* Ты програмист или веб-дизайнер?

Тебя слово парсинг так пугает? Ну тыж далек от программирования, вот тебе и незнакомы такие слова.

Сообщение отредактировал fill.sa - 19.6.2018, 22:21
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 20.6.2018, 17:52


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

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


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



Рейтинг: 1211



Цитата(fill.sa @ Сегодня, 0:18)
* т.е. ты решил выкинуть архиваторы и мне говоришь про совместимость?

Таких обычно балаболами звут, так как они утверждают заведомо ложную информацию. jester.gif
Покажы на каком этапе я выкинул "архиваторы" (до хоть разархиваторы), пустобрех.
Цитата(fill.sa @ Сегодня, 0:18)
* Предлагаю тебе делать мод по нормальному, а не идти своими извращенными путями и удивляться что ничего на нем не работает.

ОК, я больше не буду заботиться о совместимости свого софта с твоим модом, раз ты тут себя возомнил законодателем стандартов. Изображение Почему я должен делать то о чем ты даже задумываться отказываешся?
Цитата(fill.sa @ Сегодня, 0:18)
* Разрабы пользуются единым стандартом, а не что кому в голову взбрело.

Как бы тебе ответить попонятнее: ты царь табуретки, 4мя её гранями ограничивается юридическая сила твоего законодательства.
Цитата(fill.sa @ Сегодня, 0:18)
* Ты нормальный? /etc/resolv.conf лежит в /etc/resolv.conf и нечего тут изобретать велосипед.

Ты точно автор мода SAedition MOD? lol.gif
Цитата(fill.sa @ Сегодня, 0:18)
* Тебя слово парсинг так пугает? Ну тыж далек от программирования, вот тебе и незнакомы такие слова.
Ребус для fill.sa
Код
echo "`ls /bin | sed -e '/.ee$/!d' -e '/^.r../!d' -e 's%e%f%' -e 's%$%*%'  -e 's%^%r%' -e 's%e% /%' -e 's%f%m -%' `"
[close]


Добавлено позже (20.6.2018, 20:01):
fill.sa, я так пообщался с тобой и понял шо ты не похож на белоруса, видимо приежжый.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 22.6.2018, 16:55


Гуру
******

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

Рейтинг: 400



Цитата(VINRARUS @ 20.6.2018, 18:52)
* Покажы на каком этапе я выкинул "архиваторы" (до хоть разархиваторы), пустобрех.

Меня мало волнует где и когда ты их выкинул. Покажи вывод команд unzip, unrar , если их нету значит и архиваторов нету. И нечего дальше твои бредни обсуждать.

Цитата(VINRARUS @ 20.6.2018, 18:52)
* ОК, я больше не буду заботиться о совместимости свого софта

Ты начни делать по нормальному и все твои проблемы разом отпадут. А то ты так скоро все команды в свои переименушь и будеш удивлять что у других твои скрипты не пашут.

Цитата(VINRARUS @ 20.6.2018, 18:52)
* Ты точно автор мода SAedition MOD?

А ты точно понимаешь как устроен линукс? хотябы в общих чертах?

Цитата(VINRARUS @ 20.6.2018, 18:52)
* fill.sa, я так пообщался с тобой и понял шо ты не похож на белоруса, видимо приежжый.

Оо да ты еще и спец в нац чертах? Ты еще себя царем возамни, но от этого интелекта все-равно не прибавиться тебе.

Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 22.6.2018, 22: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 @ Сегодня, 18:55)
* Меня мало волнует где и когда ты их выкинул. Покажи вывод команд unzip, unrar , если их нету значит и архиваторов нету. И нечего дальше твои бредни обсуждать.

Ты своим столярным умом даже архиватор от распаковщина отличить не способен, Пинокио. laugh.gif
Продолжай и дальше игнорировать 7z, это от тебя и требуется.
Цитата(fill.sa @ Сегодня, 18:55)
* Ты начни делать по нормальному и все твои проблемы разом отпадут.

Одинаковые пакеты моих програм работает на 3х поколениях MOTOMAGX, а твой "софт" даже на единственной модели мало где работает.
Цитата(fill.sa @ Сегодня, 18:55)
* А то ты так скоро все команды в свои переименушь и будеш удивлять что у других твои скрипты не пашут.

Для этого мне нужно повторять твои действия. Ты отлично показал как делать не нада, пасиба.
Цитата(fill.sa @ Сегодня, 18:55)
* А ты точно понимаешь как устроен линукс? хотябы в общих чертах?

Палка, палка, огуречик - получился человечек. Скрепка, скрепка и бидон - получился чемпион.
ПС: Linux второстепенен на самом деле.
Цитата(fill.sa @ Сегодня, 18:55)
* но от этого интелекта все-равно не прибавиться тебе.

От разговоров с тобой - точно не прибавится, ты как забавный генератор помех.

Сообщение отредактировал VINRARUS - 22.6.2018, 22:27
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 22.6.2018, 23:03


Гуру
******

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

Рейтинг: 400



VINRARUS,
А Пинокио так и не понял что архиватор может заниматься как распаковкой так и упаковкой, а также кучей других вещей таких как обозреватель файлов и тд.
Ну и что ты тут скажешь пинокио? Будешь в названии перечислять весь функционал программы вместо слова архиватор?

Цитата(VINRARUS @ Сегодня, 23:25)
* моих програм

сриптов точнее, это не совсем программы. Но Пинокие разницы не знает.

Дальше уже лень читать, реши сначала проблемы совместимости со своим модом. вынь и полож unzip, unrar. А кто там будет под этими командами работать мало интерестно, хоть cpio хоть ace, хоть lzma или p7zip с плагинами rar и zip.
Вот потом можно будет продолжить разговор с тобой, Пинокио.

Добавлено позже (23.6.2018, 0:05):
Подколка на последок. Tar тоже ты удалил? у тебя же p7zip есть grin.gif

Сообщение отредактировал fill.sa - 22.6.2018, 23:15
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 23.6.2018, 17:54


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

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


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



Рейтинг: 1211



Цитата(fill.sa @ Сегодня, 1:03)
* А Пинокио так и не понял что архиватор может заниматься как распаковкой так и упаковкой

Так я об этом и пишу, Пинокио так и не понял шо такое архиватор.
Цитата(fill.sa @ Сегодня, 1:03)
* Ну и что ты тут скажешь пинокио? Будешь в названии перечислять весь функционал программы вместо слова архиватор?

Так Пинокио и перечисляет постоянно это в названии:
Цитата(fill.sa @ Вчера, 18:55)
* unzip, unrar

Цитата(fill.sa @ Сегодня, 1:03)
* сриптов точнее, это не совсем программы. Но Пинокие разницы не знает.

Ну давай, лжывый Пинокио, докажы тут всем шо такое чистокровная арийская програма.
Цитата(fill.sa @ Сегодня, 1:03)
* Вот потом можно будет продолжить разговор с тобой, Пинокио.

Ну почему ты стал Пинокио всем уже стало ясно - заврался по коричневому. Ты думаеш по примеру росийский фашыков сможеш открыто врать и тебе рейтинги кто то нарисует?
Гыгы, глупый Пинокио, дерево плавает в воде, но не в говне... wink.gif
Цитата(fill.sa @ Сегодня, 1:03)
* Подколка на последок. Tar тоже ты удалил? у тебя же p7zip есть

Ядерного топлива хватит на всех. Изображение Зови однодумцев, а то скучно стаёт, правда если ещо не изотлел, может хоть тогда потребуется немного мощность реактора повысить. Изображение Пока штатный режым всего лиш из за примитивных наездом на бордюр.

Сообщение отредактировал VINRARUS - 23.6.2018, 17:59
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 25.6.2018, 20:52


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

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


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



Рейтинг: 1211



Цитата(fill.sa @ 23.6.2018, 1:03)
* Tar тоже ты удалил?

К стати в отличии от твого мода в ZiniMOD tar как утилита вызывается (как и в обычных дистрибутивах), а ты, делая ИСКЛЮЧИТЕЛЬНО под свой мод, вызываеш его через tar busybox, лицымерный Пинокио.[video]https://youtu.be/g4CL4Y8y4GE[/video]
Сначала сам научись ПРАВИЛЬНО делать мод, а токо потом другим диктуй скромно подсказывай.

Сообщение отредактировал VINRARUS - 25.6.2018, 21:10
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 1.7.2018, 12:53


Гуру
******

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

Рейтинг: 400



Цитата(VINRARUS @ 25.6.2018, 21:52)
* а ты, делая ИСКЛЮЧИТЕЛЬНО под свой мод

Ну тебе видимо виднее, ты же автор моего мода...
Код
# tar -h
BusyBox v1.01-1.0.2 (---) multi-call binary

Usage: tar -[czjZxtvO] [-f TARFILE] [-C DIR] [FILE(s)] ...


Ой обломчик, болобол сказал, да не додумался проверить как оно в реале у меня в моде.

И интелекста видимо не хватило догадаться, что busybox Tar вызывается для совместимости с другими модами. Т.к. в отличаи от тебя я думаю о совместимости.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 3.7.2018, 17:34


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

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


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



Рейтинг: 1211



Цитата(fill.sa @ 1.7.2018, 15:53)
* Т.к. в отличаи от тебя я думаю о совместимости.

Исключительно о совместимости со старыми версиями свого мода, где unrar присутствует, а симлиинк tar отсутствует. Не выбрышешся.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 3.7.2018, 18:36


Гуру
******

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

Рейтинг: 400



VINRARUS,
ну вот ты и прокололся в очередной раз.
пример выше я тебе как раз из старой версии показывал, там даже бузибокс еще версии 1.01 стоит. А бузибокс тар исключительно для работы с другими модами, т.к. много у кого нету ссылка на буибокс.

Но тебе как обычно виднее, это же ты мой мод делал и прогу писал.

Сообщение отредактировал fill.sa - 3.7.2018, 18:42
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 3.7.2018, 19:21


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

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


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



Рейтинг: 1211



Цитата(fill.sa @ Сегодня, 21:36)
* ну вот ты и прокололся в очередной раз.
пример выше я тебе как раз из старой версии показывал

Чо я должен в сотый раз доказывать твою деревяную лож?
Код

.../SAeditionMOD_v4beta_2CR_128/SAeditionCG36$ cat ./etc/base_version.txt
LinuxJava 6.3 (MOTOMAGX 6.3) SA.2CR_128
.../SAeditionMOD_v4beta_2CR_128/SAeditionCG36$ find -name "unrar"
./usr/bin/unrar
.../SAeditionMOD_v4beta_2CR_128/SAeditionCG36$ find -name "tar"
.../SAeditionMOD_v4beta_2CR_128/SAeditionCG36$ find -name "sh"
./bin/sh
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 4.7.2018, 9:41


Гуру
******

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

Рейтинг: 400



VINRARUS,
ты где эту древность откопал? Это вообще пробник фиг знает какой версии ибо в "SA.2CR_128" отсутствует номер версии.
У меня была куча разных сборок для разных целей, были и помесь с чистой монтавистой и с помесью 7fr ище для кучи разных задач. Была даже сборка где родную оконную сстему на x11 пытался поменять, правда она чет несовсем работала.

Так что там не то что tar, там может оказаться что пол прошивки не хватает в этих сборках - т.к. они совсем для других целей делались.

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


Rock The Microphone
********

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

Рейтинг: 4654



Вместо непродуктивных и бесполезных споров и переходов на личности лучше бы вы составили таблицу результатов бенчмарка 7z b 3 со swap'ом в 64-128 MB с бинарями, собранными под разными флагами оптимизации:
  • -O2
  • -O3
  • -march=armv6j -mtune=arm1136jf-s -O2
  • -march=armv6j -mtune=arm1136jf-s -O3
  • -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -O2
  • -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -O3
  • -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -Os -O2
  • -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -Os -O3

Это бы позволило выявить наиболее приемлемую комбинацию для сборки исполнительных файлов. Для большинства MotoMAGX-софта использовалась предпоследняя.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 7.7.2018, 6:05


Гуру
******

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

Рейтинг: 400



EXL,
Я уже это предлагал винрарусу скинуть кучу файлы на проверку. И кое какие еще вещи по проверять.

Но...спор важнее чем развитие магикса.

Сообщение отредактировал fill.sa - 7.7.2018, 6:16
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 11.8.2018, 8:43


Гуру
******

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

Рейтинг: 400



Как-то делать было нечего, тренеровался я с писаниной ПО и получилась небольшая виртуальная клава.
Выложу - мож кого заинтересует. Понятное дело это дико пробный вариант, но вдруг у кого интерес к проекту проснется.

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

Сообщение отредактировал fill.sa - 11.8.2018, 19:49
Прикрепленное изображение
Прикрепленный файл zVKB_ZN5.zip   ( 11.63 килобайт ) Кол-во скачиваний: 62
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 11.8.2018, 15:57


Гуру
******

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

Рейтинг: 400



Некогда EXL начинал эту прогу и мы с ним пробовали получить разные данные.
До конца непонятно что там есть что.

Вот я добрался немного, более детально копнул, некоторая инфа прояснилась, некоторая частично.
Пока выкладываю прогу - может кто тоже поиграется и чего поймет.


Теперь к описанию, примерный список что вы увидите будет такой
Код
=== Battary Status ===
Batt Status: 2
Batt Level: 5
Batt Low: no
==== Battary Mah ====
batt_result: 614
curr_result: 123
polarity direction: discharge
timeout_secs: 37016
timing: 0
Temperature: 24
=== Other Info ===
CoinCellBatt: 10
Battery: 612
B+: 620
MobPortB(EXT B+): 444 mV
ChargerId: 1023
Thermistor sens: 233 Ohm
ad6 sellect: PA temperature
BattCoinCell: 444 mV
=== EMU transciver param ===
xcvr enable: 0
VUSB enable: 13848
VUSB input source: 1091744664
VUSB voltage: 5


Из них Batt Status, Batt Level, Batt Low и так понятны и вопросов не вызывают.

Далее непонятные batt_result , curr_result - их рассматривать нужно в паре.
Из описания которое я смог найти это The battery result from the conversion. и The current result from the conversion.
От себя заметил что сумма этих значений у меня на пробной акб всегда будет около 750 - возможно это расчетные данные емкости АКБ.
Так же я заметил когда тел к компу подключен, и если в исходниках перемещать местами эти строки то данные почему-то прилично менялись. Возможно совпадение.

Далее polarity direction - оно может иметь два значения. Из описания нашел Polarity for batt/current conversion. и The direction in which current should be sampled. Ignored for ATLAS.
Какаято полярность зарядки или разрядки видимо.

Далее timeout_secs и timing - опять таки ведут себя непредсказуемо.
Из того что нашел - Timeout for postponable conversion, in seconds. If a non-immediate conversion, timeout after this number of seconds.
и на timing - The timing for the conversion, timing как я понял может иметь 3 значения. "IMMEDIATE" : "IN_BURST" : "OUT_OF_BURST"

Далее температура - вроди как температура АКБ.

Остальное никакого описания неимеет. единственное что еще смог накопать это на ad6 sellect - имеет два значения "PA temperature" : "Lithium cell" в описании Indicates to take atod on PA temperature or Licell и When it is set to zero, indicates to take atod on PA temperature

Сообщение отредактировал fill.sa - 11.8.2018, 16:16
Прикрепленный файл battinfo.zip   ( 5.72 килобайт ) Кол-во скачиваний: 61
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 11.8.2018, 16:34


Rock The Microphone
********

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

Рейтинг: 4654



fill.sa,
Ты бы ещё на всякий случай и исходный код прикладывал, вдруг кто заинтересуется.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 12.8.2018, 17:57


Гуру
******

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

Рейтинг: 400



без проблем. Даже описание которое есть внутрь впихал.

Кстати еще заметил что batt_result всегда очень близок к Battery

Сообщение отредактировал fill.sa - 12.8.2018, 18:12
Прикрепленный файл main_batt.zip   ( 2 килобайт ) Кол-во скачиваний: 57
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 14.8.2018, 4:30


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

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


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



Рейтинг: 1211



Цитата(EXL @ Вчера, 7:12)
* Примечательно, что эта опечатка не проявлялась на старых версиях утилиты make, а вот с обновлением этой утилиты в современных дистрибутивах GNU/Linux, язык файлов Makefile стал более строгим и ядро перестало собираться.

А с тулчейном магиксовым нету такой проблемы? А то на манжаре моей с ядром 4.17.12 шото не получается компилировать, приходится виртуалку юзать. с линуксом. в линуксе.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 14.8.2018, 5:46


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(VINRARUS @ Сегодня, 11:30)
* А с тулчейном магиксовым нету такой проблемы? А то на манжаре моей с ядром 4.17.12 шото не получается компилировать, приходится виртуалку юзать. с линуксом. в линуксе.


Утилита make не входит в Toolchain & SDK для MotoMAGX, с ним другие проблемы: необходимость 32-битных библиотек в дистре. Что там пишет? Наверняка проблема в этом.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 14.8.2018, 16:21


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

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


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



Рейтинг: 1211



Цитата(EXL @ Сегодня, 8:46)
* Утилита make не входит в Toolchain & SDK для MotoMAGX, с ним другие проблемы: необходимость 32-битных библиотек в дистре. Что там пишет? Наверняка проблема в этом.

После компиляции на теле просто не запускается.
Код
# ./busybox
./busybox: 1: Syntax error: word unexpected (expecting ")")
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 15.8.2018, 6:25


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(VINRARUS @ Вчера, 23:21)
* После компиляции на теле просто не запускается.


Подобная ошибка часто говорит о том, что собралось под неправильную архитектуру. Сделай file busybox, посмотри что там.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 15.8.2018, 20:40


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

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


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



Рейтинг: 1211



Цитата(EXL @ Сегодня, 9:25)
* Подобная ошибка часто говорит о том, что собралось под неправильную архитектуру. Сделай file busybox, посмотри что там.

Переустановил тулчейн, простенькое и не очень вроде собирается.
Токо p7zip шото не получается под арм собрать правильно. Не пойму как с make общаться...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 16.8.2018, 8:24


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(VINRARUS @ Сегодня, 3:40)
* Токо p7zip шото не получается под арм собрать правильно. Не пойму как с make общаться...


Думаю, надо переопределить переменные CC, CXX и др. как:

Код

$ CC=arm-linux-gnueabi-gcc CXX=arm-linux-gnueabi-g++ make


Спроси fill.sa, он вроде собирал этот архиватор.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 9.12.2018, 21:56


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

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


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



Рейтинг: 1211



Вот выложыл скриптовую програму нового поколения: Нативные приложения для ZN5 king.gif
Активно использованы последние наработки обработки текстовой информации исключительно силами SHELL.

Как результат минимальные задержки и отличное быстродействие.
ПС: блин, качественный софт долго писать...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 10.12.2018, 1:35


Rock The Microphone
********

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

Рейтинг: 4654



VINRARUS,
Кстати, для корректного парсинга XML, можно использовать не собственноручно написанные велосипеды на sed/grep/awk и т. д., а специализированную утилиту xmllint, которая идёт вместе с библиотекой libxml2.

Код
$ WAPI="http://api.openweathermap.org/data/2.5/forecast?id=1496747&appid=489b47aa8eb421644b28d137d94d7625&mode=xml&units=metric&lang=Ru"

$ wget -qO- ${WAPI} | xmllint --xpath "string(/weatherdata/forecast/time[1]/temperature/@max)" -
-23.92

$ wget -qO- ${WAPI} | xmllint --xpath "string(/weatherdata/forecast/time[1]/clouds/@value)" -
ясно


Так код будет куда как компактнее, понятнее и, возможно, быстрее. Ну и при каком-либо незначительном изменении XML со стороны API/сайта собственноручные парсеры XML могут рассыпаться, тогда как xmllint будет работать.

xmllint для MotoMAGX прикрепляю, но не в курсе работает он или нет
через qemu-arm вроде работает, как на реальном железе будет -- х.з

Код
$ wget -qO- ${WAPI} | LD_LIBRARY_PATH=/opt/toolchains/motomagx/arm-eabi2/arm-linux-gnueabi/lib/:$LD_LIBRARY_PATH qemu-arm xmllint_O3 --xpattring(/weatherdata/forecast/time[9]/clouds/@value)" -
облачно
Прикрепленный файл xmllint.zip   ( 357.99 килобайт ) Кол-во скачиваний: 49
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 10.12.2018, 17:51


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

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


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



Рейтинг: 1211



Цитата(EXL @ Сегодня, 4:35)
* Так код будет куда как компактнее, понятнее и, возможно, быстрее

Ну компактный и понятный код это противоположность быстрого и маложрущего кода на практике.
Цитата(EXL @ Сегодня, 4:35)
* а специализированную утилиту xmllint, которая идёт вместе с библиотекой libxml2.

Она способна конкурировать с пакетным парсером (когда не 1 параметр нада вынуть, а все поля прочитать и класифицыровать)?
А то 40 раз запускать её лиш для построения списка температур на 5 дней врятли назвеш эфективным кодом. А так я распихиваю инфу не выгодя с лифта.
Вот например можна оценить скорость парсера на shell
Код
CLEAR(){
read a b c d e f z < /dev/null
DATA=
TIME=
POGODKA=
OPADN=
VITER=
VITERMS=
TEMPERATURA=
TNSK=
VOLOGIST=
HMARN=
TODI=
}
FILTER(){
read MISTO < /tmp/zForecast.tmp
echo $MISTO
IFSbak="$IFS"
IFS='"'
while read a b c d e f z
do
case  "$a" in
"time from=") #датаТчас
TIM="${b#*T0}"
TIM="${TIM#*T}"
TIM="${TIM%%:*}"
TIME="$TIM"
#echo =$TIME
if [ "$TIME" -le "$OLD" ]
then
    shift
    echo "----- $1 -----"
fi
OLD=$TIME
DATA="$1"
#echo "$DAY $TIME:00 ($b)"
;;
"symbol number=") #погода в принципі
POGODKA="$d"
;;
"precipitation unit=") #опади
if [ ! -z "$f" ]
then
    OPADN=", $Lprecipitation"
fi
;;
"windDirection deg=") #напрямок вітру
VITER="$d"
;;
"windSpeed mps=") #швидкість вітру
VITERMS="${b%.*} m/s"
;;
"temperature unit=") #температура
TEMPERATURA="${d%.*}°C"
;;
"pressure unit=") #тиск
TNSK="${d%.*} $b"
;;
"humidity value=") #вологість
VOLOGIST="$b$d"
;;
"clouds value=") #стан хмар
HMARN="$d$f"
;;
"/time>")
TODI=$(($TIME+3))
if [ "$TODI" -ge "24" ]
then
    TODI=$(($TODI-24))
fi
echo "$DATA $TIME: $POGODKA
$TEMPERATURA, $Lhumidity $VOLOGIST
$LwindSpeed $VITERMS ($VITER)
$Lclouds $HMARN$OPADN
"
CLEAR
;;
esac
done < /tmp/zForecast.tmp
IFS="$IFSbak"
#rm -f /tmp/zForecast.tmp
}

wget "http://api.openweathermap.org/data/2.5/forecast?id=710403&appid=489b47aa8eb421644b28d137d94d7625&mode=xml&units=metric&lang=uk"  -O - | sed -e "1d" -e "s/.*<location><name>//" -e "s/<\/name><type><\/type><country>/ /" -e "s/<\/country>.*<forecast>//" -e 's/</\n/g' > /tmp/zForecast.tmp
FILTER пн вт ср чт пт сб нд
[close]

Цитата(EXL @ Сегодня, 4:35)
* xmllint для MotoMAGX прикрепляю, но не в курсе работает он или нет

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


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(VINRARUS @ Сегодня, 0:51)
* Она способна конкурировать с пакетным парсером (когда не 1 параметр нада вынуть, а все поля прочитать и класифицыровать)?


Обработка текста sed'ом само по себе медленное занятие, так как требуется посимвольно всё прочитать, заменить и т. д, но конкретно в этом примере нужно смотреть. Так как действительно, куча вызовов xmllint могут замедлить выполнение работы программы ещё сильнее, чем sed. Тут больше пойнт в валидации, которую sed'ом обеспечить достаточно трудно. Нет гарантии, что если завтра они, к примеру, сменят формат XML-файла, добавив атрибуты к тегу <forecast>, то самописный парсер отработает как надо.

Цитата(VINRARUS @ Сегодня, 0:51)
*
А то 40 раз запускать её лиш для построения списка температур на 5 дней врятли назвеш эфективным кодом. А так я распихиваю инфу не выгодя с лифта.


Вот здесь и имеется очевидный недостаток Shell, связанный с тем, что он бесполезен без внешних утилит и не имеет библиотек. В других языках этот libxml2 прочитал бы в память кусок этого XML, распарсил его и построил структуру, обращение к полям которой было бы просто обращением в память, а не вызовом отдельной утилиты для каждого такого простого действия.

Как вариант решения этой проблемы -- создание отдельной нативной утилиты, аналогичной xmllint на основе libxml2, которая при скармливании ей XML-файла и аргумента будет возвращать удобный для Shell'а текстовый выхлоп вида:

Код
"-24" "-40" "облачно" ... "5 м/с"


Который можно запихнуть в какой-нибудь там weather=(`super_utility`) и потом юзать просто weather[index] для получения нужного значения. Но слишком много возни. Проще взять в руки libcurl, libxml2 и прочее и написать всё на C или C++, попутно сделав плагин-виджет для рабочего стола :D
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 11.12.2018, 10:26


Гуру
******

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

Рейтинг: 400



VINRARUS,
и странное у тебя требование busybox_full!. Написал бы конкретную версию или утилитку которая требуется.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 11.12.2018, 16:46


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

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


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



Рейтинг: 1211



Цитата(fill.sa @ Сегодня, 13:26)
* и странное у тебя требование busybox_full!. Написал бы конкретную версию или утилитку которая требуется.

Да в стандартном просто не работал шото этот механизм, шо я токо не пробовал:
Код
date -d "2012-12-12 18:00:00" +%s

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


Гуру
******

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

Рейтинг: 400



VINRARUS,
Просто этих busybox_full много бывает. И все они разные. В каждом моде разные версии или сборки.
Лучше опираться типо busybox не ниже версии1.10. Или вообще конкретную утилиту написать, а то малоли кто не busybox пользуется.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 11.12.2018, 18:20


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

Группа: Пользователи
Сообщений: 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:50)
* а то малоли кто не busybox пользуется.

А у меня разные моды распакованые лежат, у всех популярных busybox_full есть.
Цитата(fill.sa @ Сегодня, 20:50)
* Лучше опираться типо busybox не ниже версии1.10. Или вообще конкретную утилиту написать, а то малоли кто не busybox пользуется.

А я не в курсе до какой версии date был сломан.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 11.12.2018, 18:24


Гуру
******

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

Рейтинг: 400



так busybox_full это название файла, по итогу то там разные версии busybox
У меня в v4 допусти вообще в1,26 по умолчанию стоит.

Цитата(VINRARUS @ Сегодня, 19:20)
* А я не в курсе до какой версии date был сломан.

Скорее всего не сломан, а еще не придумали правильный механизм.

busybox же не родоначальних всех этих утилит, он просто переписывает их код под идею busyboxа.

Сообщение отредактировал fill.sa - 11.12.2018, 18:26
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 11.12.2018, 19:23


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

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


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



Рейтинг: 1211



Цитата(fill.sa @ Сегодня, 21:24)
* так busybox_full это название файла

Да, именно название файла будет требовать програма, а не разбираться с версиями.
Цитата(fill.sa @ Сегодня, 21:24)
* Скорее всего не сломан, а еще не придумали правильный механизм.

Я так и не понял какой формат ему хочется, ведь ключ то есть но он не пашет.
Цитата(EXL @ Сегодня, 6:39)
* Обработка текста sed'ом само по себе медленное занятие, так как требуется посимвольно всё прочитать, заменить и т. д, но конкретно в этом примере нужно смотреть. Так как действительно, куча вызовов xmllint могут замедлить выполнение работы программы ещё сильнее, чем sed. Тут больше пойнт в валидации, которую sed'ом обеспечить достаточно трудно. Нет гарантии, что если завтра они, к примеру, сменят формат XML-файла, добавив атрибуты к тегу <forecast>, то самописный парсер отработает как надо.

Та шо ж ты к этому седу привязался. lol.gif
На, без седа
Код
#!/bin/sh
#bu VINRARUS
CLEAR(){
read a b c d e f z < /dev/null
DATA=
TIME=
POGODKA=
OPADN=
VITER=
VITERMS=
TEMPERATURA=
TNSK=
VOLOGIST=
HMARN=
TODI=
}
FILTER(){
H='"'
STOP="${IN##*<}"
OLD=888
while [ "$STOP" != "$IN" ]
do
OUT="${IN%%<*}"
IN="${IN#*<}"
a="${OUT%%$H*}"
OUT="${OUT#*$H}"
b="${OUT%%$H*}"
OUT="${OUT#*$H}"
c="${OUT%%$H*}"
OUT="${OUT#*$H}"
d="${OUT%%$H*}"
OUT="${OUT#*$H}"
e="${OUT%%$H*}"
OUT="${OUT#*$H}"
f="${OUT%%$H*}"
OUT="${OUT#*$H}"
z="${OUT%%$H*}"
OUT="${OUT#*$H}"
case  "$a" in
"time from=") #датаТчас
TIM="${b#*T0}"
TIM="${TIM#*T}"
TIM="${TIM%%:*}"
TIME="$TIM"
if [ "$TIME" -le "$OLD" ]
then
    shift
    echo "----- $1 -----"
fi
OLD=$TIME
DATA="$1"
;;
"symbol number=") #погода в принципі
POGODKA="$d"
;;
"precipitation unit=") #опади
if [ ! -z "$f" ]
then
    OPADN=", опади"
fi
;;
"windDirection deg=") #напрямок вітру
VITER="$d"
;;
"windSpeed mps=") #швидкість вітру
VITERMS="${b%.*} m/s"
;;
"temperature unit=") #температура
TEMPERATURA="${d%.*}°C"
;;
"pressure unit=") #тиск
TNSK="${d%.*} $b"
;;
"humidity value=") #вологість
VOLOGIST="$b$d"
;;
"clouds value=") #стан хмар
HMARN="$d$f"
;;
"/time>")
TODI=$(($TIME+3))
if [ "$TODI" -ge "24" ]
then
    TODI=$(($TODI-24))
fi
echo "$DATA $TIME: $POGODKA
$TEMPERATURA, $Lhumidity $VOLOGIST
$LwindSpeed $VITERMS ($VITER)
$Lclouds $HMARN$OPADN
"
CLEAR
;;
"name>"*)
    echo -n "${a#*>}"
;;
"country>"*)
    echo ", ${a#*>}"
;;
esac
done #< /tmp/zForecast.tmp
IFS="$IFSbak"
#rm -f /tmp/zForecast.tmp
}
TEXT=`wget "http://api.openweathermap.org/data/2.5/forecast?id=710403&appid=489b47aa8eb421644b28d137d94d7625&mode=xml&units=metric&lang=uk"  -O - `
echo "$TEXT" | while read IN
do
    if [ -n "$KO" ]
    then
        FILTER пн вт ср чт пт сб нд пн
    fi
    KO=KO
done
[close]

Цитата(EXL @ Сегодня, 6:39)
* Вот здесь и имеется очевидный недостаток Shell, связанный с тем, что он бесполезен без внешних утилит и не имеет библиотек. В других языках этот libxml2 прочитал бы в память кусок этого XML, распарсил его и построил структуру, обращение к полям которой было бы просто обращением в память, а не вызовом отдельной утилиты для каждого такого простого действия.

Типичное заблуждение програмиста никогда не програмирувавшего на шел. laugh.gif
Шел это язык програмирования, а не средство запуска програм, как тут все решыли.
В этом сообщении выше яркий пример того как шел вообще без внешних утилит может обходиться.
Лиш wget внешний.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 12.12.2018, 8:47


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(VINRARUS @ Сегодня, 2:23)
* Та шо ж ты к этому седу привязался.

Да не к sed'у или Shell'у в общем, а к собственноручно написанным парсерам XML. Просто сам их писал и потом приходилось переходить на нормальные библиотеки.

Сегодня-завтра, к примеру, сервис прикрутит к XML-выхлопу форматирование аля xmllint --format или добавит к температуре какой-нибудь дополнительный параметр unit_2="fahrenheit" и нужно будет править самописный парсер, чтобы он отработал как нужно. Нет гарантии, что ничего не развалится.

А вот такой написанный (не очень оптимально, кстати) на коленке за 5 минут пример из 25-строк должен будет отработать даже в случае изменения форматирования или добавления каких-либо атрибутов:

Код
#!/usr/bin/env python3
from urllib.request import urlopen
from datetime import datetime
from lxml.etree import parse, XMLParser

tree = parse(urlopen('http://api.openweathermap.org/data/2.5/forecast?id=710403&appid=489b47aa8eb421644b28d137d94d7625&mode=xml&units=metric&lang=uk'), XMLParser())

def rnd(value):
    return " " + str(round(float(value)))

def get(query, ctx = tree):
    return ctx.xpath(query)

def time(date_f, date_t):
    f = datetime.strptime(date_f, '%Y-%m-%dT%H:%M:%S')
    t = datetime.strptime(date_t, '%Y-%m-%dT%H:%M:%S')
    return f.strftime('%a') + ' ' + f.strftime('%H:%M') + '-' + t.strftime('%H:%M') + ': '

print(get('string(/weatherdata/location/name)') + ', ' + get('string(/weatherdata/location/country)') + '\n')
for el in get('/weatherdata/forecast/time'):
    print(time(el.attrib['from'], el.attrib['to']) + get('string(symbol/@name)', el))
    print(rnd(get('string(temperature/@value)', el)) + '°C, ' + get('string(humidity/@value)', el) + '%')
    print(rnd(get('string(windSpeed/@mps)', el)) + ' m/s, (' + get('string(windDirection/@code)', el) + ')')
    print(" " + get('string(clouds/@all)', el) + '%, clouds\n\n')


Просто потому, что использует библиотеку для правильного парсинга XML.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 12.12.2018, 18:27


Гуру
******

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

Рейтинг: 400



Цитата(VINRARUS @ Вчера, 20:23)
* Да, именно название файла будет требовать програма


Печаль, никакой совместимости. Пару модов только исползует такое название и то наверное очень дрвение, когда еще нормально с бузи ненаучились работать.
Лучше уже запускать команду и смотреть если выход неправильны - сообщение мол ваши инструменты не той версии.

Сообщение отредактировал fill.sa - 12.12.2018, 18:28
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 12.12.2018, 18:34


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

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


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



Рейтинг: 1211



Цитата(fill.sa @ Сегодня, 21:27)
* Печаль, никакой совместимости. Пару модов только исползует такое название и то наверное очень дрвение, когда еще нормально с бузи ненаучились работать.

Ну, и в каком моде отсутствует busybox_full? wink.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 13.12.2018, 10:03


Гуру
******

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

Рейтинг: 400



VINRARUS,
ты как обчно главного не понимаешь. А как разработу тебе положено про это думать.

-busybox_full само провозглашенное название. Ни чего общего с остальным миром не имеет. Это как ты свою папку вин везде раскидал и она сугубо твоя внутенняя вещь.
-А второе самое главное, уже прошли те древние времена когда нужен был второй бузи. На сегодня можно практически без проблем использовать однн бузи.Новый бузи есть, прошивки пересобирать умеем.

Ну а так вообще мне все-равно, можешь хоть к папке вин все привязывать. Смешно просто от тебя читать потом как ты про совместимости рассказываеш. Чего с кем только непонятно совмещаешь.

P.S. насчет где нету, я думаю соти отталкиваться от последних модов. И ни на одном последнем кроме твояего я думаю их нету. Например из послдних и очень популярных симбиозисе 4.5 , помоему нету такого названия как бузи-фулл. У емня как ты понимаеш его тоже нету, ибо я давно перешел на новую версию.

Сообщение отредактировал fill.sa - 13.12.2018, 10:08
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 13.12.2018, 16:32


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

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


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



Рейтинг: 1211



Цитата(fill.sa @ Сегодня, 13:03)
* -busybox_full само провозглашенное название. Ни чего общего с остальным миром не имеет.

Да, но оно есть даже в забугорном раритете Freedom.
Цитата(fill.sa @ Сегодня, 13:03)
* Например из послдних и очень популярных симбиозисе 4.5 , помоему нету

Есть в LSymbiosis, значит и в новом есть.
Цитата(fill.sa @ Сегодня, 13:03)
* У емня как ты понимаеш его тоже нету, ибо я давно перешел на новую версию.

То есть ты наступил на собственные грабли? lol.gif Поздравляю.
Новые версии твого мода я не качал и не проверял, по этому имееш шо имееш.
Цитата(fill.sa @ Сегодня, 13:03)
* А второе самое главное, уже прошли те древние времена когда нужен был второй бузи. На сегодня можно практически без проблем использовать однн бузи.

И шо тебе помешало сделать симлинк для совместимости? no2.gif

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

46 страниц V « < 34 35 36 37 > » 
Ответ в темуСоздание новой темы
10 чел. читают эту тему (гостей: 10, скрытых пользователей: 0)
Пользователей: 0

 



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

Форум живёт: