9 Ağustos 2009

Compaq Mini 110 ve Linux ile 3G bağlantısı

İki gün önce elime Turkcell'in kampanyayla dağıttığı Compaq Mini 110c-1010ET lerden geçti. Klavyesi ve sabit diski yeterince büyük ve dahili 3G modemi olan bu ufaklık çok hoşuma gitmişti.

İşin ucunda her yerden internete girebilmek olduğu için kardeşimin bilgisayarları değişelim teklifine hayır diyemedim. Bilgisayarımı hemen bıraktıktan sonra ilk iş olarak elimin altında duran Ubuntu Netbook Remix kurulu USB belleği Mini'ye takıp başladım. Ses çıkmaması ve 3G modemin ortalıkta görünmemesi dışında bir sorunu yoktu. Bundaki Gparted'i kullanarak yanlışlıkla(!) Windows bölümünü ortadan kaldırdıktan sonra Pardus ve Ubuntu'yu yan yana kurmayı düşünüp ona göre yeniden bölümlendirdim.

Ubuntu'yu kurduktan sonra Pardus 2009 kurulumunda ilk kez bu bilgisayarda bir sorunla karşılaştım. /dev içeriği dolduruluyor yazan yerde bilgisayar kilitleniyordu. Açılışta pek çok kernel parametresini denedikten sonra bir sonuca ulaşamayınca başka kurulum yöntemleri düşünmeye başladım. Diğer bilgisayarı kullanarak Pardus'u harici bir diske kurdum ve bunu Ubuntu'yla Mini'de hazırladığım Pardus bölümüne kopyalayarak kurulumu tamamlamış oldum.

/* Aşağıda Compaq Mini'ye Pardus kurulumu ile ilgili yazanları evde denememenizi öneririm. Henüz mutlu sona ulaşamadım. Sadece 3G modemle ilgileniyorsanız ikinci yorumdan itibaren okumaya devam edin. */

Kurduktan sonra tahmin ettiğim gibi yine aynı yere gelince kilitlenmeye devam ediyordu. Hemen Pardus'un açılışından sorumlu olan /sbin/mudur.py'yi inceleyip nerede kilitlendiğini bulmak için aralara ne yapıldığını anlatan çeşitli iletiler ekledim. Udev aygıtları tarayıp /dev dizinini doldurmaya başlıyor, bunun bitmesi beklenirken kilitleniyordu. /etc/udev/udev.conf'ta debug parametresini kullanarak daha ayrıntılı çıktı alabildim. Hangi aygıtın kilitlenmeye sebep olduğunu düşünürken sıkıldım ve başka fikirler denemeye karar verdim.

Önce Pardus'u Ubuntu kerneliyle (2.6.28) açmaya çalışırsam ne olur dedim ve kerneli kopyalayıp grub'a ekleyerek denedim. Tamam açılıyordu ama sürücüler olmadığı için doğal olarak konsolda kalıyordu. Sürücüleri de kopyalamaya üşendiğim için hemen başka bir şey denedim ve hazır Pardus açılmışken pisi'yle depodaki son kerneli kurayım dedim. Bu kez de dbus düzgün çalışmadığı için çomar yapılandırması başarısız oluyordu. Kernele ait çomar betiğini inceleyip çomarın işini (mkinitramfs çalıştırmak ve grub'a eklemek) elle yaparak bunu da atlattıktan sonra yeni Pardus kerneliyle başlattım ve dbusun yine çalışmadığını görünce Pardus kurulumuna biraz ara verip 3G modemle uğraşmaya karar verdim.

/* Asıl konuya dönüyoruz, okumaya devam. */

Ubuntu Jaunty Netbook Remix, 2.6.28 kerneliyle geliyordu ve Mini'deki entegre Hp un2400 Mobile Broadband modem için gerekli olan qcserial modülü 2.6.30 kerneli istiyordu. Aşağıdakileri indirip sudo dpkg -i komutuyla kurduktan sonra artık 2.6.30 kernelim de olmuştu:

linux-headers-2.6.30-020630-generic_2.6.30-020630_i386.deb
linux-headers-2.6.30-020630_2.6.30-020630_all.deb
linux-image-2.6.30-020630-generic_2.6.30-020630_i386.deb

Yeni kernelin en sevdiğim yanı Intel ekran kartını hemen hemen %50 oranında daha performanslı çalıştırıyor olmasıydı. Kötü olan yanı ise Broadcom kablosuz kartın artık çalışmamasıydı. Sahipli sürücüsü olan bu kartın 2.6.30 için sürücüsü yoktu. Durumu kurtarmak için HP'nin sitesinden ilgili Windows XP sürücüsünü indirdim ve Wine'yle çalıştırıp açılmasını sağladıktan sonra ndiswrapper ile bu sürücüyü yükledim. Sürücüyü b43 ve ssb modülleri sahiplendiği için önce rmmod ile bunları kaldırıp modprobe ndiswrapper diyerek kablosuzun çalışmasını sağlayabildim.

Bu kadar uğraştıktan sonra yine sıkılmaya başladım ve müzik dinleyebilmek için ses sorunuyla ilgilenmeye karar verdim. Ubuntu, alsa'nın biraz eski bir sürümünü kullanıyordu ve bu sürüm Mini'deki ses kartının kullandığı yepyeni kodek için destek vermiyordu. Hazır kerneli yenilemişken alsa sürücülerinin de son halini indirip sadece hda-intel sürücüsünü derledim ve kurduğum gibi ses gelmeye başladı.

Müzik de tamam olunca sıra 3G Modeme geldi. Kernel güncel olmasına rağmen lsusb çıktısında modemle ilgili hiçbir şey görünmüyordu. Bu konuda araştırırken bir forumda hp-wmi sürücüsünün adının geçtiğini gördüm. Bu sürücü HP bilgisayarlardaki kısayol düğmelerinin çalışmasını sağlıyordu. Sürücüyü modprobe ile etkinleştirip kablosuz ağ düğmesine iki kez basınca lsusb çıktısında modemi görmek heyecan vericiydi.

Çeşitli kaynaklarda yazdığına göre modem orada göründüğü haliyle bir işe yaramıyordu. Quallcomm'un ürettiği bu modemler gobi_loader denen bir araçla servis sağlayıcısının verdiği firmware'in modeme yüklenmesi ile çalışır hale geliyordu. Sonrasında da qcserial adlı bir modülün yüklenmesi gerekliydi. Hemen bu ikisini indirip derledim. Modemin firmware'ini almak bunlardan uzun sürdü çünkü HP'nin sitesindeki dosya tam 130MB büyüklüğündeydi. İçinde tüm servis sağlayıcılar için birer firmware dosyası bulunuyordu. Bunlar 0'dan 10'a kadar isimlendirilmiş dizinlerin içinde ikişer dosya halinde duruyordu. Bizim Turkcell olsa olsa sonuncu olmuştur diyerek 10 numaralı dizindekilerle şansımı denemeye karar verdim. Bunları /lib/firmware/gobi/ altına kopyaladım ve kablosuz ağ düğmesini tekrar aç-kapa yapıp biraz bekledikten sonra modem çalışmaya başladı.


Modem çalışmasına rağmen yine de bağlanamıyordu. Pardus-kullanıcıları e-posta listesinde Turkcell Vınn Modem ile bağlanabildiğini açıklayan Akın'a bir e-posta atarak fikrini aldım. SIM kartı bir telefona takıp pin kodu korumasını kaldırdım ve Apn yerine mgb yazdım. Sonra bağlan dedim ve çıkan küçük parola pencerelerini hiçbir şey yazmadan Tamam'a tıklayarak kapattım. Son pencereyi de tamam diyerek kapattığım anda bağlantı kurulmuştu.

Sırada Pardus 2009'daki sorunu bulup kurulumu tamamlamak var...

Not: Yazıdaki derleme ve kurulumlarla ilgili bağlantıları ve komutları zaman bulduğumda ekleyeceğim. Şimdilik bu haliyle yayına alıp aynı durumla uğraşan kişilerin zaman kazanmasını ve bunun mümkün olduğunu görmelerini istedim.

18 Haziran 2009

KDE 4.2 ve GPF - 2

Önceki yazımda KDE4'ün web çizgi romanı okuyucusundan ve GPF ile tanışmamdan bahsetmiştim. Bir süre çizgi romanı KDE4'ün plasmoidini kullanarak okuduktan sonra plasmoidin 31 Mart 2000'den sonrasını gösteremediği gerçeğiyle karşılaştım. Çünkü 1 Nisan 2000 tarihinde çizgi romanın kendisi yerine şaka amaçlı bir sayfa konmuştu ve plasmoid resmi indiremediği için ilerleyemiyordu.

Bunun ardından çizgi romanı bir süreliğine sitesinden okumaya devam ettim. Bu kez de sayfanın yenilenmesi uzun sürdüğü için parçalar arasında çok bekliyordum. En sonunda bekleme sorunumu ve belli bir tarihten sonrasını indirememe sorununu çözecek, aynı zamanda sevdiğim bölümleri kaydedebileceğim bir PyQt uygulaması yazmaya karar verdim.


Uygulamayı yazmam yaklaşık 30 dakika sürdü. İki parçadan oluşuyor. İlk parça olan indirici sadece siteye bağlanıp çizgi roman parçalarını kaldığım yerden şu anki tarihe kadar teker teker indirmeye çalışıyor ve bunları belirlediğim bir dizine tarihleriyle kaydediyor. İkinci parça olan okuyucu ise tıpkı KDE4 plasmoidinde olduğu gibi bu dizindeki resimleri sırayla gösteriyor. Artık sadece sırayla değil istediğim numaralı parçaya atlayarak da okuyabiliyor, sevdiğim parçaları ve son okuduğum parçayı kaydedebiliyordum.

Bir süre sonra plasmoidde olup da uygulamamda eksik olan bir özelliği fark ettim. KDE4 plasmoidleri istenilen açıyla çevrilebiliyorlar. Plasmoidi 90 derece çevirdiğim zaman yatarken de boynumu kırmadan okuyabiliyordum. Ekran kartımın sürücüsü desteklemediği için görüntüyü yan çevirmem de mümkün değildi. Bu yüzden uygulamama resmi gösterirken verilen açıyı kullanmasını sağlayan yeni bir özellik ekledim. Başta zor olacağını düşünmüştüm ama Qt sayesinde şu üç satır işimi gördü:
transform = QtGui.QTransform()
transform.rotate(90)
pixmap = pixmap.transformed(transform)
Diğer insanların da faydalanabilmesi için yazdığım uygulamanın kodlarını GPLv3 ile lisanslayıp sudrap SVN deposuna koydum. Bir türlü zaman ayırıp kurulabilecek hatasız bir uygulama haline getiremediğim için pisi paketini yapmaya da uğraşmadım. İlgililer kodları buradan inceleyip indirebilir, hatta değiştirip tekrar dağıtabilirler.

GPF'i sonuna kadar okuduktan sonra kendi çizgi romanımı yapma girişimlerine başladım. Aslında bu ayrı bir blog girdisinin konusu olabilir. Ama hazır başlamışken devam edeyim. Girişimlerim birkaç hafta sürdü. Sonra plasmoide yeni eklenen bir web çizgi romanı daha ilgimi çekti. Adı Geek Hero Comic olan bu çizgi romanın diğerlerinden farkı özgür olmasıydı. Tüm parçalar SVG olarak Inkscape'te çiziliyor ve Creative Commons lisansıyla yayınlanıyor. Bir yazılım şirketinde çalışan özgür yazılımcının yaşadıklarını konu alması ise ilgimi çekmek için yeterliydi.

Geek Hero Comic'in bu parçasında hacker amblemini (tabutun üzerinde) görünce nereden geldiğini merak ettim. Wikipedia'da bunun anlamını öğrendim ve başka bir simgenin varlığından haberdar oldum. Hackerlığın ikinci simgesi olan Dust Puppy, User Friendly isimli başka bir çizgi romanın karakteriydi. Tabi hemen bu çizgi romanı da okumaya başladım. User Friendly, GPF'ten daha eski olduğu için okunacak daha fazla parçası vardı. Hemen daha önce yaptığım uygulama için bir de User Friendly indirme betiği hazırladım. Bununla 1997'den günümüze kadar olan bütün parçaları indirip okumaya başladım. User Friendly'i okudukça GPF'in köklerinin nereden geldiğini anlamaya başladım. Bunda da GPF'te olduğu gibi fantastik yan karakterler vardı. İlk fantastik karakter sunucuda biriken tozlardan meydana gelen Dust Puppy, ikincisiyse bunun yazdığı Erwin adlı yapay zeka olunca okumak için uzun bir çizgi roman daha bulduğum için sevindim...

