Linux donanım yönetimi, sistem yönetiminin önemli bir parçasıdır

Linux sistem yönetimi konusuna donanım yapılandırması konusu ile devam ediyoruz. Kusursuz bir Linux yüklemesi yapılmışsa, yükleme sonrasında tüm donanım algılanır ve erişilebilir hale gelir. Ancak bazen işletim sistemi, donanım ya da kullanıcı kaynaklı hatalar kusursuz bir yükleme yapmaya engel olabilir. Linux sistemleri her ne kadar kusursuzluğa yaklaşıyor olsa da bazen donanımla ilgili adımları sistem yöneticisinin atması gerekebilir. Bu yazımızda bir sistem yöneticisinin Linux donanım yapılandırması hakkında bilmesi gerekenleri anlatacağız.

Bilgisayara bağlı sabit donanımlar haricinde çıkarılabilir USB aygıtların (CD/DVD sürücüler, flash diskler, dijital kameralar, yazıcılar, çıkarılabilir sabit sürücüler vb.) artan kullanımı, Linux’u sisteme bağlanan ve çıkarılan bu tip aygıtları verimli yönetmeye zorlamıştır.

Son birkaç yılda Linux çekirdeğine (Kernel) eklenen özellikler, donanım aygıtlarının tespit edilmesi ve yönetilmesi konusunda yeni özellikler getirdi. Çekirdekte bulunan özellikler arasında Udev (donanım aygıtlarını dinamik olarak adlandırır) ve HAL (donanım değişiklikleri hakkında bilgi verir) bulunuyor. Bu yeni özellikler Linux sistemlerini daha otomatik ve esnek bir hele getirir ve daha kullanıcı dostu bir sistem kullanmanıza olanak tanır.

Donanımları listelemek

Sistem başlatıldığında çekirdek (Kernel) donanımı algılar ve Linux’un bu donanımla çalışabilmesi için gereken sürücüleri (driver) yükler. Sistem açılışı sırasında donanımın algılanması hakkındaki mesajlar ekrandan hızlı bir şekilde kayar. Eğer donanımda bir sorun varsa hata mesajlarını görüntülemek için sistemin açılmasını beklemelisiniz.

Sistem açılışındaki bu önyükleme mesajlarını görüntülemenin birkaç yolu var. Bunlardan biri dmesg komutu. Önyükleme mesajlarını görüntülemenin ikinci yolu bir önceki yazımızda anlattığımız journalctl komutu.

dmesg komutu ile bazı kontroller yapalım.

dmesg komutunun direkt kullanımında sayfalarca bilgi ile karşılaşırsınız;

dmesg komutu ile önyükleme mesajlarını görüntüleme

dmesg komutunu “-l” (–level) parametresi ile kullanarak sadece hata (err, error) ve uyarı (warn, warning) mesajlarını da ayıklayabiliriz;

dmesg komutu ile sadece hata ve uyarıları görüntüleme

Buradaki kullanımda “–level”den sonra “=” ve level olarak belirtilenleri “,” ile ayırdığımıza dikkat edin.

Böylece, buradaki hata ya da uyarılardan ciddi bir sorun olduğunu düşündükleriniz hakkında Linux forumlarından ve dokümanlarından arama yaparak oldukça faydalı çözümler bulabilirsiniz.

Kullanılabilecek parametreler için yardım sayfasına bakabilirsiniz;

Önyükleme mesajları içerisinde istediğimiz bir ifadeyi aratarak kontrol yapabiliriz. Bunun için dmesg komutu çıktılarını grep komutuna aşağıdaki gibi aktararak içerisinde “CD” geçen satırları görebiliriz;

PCI aygıtlarını listeleme

Sisteme bağlı PCI aygıtlarını (ve PCI Express) listelemek için lspci komutunu kullanabiliriz. PCI aygıtlar genelde sisteme bağlı ses, Ethernet kartı, RAID kontrol kartı ve ekran kartı gibi cihazları gösterir (ekran kartları için PCI Express günümüzde daha yaygın olarak kullanılır). Komutun direkt kullanımı bağlı PCI aygıtları hakkında genel bilgiler verir. “-v” parametresi ile bazı detaylı bilgiler görülebilirken “-vv” (iki defa v) parametresi ile çok daha detaylı bilgiler görülür;

