Linux üzerine MATLAB kurma

MATLAB programını kuracağımız dizini oluşturalım:

cd /usr/local

sudo mkdir matlab7

cd matlab7

Öncelikle license.dat dosyasını /usr/local/matlab7 dizinine kopyalıyoruz. Bu dizine bundan sonra $MATLABROOT diyeceğiz. Yazım kolaylığı için:

“MATLABROOT=/usr/local/matlab7” komutuyla “/usr/local/matlab7” yerine $MATLABROOT yazabileceğiz:

MATLABROOT=/usr/local/matlab7

cp /<license.dat_dizini> $MATLABROOT

Artık kurma işlemine geçebiliriz:

sudo /cdrom/install*

sonrasında klasik windows tarzı menülerden OK yes OK yes ile geçiyoruz .you are not license for.. a “no” deyip kurmak istediğimiz programları seçeceğimiz bölüme geliyoruz. Normal olarak cd de yüklü ve lisansımızın kurabileceği tüm programları kurma varsayılan olarak gerçekleştirilir. Kurmak istemediğimiz programları sağ taraftaki “items not to install” kısmına “remove” edebiliriz.

Ardından gelecek menüde create symbolic links to matlab… kısmını yanındaki kutucuğu da işaretleyip “Ok” liyoruz. Begin installation ? Sorusunu evetleyip kuruluma başlıyoruz… 2 ve 3 nolu cd leri istedikçe takıp devam ediyoruz…

Kurulum bitti ancak yapacağımız işler bitmedi. License.lic dosyasında <your server> kısmını server isminizle(shell de @ den sonra gelen kısım: ali@alininbilg) license.lic dosyasını $MATLABROOT/etc klasörüne kopyalıyoruz:

sudo cp /<dosya_yolu>/licence.lic $MATLABROOT/etc

MATLAB programını uygulamalar sekmesinde masaüstünde çalışacak biçimde kısayol oluşturalım.

Bunun için:

/usr/share/applications/ klasörünün altında “matlab.desktop” belgesini oluşturalım ve aşağıdaki kısmı bu dosyaya ekleyelim:

sudo gedit /usr/share/applications/matlab.desktop

açılan sayfaya:

[Desktop Entry]
Name=Matlab
Comment=Matlab
Exec=/usr/local/bin/matlab -desktop
Icon=/usr/local/matlab7/X11/icons/matlab48c_icon.xpm
Terminal=false
MultipleArgs=false
Type=Application
Categories=Application;Development;
StartupNotify=true

yazalım ve kaydedelim. Şimdi uygulamalar>programlama altında matlab ikonu görülecek tıklayıp çalıştıralım

Matlab-linux da çok fazla sayıda hata -bug- bulunmakta. Forumlarda ve matlabmathwork sitesinde bu hatalara yapılmaya çalışılan yamaları görebilirsiniz. Bu hatalar sinir bozucu olabiliyor benden söylemesi.

Öncelikli hata sistemimize gnome ve compiz yüklü ise menülerin gri gözükmesi bunun için:

“export AWT_TOOLKIT=MToolkitkomutunu “/usr/local/bin/matlab” dosyasına kaydediyoruz:

sudo gedit /usr/local/bin/matlab

açılan dosyada “#! /bin/sh” nin altına export AWT_TOOLKIT=MToolkit yazıyoruz

matlab ı çalıştırdığımızda(shell e matlab yazıp enter dediğimizde veya oluşturduğumuz kısayola tıklayarak)

matlab command window un en üstünde büyük ihtimalle şu yazılar belirecek:

warning : could not query OpenGL
warning : OpenGL appears to be installed incorrectly

matlab bunun için bir çözüm önerisi sunmuş: http://www.mathworks.com/support/solutions/data/1-18N21.html?solution=1-18N21

matlab da

>>opengl info

komutunu işlettiğimizde hata alıyorsak:

matlab ın uyumlu çalıştığı OpenGL kütüphanelerinde uyumsuzluk problemi bulunmakta.

libGL.so.1.2.x
libGLU.so.1.2.x

veya
libGL.so.1.2.x
libGLU.so.1.3.x

kendi kütüphanemizi sınamak için:

cd /usr/lib

ls openGL*

komutlarını işletiyoruz. Örneğin bendeki sonuç:

libGLcore.so.1 libGLEW.so.1.5 libGL.so.1 libGLU.so.1

libGLcore.so.169.12 libGLEW.so.1.5.0 libGL.so.169.12 libGLU.so.1.3.070002

şimdi iki dosya dikkatimi çekiyor: libGL.so.169.12 . 169.12 takısı OpenGL nin benim nvidia ekran kartı sürücüm tarafından hızlandırıldığını söylüyor (169.12 sürümü ile). Şimdi bu dosyayı vurgulayalım: /usr/lib/libGL.so.169.12

