DKMS ma wiele korzyści dla społeczności dostawcy usług Linux, E.G.:
Co obejmiemy?
W tym przewodniku omówi różne terminologie związane z jądrem, a konkretnie DKMS.
Szybki przegląd terminologii
Jakie jest jądro Linux?
Jest to podstawowa część systemu systemu systemu linii. Jest to główny interfejs między procesami działającymi na systemie operacyjnym a jego sprzętem. Zarządza głównymi funkcjami, takimi jak zarządzanie pamięcią, zarządzanie procesami, zarządzanie procesorem, zarządzanie sterownikami urządzeń oraz połączenia systemowe i zarządzanie bezpieczeństwem.
Przestrzeń jądra
Jądro jest faktycznie ukryte przed użytkownikiem i działa na swoim obszarze o nazwie Kernel Space. Użytkownik wchodzi w interakcje z jądrem za pomocą aplikacji użytkownika, takich jak przeglądarka plików, przeglądarka internetowa itp. Te interakcje wykorzystują określoną konstrukcję programowania o nazwie System Call.
Drzewo źródła jądra
Ma cały kod źródłowy dla sterowników jądra i urządzeń. Składa się z wielu katalogów i podkatalogów, takich jak Arch, blok, krypto, w tym init, lib, usr itp.
Moduły jądra Linux
Moduły jądra Linux to w zasadzie fragmenty kodu. Można je dodać i usuwać z jądra zgodnie z wymogiem. Mogą być wbudowane lub załadowane. Moduł jądra zwiększa funkcje jądra bez konieczności ponownego uruchomienia systemu. W przeciwieństwie do Micokernels, gdzie dodanie nowych komponentów do jądra wymaga konfiguracji i budowy nowego jądra, możemy ładować i rozładowywać komponenty lub moduły systemu operacyjnego w czasie wykonywania. Te moduły to sterowniki urządzeń, systemy plików itp.
Po załadowaniu modułu jest to jak kawałek kodu jądra. Ma takie same przywileje i obowiązki jak normalny kod jądra.
Definicja DKMS
Oto fragment definicji DKMS, którą znalazłem tutaj:
„DKMS to struktura, w której źródło sterownika urządzenia może znajdować się poza drzewem źródłowym jądra, dzięki czemu bardzo łatwo jest odbudować moduły podczas aktualizacji ziaren."
Opracujmy powyższe. System DKMS jest drzewem z podstawowego drzewa jądra na ziemi. Zawiera źródło modułu i skompilowane binaria modułu. W wyniku tej replikacji moduły nie są sprzężone z jądrem. (Chociaż moduły nie są całkowicie oddzielone).
Po raz pierwszy spotkałem koncepcję DKMS, kiedy kupiłem laptopa HP i zainstalowałem Ubuntu 18.04 na nim. Wszystko działało dobrze, z wyjątkiem mojego Wi -Fi. Mój laptop nie był w stanie zlokalizować żadnego adaptera Wi -Fi. W ustawieniach menu Wi -Fi wyświetliło wiadomość „Nie znaleziono adaptera Wi -Fi". Zacząłem szukać forów w Internecie i odkryłem, że wiele osób doświadczyło tego samego problemu. Znalazłem wiele rozwiązań sugerujących instalację plików nagłówka, sterowników i innych pakietów.
Po prostu ślepo śledziłem tych przewodników, nie wiedząc, co tak naprawdę chcieli przekazać. W każdym razie ci przewodnicy mi pomogli i jakoś dostałem WIFI. Ale problem polegał na tym, że za każdym razem, gdy aktualizowałem mój system Ubuntu, powstał ten sam problem i musiałem powtórzyć te same kroki polegające na ponownej kompilacji pobranych sterowników. Muszę też naprawić problem z niskim sygnałem za każdym razem po zainstalowaniu sterownika. Nawet zainstalowałem system systemu Windows i, ku mojemu zaskoczeniu, Wi -Fi faktycznie działało bezbłędnie. Ale i tak muszę użyć Ubuntu do mojej pracy. Postanowiłem więc żyć z tymczasową łatką, którą dostałem wcześniej.
DKM przychodzi na ratunek
Niedawne rozwiązanie, na którym właśnie się natknąłem. Zamiast używać robić Lub Zrób instalację Polecenie, DKM wykonuje trzy operacje w kodzie źródłowym: Dodaj, zbuduj i zainstaluj.
Za pomocą DKMS
Aby DKM działał, źródło modułu powinno być obecne w systemie, w którym budujemy moduł, a ścieżka lokalizacji powinna być jak '/usr/src/-/' I pamiętaj, że jest to pierwszy wymóg DKMS. Innym wymogiem jest plik o nazwie „DKMS.conf ', który poprowadzi sposób budowy i instalacji modułu. I po prostu wspomnieć, DKMS powinien być już zainstalowany w systemie. Gdy wszystko zostanie na miejscu, możemy dodać moduł do drzewa DKMS.
Zobaczmy te kroki, instalując moduł demo „Demo-v0.1.smoła.GZ ' Z DKMS. Robimy tę próbkę, służy tylko do zrozumienia, jak działa DKMS. Po wyodrębnianiu pliku musimy 'płyta CD' w środku tego:
# CD Demo-V0.1/Teraz utwórz DKMS.conf Plik zawierający następujące wiersze:
Make = "make -c src/kerneldir =/lib/module/$ kernelver/build"Teraz nasz DKMS.conf Plik jest gotowy, możemy dodać nasz moduł demo jako:
# DKMS Dodaj -m demo -v 0.1Piękno DKMS polega na tym, że możemy określić wersję jądra, na podstawie której chcemy zbudować lub moduł, jak pokazano tutaj:
# DKMS Build -m Demo -v 0.1 -K 5.13.0-27Jeśli nie określimy jądra, DKMS zbuduje moduł z bieżącą wersją jądra.
Jeśli wszystko pójdzie dobrze, możemy teraz zainstalować moduł za pomocą:
# DKMS instaluj -m demo -v 0.1Jeśli uaktualnimy nasze jądro lub zmienimy architekturę sprzętu, moduł musi zostać ponownie odbudowany ręcznie. Za pomocą DKMS procedura ta staje się zbędna, ponieważ DKM dynamicznie buduje te moduły jądra dla każdego jądra obecnego w systemie.
Wniosek
Narzędzia takie jak DKMS bardzo pomogły administratorom, programistom kierowcy i in. Podczas gdy użytkownicy końcowi nie dbają o to, jak działają system podstawowy, dopóki ich cele nie zostaną osiągnięte, DKMS pozwala programistom i administratorom skupić się na pracy.