====== Installation et utilisation de Petalinux ====== ===== Préparations ===== ==== Interpréteur de commandes bash ==== Avant l'installation de Petalinux, il faut que le système utilise automatiquement l'interpréteur de commandes //bash//. Par défaut dans cette version de la distribution LMDE, c'est l'interpreteur de commandes //dash// qui est utilisé. Pour le vérifier : $ ls -l /bin/sh lrwxrwxrwx 1 root root 4 nov. 6 13:48 /bin/sh -> dash Si tel est le cas, il va faloir changer l'interpréteur par défaut pour mettre //bash//.\\ Supprimer le lien symbolique : $ cd /bin $ sudo rm sh Puis créer le nouveau lien $ sudo ln -s bash sh $ ls -l sh lrwxrwxrwx 1 root root 4 nov. 6 13:48 /bin/sh -> bash ==== Installation ==== Pour installer le paquet téléchargé depuis le site, il est d'abord nécessaire de rendre le fichier //.run// executable. $ cd /chemin_de_repetoire_de_telechargement/ $ chmod +x petalinux-v2015.2.1-final-installer.run ==== TFTP (option recommandée)==== Pour échanger rapidement des fichiers entre l'ordianateur et la carte Zynq, comme par exemple les images binaires générées pour les systèmes d'exploitation et de fichiers, il est possible d'utiliser le réseau avec le protocole TFTP. Petalinux peut mettre directement les images générées dans le répertoire de partage TFTP. Il faudra alors un serveur TFTP sur la machine hote. Son installation peut se faire ainsi :\\ Création d'un répertoire de partage avec le reste du monde pour TFTP : $ sudo mkdir /tftpboot $ sudo chmod -R 777 /tftpboot $ sudo chown -R nobody /tftpboot Installation des paquets Tftpd, Tftp et xinetd (on peut le faire aussi par le gestionnaire de paquets) $ sudo apt-get install tftpd tftp xinetd Ensuite, éditer en tant qu'administrateur le fichier// /etc/xinetd.d/tftp//. Par exemple : $ sudo nano /etc/xinetd.d/tftp Vérifier son contenu. Cela devrait correspondre à cela : service tftp { protocol = udp port = 69 socket_type = dgram wait = yes user = nobody server = /usr/sbin/in.tftpd server_args = /tftpboot disable = no } * :!: PROBLÈME rencontré : pour ma part, j'ai un fichier// /etc/inetd.conf// qui perturbe le fonctionnement du serveur //tftp//. Pour résoudre le problème j'ai dû commenter la ligne mentionnant //tftp//, comme ceci: sudo nano /etc/inetd.conf ... #:BOOT: TFTP service is provided primarily for booting. Most sites # run this only on machines acting as "boot servers." #tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp ... ==== Intégration du chemin de Petalinux ==== Afin de rendre possible l'accès possible à tout moment au chemin où Petalinux est installé, il est utile de créer une ligne de raccourci dans le fichier //~/.profile// qui est exécuté à chaque fois que l'utilisateur ouvre sa session. Il faut éditer ce fichier, par exemple avec //nano//, rajouter la ligne suivante à la fin, puis le sauver et enfin quitter l'éditeur : export PETALINUX=/chemin_de_repertoire_d_installation_de_petalilux :!: Pour que le raccourcis soit pris en compte systèmatiquement dans chaque nouvelle console, il est nécessaire de redémarrer la session. ===== Utilisattion ===== Pour utiliser les outils Petalinux, il est nécessaire de "sourcer" différents paramètres à la fois de Vivado et de Petalinux. Avant toutes chose, donc, exécuter : $ source /chemin_de_repertoire_d_installation_de_vivado/SDK/2015.2/settings64.sh $ source $PETALINUX/settings.sh PetaLinux environment set to '/home/deneb/Xilinx/pkg/petalinux-v2015.2.1-final' INFO: Checking free disk space INFO: Checking installed tools INFO: Checking installed development libraries INFO: Checking network and other services :!: Il se peut que des erreurs soient indiquées ==== En cas d'erreur ==== Lors du chargement de : $ source /chemin_de_repertoire_d_installation_de_vivado/SDK/2015.2/settings64.sh $ source $PETALINUX/settings.sh PetaLinux environment set to '/home/deneb/Xilinx/pkg/petalinux-v2015.2.1-final' INFO: Checking free disk space awk: symbol lookup error: awk: undefined symbol: mpfr_z_sub /home/deneb/Xilinx/pkg/petalinux-v2015.2.1-final/tools/common/petalinux//utils/petalinux-env-check: ligne 298 : [: -le : opérateur unaire attendu INFO: Checking installed tools awk: symbol lookup error: awk: undefined symbol: mpfr_z_sub ERROR: Detected make of version is less than the expected 3.81. ERROR: You have tools don't meet the version requrements: - make -- required version not less than 3.81 INFO: Checking installed development libraries Please install them with your operating system package manager, and try again L'erreur semble ne se produire que par rapport à certaines versions du sysstème installé et que si vous avez "sourcé" //settings64.sh// de Vivado avant de sourcer //settings.sh// de PetaLinux. Si vous ne "sourcez" pas //settings64.sh// ou / et si avez cette erreur, cela empèchera par la suite de construire correctement tout ou parties des images nécessaires pour embarquer Linux dans le Zynq. Cette erreur est lièe aux bibliothèques //libmpfr.so.4// et //libgmp.so.7// situées dans le répertoire d'installation de Vivado : //Vivado/2015.2/lib/lnx64.o// qui appellent le programme //awk//((voir cette page [[http://bluehatsoft.blogspot.fr/2015/09/awk-symbol-lookup-error-awk-undefined.html]])). Pour contourner le problème 2 solutions proposées (à vérifier si elles posent des problèmes dans certains cas) : - On peut supprimer l'appel aux bibliothèques du répertoire //lnx64.o// dont le raccourci //LD_LIBRARY_PATH// est défini dans //settings64.sh//. Pour cela : $ export LD_LIBRARY_PATH="" $ source $PETALINUX/settings.sh Solution qui risque de poser pas mal de problèmes car aucune bibiliothèque de ce répertoire ne sera accessible.\\De plus, il faudra retapper cette ligne après chaque utilisation de //settings64.sh// en vue de d'utiliser PetaLinux. Mais par contre, les bibliothèques ne sont pas modifièes. - On peut renommer les deux bibliothèques incéminées afin de n'écarter que ces deux là de la construction des images, sans supprimer les autres bibliothèques de ce répoetroire. Cela les concervera, en cas de besoin. $ cd /repetroire_d_installation_Vivado/2015.2/lib/lnx64.o $ mv libmpfr.so.4 libmpfr.so.4.orig $ mv libgmp.so.7 libgmp.so.7.orig Il est allors possible de mettre les librairies par defaut de la distribution en liens symboliques $ ln -s /usr/lib/x86_64-linux-gnu/libgmp.so.10 libgmp.so.7 $ ln -s /usr/lib/x86_64-linux-gnu/libmpfr.so.4 libmpfr.so.4