Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
applications:matlab [Le 19/02/2007, 15:02]
193.95.80.10
— (Version actuelle)
Ligne 1: Ligne 1:
-<​code>​ 
- ​Version : Breezy, Hoary et Warty. 
-</​code>​ 
- 
-[[https://​wiki.ubuntu.com/​MATLAB|Traduit]] par [[utilisateurs:​pitchoun|Pitchoun]] - Modifié par [[utilisateurs:​gou|Gou]] 
- 
- 
- 
-===== Installation de Matlab sous Ubuntu ===== 
- 
-===== Introduction ===== 
- 
- 
-Voici une méthode pour installer MATLAB sous Ubuntu. 
- 
-Matlab est un logiciel de calcul matriciel (dont il existe un équivalent libre : Scilab) développé par Mathworks Inc. 
- 
-C'est un outil puissant pour le calcul numérique. 
- 
-===== Prérequis ===== 
- 
-Vous n'avez besoin de presque rien pour utiliser Matlab. Il peut très bien fonctionner sans serveur X, mais il manquera alors certaines fonctions, comme les graphes. ​ 
- 
-La plupart des utilisateurs préfèrent cependant utiliser Matlab en mode graphique.Il faudra alors : 
- 
-  * Java installé, et l'​éxécutable dans le path 
-  * une carte graphique, avec les drivers corrects installés, pour les graphes plus complexes 
- 
-Pour vérifier le path, il suffit de taper dans un terminal :  
-<​code>​ 
-which java 
-</​code>​ 
-Si la réponse est du genre : 
-<​code>​ 
-usr/​bin/​java 
-</​code>​ 
-vous ne devriez pas avoir de problème. Sinon, voici comment faire : [[http://​wiki.ubuntu-fr.org/​applications/​java?​s=java|HOWTO Java]] 
- 
-Pour la carte graphique, tapez dans un terminal : 
-<​code>​ 
-grep Driver /​etc/​X11/​xorg.conf 
-</​code>​ 
-Si vous obtenez comme réponse une ligne qui vous dit : 
-  * fglrx ou nvidia, alors pas de problème 
-  * nv, ati ou radeon, il vous faut alors installer les drivers 
-  * vesa, i810 ou autre chose, vous serez limités dans l'​utilisation du logiciel. 
- 
-===== Installation ===== 
- 
- 
-L'​installation de Matlab n'est pas possible directement à partir du CD ROM monté. Ceci n'est pas du aux paramètres par défaut lors du montage (-noexec), mais à une raison mystérieuse et encore incomprise de nos jours ! Il existe deux solutions à ce problème. 
- 
-La première consiste à copier le disque sur votre disque dur, pour ensuite lancer l'​installation. 
-Pour copier le contenu du disque, tapez dans un terminal : 
-<​code>​ 
-sudo cp -R /​media/​cdrom0 /tmp/matlab 
-</​code>​ 
-Une fois la copie terminée, tapez : 
-<​code>​ 
-sudo sh /​tmp/​matlab/​install_unix.sh 
-</​code>​ 
-ce qui lancera l'​installeur GUI. 
- 
-La deuxième solution consiste à passer en root (commande su), démonter le lecteur CD (à l'aide de la commande umount) puis de le remonter à l'aide de la commande : 
-<​code>​ 
-mount -o exec /​media/​cdrom0 
-</​code>​ 
-__NB:__ il semblerait que cette dernière commande ne passe pas en étant simplement en sudo. 
- 
-Vous pouvez ensuite lancer le script d'​install (toujours en root). 
- 
-Une fois l'​installateur démarré (avec l'une ou l'​autre des méthodes décrites ci-dessus), comme répertoire racine (root directory), entrez **/​usr/​local/​matlab**,​ et acceptez la création du répertoire. 
-Cliquez ensuite sur "​Créez un lien symbolique vers Matlab et les scripts MEX", et sélectionnez **/​usr/​local/​bin**. Acceptez tout ce qui vient ensuite, jusqu'​à ce qu'il démarre l'​installation. 
- 
-Une fois installé, vous pouvez taper 
-<​code>​ 
-matlab 
-</​code>​ 
-dans un terminal ce qui vous permettra de lancer Matlab UI. 
- 
-A noter que vous pouvez passer des options au démarrage de Matlab. Parmi les plus importantes,​ citons : 
-<​code>​ 
--nodesktop ​            ​Démarre Matlab dans une console, sans le GUI. Chargement beaucoup plus rapide 
--nosplash ​             Pas de fenêtre d'​accueil au démarrage 
--nojvm ​                Ne démarre pas le support Java. Ceci implique -nodesktop 
--r "​commande" ​         Démarre Matlab en éxécutant "​commande"​ 
--h                     Pour voir d'​autres options 
-</​code>​ 
- 
- 
- 
-===== Les problèmes les plus courants ===== 
- 
-Voici quelques uns des problèmes rencontrés pendant l'​installation 
- 
-==== cellfun.mexglx manquant (et autres fichiers) ==== 
- 
-Si vous installez Matlab (version 7.0.1.24704 (R14) Service Pack 1) sur une machine de type x86 avec Ubuntu (Breezy 5.10), il peut exister des problèmes avec les permissions des fichiers /​etx/​lib.so.6,​ qui n'a pas par défaut les permissions d'​exécutiuon,​ et qui ne se comporte pas toujours comme prévu avec certains scripts. Quand certains scripts (fichiers d'​installation et de démarrage) veulent connaître la version de libc, ils n'​obtiennent pas de réponse. Ceci engendre la non-installation des fichiers mexglx requis, et au démarrage de Matlab, le script **[matlab_dir]/​bin/​util/​oscheck.sh** donne le rapport d'​erreur suivant : 
-<​code>​ 
-/​opt/​matlab/​bin/​util/​oscheck.sh:​ line 134: /​lib/​libc.so.6:​ Permission denied 
-</​code>​ 
- 
- 
-Le fichier **[matlab_dir]/​toolbox/​matlab/​datatypes/​cellfun.mexglx** n'a pas été installé, et ceci peut poser des problèmes au moment d'​éxécuter une commande simple, comme ls, par exemple : 
-<​code>​ 
->> ls  
-??? Attempt to execute SCRIPT cellfun as a function. ​ 
-Error in ==> iscellstr at 13 
-  res = cellfun('​isclass',​s,'​char'​); ​ 
-Error in ==> ls at 16  
-if iscellstr(varargin) 
-</​code>​ 
- 
-Une façon de résoudre ce problème serait de modifier deux lignes dans le script [cd_matlab]/​install (à faire donc avant l'​installation) et dans  [matlab]/​bin/​util/​oscheck.sh (à faire après l'​installation). 
- 
-Dans **install**,​ ligne 697 : 
-<​code>​ 
-ver=`strings /​lib/​libc.so.6 | head -n 1 | sed -e "​s/​^[^0-9]*//"​ -e "s/[ ,​].*$//"​` 
-</​code>​ 
- 
-et dans oscheck.sh, ligne 134 : 
-<​code>​ 
-ver=`/​lib/​libc.so.6 | head -n 1 | sed -e "​s/​^[^0-9]*//"​ -e "s/[ ,​].*$//"​ 
-</​code>​ 
- 
-doivent être remplacées par : 
-<​code>​ 
-ver=`strings /​lib/​libc.so.6 | grep "GNU C Library"​ | sed -e "​s/​^[^0-9]*//"​ -e "s/[ ,​].*$//"​` 
-</​code>​ 
- 
-Pour pouvoir éditer le fichier d'​installation,​ il faut avoir copié le CD sur le disque dur, comme décrit dans la section Installation. ​ 
- 
-Vous pouvez trouver une explication plus détaillée ​ [[http://​www.cfar.umd.edu/​users/​aravinds/​tools.html#​install_matlab|ici]] (en anglais). Ceci peut expliquer d'​autres problèmes, avec d'​autres fichiers .mexglx manquants. 
- 
-==== Les outils symboliques ne fonctionnent pas ==== 
- 
-Pour savoir si vous êtes concernés par ce problème :  
-  * Lancez Matlab et regardez dans la boite d'​outils si il vous répond R13 
-ou 
-  * tapez la commande vpa64(64,​pi). Si vous obtenez le message d'​erreur suivant :  
-<​code>​ 
-Unable to load mex file: /​usr/​local/​matlab/​toolbox/​symbolic/​maplemex.mexglx. 
-/​usr/​local/​matlab/​bin/​glnx86/​libmaple.so:​ symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference 
-??? Invalid MEX-file 
-</​code>​ 
-c'est que vous souffrez du tristement célèbre bug NPTL. 
- 
-Tout d'​abord,​ ouvrez avec un éditeur de texte le script de lancement de Matlab. Vous pouvez taper par exemple :  
-<​code>​ 
-sudo gedit 'which Matlab'​ 
-</​code>​ 
-Allez ensuite à la première ligne non commentée (sans  devant, dans les 136), et ajoutez la ligne export LD_ASSUME_KERNEL=2.4.1 ​ . Vous devriez obtenir quelque chose du genre :  
-<​code>​ 
-__________________________________________________________________________ 
-# 
-    export LD_ASSUME_KERNEL=2.4.1 
-    arg0_=$0 
-# 
-# Temporary file that hold MATLABPATH code from .matlab6rc.sh file. 
-# 
-    temp_file=/​tmp/​$$a 
-# 
-    trap "rm -f $temp_file; exit 1" 1 2 3 
-</​code>​ 
-Sauvez et fermez l'​éditeur. Pour vérifier le bon fonctionnement de la manoeuvre, dans Matlab, tapez getenv ('​LD_ASSUME_KERNEL'​) , s'il vous dit 2.4.1, vous avez résolu le problème ! 
- 
-==== OpenGL et Matlab ==== 
- 
-Si OpenGL vous cause des soucis faire des rendus de surface dans le mauvais sens, ou que vous obtenez des messages d'​erreur du style //OpenGL not available, using ZBuffer//, et que vous utilisez une version plus ancienne que la R14SP2, vous allez avoir un peu de travail. La source de toute la réflexion de cette partie vient de [[http://​www.mathworks.com/​support/​solutions/​data/​1-18N21.html?​solution=1-18N21|The MathWorks]]. 
-Commencez par lancer Matlab. Une fois que la console est prête, cherchez lez informations sur OpenGL :  
-<​code>​ 
->> opengl info 
- 
-Version ​       = 2.0.0 NVIDIA 76.64 
-Vendor ​        = NVIDIA Corporation 
-Renderer ​      = GeForce FX 5200/​PCI/​SSE2 
-MaxTextureSize = 4096 
-Extensions ​    = GL_ARB_depth_texture GL_ARB_fragment_program GL_ARB_fragment_program_shadow ... 
-</​code>​ 
-Les résultats dépendent évidemment de votre machine, mais la partie importante est la partie "​**Renderer**"​. Dans cet exemple, il donne le nom de la carte qui va s'​occupper du rendu. Si vous utilisez un rendu logiciel, vous obtiendrez **Mesa X11**. Si vous utilisez la carte graphique, et que vous ne disposez pas de l'​accélération matérielle,​ vous avez probablement besoin d'​installer les  pilotes du constructeur. 
-Si les pilotes ne sont pas responsables,​ ouvrez un terminal, et tapez : 
-<​code>​ 
-ldd /​usr/​local/​matlab/​bin/​glnx86/​glren.so 
-</​code>​ 
-(remplacez par l'​emplacement de matlab si besoin est...). 
- 
-Vous saurez alors si les différentes librairies openGL sont là où elles sont sensée être. Voici un exemple de configuration correcte. 
-<​code>​ 
-$ldd /​usr/​local/​matlab/​bin/​glnx86/​glren.so 
-                libmx.so => not found 
-        libut.so => not found 
-        libmwudd.so => not found 
-        libmwservices.so => not found 
-        libGL.so => /​usr/​lib/​libGL.so (0xb7f45000) 
-        libGLU.so => /​usr/​X11R6/​lib/​libGLU.so (0xb7ecf000) 
-        libXext.so.6 => /​usr/​X11R6/​lib/​libXext.so.6 (0xb7ec2000) 
-        libXp.so.6 => /​usr/​X11R6/​lib/​libXp.so.6 (0xb7eba000) 
-        libXt.so.6 => /​usr/​X11R6/​lib/​libXt.so.6 (0xb7e6a000) 
-        libX11.so.6 => /​usr/​X11R6/​lib/​libX11.so.6 (0xb7da5000) 
-        libc.so.6 => /​lib/​tls/​i686/​cmov/​libc.so.6 (0xb7c78000) 
-        libGLcore.so.1 => /​usr/​lib/​libGLcore.so.1 (0xb750f000) 
-        libnvidia-tls.so.1 => /​usr/​lib/​tls/​libnvidia-tls.so.1 (0xb750d000) 
-        libm.so.6 => /​lib/​tls/​i686/​cmov/​libm.so.6 (0xb74ec000) 
-        libdl.so.2 => /​lib/​tls/​i686/​cmov/​libdl.so.2 (0xb74e8000) 
-        libstdc++.so.5 => /​usr/​lib/​libstdc++.so.5 (0xb742e000) 
-        libgcc_s.so.1 => /​lib/​libgcc_s.so.1 (0xb7423000) 
-        libSM.so.6 => /​usr/​X11R6/​lib/​libSM.so.6 (0xb741a000) 
-        libICE.so.6 => /​usr/​X11R6/​lib/​libICE.so.6 (0xb7402000) 
-        /​lib/​ld-linux.so.2 => /​lib/​ld-linux.so.2 (0x80000000) 
-</​code>​ 
-S'il vous manque une librairie importante sur cette liste, mais qu'​elle est installé, il faudra créer un lien virtuel. 
-Imaginons que vous obtenez libGL.so => not found. ​ 
-On se place d'​abord dans le répertoire suivant :  
-<​code>​ 
-cd /​usr/​local/​matlab/​sys/​opengl/​lib/​glnx86 
-</​code>​ 
-Vous allez ensuite vérifier si le paquet libGL.so est installé :  
-<​code>​ 
-dpkg -s libGL.so 
-</​code>​ 
-S'il l'est, vous créez le lien symbolique : 
-<​code>​ 
-ln -s /​usr/​lib/​libGL.so libGL.so 
-</​code>​ 
-S'il n'est pas installé, et bien... installez-le ! 
- 
-Les risques d'​avoir ce problème sont faibles si vous utilisez les pilotes corrects pour votre carte video. 
- 
-Si ça marche à peu près, mais que ce n'est pas encore parfait, c'est probablement Matlab qui n'​utilise pas le bon Xvisual. Pour vérifier, on ouvre le bureau Matlab, et on tape la commande suivante :  
-<​code>​ 
-hf=figure; 
-set(hf,'​renderer','​opengl'​);​ 
-get(hf,'​xvisual'​) 
-</​code>​ 
-Vous obtiendrez une chaîne, ressemblant à "** 0x21 (TrueColor, depth 24, RGB mask 0xff0000 0xff00 0x00ff)** ". 
-Tapez maintenant :  
-<​code>​ 
-glxinfo | grep 0x21 | awk '​{print $15}' 
-<​code>​ 
-Il doit vous répondre 24 (comme dans la partie depth de la réponse profondeur). Si vous obtenez 0, il faut trouver un autre Xvisual. Le meilleur moyen est de jongler avec glxinfo. 
-<​code>​ 
-glxinfo | grep tc | grep y 
-</​code>​ 
-Vous obtenez alors une liste de Xvisual. 
-<​code>​ 
-0x21 24 tc  0 32  0 r  y  .  8  8  8  0  4 24  0 16 16 16 16  0 0 None 
-0x23 24 tc  0 32  0 r  y  .  8  8  8  8  4 24  0 16 16 16 16  0 0 None 
-0x26 24 tc  0 32  0 r  y  .  8  8  8  0  4 24  8 16 16 16 16  0 0 None 
-0x27 24 tc  0 32  0 r  y  .  8  8  8  8  4 24  8 16 16 16 16  0 0 None 
-0x2a 24 tc  0 32  0 r  y  .  8  8  8  0  4 16  0 16 16 16 16  0 0 None 
-0x2b 24 tc  0 32  0 r  y  .  8  8  8  8  4 16  0 16 16 16 16  0 0 None 
-0x2e 24 tc  0 32  0 r  y  .  8  8  8  0  4  0  0 16 16 16 16  0 0 None 
-0x2f 24 tc  0 32  0 r  y  .  8  8  8  8  4  0  0 16 16 16 16  0 0 None 
-0x32 24 tc  0 32  0 r  y  .  8  8  8  0  4 24  0 16 16 16 16  2 1 Ncon 
-0x33 24 tc  0 32  0 r  y  .  8  8  8  8  4 24  0 16 16 16 16  2 1 Ncon 
-0x34 24 tc  0 32  0 r  y  .  8  8  8  0  4 24  0 16 16 16 16  4 1 Ncon 
-0x35 24 tc  0 32  0 r  y  .  8  8  8  8  4 24  0 16 16 16 16  4 1 Ncon 
-0x3a 24 tc  0 32  0 r  y  .  8  8  8  0  4 24  8 16 16 16 16  2 1 Ncon 
-0x3b 24 tc  0 32  0 r  y  .  8  8  8  8  4 24  8 16 16 16 16  2 1 Ncon 
-0x3c 24 tc  0 32  0 r  y  .  8  8  8  0  4 24  8 16 16 16 16  4 1 Ncon 
-0x3d 24 tc  0 32  0 r  y  .  8  8  8  8  4 24  8 16 16 16 16  4 1 Ncon 
-0x42 24 tc  0 32  0 r  y  .  8  8  8  0  4 16  0 16 16 16 16  2 1 Ncon 
-0x43 24 tc  0 32  0 r  y  .  8  8  8  8  4 16  0 16 16 16 16  2 1 Ncon 
-0x44 24 tc  0 32  0 r  y  .  8  8  8  0  4 16  0 16 16 16 16  4 1 Ncon 
-0x45 24 tc  0 32  0 r  y  .  8  8  8  8  4 16  0 16 16 16 16  4 1 Ncon 
-</​code> ​ 
-Vous en choisissez un qui ne soit pas marqué //Slow// sur la dernière colonne, et qui ait 24 sur la 15ème colonne. Choisissons par exemple //0x26//. 
-On va le définir comme Xvisual. Tapez 
-<​code>​ 
-set(0,'​defaultfigurexvisual','​0x26'​);​ 
-</​code>​ 
-et rentrez cette ligne dans le fichier startup.m. Vous devriez maintenant avoir des jolis graphes openGL ! 
- 
-Si matlab vous dit "​Warning:​ Could not access OpenGL library",​ une solution est  <​code>​ 
-export LD_LIBRARY_PATH=/​usr/​local/​matlab/​sys/​opengl/​lib/​glnx86 
-</​code>​ 
-(soit dans votre .bashrc, soit dans un lanceur avec exec=/​bin/​sh -c "​LD_LIBRARY_PATH=/​usr/​local/​matlab/​sys/​opengl/​lib/​glnx86 /​usr/​local/​matlab/​bin/​matlab"​). 
  
  • applications/matlab.1171893746.txt.gz
  • Dernière modification: Le 18/04/2011, 14:47
  • (modification externe)