modprobe(8) | Linux Modül Desteği | modprobe(8) |
modprobe - yüklenebilir modüller için yüksek seviyeli işlemci
modprobe [-adnqv] [-C dosya] modül [sembol=değer ...] modprobe [-adnqv] [-C dosya] [-t tür] şablon modprobe -l [-C dosya] [-t tür] şablon modprobe -c [-C dosya] modprobe -r [-dnv] [-C dosya] [modül ...] modprobe -Vh
UNAME_MACHINE ortam değişkeni tanımlı olduğunda modutils, uname() sistem çağrısının makina alanı yerine bu değişkene atanmış değeri kullanacaktır. Bu esas olarak, 64 bitlik modüllerin 32 bitlik kullanıcı alanında derlendiği ya da tamamen tersi durumlarda kullanım alanı bulur. Mevcut modutils modüllerin tam çapraz derleme kipini desteklemez, destek, makina mimarisinin 32 ve 64 bitlik sürümlerini seçmekle sınırlıdır.
modprobe ve depmod araçları Linux modüler çekirdeğinin kullanımını, sistem yöneticileri, dağıtımcılar ve bütün kullanıcılar için kolaylaştırmak amacıyla tasarlanmıştır.
modprobe öntanımlı dizin ağaçlarında bulunan modüllerden gerekli olanları özdevinimli olarak yüklemek için depmod tarafından oluşturulan "Makefile" benzeri bir bağımlılık dosyası kullanır.
modprobe tek bir modülü, bir modül grubunu, bağımlı modül yığınlarını ya da bir etiket ile işaretlenmiş bütün modülleri yüklemek için kullanılabilir.
modprobe özdevinimli olarak, modules.dep bağımlılık dosyasında belirtilen, modül yığınındaki bütün taban modülleri yükleyecektir. Eğer bu modüllerden birisinin yüklemesi başarısız olursa, modülün parçası olduğu yığının bütün modülleri özdevimli olarak yüklenmemiş duruma getirilecektir.
modprobe modülleri yüklemek için iki yol kullanır. Bir tanesi (algılama kipi) şablon ile tanımlanmış liste dışı bir modülü yükler. modprobe yüklemeyi bir modülün yüklenmesi bittiğinde durduracaktır. Örnek olarak bu yol özdevinimli olarak bir listeden bir Ethernet sürücüsünü yüklemek için kullanılabilir. Diğer yol ise bir listedeki bütün modülleri yüklemektir. Aşağıdaki ÖRNEKLER bölümüne bakınız.
-r seçeneği kullanıldığında modprobe özdevinimli olarak bir modül yığınını boşaltacaktır (rmmod -r gibi). Altını çizmek gerekir ki, modprobe -r komutu, özdevinimli olarak yüklenmiş ama kullanılmayan modülleri boşaltır, bunun yanında /etc/modules.conf'da belirtilmiş boşaltma öncesi ve sonrası komutlarını da uygular.
-l ve -t seçeneği ile beraber kullanıldığında belirtilen türdeki bütün modüller listelenecektir.
-c seçeneği o anda kullanılan yapılanmayı gösterir (öntanımlı + yapılandırma dosyası).
modprobe'un (ve depmod'un) işleyişi istenirse /etc/modules.conf dosyasından değiştirilebilir. Bu dosyanın nasıl değiştirilebileceği ve öntanımlı yapılanma hakkında daha ayrıntılı bilgi için modules.conf(5)'a bakınız.
Dikkat edilmesi gereken bir nokta, eğer bir modül kerneld tarafından özdevinimli olarak temizlenmişse, boşaltma öncesi ve sonrası komutlar çalıştırılmaz. Eğer kurma öncesi ve sonrası özelliklerini kullanmak istiyorsanız, kerneld'nin özdevinimli temizlemesini kapatmanız ve onun yerine 2 dakikada bir özdevinimli temizleme yapmak için, aşağıdaki satıra benzer bir komutu crontab'ınıza (kmod sistemleri içinde bu geçerlidir) eklemeniz gereklidir:
*/2 * * * * test -f /proc/modules && /sbin/modprobe -r
Ana fikir olarak, modprobe ilk önce geçerli çekirdek sürümü için derlenmiş modüllerin bulunduğu dizine (örn, /lib/modules) bakacaktır. Eğer modül bu dizinde bulunamazsa, modprobe çekirdeğin sürümüne göre isimlendirilmiş dizine (örn, /lib/modules/2.4.21) bakacaktır. Eğer modül hala bulunamazsa, modprobe bu sefer bir öntanımlı dağıtımın dizinine bakacaktır ve bu işlem bu şekilde devam edecektir.
Yeni bir linux kurduğunuzda, olağan koşullarda modüller yüklediğiniz çekirdeğin sürümüne göre isimlendirilmiş bir dizine taşınır. Bu aşamadan sonra bu dizinden öntanımlı dizine bir sembolik bağ oluşturmanız gerekir.
Çekirdeği her derlediğinizde, make modules_install komutu yeni bir dizin oluşturacaktır, ancak öntanımlı bağı değiştirmeyecektir.
Çekirdek dağıtımınızla ilgisi olmayan bir modül elinize geçtiğinde, bu modülü /lib/modules'ün altındaki sürümden bağımsız dizinlerden birisine yerleştirmeniz gereklidir.
Bu anlatılan öntanımlı stratejidir. İstenirse /etc/modules.conf dosyasından değiştirilebilir.
/etc/modules.conf, (artık kullanılmıyor olsa bile: /etc/conf.modules) /lib/modules/*/modules.dep, /lib/modules/*
Eğer etkin kullanıcı kimliği gerçek kullanıcı kimliği ile aynı değilse modprobe girdilerine şüpheyle yaklaşacaktır. Son parametre "-" (tire) ile başlasa bile her zaman bir modül adı olduğu varsayılacaktır. Sadece bir modül adı kullanılabilecektir ve "değişken=değer" şeklindeki seçenekler yasaklanacaktır. Güvenli kipte modül isimlerinin her zaman bir dizge olduğu varsayılır, hiç bir ara değer çözümlemesi gerçekleştirilmez. Bu duruma bir istisna yapılandırma dosyalarıdır. Yapılandırma dosyalarından okunan verilere ara değer çözümlemesi uygulanmaya devam edilir.
modprobe çekirdek tarafından çağrıldığında etkin kullanıcı kimliği gerçek kullanıcı kimliği ile aynı olabilir (bu durum çekirdek >= 2.4.0-test11'ler için doğrudur). Mükemmel bir senaryoda modprobe, çekirdekten sadece geçerli parametreler alacağına güvenebilirdi. Ancak üst düzey çekirdek kodu, kullanıcıdan gelen kontrol edilmemiş parametreleri doğrudan modprobe'a gönderdiği için, en az bir kere yerel kök bozulması oluşmuştur. Bu yüzden modprobe çekirdeğe artık güvenmemektedir.
Ortam aşağıdaki değerlerden birini içerdiğinde, modprobe özdevinimli olarak güvenli kipe geçecektir.
HOME=/ TERM=linux PATH=/sbin:/usr/sbin:/bin:/usr/bin
Bu değerler etkin kullanıcı kimliği gerçek kullanıcı kimliği ile aynı olsa bile, modprobe'u çağıran 2.2 ile 2.4.0-test11 arasındaki çekirdek sürümlerinde algılanır (önceki sürümlerde bu durum oluşmaktadır).
Eğer /var/log/ksymoops dizini varsa ve modprobe bir modülü silebilecek ya da yükleyebilecek bir seçenekle çalıştırılmışsa, modprobe komutunu ve dönüş durumunu /var/log/ksymoops/`date+%Y%m%d.log' konumuna kaydedecektir. Bu özdevinimli günlüklemeyi kapatacak bir komut yoktur, eğer günlük kaydı istemiyorsanız, /var/log/ksymoops dizinini oluşturmayın. Eğer bu dizin varsa, sahibi root olmalıdır, 644 yada 600 kipinde olmalıdır ve aşağı yukarı her gün insmod_ksymoops_clean komutu çalıştırılmalıdır.
modprobe'a yollanan şablonlar, düzgün olarak değerlendirildiğinden emin olmak için öncelenmelidir.
modprobe, [ -V | --version ] seçenekleri ile kullanıldığında başka bir seçenek verilmiş bile olsa sadece sürüm bilgisini basar ve anında çıkar.
Jacques Gelinas <jack (at) solucorp.qc.ca> ve Bjorn Ekwall <bj0rn (at) blox.se> tarafından yazılmıştır.
Can Kavaklıoğlu <linuxcucan (at) yahoo.com>, Mart 2004
4 Şubat 2002 | Linux |