modprobe(8)

İSİM
modprobe - yüklenebilir modüller için yüksek seviyeli işlemci

KULLANIM
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

SEÇENEKLER
-a, --all
    İlk başarılı yüklemeden sonra durmak yerine, bütün eşleşen modülleri yükler.

-c, --showconfig
    Kullanımdaki yapılandırmayı gösterir.

-C, --config dosya
    Yapılandırmayı belirtmek için (isteğe bağlı olarak kullanılan) /etc/modules.conf yerine dosya kullanır. /etc/modules.conf (ya da eski adıyla /etc/conf.modules) yerine farklı bir yapılandırma seçmek için MODULECONF ortam değişkeni de kullanılabilir.

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.

-d, --debug
    Modül yığıtının dahili gösterimi hakkında bilgi verir.

-h, --help
    Seçeneklerin listesini gösterir ve çıkar.

-k, --autoclean
    Yüklü modüllere `autoclean' uygular. Modül olarak sağlanmış ama mevcut olmayan bir özelliği gidermek için çekirdek tarafından modprobe çağrılarak kullanılır. Bu seçenek -q seçeneğini de uygular. Bu seçenekler özdevinimli olarak insmod'a gönderilir.

-l, --list
    Eşleşen modülleri listeler.

-n, --show
    İşlemi gerçekleştirmeden, sadece işlemin sonuçlarını gösterir.

-q, --quiet
    insmod'un bir modülü yüklemede başarısız olması durumunda bilgi verilmez. İşlemlere sessiz bir şekilde, diğer olası modprobe sınamaları ile devam edilecektir. Bu seçenek özdevinimli olarak insmod'a yollanır.

-r, --remove
    Komut satırında belirtilmiş modüllerin varlığına bağlı olarak, modülleri (yığıtlarını) kaldırır ya da özdevinimli temizleme başlatır.

-s, --syslog
    Raporlamayı standart hata yerine syslog üzerinden yapar. Bu seçenek özdevinimli olarak insmod'a yollanır.

-t modültürü, --type modültürü
    Modüllerin sadece bu türde olduğu varsayılır. modprobe sadece tam olarak "/modültürü/" dizinini içeren dosya yollarında bulunan modülleri işleme sokacaktır. modültürü birden fazla dizin ismi içerebilir, örneğin "-t drivers/net" şeklinde bir kullanım ile xxx/drivers/net/ ve alt dizinlerindeki modüller işleme sokulacaktır.

-v, --verbose
    Çalıştırılan tüm komutları gösterir.

-V, --version
    modprobe'un sürüm bilgilerini gösterir.

Önemli:
    Modül isimleri ne dosya yolu ('/' içermemeli) ne de '.o' soneki içermelidir. Örneğin slip, modprobe için geçerli bir modül ismidir, ama /lib/modules/2.2.19/net/slip ve slip.o geçersizdir. Bu kural hem komut satırında hem de yapılandırma dosyasında geçerlidir.

AÇIKLAMA
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ı).

YAPILANDIRMA
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

STRATEJİ
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.

ÖRNEKLER
modprobe -t net
    "net" isimli dizindeki modüllerden birisini yükler. Modüllerden birisi başarılı bir şekilde yüklenene kadar listedeki bütün modüller denenir.

modprobe -a -t boot
    "boot" isimli dizindeki modüllerden hepsini yükler.

modprobe slip
    slip modülü, slhc modülünün de işlevsel olmasını gerektirdği için; eğer slhc.o modülü henüz yüklenmemişse, bu komut slhc.o'yu yüklemeye çalışacaktır. Bu gereklilik, depmod tarafından özdevinimli olarak oluşturulmuş modules.dep dosyasında belirtilir.

modprobe -r slip
    slip modülünü sistemden kaldıracaktır. Eğer slhc modülü başka bir modül tarafından (ör. ppp) kullanılmıyorsa, bu komut slhc modülünü de sistemden kaldırır.

İLGİLİ DOSYALAR
/etc/modules.conf, (artık kullanılmıyor olsa bile: /etc/conf.modules)
/lib/modules/*/modules.dep,
/lib/modules/*

İLGİLİ BELGELER
depmod(8), kerneld(8), ksyms(8), lsmod(8), rmmod(8).

GÜVENLİ KİP
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).

GÜNLÜKLEME KOMUTLARI
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.

GEREKLİ ARAÇLAR
depmod(8), insmod(8).

NOTLAR
modprobe'a yollanan şablonlar, düzgün olarak değerlendirildiğinden emin olmak için öncelenmelidir.

YETERSİZLİKLER
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.

YAZAN
Jacques Gelinas <jack (at) solucorp.qc.ca> ve Bjorn Ekwall <bj0rn (at) blox.se> tarafından yazılmıştır.

ÇEVİREN
Can Kavaklıoğlu <linuxcucan (at) yahoo.com>, Mart 2004