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.