Porady Admina: dkms
Ostatnia aktualizacja: 27 września 2023, 10:40
W dzisiejszym tutorialu z cyklu Porady Admina zajmiemy się programem dkms.
DKMS (Dynamic Kernel Module Support) jest frameworkiem umożliwiającym aktualizację poszczególnych modułów jądra bez konieczności wymiany całego jądra. Ponadto bardzo ułatwia przebudowywanie modułów podczas aktualizacji jądra.
DKMS zapewnia obsługę instalowania dodatkowych wersji modułów jądra. Pakiet kompiluje się i instaluje w drzewie jądra. Odinstalowanie przywraca poprzednie moduły. Domyślnie instalacja odbywa się w bieżącym drzewie jądra, ale można wybrać dowolne drzewo jądra za pomocą opcji wiersza poleceń. Co więcej, DKMS jest wywoływany automatycznie po instalacji nowych pakietów obrazu jądra Ubuntu, dlatego moduły dodane do DKMS będą automatycznie przenoszone podczas aktualizacji.
Aby użyć modułu z DKMS, należy umieścić pliki instalacyjne modułu (mogą to być kod źródłowy lub plik binarny) w /usr/src/- wraz z plikiem konfiguracyjnym dkms.conf, który informuje DKMS, jak zbudować/skonfigurować moduł i jaka jest jego nazwa. W bardziej zaawansowanych scenariuszach instrukcje kompilacji warunkowej i łatanie mogą być wykonywane przez system dkms.
DKMS ma wiele korzyści dla społeczności dostawców usług linuxowych, np.:
– Z punktu widzenia programisty sterowników, pomaga w dodaniu sterowników, których nie ma jeszcze w jądrze podstawowym. Korzyści odnoszą także twórcy sterowników, od których wymaga się udostępniania zaktualizowanych sterowników urządzeń do testowania i powszechnego użytku na wielu różnych jądrach. Kolejną zaletą DKMS jest to, że programiści mogą testować uruchamianie kodu sterownika na różnych komputerach. W rzeczywistości przyspiesza to proces opracowywania sterowników.
– Z punktu widzenia administratora systemu DKMS upraszcza proces instalowania aktualizacji sterowników urządzeń do aktywnego jądra bez dodawania do niego żadnych zmian, dlatego nie muszą czekać na pojawienie się nowego jądra.
– Wybrane poprawki błędów lub łatki można wdrażać pomiędzy aktualizacjami o dużych rozmiarach.
– Nowy sprzęt wymagający modyfikacji w jednym module można łatwo zintegrować. Ponownie można to osiągnąć bez całkowitego testowania nowych jąder.
Pakiet dostępny jest w większości (jeśli nie we wszystkich) dystrybucjach Linux.
Składnia
/usr/sbin/dkms AKCJA OPCJE
AKCJA = add | remove | build | install | uninstall | match | autoinstall | mktarball | ldtarball | status
OPCJE = [-m module] [-v module-version] [-k kernel-version] [-a arch]
[-c dkms.conf-location] [-q] [–force] [–force-version-override] [–all]
[–templatekernel=kernel] [–directive=’cli-directive=cli-value’]
[–config=kernel-.config-location] [–archive=tarball-location]
[–kernelsourcedir=source-location]
[–binaries-only] [–source-only] [–verbose]
[–no-depmod] [–modprobe-on-install] [-j number] [–version]
Przykłady użycia
Lista aktualnie zainstalowanych modułów
dkms status
Odbuduj wszystkie moduły aktualnie działającego jądra
dkms autoinstall
Zainstaluj wersję 1.2.1 modułu acpi_call dla aktualnie działającego jądra
dkms install -m acpi_call -v 1.2.1
Usuń wersję 1.2.1 modułu acpi_call ze wszystkich jąder
dkms remove -m acpi_call -v 1.2.1 --all
Więcej informacji o programie dkms uzyskasz poleceniem:
man dkms