1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    octobre 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2012
    Messages : 70
    Points : 35
    Points
    35

    Par défaut Plantage systématique sur un gros make

    Bien le bonjour,
    j'avais eu pas mal de problème pour installer opencv sur rpi3/jessie, je m'y suis repris à plusieurs reprises, soit pour excès de température (pourtant dissipateur thermique), soit tout simplement parce qu'il se bloquait à un certain état d'avancement.
    Il est vrai que l'opération de make est très longue et fait passer tout de suite le micropro à un taux d'utilisation de 100%.
    Voilà la procédure que j'avais suivi, le problème intervenait au moment du make:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    ######################################
    # INSTALL OPENCV ON UBUNTU OR DEBIAN #
    ######################################
    
    # |         THIS SCRIPT IS TESTED CORRECTLY ON         |
    # |----------------------------------------------------|
    # | OS             | OpenCV       | Test | Last test   |
    # |----------------|--------------|------|-------------|
    # | Ubuntu 16.04.2 | OpenCV 3.2.0 | OK   | 20 May 2017 |
    # | Debian 8.8     | OpenCV 3.2.0 | OK   | 20 May 2017 |
    # | Debian 9.0     | OpenCV 3.2.0 | OK   | 25 Jun 2017 |
    
    # 1. KEEP UBUNTU OR DEBIAN UP TO DATE
    
    sudo apt-get -y update
    sudo apt-get -y upgrade
    sudo apt-get -y dist-upgrade
    sudo apt-get -y autoremove
    
    
    # 2. INSTALL THE DEPENDENCIES
    
    # Build tools:
    sudo apt-get install -y build-essential cmake
    
    # GUI (if you want to use GTK instead of Qt, replace 'qt5-default' with 'libgtkglext1-dev' and remove '-DWITH_QT=ON' option in CMake):
    sudo apt-get install -y qt5-default libvtk6-dev
    
    # Media I/O:
    sudo apt-get install -y zlib1g-dev libjpeg-dev libwebp-dev libpng-dev libtiff5-dev libjasper-dev libopenexr-dev libgdal-dev
    
    # Video I/O:
    sudo apt-get install -y libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev yasm libopencore-amrnb-dev libopencore-amrwb-dev libv4l-dev libxine2-dev
    
    # Parallelism and linear algebra libraries:
    sudo apt-get install -y libtbb-dev libeigen3-dev
    
    # Python:
    sudo apt-get install -y python-dev python-tk python-numpy python3-dev python3-tk python3-numpy
    
    # Java:
    sudo apt-get install -y ant default-jdk
    
    # Documentation:
    sudo apt-get install -y doxygen
    
    
    # 3. INSTALL THE LIBRARY (YOU CAN CHANGE '3.2.0' FOR THE LAST STABLE VERSION)
    
    sudo apt-get install -y unzip wget
    wget https://github.com/opencv/opencv/archive/3.2.0.zip
    unzip 3.2.0.zip
    rm 3.2.0.zip
    mv opencv-3.2.0 OpenCV
    cd OpenCV
    mkdir build
    cd build
    cmake -DWITH_QT=ON -DWITH_OPENGL=ON -DFORCE_VTK=ON -DWITH_TBB=ON -DWITH_GDAL=ON -DWITH_XINE=ON -DBUILD_EXAMPLES=ON -DENABLE_PRECOMPILED_HEADERS=OFF ..
    make -j4
    sudo make install
    sudo ldconfig
    
    
    # 4. EXECUTE SOME OPENCV EXAMPLES AND COMPILE A DEMONSTRATION
    
    # To complete this step, please visit 'http://milq.github.io/install-opencv-ubuntu-debian'.
    J'y était finalement parvenu.

    Aujourd'hui, je recommence sur un rpi vierge, j'installe debian, update et upgrade, install 1 bibliothèque, puis vient le moment de l'installation d'opencv.
    Je suis exactement la même procédure.
    Mais impossible de parvenir à passer le make, le température ne dépasse pas de valeur critique, mais le processus se bloque entre 31 et 33% de l'avancement du make, avec un processeur occupé à 100% (plus rien ne bouge à l'écran, plus de clavier ni souris, l'heure reste figée ...) Comme l'autre fois, je m'y suis à plusieurs reprises, mais rien à faire.

    Alors je poste ....

    Quelqu'un peut-il m'aider?

    Merci

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    octobre 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2012
    Messages : 70
    Points : 35
    Points
    35

    Par défaut

    et je constate maintenant qu'après + de 20 minutes sans mise à jour de l'horloge, la sortie hdmi se met en veille, c'est donc qu'il vit!
    Je bouge la souris, sans effet, ..... mais si, 2 minutes après l'affichage se rallume!

    Donc si ça se trouve, il mouline dans le make, mais je n'en sais rien ...

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    22 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mai 2008
    Messages : 22 491
    Points : 155 404
    Points
    155 404
    Billets dans le blog
    10

    Par défaut

    Bonjour,

    La mise en veille est contrôler par l'écran. Par contre, en effet, si vous bougez la souris et que cela sort de veille, c'est qu'il vit.
    J'oserai dire : laissez tourner.
    Sinon, pourquoi compiler OpenCV à la main ? Il n'est pas dans les packages ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    octobre 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2012
    Messages : 70
    Points : 35
    Points
    35

    Par défaut

    non, pas dans les packages.

    je mets de côté avant de retenter une réinstallation complète os et tout et tout. Ca prend vite une bonne journée (quand il n'y a pas de problème)

  5. #5
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur systèmes embarqués
    Inscrit en
    juin 2009
    Messages
    3 567
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur systèmes embarqués

    Informations forums :
    Inscription : juin 2009
    Messages : 3 567
    Points : 9 366
    Points
    9 366
    Billets dans le blog
    1

    Par défaut

    Ce ne serait pas intéressant de faire de la compilation croisée depuis un PC ?

  6. #6
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    mai 2010
    Messages
    2 083
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : mai 2010
    Messages : 2 083
    Points : 5 919
    Points
    5 919

    Par défaut

    Bktero a raison surtout sur un Linux ou il existe énormément de compilateur pour faire de la compilation croisée.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    octobre 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2012
    Messages : 70
    Points : 35
    Points
    35

    Par défaut

    Oui, je crois qu'une compilation croisée va s'imposer ....
    Hormis rpi, j'ai juste un PC avec windows sous la main

    Dois-je installer un émulateur de type qemu https://www.geekzone.fr/2016/06/22/e...-windows-qemu/
    Mais comment cela fonctionne-t-il?
    Je voudrai
    • installer raspbian (pas depuis noobs, séquence de démarrage différente, et autres différences)
    • puis mettre tout cela à jour
    • puis make d'opencv qui précisément me pose problème
    • puis copier sur une carte sd (ou bien tout à été fait directement sur une carte sd
    • pour enfin basculer sur ma rpi

    un tel émulateur me le permet-il?

    Dois-je me préparer à des complications, ou à un niveau d'adminitration/settings avancé de l'émulateur?

    Merci

  8. #8
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur systèmes embarqués
    Inscrit en
    juin 2009
    Messages
    3 567
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur systèmes embarqués

    Informations forums :
    Inscription : juin 2009
    Messages : 3 567
    Points : 9 366
    Points
    9 366
    Billets dans le blog
    1

    Par défaut

    Pourquoi passer par Qemu ? Si tu virtualises un Raspbian, ce n'est plus de la compilation croisée de toute façon ^^

    Je pensais plus à quelque chose comme ceci : http://gnutoolchains.com/raspberry/tutorial/

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    octobre 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2012
    Messages : 70
    Points : 35
    Points
    35

    Par défaut

    Oui effectivement j'ai vu aussi cela.
    Si je comprends bien, cet outil permet de prendre la main sur la raspebry pi, à distance -> le PC supplante tout le hardware RPI? (clavier et écran, mais aussi, et c'est là que ça devient intéressant pour moi, microporcesseur)
    Je pourrai donc, depuis mon PC, installer sur la SD card, raspbian et faire ce gros make ... ?

  10. #10
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur systèmes embarqués
    Inscrit en
    juin 2009
    Messages
    3 567
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur systèmes embarqués

    Informations forums :
    Inscription : juin 2009
    Messages : 3 567
    Points : 9 366
    Points
    9 366
    Billets dans le blog
    1

    Par défaut

    Oui et non.

    Tu trouveras sans de très bonnes explications sur le net, je vais juste résumer les grandes lignes.

    La compilation croisée consiste à générer des programmes pour un système C (client) depuis un système H (hôte). Dans ton cas, depuis Windows avec un processeur x86, tu génères un programme pour Linux avec un processeur ARM. Une fois que ce programme a été créé, il faut l'envoyer sur le Raspberry Pi pour l'y exécuter (puisque bien sûr il ne fonctionne pas sous Windows). Tu as plusieurs solutions pour cela (tu peux te l'envoyer par mail, le mettre sur une clé USB, le rendre disponible sur un lecteur réseau partagé...) mais une solution souvent utiliser est le protocole SSH. On parle souvent de tunnel SSH. Ce tunnel te permet de prendre le contrôle à distance de ton Rapsberry Pi mais aussi d'échanger des fichiers.

    Enfin, il y a une dernier truc : quand tu fais du développement, tu as envie de pouvoir déboguer ton programme, et pas juste avec des printf(), avec un vrai débogueur. C'est la qu'intervient le débogage à distance, avec gdb dans le lien que je t'ai donné.

    Au final, tu as un environnement Windows qui génère un binaire, l'envoie sur le R-Pi et le débogue à distance. Magique

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    octobre 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2012
    Messages : 70
    Points : 35
    Points
    35

    Par défaut

    La compilation croisée consiste à générer des programmes pour un système C (client) depuis un système H (hôte). Dans ton cas, depuis Windows avec un processeur x86, tu génères un programme pour Linux avec un processeur ARM. Une fois que ce programme a été créé, il faut l'envoyer sur le Raspberry Pi pour l'y exécuter (puisque bien sûr il ne fonctionne pas sous Windows). Tu as plusieurs solutions pour cela (tu peux te l'envoyer par mail, le mettre sur une clé USB, le rendre disponible sur un lecteur réseau partagé...)
    .
    ok pour tout ça, c'est clair pour moi (j'ai eu fait un paquet de compilation sous IDE sous windows vers des cibles micocontrôleurs diverses, mais jamais équipé d'un OS).


    mais je ne sais pas comment considérer mon installation de la lib opencv dans tout ça, qui est + qu'une simple copmil avec un fichier exécutable à la clé. Ca me parait différent de compiler un exécutable

    Concrètement, l'opération consiste à ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    ######################################
    # INSTALL OPENCV ON UBUNTU OR DEBIAN #
    ######################################
    
    # |         THIS SCRIPT IS TESTED CORRECTLY ON         |
    # |----------------------------------------------------|
    # | OS             | OpenCV       | Test | Last test   |
    # |----------------|--------------|------|-------------|
    # | Ubuntu 16.04.2 | OpenCV 3.2.0 | OK   | 20 May 2017 |
    # | Debian 8.8     | OpenCV 3.2.0 | OK   | 20 May 2017 |
    # | Debian 9.0     | OpenCV 3.2.0 | OK   | 25 Jun 2017 |
    
    # 1. KEEP UBUNTU OR DEBIAN UP TO DATE
    
    sudo apt-get -y update
    sudo apt-get -y upgrade
    sudo apt-get -y dist-upgrade
    sudo apt-get -y autoremove
    
    
    # 2. INSTALL THE DEPENDENCIES
    
    # Build tools:
    sudo apt-get install -y build-essential cmake
    
    # GUI (if you want to use GTK instead of Qt, replace 'qt5-default' with 'libgtkglext1-dev' and remove '-DWITH_QT=ON' option in CMake):
    sudo apt-get install -y qt5-default libvtk6-dev
    
    # Media I/O:
    sudo apt-get install -y zlib1g-dev libjpeg-dev libwebp-dev libpng-dev libtiff5-dev libjasper-dev libopenexr-dev libgdal-dev
    
    # Video I/O:
    sudo apt-get install -y libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev yasm libopencore-amrnb-dev libopencore-amrwb-dev libv4l-dev libxine2-dev
    
    # Parallelism and linear algebra libraries:
    sudo apt-get install -y libtbb-dev libeigen3-dev
    
    # Python:
    sudo apt-get install -y python-dev python-tk python-numpy python3-dev python3-tk python3-numpy
    
    # Java:
    sudo apt-get install -y ant default-jdk
    
    # Documentation:
    sudo apt-get install -y doxygen
    
    
    # 3. INSTALL THE LIBRARY (YOU CAN CHANGE '3.2.0' FOR THE LAST STABLE VERSION)
    
    sudo apt-get install -y unzip wget
    wget https://github.com/opencv/opencv/archive/3.2.0.zip
    unzip 3.2.0.zip
    rm 3.2.0.zip
    mv opencv-3.2.0 OpenCV
    cd OpenCV
    mkdir build
    cd build
    cmake -DWITH_QT=ON -DWITH_OPENGL=ON -DFORCE_VTK=ON -DWITH_TBB=ON -DWITH_GDAL=ON -DWITH_XINE=ON -DBUILD_EXAMPLES=ON -DENABLE_PRECOMPILED_HEADERS=OFF ..
    make -j4
    sudo make install
    sudo ldconfig
    
    
    # 4. EXECUTE SOME OPENCV EXAMPLES AND COMPILE A DEMONSTRATION
    
    # To complete this step, please visit 'http://milq.github.io/install-opencv-ubuntu-debian'.
    • install raspbian, mise à jour, plusieurs install de dependances (je peux le faire directement sur la cible )
    • download zip, unzip, (pareil, je peux le faire sur la cible)
    • cmake et make (lourd pour la cible, donc faisons le sur mon PC ...). mais il ne s'agit pas simplement de créer une exécutable et le transférer sur cible
      Au final, tu as un environnement Windows qui génère un binaire, l'envoie sur le R-Pi et le débogue à distance. Magique
      ,cela crée une arborescence dans un dossier opencv, rempli de .h et exécutables et surement un tas de choses qui m'échappent, peut-être même dans d'autres dossier que opencv.)


    c'est ce dernier point qui me bloque. Le faire sous windows va-t-il me générer dans un coin de mon dd toute cette arborescence que je devrai transférer vers la SD card? (comme ça aurait été le cas avec un exécutable? ) Je ne risque pas de passer à côté d'un fichier qq part qui viendrai ce caler dans un autre dossier?

  12. #12
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur systèmes embarqués
    Inscrit en
    juin 2009
    Messages
    3 567
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur systèmes embarqués

    Informations forums :
    Inscription : juin 2009
    Messages : 3 567
    Points : 9 366
    Points
    9 366
    Billets dans le blog
    1

    Par défaut

    J'avais commencé à écrire un message avant de me rendre compte que tu es sous Windows...

    Vu que tu as besoin de paquets Linux, la solution de virtualiser Raspbian pour compiler et obtenir la bibliothèque OpenCV semble en effet une bonne solution.

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    octobre 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2012
    Messages : 70
    Points : 35
    Points
    35

    Par défaut

    J'ai donc commencé à voir qemu,et en premier lieu, ce qu'il peut faire concrètement
    Car c'est bien sympa tous ces joli mots émuler, virtualiser, etc etc, ... mais qu'est ce qui se cache vraiment derrière ....
    En tout cas l'outil à l'air bien sympa, j'espère le mettre en oeuvre à une autre occasion,

    car pour l'heure, j'ai résolu mon problème de make qui plante la machine

    J'ai refait ma compil sans l'option -j4, donc à priori sur un seul coeur.

    Théoriquement, ça aurait du prendre plus de temps que la compilation sur 4 coeurs
    Dans la pratique, ça c'est tout simplement déroulé sans accroc.

  14. #14
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur systèmes embarqués
    Inscrit en
    juin 2009
    Messages
    3 567
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur systèmes embarqués

    Informations forums :
    Inscription : juin 2009
    Messages : 3 567
    Points : 9 366
    Points
    9 366
    Billets dans le blog
    1

    Par défaut

    En voilà une solution toute simple

    Bonne continuation !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur 550 systématique sur Développez
    Par ON5MJ dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 4
    Dernier message: 23/09/2007, 12h59
  2. [Démarrage] Plantage systématique
    Par GyZmoO dans le forum Ordinateurs
    Réponses: 8
    Dernier message: 02/08/2006, 12h57
  3. Excel 2003 ouverture sur systématique sur une feuille
    Par Alecsaviola dans le forum Excel
    Réponses: 1
    Dernier message: 21/06/2006, 11h34
  4. Methode de programmation sur des gros projets
    Par dynobremo dans le forum EDI
    Réponses: 10
    Dernier message: 08/06/2004, 03h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo