December 2011 Archives
30-12-2011 17:31:29
Debian'da unstable dan testing e geçmek için bir yöntem
Bütün günü bilgisayarı yeniden
başlatıp ayarlar denemek zorunda kaldıktan sonra bugün şunu
öğrendim. Debian unstable dayken testing deposuna geçmek için şu
yol kullanılabilir gibi. apt-show-versions paketini yükleyip komutu
çalıştırdığınızda hangi paketin hangi depodan geldiğini gösteriyor,
oraya bir grep çekip unstable olanları bulup, aptitude purge edip,
sources.list'i güncelledikten sonra tekrar yüklenince, testing e
dönebiliyor mesela paketler.
29-12-2011 11:25:35
Bir disk bölümleme hikayesi
Arkadaş RAM'in mi var derdin var...
İki gündür bir disk bölümleme (disk partitioning) problemi ile
uğraşıyorum ki sormayın gitsin. Problemi anlatayım.
Bilgisayarı açtıktan sonra pm-hibernate ile güzelce hibernate ediyorum. Biraz sonra tekrar deniyorum, yine güzelce çalışıyor. Bir süre sonra çalışmaz oluyor, kernel dump a kadar şeyler oluyor. Ben de dedim ki acaba bu RAM'in takas bölümünden (swap) büyük olmasından mı kaynaklanıyor? Böylece kafadan 2 GB olarak tanımladığım takas alanını büyütmeye koyuldum.
Herşey iyi güzeldi bir Ubuntu 10.04 live cd si içindeki gparted ile işe başladım. Yapacağım şey şu idi.
İşlem bitince sistem açıldı. Bir problem gözükmüyordu (bütün gün Ubuntu live cd si içerisinde mahkum olmanın dışında!). Taa ki fdisk -l diyene kadar. Çıktıda şu mesajlar geliyordu:
Bir süre sakinleşme gayreti gösterdikten sonra, Ubuntu'nun yeni sürümünü (11.10) indirdim. Yine gparted'ı açtım, bu sefer "align to" seçeneğinde bir de "MiB" çıkmış. Bir de bunu deneyelim diyerekten dün gece saat 1.00 de işlemi başlattım.
Sabah kalktığımda saat 7.00 civarında Ubuntu'nun ekranı çalışmaz hale gelmişti. Grafik ekran yerine siyah bir ekran gözüküyordu. Bir yandan CD durmadan çalışıyordu, sabit disk de durmadan çalışıyordu. İyi bari deyip, bir süre takılıp geri geldim. Bir de ne göreyim ekran kendine gelmiş birşeyler gösteriyor. Diyor ki bir buçuk saat daha işim var!!!! Bu sefer de tekrar bir taşıma işlemi olduğu için yine uzun sürmekte.
Yalnız bu sefer ki doğru bir taşıma işlemi. Bunun doğruluğunu kontrol etmenin yolu şu idi, sonuçta varılacak konfigürasyonda yeni disk bölümlerinin başlangıç noktaları 306491392 ve 1237057536, ikisi de 512'nin katları... Şükür... Bunu işlem başlamadan kontrol etmek de mümkündü.
Sonuçta şimdilik sonuç iyi oldu. Ama pek çok kıssadan hisse oluştu, dikatinize sunarım:
Bilgisayarı açtıktan sonra pm-hibernate ile güzelce hibernate ediyorum. Biraz sonra tekrar deniyorum, yine güzelce çalışıyor. Bir süre sonra çalışmaz oluyor, kernel dump a kadar şeyler oluyor. Ben de dedim ki acaba bu RAM'in takas bölümünden (swap) büyük olmasından mı kaynaklanıyor? Böylece kafadan 2 GB olarak tanımladığım takas alanını büyütmeye koyuldum.
Herşey iyi güzeldi bir Ubuntu 10.04 live cd si içindeki gparted ile işe başladım. Yapacağım şey şu idi.
sda1 -> aynen kalsın sda2 -> biraz büyüsün sda3 -> silinsin (eski swap) sda4 -> 6 GB küçülsün, gerisi aynen kalsın ... -> açılacak alanda yeni takas alanı oluşturulsunBu işlem dün bütün gün boyunca 8+ saat kadar sürdü!!! Bunun sebebi ise gparted gerek yok iken (!!!) sda4 ü bir miktar sola taşıması idi.
İşlem bitince sistem açıldı. Bir problem gözükmüyordu (bütün gün Ubuntu live cd si içerisinde mahkum olmanın dışında!). Taa ki fdisk -l diyene kadar. Çıktıda şu mesajlar geliyordu:
Partition 3 does not start on physical sector boundary. Partition 4 does not start on physical sector boundary.Biraz araştırdıktan sonra gördüm ki, gparted'ın lüzumsuz olduğunu düşündüğüm taşıma hareketi bütün gün sürmenin yanı sıra başlangıç noktasının sektör sınırına denk gelmemesini de sağlamış!!! Bir süre bakındıktan sonra, şu makalede gördüm ki bunun sebebi gparted'ın arayüzündeki "round to cylinders" seçeneğinin seçili olmasıymış, ki kendisi önceden tanımlı olarak seçili geliyor!!!
Bir süre sakinleşme gayreti gösterdikten sonra, Ubuntu'nun yeni sürümünü (11.10) indirdim. Yine gparted'ı açtım, bu sefer "align to" seçeneğinde bir de "MiB" çıkmış. Bir de bunu deneyelim diyerekten dün gece saat 1.00 de işlemi başlattım.
Sabah kalktığımda saat 7.00 civarında Ubuntu'nun ekranı çalışmaz hale gelmişti. Grafik ekran yerine siyah bir ekran gözüküyordu. Bir yandan CD durmadan çalışıyordu, sabit disk de durmadan çalışıyordu. İyi bari deyip, bir süre takılıp geri geldim. Bir de ne göreyim ekran kendine gelmiş birşeyler gösteriyor. Diyor ki bir buçuk saat daha işim var!!!! Bu sefer de tekrar bir taşıma işlemi olduğu için yine uzun sürmekte.
Yalnız bu sefer ki doğru bir taşıma işlemi. Bunun doğruluğunu kontrol etmenin yolu şu idi, sonuçta varılacak konfigürasyonda yeni disk bölümlerinin başlangıç noktaları 306491392 ve 1237057536, ikisi de 512'nin katları... Şükür... Bunu işlem başlamadan kontrol etmek de mümkündü.
Sonuçta şimdilik sonuç iyi oldu. Ama pek çok kıssadan hisse oluştu, dikatinize sunarım:
- Gerekmedikçe asla disk bölümü taşımayın. İnanılmaz uzun sürüyor.
- gparted'ın en son sürümünü kullanın.
- Bölümlerinizi oluşturmaya başlamadan önce BAŞLANGIÇ noktalarının 512'nin katı olduğundan emin olun.
25-12-2011 13:57:23
Suspend düzeltmesi
Farkettim ki sadece kerneli yenilemek
suspend in çalışması için yeterli değil. Aynı zamanda aşağıdaki
dosyları da belirtilen yerlere konulması gerekiyor:
/etc/pm/config.d/usb3-suspend-workaroundAşağıdaki dosyanın çalıştırılabilir yapılması gerekiyor:
SUSPEND_MODULES="xhci ehci"
chmod a+x /etc/pm/sleep.d/20_custom-ehci_hcd
/etc/pm/sleep.d/20_custom-ehci_hcd
#!/bin/sh #inspired by http://art.ubuntuforums.org/showpost.php?p=9744970&postcount=19 #...and http://thecodecentral.com/2011/01/18/fix-ubuntu-10-10-suspendhibernate-not-working-bug # tidied by tqzzaa :)
VERSION=1.1 DEV_LIST=/tmp/usb-dev-list DRIVERS_DIR=/sys/bus/pci/drivers DRIVERS="ehci xhci" # ehci_hcd, xhci_hcd HEX="[[:xdigit:]]" MAX_BIND_ATTEMPTS=2 BIND_WAIT=0.1
unbindDev() { echo -n > $DEV_LIST 2>/dev/null for driver in $DRIVERS; do DDIR=$DRIVERS_DIR/${driver}_hcd for dev in `ls $DDIR 2>/dev/null | egrep "^$HEX+:$HEX+:$HEX"`; do echo -n "$dev" > $DDIR/unbind echo "$driver $dev" >> $DEV_LIST done done }
bindDev() { if [ -s $DEV_LIST ]; then while read driver dev; do DDIR=$DRIVERS_DIR/${driver}_hcd while [ $((MAX_BIND_ATTEMPTS)) -gt 0 ]; do echo -n "$dev" > $DDIR/bind if [ ! -L "$DDIR/$dev" ]; then sleep $BIND_WAIT else break fi MAX_BIND_ATTEMPTS=$((MAX_BIND_ATTEMPTS-1)) done done < $DEV_LIST fi rm $DEV_LIST 2>/dev/null }
case "$1" in hibernate|suspend) unbindDev;; resume|thaw) bindDev;; esac
23-12-2011 17:14:01
Vim ile kodlama değiştirme
Malumunuzdur pek çok kişiler dosyayı
başka kodlamada (encoding), içindeki yazıyı başka türlü kodlamada
ustadır. Bazen de ne kadar gereksiz de olsa doğru bir şekilde hem
dosyanın diske yazılmasında kullanılan kodlama hem de içindeki
yazının kodlaması ISO-8859-9 şeklinde yapılır. Bu dosyaları ve
içindeki yazıları da UTF-8 alemine geçirmek gereklidir. Senelerden
beri süre gelen bu çile, bu can sıkıcı çözümsüzlük benim için dün
son buldu. Sizin içinde son bulsun istedim.
Diyelim ki elimizde ISO-8859-9 ile kodlanmış bir dosya var, bunu vim ile UTF-8 kodlamasına çevirmek mümkünmüş:
Diyelim ki elimizde ISO-8859-9 ile kodlanmış bir dosya var, bunu vim ile UTF-8 kodlamasına çevirmek mümkünmüş:
:write ++enc=utf-8 yenidosya
17-12-2011 22:46:58
Müjdeli haber: Sandy Bridge'de ASPM desteği geldi
Daha önceden bahsettiğim Sandy Bridge
platformlar üzerinde düzgün olmayan ASPM özelliği 3.2-rc6 ile bugün itibariyle aramızda!!! Bu
yazıyı yadığım sırada bilgisayarın fanı durdu, 11W güç harcayarak 4
saate kadar pil ömrü tahmini gördüm. Olley!
Süper bir insansın Matthew Garrett
i3/i5/i7 işlemcili Linux kullanıcılarına duyurulur.
Debian üzerinde kendi Kernelinizi derlemek için şuraya bakabilirsiniz. Oldukça basit bir işlem. Yalnız çok çekirdekli sistemlerde derleme yaparken parallelikten faydalanmak için şunu demeyi unutmayın:
Süper bir insansın Matthew Garrett
i3/i5/i7 işlemcili Linux kullanıcılarına duyurulur.
Debian üzerinde kendi Kernelinizi derlemek için şuraya bakabilirsiniz. Oldukça basit bir işlem. Yalnız çok çekirdekli sistemlerde derleme yaparken parallelikten faydalanmak için şunu demeyi unutmayın:
export CONCURRENCY_LEVEL=16Sayısal değer olarak çekirdek sayınızın iki katını girebilirsiniz. Benim canavar i7 işlemci için 8 çekirdek gözüktüğünden 16 yazdım.
15-12-2011 01:28:14
Ağı ney kullanıyor?
Ve olmuştu, serverfault.com'da
tesadüfen bir yazı okurken karşılaştım, ağ trafiğini inceleyip ağ
kullanımına göre bağlantıları listeleyen program: iftop imiş! Ne
zamandır isteyip ulaşamamıştım.
14-12-2011 12:08:03
Debian'da tarayıcılar için Java plugini
Tarayıcılar içinden Java desteği
genelde dert olmuştur. O paket senin bu paket benim dolaşmak,
linkler yapmak bir sürü uğraşmak gerekirdi. Geçen gün bu işler pek
bir güzellikle yapan bir paket keşfettim:
aptitude install icedtea6-pluginve tarayıcılarda Java vardı... : )
12-12-2011 21:44:30
Sürekli kapanıp açılan sabit diski düzeltme komutu
Doğru dürüst çalışmayan Sandy Bridge
desteği sebebiyle olduğunu zannettiğim, sabit diskin sürekli
kapanıp açılması ve bu esnada hem performans hem de uzun vadede
olası arızalara yol açabilecek hatasını düzeltmeye yarayan komut:
Bu değerin açılışta ayarlanması için /etc/hdparm dosyasındaki yorumlu şekilde bulunan apm satırı kullanılabilir.
Düzgün ASPM desteği için hergün kernel.org'un sayfasına uğramaya devam ediyoruz.
hdparm -B 255 /dev/sdahdparm'ın bir çok daha şeker seçeneği var man sayfasından bakılabilir. -B seçeneğine 255 parametresini verdiğimide ilgili disk için "Advanced Power Management feature" özelliğini kapatmış oluyoruz. Böylece disk sürekli açılıp kapanmaktan vazgeçiyor.
Bu değerin açılışta ayarlanması için /etc/hdparm dosyasındaki yorumlu şekilde bulunan apm satırı kullanılabilir.
Düzgün ASPM desteği için hergün kernel.org'un sayfasına uğramaya devam ediyoruz.
11-12-2011 23:35:50
Tarihi bir not: İlk gerçek memory leak hatası düzeltmesi
Geçen gün gerçek bir hafıza kaçağını
(memory leak) yakaladım! Düşündüm, bundandır dedim, düzelttim ve
oldu! Bir ilkti.
Matlab üzerinden çalıştırılan C/C++ kodlarındaki elle ayrılmış (malloc) hafıza parçalarını yine elle boşa çıkarmak (free) gerekiyormuş. Normalde program kapanınca zaten boşa çıkmasını beklerdim. Ama belli ki Matlab programı pek de kapatmıyor... Neyseki çözümünü kolayca bulabildim.
Matlab üzerinden çalıştırılan C/C++ kodlarındaki elle ayrılmış (malloc) hafıza parçalarını yine elle boşa çıkarmak (free) gerekiyormuş. Normalde program kapanınca zaten boşa çıkmasını beklerdim. Ama belli ki Matlab programı pek de kapatmıyor... Neyseki çözümünü kolayca bulabildim.
06-12-2011 20:53:11
Şaşkınlık, hayret, dehşet!
Bildiğiniz gibi bir süredir Asus
N53SN-SZ129V ile boğuşuyorum. Bugün suspend'i çalıştırdım ve çook
şaşırdım! Garip olan çözümü bulmak değil, çözümün kendisiydi.
Yıllardır severek kullandığımız s2ram komutunu, bu bilgisayarda siyah bir ekran çıkarmaktan ibaret hale geldiğini görmek içimi hüzün kaplamaya yetmişti. Kardeşi s2disk çalışıyordu ama o da bizi geri dönüşü olmayan bir yola çıkarıyordu. Geri döndüğümüzde Optimus destekli ekran kartı çalışmaz oluyordu... Durum o kadar hüzünlüydü ki yıllardan beri öğrenmemeye gayret ettiğim açılıştaki disk kontrolünü düzenleme komutunu bile öğrenmeme sebep oldu:
Allem ve kullem ettikten sonra yeni bir komut imdadıma (nerdeyse) hızır gibi yetişti. pm-suspend komutu karanlık ekranımıza bir güneş gibi doğdu ve ben yeniden doğru düzgün suspend edebilir oldum. Satırlarımı ecnebilerin kralları öldüğünde söylediği ünlü sözle bitirmek istiyorum:
s2ram is dead, long live the pm-suspend
Yıllardır severek kullandığımız s2ram komutunu, bu bilgisayarda siyah bir ekran çıkarmaktan ibaret hale geldiğini görmek içimi hüzün kaplamaya yetmişti. Kardeşi s2disk çalışıyordu ama o da bizi geri dönüşü olmayan bir yola çıkarıyordu. Geri döndüğümüzde Optimus destekli ekran kartı çalışmaz oluyordu... Durum o kadar hüzünlüydü ki yıllardan beri öğrenmemeye gayret ettiğim açılıştaki disk kontrolünü düzenleme komutunu bile öğrenmeme sebep oldu:
tune2fs -c 0 -i 30d /dev/sda4-c parametresi kaç mount sonra, -i parametresi de kaç zaman sonra açılışta kontrolü zorlayacağını belirtiyormuş...
Allem ve kullem ettikten sonra yeni bir komut imdadıma (nerdeyse) hızır gibi yetişti. pm-suspend komutu karanlık ekranımıza bir güneş gibi doğdu ve ben yeniden doğru düzgün suspend edebilir oldum. Satırlarımı ecnebilerin kralları öldüğünde söylediği ünlü sözle bitirmek istiyorum:
s2ram is dead, long live the pm-suspend
04-12-2011 03:56:25
i7 Sandy Bridge'deki fazla güç harcama olayı
Bir süredir i7 işlemcili dizüstü
bilgisayarımın durmayan fanı canımı sıkıyordu. Hatta kafayı
yedirtiyordu. Uzuunca bir süre ekran kartı sürücüleriyle
uğraştıktan sonra daha mantıklı bir cevap buldum.
[1] [2]
Sandy Bridge mimarisindeki işlemcilerdeki ASPM (Active State Power Management) olayının kapalı kodlardaki gibi çalışmasını sağlamak için çalışmalar ancak bir sonraki Kernel sürümü (an itibariyle next-20111202, anladığım kadarıyla 3.3 olacak, bkz. kernel.org) ile ortaya çıkacak gibi gözüküyor. Tabi sonra da bu Kernel'in Debian'a gelmesini beklemek gerekecek. Yada derliycez artık.
Sandy Bridge mimarisindeki işlemcilerdeki ASPM (Active State Power Management) olayının kapalı kodlardaki gibi çalışmasını sağlamak için çalışmalar ancak bir sonraki Kernel sürümü (an itibariyle next-20111202, anladığım kadarıyla 3.3 olacak, bkz. kernel.org) ile ortaya çıkacak gibi gözüküyor. Tabi sonra da bu Kernel'in Debian'a gelmesini beklemek gerekecek. Yada derliycez artık.
03-12-2011 10:17:07
Multitouch ayarları
Dizüstü bilgisayarlarda multitouch
(Türkçesi?) nimetlerinden faydalanmak için, yeni Xorg sistemlerde
/usr/share/X11/xorg.conf.d/10-evdev.conf dosyasındaki
MatchIsTouchpad "on" yazan kısma aşağıdakilerin eklenmesi
gerekiyormuş:
Mesela iki parmak tıklama ile orta tuşa basıp "yapıştır" işlemini gerçekleştirmek baya pratik oluyor. Üç parmak tıklama da sağ tuş oluyor.
Kaynak: SynapticsTouchpad
Option "TapButton1" "1"
Option "TapButton2" "2" # multitouch
Option "TapButton3" "3" # multitouch
Option "VertTwoFingerScroll" "1" # multitouch
Option "HorizTwoFingerScroll" "1" # multitouch
Option "VertEdgeScroll" "1"
Option "CoastingSpeed" "8"
Option "CornerCoasting" "1"
Option "CircularScrolling" "1"
Option "CircScrollTrigger" "7"
Option "EdgeMotionUseAlways" "1"
Option "LBCornerButton" "8" # browser "back" btn
Option "RBCornerButton" "9" # browser "forward" btn
Tabi bu /etc/X11/xorg.conf dosyasına da yazılabilir. Ama bendeki
özel
kurulumda xorg.conf'a müdahale etmesem daha iyi olduğu için
böyle yapmak daha iyi oldu.Mesela iki parmak tıklama ile orta tuşa basıp "yapıştır" işlemini gerçekleştirmek baya pratik oluyor. Üç parmak tıklama da sağ tuş oluyor.
Kaynak: SynapticsTouchpad