systemd: önyükleme sırasında modprobe komutunu otomatikleştir


20

Dağıtımım Fedora 17 Gnome. Bilgisayarımı her yeniden başlattığımda / yeniden başlattığımda bu komutu root olarak çalıştırmam gerekiyor:

modprobe rt2800usb

Nasıl kalıcı hale getirebilirim?


1
Merhaba, ilk soru için teşekkürler. Hangi linux dağıtımından bahsettiğinizi söyleyebilirseniz iyi olur :)
— Bonsi Scott

1
@BonsiScott Dağıtım muhtemelen soru metnine de eklenmelidir, ancak etiketi Fedora diyor.
— depquid

(Ayrıca,
— fedora'ya

@BonsiScott, cevabınız başkaları için de yararlı olabilir ...
— vonbrand

Yanıtlar:


34

Herhangi bir dağıtımda systemdmodülü otomatik olarak şu şekilde yükleyebilirsiniz modules-load.d:

  • yapılandırma dosyasını oluşturun:

    /etc/modules-load.d/rt2800usb.conf

  • açın ve şu şekilde düzenleyin (modül adını ekleyin):

    rt2800usb

  • modülü yeniden başlattığınızda otomatik olarak yüklenmelidir


Sorun giderme:

systemdServisin modülü yükleyip yüklemediğini kontrol edin :

systemctl status systemd-modules-load.service

Çıktı şöyle görünmelidir:

systemd-modules-load.service - Load Kernel Modules
  Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static)
  Active: active (exited) since Wed, 03 Apr 2013 22:50:57 +0000; 46s ago
        Docs: man:systemd-modules-load.service(8)
              man:modules-load.d(5)
 Process: 260 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=0/SUCCESS)

Son satır PID(işlem kimliği) ve çıkış kodunu içerir. status=0/SUCCESSmodülün başarıyla yerleştirildiği, şu şekilde onaylandığı anlamına gelir:

journalctl -b _PID=260

çıktı:

Apr 03 22:50:57 mxhst systemd-modules-load[260]: Inserted module 'rt2800usb'

Arıza durumunda, systemctlçıktı şöyle görünür:

systemd-modules-load.service - Load Kernel Modules
  Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static)
  Active: failed (Result: exit-code) since Wed, 03 Apr 2013 22:50:59 +0000; 43s ago
        Docs: man:systemd-modules-load.service(8)
              man:modules-load.d(5)
 Process: 260 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=1/FAILURE)

ile journalctl -braporlama:

Apr 03 22:50:59 mxhst systemd-modules-load[260]: Failed to find module 'fakert2800usb'

Çıkış kodu olduğunda 0/SUCCESS, modülünüz başarıyla yerleştirilmiş demektir; çalışan

lsmod | grep rt2800

şunları doğrulamalıdır:

rt2800usb              26854  0 
rt2x00usb              19757  1 rt2800usb
rt2800lib              64762  1 rt2800usb
rt2x00lib              66520  3 rt2x00usb,rt2800lib,rt2800usb
mac80211              578735  3 rt2x00lib,rt2x00usb,rt2800lib

Eğer lsmodçıkışı (servis çıkış kodu varlık rağmen onayla değil 0/SUCCESS) bir şey tarafından yüklenen sonra modülü kaldırıldı anlamına gelir modules-load.service. Olası nedenlerden biri *.conf, modülü kara listeye alan başka bir dosyadır. Şunun gibi bir çizgi arayın:

blacklist rt2800usb

içinde /etc/modprobe.d/*.conf, /usr/lib/modprobe.d/*.confya da /run/modprobe.d/*.confve yorum dışarı / silin.


Bunu yaptım, ancak modül yeniden başlatıldığında yüklenmedi.
— somethingSomething

Kök dosyanın sahibi olduğu için mi?
— somethingSomething

Yeniden başlattığımda hala modprbe komutunu yapmak zorundayım. Listeleme modprobe komutunu çalıştırdıktan sonra olduğu için listelenmiyor mu?
— somethingSomething

5

Önyüklemeye bir modül yüklemek için, içinde bir dosya oluşturursunuz /etc/modules-load.d/; bu dosyanın herhangi bir adı olabilir, ancak bitmesi gerekir .conf. Wifi sürücünüz durumunda, örneğin dosyayı oluşturabilirsiniz /etc/modules-load.d/rt2800.conf.

Dosyaya, yüklemek istediğiniz modülün adını içeren tek bir satır ekleyin:

rt2800usb

Çekirdek modüllerindeki Arch Wiki sayfasında daha fazla bilgi bulunmaktadır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.