10 Temmuz 2012 Salı

Ubuntu'ya güncel nvidia sürücülerini kurmak (nvidia-current)

Merhabalar,

Yeni toplamış olduğum bilgisayarımdaki Nvidia GTX670 (GK104 Kepler) ekran kartını Ubuntu'nun kendi deposundaki sürücüler tanımıyor. Şu an depolarında (hem test hem de kararlı depoda) 295.40 sürücüsü yer almakta. Fakat sürücü geçmişini incelediğimde benim ekran kartı için 295.53 ya da daha yeni bir sürücü gerekiyor (10 Mayıs 2012 tarihinde çıktı bu kart). Ubuntu neden böyle yapmış bilmiyorum ama bu sürücü resmi depolarda yok.

Ubuntu'nun önerdiği yöntem jockey dedikleri sürücü bulma aparatını kullanmamız. Fakat donanımımız o sürücüye uygun değilse göstermiyor bile.

Bir diğer kötü tarafı ise VESA sürücüsüyle açıldığında çözünürlük 16:9 bir ekranınız olsa bile 1280x1024 gibi bir şey oluyor.

Ben de bunun üzerine aramalar yaparak en güncel ya da benim için yeterli olan sürücüyü aradım. Ubuntu'nun sitesinde elle (nvidia'nın sitesinden .bin dosyası indirip) kurulum yapma ile ilgili yazılar mevcut. Fakat biraz daha araştırdığımda bir depoda 302.17 nolu sürücünün olduğunu gördüm. Denedim ve çalışıyor.

Denemeden önce bayağı bir korkmuştum sistem çökecek diye. Fakat bir çok sorundan (Unity vs. de inanılmaz saçmalıyordu) kurtulmak için denemem gerekiyordu. Bir de 302 nolu sürücüler ile ilgili X bileşeninden bir paketin değişmesi gerekiyor vs. diye yazılar okumuştum. Ama korktuğum gibi olmadı. Çok basit bir şekilde kuruldu.

Bir not daha: Bu depoyu eklediğimizde jockey dediğim sürücü bulma aparatı artık sürücünüzü bulabiliyor. Yapmanız gereken ise çok basit:

sudo apt-add-repository ppa:ubuntu-x-swat/x-updates
sudo apt-get update
sudo apt-get install nvidia-current


Ben denemedim ama dilerseniz nvidia-current paketini buradan kurmak yerine jockey'den de kurabilirsiniz. Jockey'i açmak için: System Settings (Ayarlar) -> "Additional Drivers" (Türkçe'sini bilmiyorum ama ek sürücüler olabilir).

Son olarak Ubuntu bu sürücüyü "quantal" kod adlı 12.10 sürümünde kullanmayı düşünüyor sanırım. Ama "precise"'a de kesinlikle backport etmeleri gerektiğini düşünüyorum.

http://packages.ubuntu.com/quantal/nvidia-current

Buradan görebilirsiniz.

Kolay gelsin.

17 Nisan 2011 Pazar

ÇOMAK Projesi Çanakkale Atölye Çalışması

Biraz geç kalınmış bir yazı ile karşınızdayım :)

Taa 7-8 Nisan tarihinde yapılmış olan atölye çalışmasıyla ilgili blog girdisini anca şimdi yazabiliyorum. Bu aralar yoğunluk hiç bitmiyor.

Neyse, ÇOMAK ile ilgili olan atölye çalışmasına, geçen seneki mezun arkadaşlarımızdan Metin ve Mete de katıldı. Onlar haricinde Pardus ekibinden Enlightenment masaüstü ortamını paketleyen İbrahim ve ÇOMAK projesi ile ilgilenen Onur ve Gökmen de vardı. Son olarak da GNOME masaüstü ortamının paketlenmesi ile uğraşan Burak da atölye çalışmasına katıldı.

2 gün süren çalışmalarda yönetici ailesi ile uğraşan arkadaşlar öncelikli olarak Gökmen'i esir alıp yaptıkları değişiklikleri gözden geçirip, yamalarının Pardus depolarına alınması ile ilgilendiler.

Bunlar haricinde ise Enlightenment masaüstü ortamının açılış yöneticisi olan Elsa'yı sorunsuz çalışabilir hale getirme ilgili çalışmalar yaptık fakat bütün bunlar sonucunda da istediğimiz şekilde çalışmayınca (açılış uygulamalarını sorunsuz çalıştırma, ConsoleKit desteği vs.) Fluxbox için kullandığımız açılış yöneticisi olan SLiM'e geçme kararı aldık. SLiM için varolan Xsession betiği (açılacak masaüstü ortamının belirlendiği sağlayan betik) düzenlememiz gerekti çünkü eski hali sadece fluxbox'u çalıştırıyordu. (hem betik ile ilgili sorunlar vardı hem de gerekli dizinler olması gereken yerde değildi.)