lspci komutu ile PCI aygıtları listelemek

lspci komutu sonrasında çıktıları head komutuna aktararak sadece ilk 15 satırı görüntüledik. “-v” ve “-vv” arasında ayrıntı farklılıkları olduğuna dikkat edin.

“-m” parametresini kullanarak daha okunaklı bilgiler elde edebiliriz;

-m parametresi ile lspci komutundan okunaklı bilgiler istenmesi

Burada tail komutuna çıktıları aktararak son 10 satırı görüntülemiş olduk.

lspci komut detayları için de man sayfasına veya help sayfasına bakabilirsiniz

 

USB aygıtlarını listeleme

Sisteme bağlı USB aygıtları listelemek için lsusb komutu kullanılır;

lsusb komutu ile USB aygıtlar listelenir

Sitemdeki flash disk, klavye, fare ve kablosuz ağ kartı gibi cihazları görebiliyoruz. lsusb komutu ile birlikte “-v” parametresinin kullanımı her bir cihaz için detaylı bilgileri sunar.

 

CPU bilgisi

CPU hakkında bilgi almak için lscpu komutu kullanılır;

CPU bilgileri lscpu komutu ile listelenir

Çıkarılabilir aygıtları yönetme

KDE, GNOME ve diğer bazı masaüstü ortamlarını tam destekleyen Red Hat Enterprise Linux (RHEL), Fedora, Debian, Mint ve diğer bazı dağıtımlar, çıkarılabilir aygıtların bilgisayara takılması durumunda gerekli yapılandırmalar için basit grafik araçlar içerir.

Çıkarılabilir donanımları algılamak ve adlandırmak için farklı masaüstü ortamları aynı mekanizmaları kullansa da (özellikle Udev) aygıtların nasıl bağlanacağını (mount) veya kullanılacağını yapılandırmak için farklı araçlar kullanabilirler.

Örneğin Udev, “udevd daemon”ı kullanır. Donanım eklendiğinde ve bilgisayardan kaldırıldığında /dev dizininde gerekli bağlanma noktasını oluşturur ve kaldırır. Birçok dağıtımın ortak olarak kullandığı mekanizma Udev’dir.

GNOME masaüstü tarafından kullanılan “Nautilus” dosya yönetici, çıkarılabilir aygıtlar takıldığında ne yapılması gerektiğinin tanımlanması için kullanıcıya olanak tanır. Bu işlem için File Management Preferences (Dosya Yönetim Tercihleri) penceresini sunar.

Linux Mint’in ayarlar bölümünde ise (Mint “cinnamon” masaüstü ortamı kullanır) çıkarılabilir aygıtları takıldığında, aygıtın medya içeriğine göre yapılacakların seçilmesi için “Tercih Edilen Uygulamalar” penceresi bulunur.

Linux Mint’in çıkarılabilir aygıtlar için sunduğu ve tercihlerin yer aldığı uygulaması

Dağıtımlara göre benzer uygulamalar dağıtımın ayarlar bölümünde yer alır. Diskin DVD video, müzik, fotoğraf, yazılım ya da diğer medya türleri içermesine bağlı olarak davranış seçilebilir. Bu seçimlerin sadece o anki kullanıcı için geçerli olacağını da belirtelim.

Not: Hangi masaüstü ortamını kullandığınızı görmek için “echo $DESKTOP_SESSION” komutunu verebilirsiniz (biz Mint için aşağıdaki sonucu alıyoruz);

 

Medya ortamları haricindeki normal USB flash diskler ya da sabit diskler için böyle bir öntanım mevcut değil. Ancak bu tür bir çıkarılabilir disk takıldığında, aygıt /dev/sda ya da /dev/sdb gibi adlarla adlandırılır.

Eğer GNOME masaüstü ortamı kullanıyorsanız, bir USB disk taktığınızda Nautilus dosya yöneticisi otomatik olarak bir pencere açarak dosyalar arasında gezmenize olanak tanıyacaktır. Kullandığınız ortama göre farklı dosya yöneticileri ile karşılaşırsınız (mesela Mint’deki cinnemon Nemo’yu, Xfce Thunar’ı kullanır).