Geçen zamanda çizgi romanlar dışında pek çok şeyle de uğraştım. Bunları başka bir gün, başka bir blog girdisinde anlatmayı umuyorum. Görüşmek üzere.

11 Ocak 2009

KDE 4.2 ve GPF

Artık alışmak için yaklaşık bir aydır KDE 4.2 Beta kullanıyorum. Geçen gün KDE4'ün çizgi roman programcığı sayesinde Dilbert dışında çizgi romanların da olduğunu keşfettim ve GPF (General Protection Fault) ilgimi çekmeye başladı. Çizgi romanın 1998'den beri var olması bana okuyacak pek çok şey bırakmış... Neyse, ben karakterlerden biraz bahsedeyim belki başkalarının da ilgisini çeker...


Dwayne Duncan


GPF Software'in karizmatik ve başarılı patronudur. Yönetimle ilgilendiği için uzun süre yazılımdan uzak kalır. Bir ara paslanmamak için çalışanlara yardım etmek ister fakat Cobol bilgisiyle Java'cı arkadaşlarına pek yardımcı olamaz. İyi niyetlidir, çalışanlarının sürekli bilgisayar başında durmasından endişelenerek onları rehabilitasyona gönderir.


Jason Barker (AKA "Fooker")


Fooker'ı tanımlamak için nerd'in önde gideni demek az kalır. Yeni çalışanların bilgisayarlarına Doom ve Quake kurarak iş için tüm ihtiyacının bunlar olduğunu söyler. Patronuna bir hafta süreceğini söylediği işi beş dakikada halleder ve geri kalan zamanda bu kurduklarıyla ilgilenir. Bir apartman dairesinde tek başına yaşar ve pasaklılığa yeni sınırlar kazandıracak kadar kirlidir. Evde rahatlamak için çıplak halde program yazar ve "Babewatch" kanalını izler. Ne zaman güzel bir kız görse çıkma teklif edip reddedilene kadar peşinden ayrılmaz. Bir de hiç belli etmediği halde çok iyi sunum yapar.


Fred


Fooker'ın yanda dediği gibi kiranın yarısını ödeyecek kadar gelişmiş bir yaşam biçimidir. Fooker'ın evinde her türlü atıktan yoğun şekilde bulunduğu için bu yaratık hızlıca evrimleşmiştir. Fooker evde yokken online bir üniversitede edebiyat dersleri vererek geçimini sağlar. Kumandayı yutarak televizyonun kontrolünü eline alır ve belgesel izler, izletir... Yılda bir kez mitoz geçirerek çoğalır.


Trudy


Trudy, GPF'in yeni pazarlama müdürüdür. Sürekli sırıtan bu kadın gerçek anlamda şeytana pabucunu ters giydirir. İşe girerken nedense diğer tüm adaylar çekilir. İşe girdikten sonra ise rakip şirketin patronu kafasına düşen bir kasadan dolayı vefat eder. Yaklaşık altı ayda bir kendine bir hedef seçer ve seçtiği kişiye hayatı zehir etmek için elinden geleni ardına koymaz.


Nick



Ana karakterimiz Nick, Fooker kadar olmasa da nerddür. Şirketin isminin bir Windows hatası olan General Protection Fault'un kısaltması olduğu teorisini ortaya atan kişidir. İş dışında rahatlamak için program yazar. Yanda kimse tanıştırmadığı ve bilgisayar başından kalkmadığı için ancak ikinci gün tanışabildiği Ki ile birlikte görülüyor. Ki'dan hoşlanır fakat IRC'deki gizli hayranını da kaybetmek istemez. Bu nedenle ikisine de açılamaz.


Ki


Ki, kolay kolay bilgisayarın başından kalkmaz. Eve gidince sabaha kadar Quake ve Doom oynar. Nick'ten ilk görüşte hoşlanmış fakat bir türlü açılamamıştır. Bu nedenle şirkete erişim kayıtlarından Nick'in evdeki IP'sini, IRC'de kullandığı takma adını bulur ve "pookel" takma adıyla girerek Nick'e gizli hayranı olduğunu söyler.