Yapılan değişiklik (ekleme) şu şekilde oldu:

defaultDesktopSession=`sed -e '/^SESSION/!d' -e 's/\(.*\)=\(.*\)/\2/' /etc/default/desktop`

sessionscript=""
for x in /usr/share/xsessions/* ; do
if [ "$defaultDesktopSession" == `basename $x .desktop` ]; then
sessionscript=`sed -e '/^Exec/!d' -e 's/\(.*\)=\(.*\)/\2/' $x`
break
fi
done

Bu kod bloğu sayesinde açılacak masaüstü ortamını /etc/default/desktop dosyasından alıyoruz. Bu ve paketlerdeki bir kaç düzeltmeler ile birlikte Enlightenment, SLiM ile açılabilir hale geldi.

Bunun haricinde bir de 64 bit isolarındaki librt.so.1 dosyası bulunamadı hatası sorunu vardı. 64 Bit kurulan DVD hazırladığımızda librt.so.1 dosyası bulunamadı diye hata alıyorduk. Buna çözüm olarak da udev i bir önceki yayıma çekiyorduk. Onur ile bunun incelemesini yaptıktan sonra udev'in son güncellemesinde açılmış olan 32 bit paketinin 64 bit ikilik dosyaların üzerine yazdığı için böyle bir sorunla karşılaştığımızı öğrendik. (32 bit kütüphane arıyor) Pardus Geliştirici listesinde de bu konu geçiyor.[1] Şu anki güncel udev paketinde bu sorun çözüldü.

Son olarak da gnome3 paketlemesi işlemlerine başlamış olduk. Şu anda da gnome3 paketlenmesi ile ilgili ciddi gelişmeler kaydettik. En kısa zamanda gnome3'lü Pardus'u sizlere ulaştırmaya çalışacağız.

Ayrıca Onur bize Derleme işlemleri ve C programlama ile ilgili ufak bir ders verdi. (Derleyiciler ve C 101 diyebiliriz gibi.) Çok kısa sürdü ama çok teşekkürler Onur. Yine isteriz ama :)

Sonuçta süper zevkli 2 gün geçirdik. Yemekleriyle, çalışmalarıyla kısacası her şeyiyle çok güzel 2 gün geçirdik. Bir sonraki sefere görüşme üzere ayrıldık.

Herkese teşekkürler.

20 Ocak 2011 Perşembe

Pardus 2011'e (RC) sadece lxde masaüstünü kurmak

Merhabalar,

Aslında bu yazıyı daha önceden yazmayı planlıyordum ama hastalık ve diş sorunları nedeniyle sürekli ertelemek durumunda kaldım. Hala kurtulamadım fakat zorla da olsa yazayım diyorum.

Neyse, Pardus 2011 çıktı fakat 2011'i bir türlü virtualbox'un yeni sürümünde düzgün açamadığım için RC ile kurulumu anlatacağım.

İlk olarak [1] adresinden istediğimiz aşamadaki iso'yu indiriyoruz. (32-bit, 64-bit fark etmez, sisteminize göre seçin eğer 32bit sisteminiz var ise 64-bit olanı indirmeyin :))

İndirme bittikten sonra virtualbox'u kurduktan sonra çalıştırıyoruz. (pisi install virtualbox)

Ana ekrandan yeni diyoruz. İleri dedikten sonra makina'nın ismini yazıp (örn: pardus-lxde) işletim sistemi olarak Linux, versiyon olarak da Other Linux seçebiliriz.

İleri'ye bastığımızda ne kadar bellek ayırabileceğimizi soracak, buraya da ben 1024MB veriyorum. Sizin toplam belleğinize göre verebilirsiniz. Sadece lxde kurulumunda 512MB bile gayet yeterli olacaktır ama yine de bulunsun bence :) Buradan sonra harddisk oluşturma bölümüne giriyoruz. Yeni dinamik harddisk oluşturuyoruz. (fark etmez aslında, ben dinamik oluşturuyorum) Ve son olarak bitiriyoruz.

Tekrar ana menüye dönüp, makinanın isminin yazdığı yere çift tıklıyoruz. Burada yükleme ortamı seçiyoruz. Ortam kaynağı yazan yere gelip, sağdaki dizin simgesine benzeyen simgeye tıklayıp, indirdiğimiz isoyu seçip tamam diyoruz. Sonra seçtiğimiz iso'dan açılıyor sistem. Burada dili seçip, açılış seçeneklerine

yali=baseonly

yazıyoruz. Böylelikle sadece temel sistem kurulacak. Eğer böyle sistem açılmaz ise açılırken f5'e basıp çekirdeği güvenli ayarlar modunda açmanız gerekebilir. (bu durumda da yali=baseonly yazmalısınız.)

Sonra standart Pardus kurulumu yapıyoruz.

Sistem yeniden başladığında, konsolda kullanıcı adı soran ekran ile karşı karşıyayız. Bunun sebebi artık Kullanıcı işlemlerinin sistem başladıktan sonra yapılıyor olması. Bunun için de varsayılan root kullanıcısını kullanacağız.

Kullanıcı adı: root
Parola: pardus

Sizin de fark edeceğiniz üzere bir çok şey yok. Bunlardan en önemlisi Ağ. Sadece system.base'i kurduğumuz için ağ için gerekli paketleri kurmadı. Bunun için taktığımız iso'daki arşivi kullanarak ağ yöneticisini kuracağız.

Sistem açıldıktan sonra root ile oturum açıyoruz. Bu işlemden sonra

mkdir -p /mnt/cdrom

mount /dev/cdrom /mnt/cdrom

komutlarını sırayla uyguluyoruz. Eğer "no medium found" şeklinde bir yazı çıkarsa karşınıza yukarıdaki menüden aygıtlar->cd/dvd devices, buradan da iso'yu seçip sonra

mount /dev/cdrom /mnt/cdrom

komutunu uygulayabiliriz. Çıktı olarak, yazma korumalı, salt-okunur olarak bağlanıyor demeli.

Bu işlemden sonra "ls /mnt/cdrom" komutu ile doğru bağlayıp bağlamadığımızı kontrol edebiliriz.

Şimdi

"pisi lr" komutu ile o anki depoları görebiliyoruz. Buradaki çıktıdaki bütün depoları kapatmalıyız. Bunu da

üstteki komut çıktısındaki depo isimlerine göre

silmek için "pisi rr depo_adi"
kapatmak için "pisi dr depo_adi"

komutunu kullanabiliriz. Ben depoyu sileceğim. Bunun için

pisi rr pardus

yazıyorum. Varsayılan depo pardus olarak eklendiği için depo adına "pardus" yazıyorum.

Şimdi iso'daki depoyu sisteme ekleyelim. Bunun için

pisi ar pardus-cdrom /mnt/cdrom/repo/pisi-index.xml.bz2

yazıyoruz. Eğer çıktı olarak Paket veritabanı güncellendi yazarsa depo sorunsuz eklenmiş demektir. Yine de kontrol etmek için "pisi up" komutunu uygulayabilirsiniz. Burada "depo güncelleniyor" kısmında eklediğimiz "pardus-cdrom" yazmalı.

Ağ yöneticisini kurmak için

pisi it NetworkManager

yazıyoruz. Bu işlemden sonra

service NetworkManager start

yazarsak ağ, sorunsuz bir şeklide çalışır. (en azından çalışmalı)

Ağ'ın sorunsuz çalışıp çalışmadığını kontrol etmek için

ping www.google.com

gibi bir adres ile deneyebilirsiniz. Çıkmak için ctrl+c ye basın. Eğer ağ hala çalışmıyorsa sistemi yeniden başlatmayı deneyin. Sistemi yeniden başlatmak için "reboot" komutunu uygulamanız yeterli.

Bu işlemden sonra resmi Pardus depolarında da işlem yapabiliriz fakat indirmiş olduğumuz isodaki paketlerin yeterli olması sebebiyle ben iso üzerinden kurulum yapacağım.

Şimdi sırada grafik sunucusu var. Yani X. Bunun için

pisi it xorg-server
pisi it -c x11.driver

pisi it librsvg libgomp cairo tiff jpeg djvu fftw3 lcms libwmf liblqr

Komutlarını uyguluyoruz. Aslında normalde bu işlemlerden sonra yali'nin açılışta kullanıcı oluşturma vb. işlemleri yapması lazım ama henüz çözemediğim bir sebepten dolayı yali çalışmıyor. (aslında /etc/yali/yali.conf içerisinde installation u firstboot yapınca gelmesi lazım) Çözünce buraya yazarım tekrar. Eğer sistemi yeniden başlattıysanız ve kullanıcı adı soran bir ekran (grafik ekran) ile karşı karşıyayaysanız ctrl+alt gr+f1 ile konsola düşüp root ile oturum açabilirsiniz.

Yalı şimdilik işimizi görmediği için kaldırabiliriz fakat bağımlılıklarını kullandığımız için onları tekrar kuruyoruz:

pisi it yali --reinstall
pisi rm yali

Elle kullanıcı oluşturma da şu şekilde:

adduser kullanici_adi

parolayı belirlemek/değiştirmek için de

passwd kullanici_adi

komutunu uyguluyoruz. Bunun için de root olmamız gerekiyor. Son olarak da bu kullanıcının "su" komutunu uygulayabilmesi için de

usermod -a -G wheel kullanici_adi

komutunu uyguluyoruz.

Şimdi, oluşturmuş olduğumuz pardus-cdrom deposunu kaldırıp resmi pardus deposunu ve lxde deposunu ekleyeceğiz.

Komutlar şu şekilde:

pisi rr pardus-cdrom (ya da pardus-cdrom yerine verdiğiniz depo ismi)
pisi ar pardus-2011 http://packages.pardus.org.tr/pardus/2011/devel/x86_64/pisi-index.xml.xz (eğer eski depoyu silmek yerine kapattıysanız "pisi er depo_adi" ile aktif hale getirebilirsiniz)
pisi ar lxde-repo http://x86-64.comu.edu.tr/lxde/x86-64/pisi-index.xml.xz

(eğer 32 bit kuruyor iseniz x86-64 yerine i686 yazmanız gerekiyor. x86-64.comu.edu.tr adresi aynen kalmalı, sadece sondaki x86-64 değişmeli.)

Bunlardan sonra

pisi up

ile sistemimizi güncelleyebiliriz. Şimdi sırada lxde'yi kurmak var.

pisi it gnome-menus gpicview gtknetcat leafpad libfm lxappearance lxde-common lxde-icon-theme lxde-menu-cache lxdm lxinput lxlauncher lxmenu-data lxpanel lxrandr lxsession lxsession-edit lxshortcut lxtask lxterminal openbox obconf pcmanfm xarchiver

komutu ile gerekli bütün paketleri kuruyoruz. (aslında bunların hepsi bir bileşende olacak o zaman pisi it -c ile kurabileceğiz)

Şimdi sistemimizi yeniden başlatıyoruz. Eğer karşımıza grafik ekran gelirse ctrl+alt gr+f1 ile konsola düşüp root ile giriş yapıyoruz. Sonra

service xdm stop

komutu ile görüntü servisini durduruyoruz. (açılmasa bile kapatalım) Sonra

lxdm

ile LXDE açılış yöneticisini çalıştırıyoruz. Kullanıcı olarak belirlemiş olduğumuz kullanıcı adını ve parolasını girdikten sonra sistem açılıyor.

Eğer dosya yöneticisi çalışmıyor ise:

terminali açın (alt+f2 ile lxterminal)
/tmp/.pcmanfm-socket ile başlayan bir dosya olacak bunu silmek gerekir. Bunun için de

rm -f /tmp/.pcmanfm-socket-*

komutunu uyguluyoruz.

Ses için ise:

gerekli alsa ve pulseaudio modüllerini yüklememiz yeterli fakat yeni kernel (2011 sürümünün son kerneli) ile virtualbox'da sistemi açamadığım için sesi yazmıyorum. Bu halledildiği zaman yazarım. Eğer sistemi güncellediyseniz ve sistem açılmıyorsa diğer seçeneklerdeki eski kernel ile açmayı deneyin (RC kerneli)

Şimdilik bu kadar. Kolay gelsin.

8 Ocak 2011 Cumartesi

Bölüm dersleri projeleri

Bu sene derslerden 3 tane proje aldık. (aldık = Hepsinde ev arkadaşım Engin Manap da var.)

Öncelikle bütün projelerimize proje depo sayfamızdan ulaşabilirsiniz.[1] Ve hepsini SVN ile geliştirdik.

1. Veritabanı Yönetim Sistemleri (DBMS) Dersi Projesi - bmforum

Projenin asıl amacı veritabanını anlamak. Veritabanını kullanmak. Bunun için ne ile yazıldığı, nasıl olduğu önemli olmayan ama mutlaka veritabanı kullanılan bir proje yapmamız istendi. Ev arkadaşım da bu yaz yapmış olduğu stajda django ile beyin2'yi [2] geliştirdiği için django ile yapmaya karar verdik. Ve basit bir proje yaptık. Projeye [3] adresinden ulaşabilirsiniz. [3] adresinde bmforum/ dizininin (yani bmforum/bmforum oluyor) içerisi projenin tamamını kapsıyor. [3] adresindeki diğer dosyalar, projenin R diyagramı ER şeması vs.

Proje çok da karmaşık bir şey değil. Hedef öğrencilerin paylaşım yapabileceği bir portal. Özellikleri, forum (kişisel mesaj vs. de var), proje ekleyebilme, ders notu ekleyebilme, sınav soruları ekleyebilme ve bunların akabinde öğretmen, ders ekleyebilme. Forumda genel bilgi paylaşımı oluyor. Diğer ders notu, sınav ve projelerde ek dosya da gönderilebiliyor. Şekil açısından pek başarısız. Bir de gezegen ekledik ama sadece blog adreslerini listeliyor. O işi yapacak botu yazmadık. Veritabanı olarak da derste de anlatılan veritabanı olan PostgreSQL kullandık.

Bu proje bu şekilde.

2. Görsel Programlama Dersi Projesi - medyaindeksleme

Bu dersin projesinin amacı da java ile görsel programlamayı öğrendiğimizi uygulamak. (evet maalesef java)Dersin hocasının da tercih ettiği ve derste kullandığı eclipse'yi kullandık. Yaptığımız projede veritabanı da kullandık. Bu sefer MySQL kullandık. Projenin amacı medya indeksleme yapmak. Yani elinizdeki medyaları (cd, dvd vs.) bilgisayara teker teke takıp, listeden istediğiniz dosyayı seçip, medya numarası vererek veritabanına kaydediyorsunuz. Bu sayede de bir medyanın içerisinde ne olduğunu kolaylıkla takip edebiliyorsunuz, ya da aradığınız dosyanın hangi medyada olduğunu kolaylıkla bulabiliyorsunuz. Projenin özellikleri arasında yazdırma da var. Projeye [4] adresinden ulaşabilirsiniz.

Ve son olarak da

3. Çevik Yazılım Geliştirme Dersi Projesi - tist

Bu dersin projesi de aslında basit bir proje olacaktı, dvd kiralama programı gibi. Fakat bu ders seçmeli olduğu için ve bir şeyler öğrenelim diye aldığımız için ben derste çıkıp, hocam eğer bir proje yapacaksak daha düzgün bir şeyler öğrenebileceğimiz bir şeyler yapalım dedim ve öneri olarak da sürüm takip sistemi yapalım dedim. O da tamam siz yapın o zaman dedi. :) Ve bunun üzerine çalışmalara başladık.

Sürüm takip sistemi yapıyorduk. Java kullanmamız gerekiyordu (yine maalesef) ve çevik yazılım geliştirme pratiklerini kullanarak yazmalıydık. En basitinden test güdümlü geliştirme. Merkezi sürüm takip sistemi[5] yazmaya karar verdik. (SVN gibi) Ve dönem sonunda projemizi tamamladık. Şu an için, sunucu ve istemci için ayrı çalıştırılabilirler (jar dosyaları) var.

Sunucu ilk çalıştırıldığında hangi dizin üzerinde çalışılacağını soruyor ve bunu ayarlar.cfg dosyasına revizyon numarası (başlangıçta revizyon numarası 1 oluyor) ile birlikte kaydediyor. İleride de buradan çekip kullanıyor.

İstemci ise çalıştırıldığında verilen ip'yi (mesela "tist getir 192.168.1.5") bulunulan dizinde ".tist" adında bir dizin oluşturup onun içerisine sunucu.txt isminde bir dosyanın içerisine yazıyor.

Diğer kısımlar da şu şekilde çalışıyor, istemci sunucuya revizyon isteği gönderiyor (ya son ya da istediği revizyon) sunucu da ona göre gerekli diff dosyalarnı birleştirip yolluyor. Bu diff dosyalarını sunucudaki projenin ana dizinindeki "Deltas" dizini içerisindeki dosyaları birleştiriyor bunları geçici "Temp" dizinine koyduktan sonra sıkıştırıp istemciye yolluyor ve bu sıkıştırılmış dosyayı siliyor. İstemci, sunucuya yeni revizyonu yolladığı zaman (commit) bunları sıkıştırıp (Zipleyip) proje dizinindeki ".tist" dizininin içerisine atıyor. Sonra sunucuya yolluyor ve o sıkıştırılmış dosyayı siliyor. Sunucu bunu alıp "Temp" dizinine açıyor. Son revizyonu da "Head" dizinine "Deltas" dizinindeki diff dosyalarını birleştirerek koyuyor. Zaten "Head" dizininde son revizyon olduğu için (yollamadan önceki son revizyon) "Head" ile "Temp" dizinini karşılaştırıp gerekli diff dosyalarını en sonunda revizyon numarası olacak şekilde (x.txt.delta.r12 gibi) "Deltas" dizinine koyuyor.

Şimdilik bilinen sorunları, eğer bir dosyayı silersek ve silindikten sonraki revizyonu istersek, dosyayı boş olarak yolluyor. Bir de başlangıç işlemlerinde dizin isimlerinde "Slash"'ları düzgün vermek gerekiyor. Fazladan konulursa (hatta en sona da konulmaması gerekiyor) sorun yaratıyor.

Son projeye de [5] adresinden ulaşabilirsiniz. [5] adresine girdiğinizde projeamaclari.txt ve iterasyonlar.txt diye ayrı iki dosya daha göreceksiniz. Bunlarda ders ile ilgili raporlar diyebiliriz. "tist" dizini projenin tamamını içeriyor.

Bu proje için bir de ant dosyası oluşturduk(build.xml). Tabi bunları yapabilmek için Pardus'da "ant" paketinin kurulu olması gerekiyor. Bu dosyayı oluştururken yaşadığımız bir sorun vardı, gerekli kütüphaneleri bulamıyordu. Hata çıktısı da şu şekildeydi:

BUILD FAILED
/build/xml/yolu/build.xml:31: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "/opt/sun-jdk/jre"

Bunun için de build.xml'e sağ tıklıyoruz, (soldaki menüden) run as -> external tools configurations'a giriyoruz. Buradan solda eğer Ant Build'in altında bir şey yoksa Ant Build'e çift tıklıyoruz varsa ona tıklıyoruz. Üstteki sekmelerden Classpath'i seçiyoruz. Burada herhangi bir yere sol tıkladıktan sonra (mesela User Entries) add external JARs'a tıklıyoruz. Buradan /opt/sun-jdk/lib/tools.jar'ı ekliyoruz. Eğer başka ayrı kütüphaneler kullandıysanız (mesela biz junit kullandık) bunu da eklemeniz gerekiyor. Bunun için de tekrar add external JARs'a tıklayıp /usr/share/java/junit.jar'ı ekliyoruz. Ve tekrar ant build işlemini başlatıyoruz. Ve tamamlanıyor.

Özet olarak projelerimiz bu şekilde. Her türlü yorum/öneri/eleştirilere açığız. Gördüğünüz sorunları [1] adresine issue girebilirsiniz.

Pardus Üzerinde Cairo-Dock ve Daisy kurulumu

Necdet Hoca'nın Macbook Air'i geldikten sonra, zaten şekil olarak gayet beğendiğim (her ne kadar "konsolcu" olsam da) alttaki "Dock" u görünce, ya bunun bir de linux versiyonu vardı neydi o diye araştırmalara başladım ve buldum. Cairo-Dock[2]. Aslında bunun haricinde bir tane de Daisy[3][4] var. Daisy direkt olarak KDE uygulamacıklarına da eklenebiliyor ama hem yeterince yetenekli/başarılı/şekilli bulamadım hem de aradığım tam olarak öyle bir şey değil. Daisy'i de yeterince denedim aslında ama olmadı :).
Şu an Cairo-Dock'u da grafik kartı sorunları nedeniyle kullanmıyorum, ne olur ne olmaz. Kurulumlarından bahsedeyim biraz. (şimdilik burada bahsedeceğim ama ileride paketini yapabilirim :))
Daisy, zaten bir plasma. Kurulumu çok kolay ama programcık ekle'den yeni programcık al diyerek bulamadım ben. [3] adresinden tarball'ını indirdim. Sonra bu tarball'ı açıp, açılan dizine girdim. Burada 
mkdir build
cd build
cmake ../ -DCMAKE_INSTALL_PREFIX='kde4-config --prefix'
make
sudo make install
komutlarını sırayla uyguladım. Sonuç olarak Programcıklar listesinde Daisy gözüktü ve oradan istediğim yere Daisy'i ekleyebiliyordum. Bu kadar :) Tabi bunu kurabilmek için, gerekli derleme araçlarının olması gerekiyor. (cmake vs. ve yanlış hatırlamıyorsam kdelibs-devel)
Cairo-Dock'un kurulumu benim için daha zahmetli oldu. Öncelikle [5] ve [6] adreslerinden cairo-dock-core ve cairo-dock-plugins in son hallerini indiriyoruz.
Yine cairo-dock için de bağımlılıklar çok önemli. Bunda yaşadığım bir sorun da şöyleydi: gtkglext paketine (ve gtkglext-devel) ihtiyaç duyuyordu. Pardus 2011 depolarında böyle bir paket yok, 2009'dan çekip derleyip kurdum fakat çalışmıyor. Sorun, undefined_symbol'müş. Bunun için diğer dağıtımlara baktım. Debian bununla ilgili bir yama almış[7]. Bununla beraber paketi de depoya aldım[8]. Aslında bu sorun 2009'da yok. Çünkü gdk-pixbuf/gtk güncellemesinden sonra kırılmış bu. Eklediğim yama da bunu düzeltiyor. Bundan sonra da gerekli diğer bağımlılıklar şu şekilde olmalı: 
cairo-devel, 
gtk2-devel, 
gdk-pixbuf-devel (bundan tam emin değilim), 
librsvg-devel, 
libgnomeui-devel, 
vte-devel, 
libXxf86vm-devel, 
alsa-lib-devel (bundan da tam emin değilim), 
libasound-devel (ya da asound{-lib}-devel, fakat bu paket Pardus 2011 Deposunda yok), 
libXtst-devel, 
gnome-menus-devel (bu paket de Burak Çalışkan'ın Gnome deposunda[1] mevcut), 
freeglut-devel (bu paket ayrıca gtkglext'de de var. 2009 da bu paketin ismi glut, 2011 de freeglut oluyor.),  
libetpan-devel (bu paket de Pardus 2011 Deposunda yok), 
libxklavier-devel, 
webkit-gtk-devel (sanırsam bu olmalı, webkit e gerek duyuyor), 
libexif-devel.
bir de XFCE için libthunar-devel ve diğerleri için gnome-vfs-devel istiyor. libthunar-devel ya da thunar-devel depoda yok. gnome-vfs-devel depoda mevcut.
Diğerler bağımlılıklar da system.devel bileşeni içerisinde (curl-devel, cmake, dbus-glib-devel, libX11-devel vb. araçlar) mevcut.
Bunların hepsinin kurulduğundan eminsek,
[7] adresinden indirdiğimiz tarball'ı bir yere açıyoruz ve içerisine giriyoruz (cairo-dock-X.X.X)
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make ( ya da make -j $(grep -c ^processor /proc/cpuinfo) )
sudo make install
Ve temel paket kuruluyor. Buradaki make satırında parantez içerisindeki yazan komut ile bütün işlemcilerin kullanılması sağlanıyor. 
Bunun üzerine bir de eklentileri kurmak için de, [8] adresinden indirdiğimiz tarball'ı açıyoruz ve içerisine giriyoruz (cairo-dock-plugins-X.X.X)
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make ( ya da make -j $(grep -c ^processor /proc/cpuinfo) )
sudo make install
Aslında bu da temel kurulumun aynısı. Bunlardan sonra direkt cairo-dock'u çalıştırabiliriz.(/usr/bin/cairo-dock) Bunun için Alt+f2 uygundur. :)
Afiyet olsun.

Pardus 2011 Amarok, Clementine, Rhythmbox sorunları

Pardus 2011'de medya oynatıcılar ile ilgili bir sorunum var. (Aslında müzik oynatıcılar)

Elimde biraz iyi bir müzik arşivim var. (1TB ye yaklaştım sanırım) Bunların da arasında tek tek, dizin dizin dolaşmak (her ne kadar baş_harf/sanatçı/albüm/şarkı olarak yapmış olsam da, mesela C/Camel/1996 - Rajaz/04 - Rajaz.flac) biraz sıkıcı olabiliyor. Onun yerine koleksiyondan Rajaz yazınca direkt bunun çıkmasını bekliyorum. Bunun için zaten kullanıyor olduğum Amarok üzerinden koleksiyon oluşturdum. Zaman geçti, artık Amarok arşivimdeki bir şeyi beğenmiyor ki %49 civarında kalıyor. Çok fazla deneme imkanı da bulamadım ama sorun var gibi. Bütün koleksiyonu baştan taradı. (ki bu bayağı bir vakit alıyor, tam hatırlamıyorum ama 1 saatten fazla) Ve bu sorun tekrar tekrar aramasında devam ediyor. (Aslında araçlar->tercihler->koleksiyondaki kütüphanedeki değişiklikleri izle'yi işaretlediğim zaman ya da Settings->Configure Amarok->Collection->Watch folders for changes'i , aradığında bu sorun ortaya çıkıyor) Halbuki amarokcollectionscanner Komutu ile taradığım zaman sorun olmuyor. Neyse bunu biraz daha zamanım olduğu zaman detaylı araştırıp, gerekirse hata gireceğim.

Bu hatalar sonucu depoda bulunan Clementine'i deneyeyim dedim. Bunda her şey çok güzel. Amarok 1.4 görmek süper bir şey fakat bu sefer de müziklerin bilgilerindeki kodlamalar ile ilgili bir sorun var. Yani Türkçe karakterleri düzgün okuyamıyor. Benim müziklerimden mi yoksa paketteki bir eksiklikten mi tam çözemedim ama bunda da böyle bir sorun var gibi. Tam olarak sorunun bu olduğundan emin olduktan sonra, çözümünü de araştırıp bununla ilgili bir çözüm ya da hata girdisi yaparım.

Clementine seçeneğini de tükettikten sonra geriye rhythmbox kalıyor. Pardus'un resmi depolarında yok fakat Burak Çalışkan'ın deposunda [1] bu paket mevcut. Buradan da rhythmbox'u kurdum. Bu sefer de diskteki bütün medyaları tarıyor. Ve bir türlü bunun önüne geçemedim. Milyonlarca medya buluyor ve taraması yıllar alacak gibi geldi bana birden. Elle dizin verdiğim zaman da nedense baştan tarıyor vb. sorunlar var. Yani sonuç olarak elimdeki sorunu çözemedim. Peki şu an ne mi yapıyorum? Dersler, Projeler vs. çok yoğun olduğu için bunlarla uğraşmayı bıraktım. Amarok'tan koleksiyon izlemeyi kapatıp öyle kullanıyordum. Fakat öyle de bir sürü ID3TAG ları yanlış alıyor. Yani başka bir sanatçı/albüm/şarkı gözüküyorken alakasız birini dinliyor oluyorsunuz. Şu an mesela Clementine'den dinliyorum :)

Bunlar ile ilgili sorunları çözdüğüm zaman ya da bir değişiklik olursa yine buraya yazarım. Umarım benim düzeltebileceğim bir şey çıkar. Olmadı zaten hata açarım, hallolur. :)

Pardus 2011 grafik ekran donma problemi

Pardus 2011'de yaşadığım sorunlardan en önemlisi Xserver ile ilgiliydi. Eskiden çok nadir (2-3 haftada 1) bir sorunum oluyordu. Artık her gün olmaya başladığında önemli olduğunu fark edip onunla ilgilendim. Sorun şu şekilde: Belirli bir zamanda bilgisayardaki grafik olan her şey donuyor sadece fare hareket ediyordu. Ve uzaktan ssh ile bağlandığım zaman her şeyin sorunsuz çalıştığını görüyordum. Tabi bu durumda uzaktan bağlandığım bilgisayardan kontrol ettim. /usr/bin/X, işlemciyi %100 kullanıyordu. Bunun üzerine grafik kartı ile ilgili bir sorun olabileceğini düşündüm. Bu arada grafik kartım Nvidia Geforce 310M. Ssh ile X i öldürüp yeniden başlatayım (service xdm restart ya da) dedim fakat böyle de sorun çözülmedi. Aslında sorun, grafiksel olarak fazla şeyler kullandığım zaman ortaya çıkıyordu. OpenGL ile ilgili bir şey gibi geldi bana. Neyse, bununla ilgili buzillaya hata girdim [1]. Fatih Aşıcı'nın da yardımıyla kernel parametresi olarak blacklist=nouveau yaparak bunu çözdüm. Hatanın çözümünü yaparken /var/log altındaki Xorg.0.log dosyasına ve Xorg.0.log.old dosyasına baktım ve
[  2079.377] [mi] EQ overflowing. The server is probably stuck in an infinite loop.
Satırını gördüm. Bu sorun şu an halledilmiş durumda fakat hala X bazen işlemciyi çok fazla kullanıyor. Ama yeni sürücü ile halledilir gibi geliyor bana. Kernel parametresi olarak verdiğimiz blacklist=nouveau ise açık kaynak kodlu nvidia sürücüsü olan nouveau'yu değil de kapalı kaynak olan nvidia-current sürücüsünü kullanıyor. Bunun yerine zorg ile 
zorg -d "nvidia-current" 
yapmak bir işe yaramıyor. Çünkü şu anki haliyle zorg sürücüyü değiştirmiyor. Doğru sürücü otomatik olarak seçildiği için, kernel parametresiyle öbürünü engellemeniz ya da elle xorg.conf oluşturmanız gerekiyor. Geliştirici listesinde de zorg'un tekrar sürücü seçebilme yeteneği tartışılıyor[2]. Tabi ki [1] adresinde girdiğim hatayı oraya da çözümü yazarak, çözdükten sonra kapattım. Fakat bu çözüm başka kişilerde işe yaramadığından hata tekrar açıldı. Yani bu yöntemin %100 işe yarayacağını söyleyemem. Gelişmeler için [1] adresini takip edebilirsiniz.
[1] http://bugs.pardus.org.tr/show_bug.cgi?id=15756
[2] http://liste.pardus.org.tr/gelistirici/2011-January/027264.html