Thursday, 25-Apr-2024, 09.18.12
Welcome Guest | RSS
Motorola Gaming site
Login form
Section categories
Multimedia [5]
System [0]
Others [7]
Search
Site friends
  • Create your own site
  • Statistics

    Total online: 1
    Guests: 1
    Users: 0



    Main » Files » Applications » Others

    Porting Guide for Motorola Z6, V8, E8, EM30, U9, ZN5 (Motomagx) (Ru)
    [ ] 30-Oct-2009, 00.34.43

    Porting Guide for Motorola Z6, V8, E8, EM30, U9, ZN5 (Motomagx)

    требования: Windows или Linux

    Для пользователей винды рекомендую andlinux который можно запускать под виндой

    тестировано с andlinux beta2 final KDE version, 537 MB


    качаем motomagx-toolchain.tar.gz, megaupload-mirror и копируем  в зашареную папку с андлинуксом

    Установка окружения :

    запускаем 'Konsole' под андлинуксом, и выполняем

    sudo mkdir /mmc
    sudo chown user -R /opt
    sudo chown user -R /home
    sudo chown user -R /mmc
    mkdir /opt/toolchains
    mkdir /home/z6
    mkdir /home/z6/build
    mkdir /mmc/mmca1
    tar -C /opt/toolchains -xzvf /mnt/win/motomagx-toolchain.tar.gz
    cp /opt/toolchains/motomagx/setenv-z6.sh /home/z6
    cp /opt/toolchains/motomagx/setenv-z6-2.sh /home/z6


    теперь окружение установлено, и можно приступать к портированию

    запускаем окружение


    cd /home/z6
    . setenv-z6.sh


    качаем любые исходники
    для примера newvox 1.0
    распаковываем в 
    /home/z6

    cd /home/z6
    tar -xzvf /mnt/win/newvox-1.0.tar.gz

    cd newvox-1.0
    ./configure --host=arm-linux-gnueabi
    make


    newvox-z6.log.txt
    newvox-z6.log.png

    Если конфигурирование и компиляция прошла без ошибок, у нас появится исполнительный файл 'newvox' и мы можем тестировать его в телефоне, копируем файл на карточку памяти в телефон и запускаем через телнет или консоль

    cd /mmc/mmca1
    export LD_LIBRARY_PATH=/mmc/mmca1/games/lib:$LD_LIBRARY_PATH
    chmod +x newvox
    ./newvox


    Если в исходниках отсутствует файл configure
    вручную редактируем Makefile
    ищем и заменяем строчки


    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



    Решение для добавления сворачивания приложения при входящем вызове (sms, флипе, других телефонных событиях) с остановкой звука делаем через замену процедуры SDL_PollEvent на собственную mySDL_PollEvent

    -------------example.h-----------------------
    int mySDL_PollEvent(SDL_Event *event);

    // audio use sdl-lib
    SDL_AudioSpec obtained;
    boolean _audioSuspended;

    void suspendAudio();
    int resumeAudio();

    // audio use sdl-mixer lib
    void suspendAudio();
    int
    resumeAudio();
    void closeAudio(void);

    --------------example.cpp--------------------
    int mySDL_PollEvent(SDL_Event *event)  {
        int _r= SDL_PollEvent(event);
        if (!_r)
            return 0;
        if (event->type == SDL_ACTIVEEVENT) {
            if (event->active.state == SDL_APPINPUTFOCUS && !event->active.gain) {
                suspendAudio();

                for (;;) {
                    _r = SDL_WaitEvent(event);
                    if (!_r)
                        continue;
                    if (event->type == SDL_QUIT)
                        return 1;
                    if (event->type != SDL_ACTIVEEVENT)
                        continue;
                    if (event->active.state == SDL_APPINPUTFOCUS && event->active.gain) {
                        resumeAudio();
                            return 1;
                    }
                }
            }
        }
      return _r;
    }

    // if audio use sdl-lib
    void suspendAudio() {
        SDL_CloseAudio();
        _audioSuspended = true;
    }

    int resumeAudio() {
        if (SDL_OpenAudio(&obtained, NULL) < 0){
            return -1;
        }
        SDL_PauseAudio(0);
        _audioSuspended = false;
        return 0;
    }
     
    //
    if audio
    use sdl-mixer-lib
    void suspendAudio()
    {
      Mix_SuspendAudio();
    }

    int resumeAudio() {
      int r = Mix_ResumeAudio();
      if(r == -1){
        closeAudio();
        return -1;
      }
    }

    void closeAudio(void) {
          Mix_CloseAudio();
    }


    или смотрим в примерах (звук через sdl-lib) hheretic-0.2.0-1200-lubomyr.patch and hhexen-1.6.0-1200-lubomyr.patch (звук через sdlmixer-lib) добавлю позже

    Мониторинг проблем "Segmentation fault"
    Качаем gdb и распаковываем в телефон /mmc/mmca1/games
    приложения должны быть собраны с префиксом '-g' и не должны быть пострипаные

    ulimit -c unlimited
    ./<app>

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

    утилита strace

    ../bin/strace ./app


    мануал в разработке...
    Category: Others | Added by: lubomyr
    Views: 2734 | Downloads: 0 | Comments: 2 | Rating: 0.0/0 |
    Total comments: 1
    1 Anon  
    0
    Thanks for sharing! :)

    Name *:
    Email *:
    Code *: