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=MToolkit” komutunu “/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 ;)