MATLAB ın kurulu olduğu dizinde matlab ın kullanacağı OpenGL dosyası var : $MATLAB/sys/opengl/lib/glnx86/libGLU.so

Bu iki dosyayı seçeceğimiz bir bölümde birbirine bağlayacağız:

sudo mkdir /usr/MATLAB_OpenGL

cd /usr/MATLAB_OpenGL
sudo ln -s /usr/lib/libGL.so.169.12 libGL.so
sudo ln -s $MATLAB/sys/opengl/lib/glnx86/libGLU.so libGLU.so

shell de işlemin onaylandığına dair bir yazı belirecektir:

ln: creating symbolic link `libGL.so’: File exists

şimdi ise export komutu ile /usr/local/bin altındaki matlab dosyasında matlab ın bakacağı dizinlere oluşturduğumuz /usr/MATLAB_OpenGL dizinini de ekleyelim:

sudo gedit /usr/local/bin/matlab

CTRL+F ile “Initialize OpenGL libraries to Mesa” geçtiği yeri bulalım. OpenGL olarak Mesa kullandığımda(matlab bunu öneriyor) sistemim çökmekte-çekirge iki sıçradı- opengl kütüphanelerini mesa yerine oluşturduğumuz dizine yönlendirelim:

LDPATH_OPENGL=’$MATLAB/sys/opengl/lib/$ARCH’

dizinini bulduk burada $ARCH değişkeni X86 mimarisine sahip sistemlerde glnx86

# Determine <final_load_library_path> for each platform

burada platformu belirleyip o ifadenin case nin sonundaki(linux için: ilk case) export LD_LIBRARY_PATH dan önce aşağıdaki komutu giriyoruz:

LD_LIBRARY_PATH=/usr/MATLAB_OpenGL:$LD_LIBRARY_PATH

ve ta ta OpenGL uyarılarından kurtulduk(yani kurtulmuş olmamız gerekir)

sınamak için yeniden matlab ı açıp grafik demolardan birini yürütüyoruz. Ama o da ne tonla yazı ve başında : Segmentation violation detected at the adress … hatası çıkıyor. Yine bir hata yine bir matlab yaması:

önce $MATLAB/bin/glnx86/ altındaki libmwm_ir.so dosyasını yeniden adlandırıyoruz(bir nevi ihtiyatlı silme işlemi)

sudo mv $MATLAB/bin/glnx86/libmwm_ir.so $MATLAB/bin/glnx86/libmwm_ir.so.old

ardından yeni libmwm_ir.so dosyasını indiriyoruz:http://www.mathworks.com/support/solutions/files/s1-OUVOD/libmwm_ir.so

indirdiğimiz dosyanın masaüstünde(~/Masaüstü) olduğunu varsayalım. Bu durumda

sudo cp -f ~/Masaüstü/libmwm_ir.so $MATLAB/bin/glnx86/

komutunu işlettik.Sorun çözüldü gibi(umarım). matlab da:

>>demos

dedik ve bir demo seçtik o da ne şimdi de görüntü yok ?!??!!

neyse önce OpenGL yi doğru yükleyip yüklemediğimize bakalım. Matlab komut satırına:

>>opengl info

yazıyoruz ve şuna bezer bir şeyler çıkması gerekiyor

Version = 2.1.2 NVIDIA 169.12

Vendor = NVIDIA Corporation

Renderer = GeForce 8600M GS/PCI/SSE2

MaxTextureSize = 8192

Visual = 0x27 (TrueColor, depth 24, RGB mask 0xff0000 0xff00 0x00ff)

Extensions = GL_ARB_color_buffer_float GL_ARB_depth…. böyle gider

Hardware Bug Workarounds:

OpenGLBitmapZbufferBug = 0

OpenGLWobbleTesselatorBug = 0

ardından görüntü özelliklerimizi test edelim

>> hf=figure;

>> get(hf,’xvisual’)

ans =

0x24 (TrueColor, depth 24, RGB mask 0xff0000 0xff00 0x00ff)

>> !glxinfo

visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav

id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat

———————————————————————-

0x21 24 tc 0 32 0 r y . 8 8 8 0 4 24 8 16 16 16 16 0 0 None

0x22 24 dc 0 32 0 r y . 8 8 8 0 4 24 8 16 16 16 16 0 0 None

0x24 24 tc 0 32 0 r y . 8 8 8 8 4 24 8 16 16 16 16 0 0 None

0x25 24 tc 0 32 0 r . . 8 8 8 0 4 24 8 16 16 16 16 0 0 None

0x26 24 tc 0 32 0 r . . 8 8 8 8 4 24 8 16 16 16 16 0 0 None

0x27 24 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None

0x28 24 tc 0 32 0 r y . 8 8 8 8 4 24 0 16 16 16 16 0 0 None

0x29 24 tc 0 32 0 r . . 8 8 8 0 4 24 0 16 16 16 16 0 0 None

0x2a 24 tc 0 32 0 r . . 8 8 8 8 4 24 0 16 16 16 16 0 0 None

0x2b 24 tc 0 32 0 r y . 8 8 8 0 4 0 0 16 16 16 16 0 0 None

0x2c 24 tc 0 32 0 r y . 8 8 8 8 4 0 0 16 16 16 16 0 0 None

.

.görüldüğü üzere 0x2b de derinlik 0 bit ve bu bazı render problemlerine yolaçabileceğinden varsayılan görüntüyü 24 bit derinlikli olan bir alana (örn 0x24) ayarlamalıyız

>> set(0,’defaultfigurexvisual’,’0x24′);

Bu hatalar ile uğraşmak yerine R2008a sürümüne geçmeniz tavsiye olunur ;)

ve 2008a sürümüne geçtim

Başarılı gibi görünen kurulumdan sonra(yukarıda anlatılan, önceki sürümün kurulumuyla aynı) o da ne bir hata ! Ama hayır R14 den epey tecrübe edindik. Hata şöyle diyor:

Warning: Initializing Handle Graphics failed in matlabrc.
This indicates a potentially serious problem in your MATLAB setup, which should be resolved as soon as possible. Error detected was:
MATLAB:badsubscript
Attempted to access monitors(1,:); index out of bounds because size(monitors)=[0,4].

In matlabrc at 108 […]

bahsettiği matlabrc dosyasında hgrc.m adlı mfile dosyasını çağırdığı görülüyor.Dosyayı açalım

>>edit hgrc.m

açılan dosyada

monitors = get(0, ‘MonitorPositions’);

handle ı var. sorun burada.

Doküman bilgilerinden

Monitor:[x y width height;x y width height]

x = primary monitor width + 1
y = primary monitor height + 1

şimdi

bu durumda örneğin benim ekran çözünürlüğüm 1280×800

yapmam gereken değişiklik:

monitors = [0,0,1280,800;1281,801,1280,800];

ve monitors = get(0, ‘MonitorPositions’); kısmı da yorum olarak gizleeyelim nihayi durum:

%monitors = get(0, ‘MonitorPositions’); %edited by tmain

monitors = [0,0,1280,800;1281,801,1280,800];

%monitors = get(0, ‘MonitorPositions’); %onurs tarafından değiştirildi

monitors = [0,0,1280,800;1281,801,1280,800];%monitorume gore ayarlandi

ve matlab ı tekrar başlattık şimdi yine bir hata:

“The desktop configuration was not saved successfully”

Hımm görece basit bir sorun. Dosyaların kaydedileceği yerde matlab yazma izni alamıyor. Bu izinleri de değiştirdiğimizde:(shell)

sudo chmod a+w -R ~/.matlab

Diğer çakışmaların önüne geçmek için dil ayarlarını ingilizceye dönüştürmekte fayda var. bunun için

sudo gedit /usr/local/bin/matlab

ve açılan dosyada ikinci satıra:

export LC_ALL=en_US

yazıyor ve kaydediyoruz.Böylece tüm locale değişkenlerimizi o oturum için amerikan ingilizlerinin tipine çevirdik.

MATLAB ı çalıştırdığımızda ” Locking assertion failure ” hatası alıyorsak(shell ekranında) ve backtrace kısmında java dosyaları listeleniyorsa ayrıca şu komutu da yukarıdaki export ifadesinden sonra eklememiz gerekir:

export MATLAB_JAVA=/usr/lib/jvm/java-6-sun-1.6.0.06/jre

şimdilik düzgün olara çalışan bir matlaba sahibiz gibi görünüyor ;)

6 responses to “Linux üzerine MATLAB kurma

  1. Doğrusunu demek gerekirse mathworks.com daki konuyla ilgili açıklamalardan daha açıklayıcı olmuş. Artık openGL le ilgili bir sorunum kalmadı. (umarım)
    Teşekkür ediyorum.

  2. Rica ederim. Genellikle farklı forumlardan derlediğim ve kendi bulduğum çözümlerden oluşuyor. İnat edip yaklaşık 2 hafta uğraşmıştım. Ancak yine de r2008a veya r2008b sürümünü tavsiye ederim. Bu sürümlerde Linux için birçok hataya çözüm bulunmuş durumda. Ayrıca ilerde karşılaştığınız sorunları ve bulduysanız çözümlerini yorum olarak buraya eklerseniz sevinirim. Böylece açık kaynak felsefesinin paylaşımcı ruhunu devam ettirmiş oluruz ;)

  3. merhaba, bir de matlabı nereden indirebileceğimiz konusunda yardım edebilir misiniz

    • Bu yaziyi yazdigin sirada matlab7.0 sanirim r2008a idi ugrastirmis olan surum. Yeni surumde ve kernel 2.8 den sonra sorunlar buyuk olcude kalkti ve .sh dan next next ile kurulabiliyor rahatlikla. Sadece menulerde java ile ilgili kucuk problemler olabiliyor

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s