Bir çıkarılabilir diski sistemden çıkarmadan önce ise dosya yöneticisinden çıkarılabilir disk simgesine sağ tıklayarak açılan menüden “güvenli çıkart” ya da “çıkart/kaldır” benzeri bir seçeneği seçmelisiniz. Akabinde aygıtı çıkarabilirsiniz.

Yüklenebilir modüller

Bilgisayar tarafından doğru şekilde algılanamayan bir donanım sisteme takıldıysa, o donanım için manuel modül yüklenmesi gerekebilir.

Modül (ya da Kernel modülü), çekirdeğe sonradan eklenebilen ve çıkartılabilen kodlardır.

Normalde donanım sürücülerine ait kodlar zaten çekirdekte mevcuttur, ancak çeşitli gereksinimler nedeniyle yeni sürücü eklemek gerekebilir. Çekirdeğe yapılacak bir müdahale sonrasında çekirdeğin yeniden derlenmesi gerekir (yeniden başlatma dahil) ki bu da çalışan bir sistem için (özellikle sunucu için) istenen bir durum değil.  Bu tip durumlar yaşamamak için çalışan çekirdeğe modüller ekleyerek derleme işleminden kurtulmuş oluyoruz.

Linux, donanım modüllerini yükleme (loading), kaldırma ve modüller hakkında bilgi alma işlemleri için çeşitli komutlara sahiptir.

Kernel modülleri /lib/modules/ klasörüne yüklenir. Bu klasörün altında çekirdek sürümüne göre alt klasörlerde bu bilgiler saklanır (çekirdek sürümünü öğrenmek için “uname -r” komutunu kullanabilir ya da /lib/modules klasörüne bakabiliriz).

Yüklü modülleri listeleme

Halihazırda hangi modüllerin yüklü olduğu lsmod komutu ile listelenebilir;

Yüklü modüller lsmod komutu ile listelenir

Komut çıktısı, yüklü modüllere göre epey uzun olabilir. Biz bir kısmını yukarıda verdik. Çıktının baş kısmında görülen bilgiler Wi-Fi kartına (ath9k) ait.

Yüklü modüllerden herhangi birinin bilgilerini sorgulamak için ise modinfo komutu kullanılabilir;

modinfo komutunu “-a” parametresi ile kullanarak modülün yazarını görüntüleyebilirsiniz;

 

Modül yükleme

modprobe komutunu kullanarak çalışan çekirdeğe modül yüklenebilir (elbette root yetkileriyle).

Örneğin, paralel portları birden çok cihazla paylaşma işlevlerini yerine getiren “parport” modülünü yüklemek için modprobe komutunu kullanabiliriz;

parport yüklendikten sonra, arayüz aracılığıyla kullanılabilen PC stili bağlantı noktalarını tanımlamak için “parport_pc” modülünü yükleyebiliriz. parport_pc modülü, paralel bağlantı noktasını paylaşan her aygıtla ilişkili adresleri ve IRQ numaraların isteğe bağlı olarak tanımlamasına izin verir;

modprobe komutu, modülleri geçici olarak yükler; sonraki yeniden başlatmada kaybolur. Modülü sisteme kalıcı olarak eklemek için modprobe komut satırının önyükleme sırasında çalıştırılan başlatma komut dosyalarından birine eklenmesi gerekir (örneğin /etc/default/grub dosyası içerisindeki ilgili alana).

 

Modülleri kaldırma

Çekirdekten modül kaldırmak için rmmod komutu kullanılır. Örneğin porport_pc modülünü kaldırmak için;

Eğer modül meşgul değilse çekirdekten kaldırılır. Eğer meşgulse, modülü kullanan işlemin durdurulması gerekir (kill komutu ile).

Ancak bazı modüller kaldırılmaya çalışırken bağımlı olduğu diğer modüller nedeniyle kaldırılamayabilir ve hata verir;

Bu gibi durumlarda rmmod komutu yerine modprobe -r komutu kullanılabilir.

Linux donanım yapılandırması konulu bu üçüncü yazımızla Linux sistem yönetimi konusunu bitirmiş oluyoruz. Linux yazılarımıza devam edeceğiz.

Tüm Linux eğitim yazılarımıza https://teknopusula.com/egitim/linux sayfasından erişebilirsiniz.

 

BİR CEVAP BIRAK