Jak ustalić, dlaczego usługa systemctl „systemd-moduły-ładowanie” kończy się niepowodzeniem?

27

Od jakiegoś czasu widziałem czerwony tekst migający podczas uruchamiania. Dziś postanowiłem to sprawdzić. Usługa systemctlsystemd-modules-load.service nie działa z tym tekstem:

tomas @ bonus-debian: ~ $ sudo systemctl status systemd-moduły-load
● systemd-modules-load.service - Załaduj moduły jądra
   Załadowano: załadowano (/lib/systemd/system/systemd-modules-load.service; statyczny; preset dostawcy: włączony)
   Aktywny: nieudany (Wynik: kod wyjścia) od ma. 2015-11-09 02:58:48 CET; 5 minut temu
     Dokumenty: man: systemd-modules-load.service (8)
           man: module-load.d (5)
  Proces: 644 ExecStart = / lib / systemd / systemd-modules-load (kod = zakończony, status = 1 / AWARIA)
 Główny PID: 644 (kod = zakończony, status = 1 / AWARIA)

listopad 09 02:58:48 bonus-debian systemd [1]: Uruchamianie modułów ładujących jądro ...
listopad 09 02:58:48 bonus-debian systemd-modules-load [644]: Nie można znaleźć modułu „-r usbhid”
listopad 09 02:58:48 bonus-debian systemd [1]: systemd-modules-load.service: Proces główny zakończony, kod = zakończony, status = 1 / AWARIA
listopad 09 02:58:48 bonus-debian systemd [1]: Nie można uruchomić ładowania modułów jądra.
listopad 09 02:58:48 bonus-debian systemd [1]: systemd-modules-load.service: Jednostka weszła w stan awarii.
listopad 09 02:58:48 bonus-debian systemd [1]: systemd-modules-load.service: Błąd wyniku „kod-wyjścia”.

Myślałem, że zacznę od rozwiązania problemu w Google:

Zrzut ekranu

Auć.

Wygląda na to, że mój system nie przeszkadza, że ​​sterownik się nie załadował, ponieważ nie zauważyłem pogorszenia działania, ale nadal chciałbym to naprawić.

Ponieważ Google nigdzie mnie nie ma, już utknąłem. Nie mam pojęcia, od czego zacząć.

Jak dowiedzieć się, dlaczego usługa systemctl „systemd-moduły-ładowanie” kończy się niepowodzeniem?

Hubro
źródło
Czy przypadkiem zmieniłeś udevregułę?
MariusMatutiae
Czy możesz sprawdzić w dziennikach dzienniki? Czy próbuje załadować moduł o nazwie „-r usbhid”?
Cristi,

Odpowiedzi:

40

Ja też miałem ten problem. Udało mi się to rozwiązać, postępując zgodnie z instrukcjami na stronie wiki systemd Arch Arch . Oto podsumowanie tego, co zrobiłem:

  1. Pozwala znaleźć usługi systemowe, które się nie uruchamiają

    $ systemctl --failed  
    ------------------------------------------------------------------------
    systemd-modules-load.service   loaded failed failed  Load Kernel Modules
    
  2. Ok, znaleźliśmy problem z usługą systemd-modules-load. Chcemy wiedzieć więcej.

    $ systemctl status systemd-modules-load  
    ------------------------------------------------------------------------
    systemd-modules-load.service - Load Kernel Modules      
       Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static)     
       Active: failed (Result: exit-code) since So 2013-08-25 11:48:13 CEST; 32s ago  
         Docs: man:systemd-modules-load.service(8).  
               man:modules-load.d(5)
      Process: 15630 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=1/FAILURE)
    

    Jeśli identyfikatora procesu nie ma na liście, ponownie uruchom uszkodzoną usługę za pomocą

    $ systemctl restart systemd-modules-load
    
  3. Teraz mamy identyfikator procesu (PID), aby dokładnie zbadać ten błąd. Wpisz następujące polecenie z bieżącym identyfikatorem procesu (tutaj: 15630):

    $ journalctl _PID=15630
    ----------------------------------------------------------------------
    -- Logs begin at Sa 2013-05-25 10:31:12 CEST, end at So 2013-08-25 11:51:17 CEST. --
    Aug 25 11:48:13 mypc systemd-modules-load[15630]: Failed to find module 'blacklist usblp'
    Aug 25 11:48:13 mypc systemd-modules-load[15630]: Failed to find module 'install usblp /bin/false'
    
  4. Widzimy, że niektóre konfiguracje modułów jądra mają nieprawidłowe ustawienia. Dlatego przyglądamy się tym ustawieniom w /etc/modules-load.d/

    $ ls -Al /etc/modules-load.d/
    ----------------------------------------------------------------------
    ...  
    -rw-r--r--   1 root root    79  1. Dez 2012  blacklist.conf  
    -rw-r--r--   1 root root     1  2. Mär 14:30 encrypt.conf  
    -rw-r--r--   1 root root     3  5. Dez 2012  printing.conf  
    -rw-r--r--   1 root root     6 14. Jul 11:01 realtek.conf  
    -rw-r--r--   1 root root    65  2. Jun 23:01 virtualbox.conf  
    ...  
    
  5. Komunikat o błędzie „Nie można znaleźć modułu„ czarna lista usblp ”może być związany z niewłaściwym ustawieniem w pliku blacklist.conf. Dezaktywujmy to przez wstawienie końcowego # przed każdą opcją znalezioną w kroku 3:

    /etc/modules-load.d/blacklist.conf  
    ----------------------------------------------------------------------
    # blacklist usblp  
    # install usblp /bin/false  
    
  6. Teraz spróbuj uruchomić systemd-modules-load:

    $ systemctl restart systemd-modules-load  
    

    Jeśli się powiedzie, nie powinno to niczego zachęcać. Jeśli zauważysz jakiś błąd, wróć do kroku 3 i użyj nowego PID do rozwiązania pozostałych błędów.

    Jeśli wszystko jest w porządku, możesz sprawdzić, czy usługa została pomyślnie uruchomiona za pomocą:

    $ systemctl status systemd-modules-load
    ----------------------------------------------------------------------
    systemd-modules-load.service - Load Kernel Modules
       Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static)
       Active: active (exited) since So 2013-08-25 12:22:31 CEST; 34s ago
         Docs: man:systemd-modules-load.service(8)
               man:modules-load.d(5)
     Process: 19005 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=0/SUCCESS)
    Aug 25 12:22:31 mypc systemd[1]: Started Load Kernel Modules.
    
Rahul Chimazja
źródło
5
Świetna odpowiedź - _PID=teraz na zawsze będzie w moim zestawie narzędzi. Dzięki!
Adrian Günter
1
Niestety, moja /etc/modules-load.d/jest pusta i nadal wyświetla komunikat Nie udało się znaleźć modułu bla . Co teraz?
Adrian
2
Możesz także sprawdzić journalctl _SYSTEMD_UNIT=systemd-modules-load.service. Oszczędza patrząc na PID.
TwoD
2
Od użytkownika bobafetthotmail : poszukaj również /usr/lib/modules-load.d/modułów ładujących pliki, ponieważ tam, gdzie aplikacje umieszczają potrzebne moduły. Ma /etc/modules-load.d/to dotyczyć plików konfiguracyjnych użytkownika.
fixer1234