Uzun bir aradan sonra Emektar Acer E3-112 model bilgisayarıma yeniden Debian kurmaya karar verdim ve bunun için Debian 9 CD imajını SD karta yazdırıp bilgisayarı yeniden başlattım. Seçeneklerden Expert Graphical Installation’ı seçip kuruluma başladım.
Daha önce Debian 8 kurarken başıma gelen bazı sorunlar olmuştu ve bu sürümde de aynı sorunlarla karşılaştım. Bu nedenle ekran görüntüleri Debian 8 kurulumuna ait olup, discover
kurulumunda ortaya çıkan sıkıntıyı çözmek için farklı bir yol izlediğimden sıfırdan bir makale yazıp Mertcan’ın blogunda paylaşmaya karar verdim. Özellikle son sorunun çözüm yoluu bulmak beni bayağı uğraştırdığı için sizi benzer sıkıntılardan kurtarmak adına bu yazıyı sizlerle paylaşmak istiyorum.
Sorun 1: Debian Installer inatla CD sürücüsü arıyor
Günümüzde CD ve DVD ilkel bir teknoloji olduğu ve bunları okumak için kullanılan aygıtların bilgisayarı kalınlaştırdığı düşüncesiyle taşınabilir bilgisayarlarda DVD sürücüsüne yer verilmiyor ve benim kullandığım bilgisayar için de aynı şey söz konusu. Bu nedenle kurulumu SD kartla yapmaya karar verdim fakat Debian kurulum aracı CD sürücüsü bulamadığıyla ilgili bir uyarı verdi. Linux’ta CD/DVD sürücüleri genelde /dev/sr0
aygıt dosyasına atansa da bazı sürücülerde bu farklı isimde bir aygıt dosyayasına atanabiliyor. Bu nedenle Debian bize CD sürücümüzün aygıt dosyasını seçmemize olanak vermektedir. Biz bu aygıt yolunu yine Linux’ta genellikle SD kartlar için kullanılan /dev/mmcblk0
olarak girersek sistem kartımızı tanıyacak ve ilgili yere mount edecektir. Bunu aşağıdaki adımları uygulayarak yapabilirsiniz.
Not: Fotoğraflar tost makinesi ile çekilmiştir.
Sorun 2: Kurulum discover
paketini yapılandırmaya çalışırken donuyor.
Daha önce Debian 8 kurarken karşılaştığım donma sorununu bu sürümde de yaşadım. Donma tam olarak discover
adlı paket kurulurken Tetikçiler işleniyor libc-bin
adımında gerçekleşiyor. Debian 8 kurarken bu sorunu libc ifadesinden dolayı kernel ile ilgili bir bug olarak yorumlamıştım ve Expert Graphical Installation modunu seçerek kurulumda otomatik olarak gelen pae kernel yerine pae olmayan bir kernel seçerek sorunu çözmüştüm. Kernelin sonundaki pae ifadesi,kernelin 32 bit mimaride 3 GB ve üstü RAM’leri adresleyebildiğini gösteren bir ifadedir. Pae olmayan bir kernel en fazla 3 GB RAM adresleyebilir, bu da RAM miktarınızın ne kadar olursa olsun en fazla 3 GB’ını kullanabileceğinizi belirtir.
Fakat son kurulum yaptığım Debian 9 kalıbı, 64 bit mimarisinde olduğundan dolayı seçeneklerde tek kernel sürümü yer almaktaydı. Elimdeki tek boot eden disk bu olduğu için ve bu soğukta bilgisayar laboratuvarına gitmeye üşendiğimden sorunun kaynağını araştırmaya başladım. Burada konu ile ilgili bir bug kaydı açılmış ve 70. yanıtta bir arkadaş strace
aracıyla süreci debug ederek sorunun tam olarak neden kaynaklandığını çözmüş.
İlgili strace çıktısı şu şekilde:
ead(3, "C Camera/Webcam controller'/>n "..., 4096) = 4096
brk(0x145e000) = 0x145e000
read(3, "een'/>n <device vendor='1bfd' m"..., 4096) = 4096
read(3, "2 U-Boot Bootloader'/>n <device"..., 4096) = 4096
read(3, "ideo Player'/>n <device vendor="..., 4096) = 4096
read(3, "20 Spinnaker 802.11g [Intersil I"..., 4096) = 4096
read(3, " vendor='2001' model='f117' mode"..., 4096) = 4096
read(3, "='2040' model='6503' model_name="..., 4096) = 4096
read(3, "del='0002' model_name='Wally 2.4"..., 4096) = 4096
read(3, "='22b8' model='4a01' model_name="..., 4096) = 4096
read(3, "n <device vendor='2304' model='"..., 4096) = 4096
read(3, "='2735' model='100e' model_name="..., 4096) = 4096
read(3, "or='3923' model='1f00' model_nam"..., 4096) = 4096
brk(0x147f000) = 0x147f000
read(3, "' model_name='Optical Wheel Mous"..., 4096) = 4096
read(3, "c' model='8115' model_name='Wire"..., 4096) = 4096
read(3, "ice vendor='4317' model='0701' m"..., 4096) = 4096
read(3, "2 Card Reader'/>n <device vendo"..., 4096) = 4096
read(3, "<device vendor='8086' model='004"..., 4096) = 4096
read(3, "l_name='MCS7703 Serial Port Adap"..., 4096) = 4096
read(3, "del_name='Astribank 2 series'/>n"..., 4096) = 1459
read(3, "", 4096) = 0
read(3, "", 4096) = 0
close(3) = 0
munmap(0x7f598aea2000, 4096) = 0
open("/proc/bus/usb/devices", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/dev/bus/usb", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
getdents(3, /* 5 entries */, 32768) = 120
close(3) = 0
openat(AT_FDCWD, "/dev/bus/usb", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
getdents(3, /* 5 entries */, 32768) = 120
getdents(3, /* 0 entries */, 32768) = 0
close(3) = 0
openat(AT_FDCWD, "/dev/bus/usb/003", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
getdents(3, /* 4 entries */, 32768) = 96
open("/dev/bus/usb/003/002", O_RDWR
Çıktıdan da anlaşılacağı üzere sistem /dev/bus/usb/003/002
dosyasını okuma yazma için açarken bir kernel ya da firmware bugu yüzünden donuyor. Kernele acpi=off
parametresi ekleme ve UEFI kurulum gibi öneriler bende işe yaramadığından bendeki sorunun bundan kaynaklandığını teyit etmek üzere CTRL + ALT + F2 ile yeni konsola geçip cat /dev/bus/usb/003/002
komutunu çalıştırdım.
Tam tahmin ettiğim gibi sistem dondu. Aynı testi aynı dizin içindeki 001 dosyası için de yaptığım zaman o da donmaya sebebiyet verdi. Teorik olarak iki tane USB girişim olduğundan 003 numaralı porta ait kayıtların bir bug dolayısıyla hayalet olarak üretilmiş olabileceğini düşünerek rm -rf /dev/bus/usb/003/
komutu ile problemli aygıt dosyalarını silerek kurulumu tekrar başlattım ve böylelikle sorunu geçici olarak çözmüş bulundum.
Burada belirtilen bug kaydında Linux USB takımının sıkıntı ile ilgili bir yama çıkarttığı fakat diğer makinalarda sıkıntı olabileceği gerekçesiyle bunun kernel içinde gelmeyeceği ve sorunun muhtemelen UEFI modunda görünen bazı aygıtların Legacy modunda BIOS tarafından gizlenmesinden kaynaklandığı belirtilmiş.
Not: Kurulum sırasında sildiğim dosyalar bende hiçbir fonksiyonel sıkıntıya yol açmadı. Hatta dosyalar kurulumdan sonra geri gelmiş durumdalar.