Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

MMnet1002 -kompilacja skrośna oprogramowania digitemp, msmtp

radziu88 14 Jul 2010 11:17 2448 14
Computer Controls
  • #1
    radziu88
    Level 10  
    Witam jestem świeżo upieczonym posiadacz płytki marki propox o nazwie mmnet 1002. Na płytce siedzi procek arm 9 i jest zainstalowany system operacyjny OpenWrt.

    niestety repozytoria są dość ubogie przez co jestem zmuszony do kompilowania oprogramowania ze źródeł.

    i teraz moje pytanie jak to z robić ?

    w przypadku programów pisanych przeze mnie w C (np. do sterowania portem) kompilacja była bardzo ładnie opisana w instrukcji
    arm-linux-uclibc-gcc 

    za pomocą środowiska dostarczonego przez producenta
     toolchain-arm_gcc4.1.2
    po kompilacji otrzymywałem plik który kopiowałem na mojego arma i był on gotowy do pracy.

    bardzo proszę o pomoc w kompilowaniu bardziej skomplikowanego oprogramowania np digitemp
  • Computer Controls
  • Helpful post
    #2
    herszt
    Level 18  
    Proponuję postawić na początek innego Linuksa - np. Angstrom. Instaluje się bardzo prosto i ma bardzo bogate repozytoria.
    A jeśli chciałbyś coś skompilować to polecam toolchaina CodeSourcery (używałem go podczas pracy z tą płytką i nigdy nie było problemu). Napisz coś więcej w czym dokładnie masz problem podczas kompilacji. Bo z reguły wygląda to tak, że uruchamiasz skrypt configure z odpowiednimi parametrami (dla jakiej architektury, jaki kompilator itd.), potem make i make install i masz gotowe pliki binarne.

    pozdrawiam
    herszt
  • #3
    radziu88
    Level 10  
    puki co z kompilacją msmtp sobie poradziłem lecz niemoge się połączyć z gmailem konieczny jest do tego pakiet openssl znalazłem jego skopilowana wersje pod arma lecz niestety nie potrafię jej uruchomić po wydani polecenie otrymuje komunkat
    -ash: ,/openssl :not found


    co do ANGStrom to tam do wyboru niema procka AT91SAM9260
  • #4
    arrevalk
    Level 25  
    A gdzie umieszczasz binarke openssl? I czy nadałeś jej odpowiednie uprawnienia?

    radziu88 wrote:

    co do ANGStrom to tam do wyboru niema procka AT91SAM9260

    Przecież wyboru procesora dokonuje się w trakcie procesu kompilacji jądra systemu, więc skoro nie ma w dystrybucji binarek kernela na dany procesor, to jajko można sobie samemu usmażyć. Oczywiście zostawiając ustawienia nie związane ze sprzętem. A pozostałe elementy dystrybucji zastosować z innego procesora o identycznym rdzeniu (ARM926ej-s, jeżeli dobrze pamiętam).
  • Computer Controls
  • #6
    arrevalk
    Level 25  
    A dodałeś ten katalog do zmiennej systemowej PATH? Bo jeżeli nie to nie dziwie się że system nie może znaleźć binarki. Pamiętaj też że zrobienie tego(dodanie czegoś do zmiennej systemowej) w konsoli, działa tylko w trakcie danej sesji. Jeżeli chcesz aby zmiana była stała trzeba w katalogu /etc znaleźć skrypt startowy i do niego dodać odpowiednie polecenia(takie same jak w konsoli).

    
    PATH="/sciezka/do/katalogu/bin/openssl:${PATH}"
    export PATH
    


    Drugie rozwiązanie to dodanie linku symbolicznego do odwiednich binarek w katalogu /usr/bin. Tu też należy pamiętać że gdy chcemy stałego rozwiązania to trzeba zmodyfikować obraz ramdysku.
  • #7
    radziu88
    Level 10  
    wszystko pięknie ładnie tylko że konsola nie rozpoznaje polecenia PATH
    root@MMnet:~# PATH="/arm-openssl-0.9.8g-tar_FILES/bin/openssl:$(PATH)" export PATH
    -ash: PATH: not found
    


    zadziałało polecenie
    export PATH=/katalog/bin/openssl


    lecz niestety przy odpamaniu msmtp wciąz wyskakuje błąd
    support for TLS is not compiled in  
  • #8
    User removed account
    User removed account  
  • #9
    radziu88
    Level 10  
    wszystkie komendy przeszły ale efekt niestety ten sam
  • Helpful post
    #10
    User removed account
    User removed account  
  • #11
    radziu88
    Level 10  
    ma tylko repo bardzo ubogie dla arma ale zaraz bede walczył z gnutls
  • #12
    herszt
    Level 18  
    radziu88 wrote:
    co do ANGStrom to tam do wyboru niema procka AT91SAM9260


    Na stronie dystrybucji jest system plików dla SAM9263 i możesz użyć jego. Działa bez problemu.

    pozdrawiam
    herszt
  • Helpful post
    #14
    arrevalk
    Level 25  
    Spróboj tak:
    
    ./configure --host=arm-linux-uclibc CC=arm-linux-uclibc-gcc
    


    Będziesz potrzebował też wskazać skryptowi konfiguracyjnemu położenie kilku bibliotek w wersji na procesory ARM (poczytaj w pliku INSTALL jakich). Info o odpoowiednich opcjach można przeczytać po wydani komendy:
    
    ./configure --help
    
  • #15
    radziu88
    Level 10  
    Quote:
    ./configure --host=arm-linux-uclibc CC=arm-linux-uclibc-gcc


    to nie zadziałało ale mała przeróbka i poszło
    ./configure --host=arm CC=arm-linux-uclibc-gcc

    w odpowiedzi otrzymałem
    configure: WARNING: If you wanted to set the --build type, don't use --host.
        If a cross compiler is detected then cross compile mode will be used.
    configure: error:
    ***
    *** libgcrypt was not found. You may want to get it from
    *** ftp://ftp.gnupg.org/gcrypt/alpha/libgcrypt/
    ***
    


    i teraz tak podany adres to pusty katalog na ftp ale zawsze można libcrypt
    ściągnąć stąd
    Link
    ale to jest kolejny program do kompilacji tyle że nie wiem jak to zrobić żeby skompilować je razem

    znalazłem w configure opcje
    -with-libgcrypt-prefix=PFX
                              prefix where LIBGCRYPT is installed (optional)
    


    tyle że nie mogę podać ścieżki do libcrypt zainstalowanego na moim pc bo przecież kompiluje dla arma .

    i tu pytanie jak sobie z tym poradzić ?

    doszedłem do tego że najpierw skompiluje libcrypt a następnie dopiero gnuTLS gdzie przy konfiguracji podam ścieżkę do wcześniej skompilowanego libcrypt

    lecz niestety w odpowiedzi na:
    ./configure --host=arm CC=arm-linux-uclibc-gcc --prefix=/home/radziu/Pulpit/ARM/libcrypt_ARM/ -q


    otrzymuje
    configure: error: C++ preprocessor "/lib/cpp" fails sanity check
    See `config.log' for more details.
    


    i niema pojęcia jak to ugryźć [/code]

    Ok powyższy problem został rozwiązany po przez zainstalowanie zwykłego gcc i g++

    ale pojawił eis kolejny . co prawda config przeszedł bez błędów to podczas kompilacji otrzymałem




    make -q
    cat: ./.prev-version: No such file or directory
    make  all-recursive
    cat: ./.prev-version: No such file or directory
    make[1]: Entering directory `/home/radziu/Pulpit/ARM/gnutls-2.8.6'
    Making all in lib
    make[2]: Entering directory `/home/radziu/Pulpit/ARM/gnutls-2.8.6/lib'
    make  all-recursive
    make[3]: Entering directory `/home/radziu/Pulpit/ARM/gnutls-2.8.6/lib'
    Making all in gl
    make[4]: Entering directory `/home/radziu/Pulpit/ARM/gnutls-2.8.6/lib/gl'
    make  all-recursive
    make[5]: Entering directory `/home/radziu/Pulpit/ARM/gnutls-2.8.6/lib/gl'
    Making all in tests
    make[6]: Entering directory `/home/radziu/Pulpit/ARM/gnutls-2.8.6/lib/gl/tests'
    make  all-recursive
    make[7]: Entering directory `/home/radziu/Pulpit/ARM/gnutls-2.8.6/lib/gl/tests'
    make[7]: Leaving directory `/home/radziu/Pulpit/ARM/gnutls-2.8.6/lib/gl/tests'
    make[6]: Leaving directory `/home/radziu/Pulpit/ARM/gnutls-2.8.6/lib/gl/tests'
    make[5]: Leaving directory `/home/radziu/Pulpit/ARM/gnutls-2.8.6/lib/gl'
    make[4]: Leaving directory `/home/radziu/Pulpit/ARM/gnutls-2.8.6/lib/gl'
    Making all in po
    make[3]: *** [all-recursive] Error 1
    make[3]: Leaving directory `/home/radziu/Pulpit/ARM/gnutls-2.8.6/lib'
    make[2]: *** [all] Error 2
    make[2]: Leaving directory `/home/radziu/Pulpit/ARM/gnutls-2.8.6/lib'
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/home/radziu/Pulpit/ARM/gnutls-2.8.6'
    make: *** [all] Błąd 2