Suport pentru modulul kernel dinamic (în engleză)

Suportul dinamic al modulelor kernel (DKMS) este un cadru care este utilizat pentru a genera acele module kernel Linux care nu sunt în general incluse în arborele sursă. DKMS permite driver-elor de dispozitiv să se refacă automat când nucleul este deja instalat.







Aceasta înseamnă că utilizatorul nu poate aștepta ca o companie, un proiect sau un întreținător de pachete să elibereze o nouă versiune a modulului. După introducerea Pacman # Hooks, modulele sunt reconstruite automat în timpul actualizării kernel-ului.

Instalați pachetul dkms și fișierele de antet ale kernel-ului (linux-headers - fișierele antetului de bază ale kernel-ului).

Un număr semnificativ de module care nu sunt incluse în kernel au o opțiune DKMS; unele dintre ele sunt plasate în depozite oficiale. dar cele mai multe dintre acestea pot fi găsite numai în AUR. Următoarele sunt pachetele care au versiunea DKMS:

actualizarea

Notă: pacman nu ia în considerare dependențele la re-compilarea modulelor DKMS. În consecință, acest lucru va duce la erori în timpul asamblării, dacă un modul DKMS depinde de altul (de exemplu, zfs-dkms AUR). Vedeți următorul raport de eroare FS # 52901. Selecția AUR dkms adăugată oferă suport experimental pentru astfel de dependențe; Din punct de vedere tehnic, acesta este un înlocuitor pentru pachetul `dkms`. Cea mai ușoară modalitate de a încerca este să instalați AUR ordonat dkms înainte de a instala module DKMS.

În mod tipic, reconfigurarea modulelor DKMS în timpul actualizării kernel-ului este efectuată fără probleme, dar ceva poate merge prost. Acordați o atenție deosebită output-ului pacman. Acest lucru se aplică în special acelor sisteme care solicită modulul DKMS să ruleze cu succes și / sau dacă utilizați DKMS cu kernelul nu din depozitele oficiale.

utilizarea

Utilizați DKMS manual.

Completarea tabelului va fi disponibilă după executarea comenzii:

Lista modulelor

Pentru a vedea starea actuală a modulelor, versiunilor și a nucleelor ​​din interiorul arborelui, executați:

Reasamblarea modulelor

Reconstruiți toate modulele pentru kernelul actual:

sau pentru un anumit kernel:







Construiți un modul specific pentru kernelul curent:

Construirea modulului pentru toate miezurile:

Demontarea modulelor

Demontarea modulului (cele vechi nu sunt șterse automat):

Dacă pachetul dkms este șters, informațiile despre fișierele anterioare de construire ale modulului se pierd. În acest caz, accesați directorul / usr / lib / modules / KERNELVERSION-ARCH și ștergeți fișierele și / sau folderele care nu mai sunt utilizate.

Crearea unui pachet DKMS

Iată câteva recomandări pe care trebuie să le urmați atunci când creați un pachet DKMS.

Numele pachetului

DKMS pachetele sunt desemnate prin atribuirea "-dkms" numele pachetului original.

Variabila $ _pkgname este adesea folosită după $ pkgname. pentru a descrie numele pachetului fără "-dkms" (de exemplu, _pkgname = $). Acest lucru este util pentru a menține asemănarea dintre pachetul original PKGBUILD și opțiunea DKMS.

în funcție de

Dependențele trebuie moștenite din pachetul original, cu adăugarea dkms și eliminarea linux-headers (deoarece este specificat în pachetul dkms ca opțional).

Construirea unui director pentru fișierele sursă

Fișierele sursă trebuie să fie asamblate în (directorul de instalare implicit):

În directorul în care sunt stocate pachetele, configuratorul DKMS îi spune DKMS cum se construiește modulul (dkms.conf), inclusiv variabilele PACKAGE_NAME și PACKAGE_VERSION.

  • PACKAGE_NAME este numele proiectului (de obicei $ _pkgname sau $ _pkgbase).
  • PACKAGE_VERSION - prin acord, aceasta ar trebui să fie, de asemenea, $ pkgver.

Aplicarea de patch-uri

Puteți aplica patch-uri direct la PKGBUILD sau prin dkms.conf la fișierele sursă.

Încărcarea modulului automat în .install

Modulele de încărcare și descărcare trebuie lăsate utilizatorului. Având în vedere că modulul se poate prăbuși atunci când acesta este cizme.

În plus, nu este nevoie să rulați depmod de fiecare dată. pentru a actualiza dependențele modulului de kernel. Pacman solicită automat instalarea dkms și eliminarea dkms. ca un cârlig. Instalarea dkms asigură că depmod-ul va fi pornit când procesul este terminat. dkms install depinde de construirea dkms (pentru a construi sursa pentru kernelul curent), care la rândul său depinde de dkms add (pentru a crea o legătură simbolică cu / var / lib / dkms /// sursă în / usr / src / ).

Rezultatul la ieșire

Folosind namcap (un instrument care încearcă să verifice erorile comune și soluțiile nestandard în pachet) este o practică bună, ar trebui să verificați cel puțin fiecare pachet cu acest instrument; totuși, acesta nu a fost încă actualizat pentru utilizarea cu pachete specifice DKMS.

De exemplu, DKMS utilizează / usr / src / implicit. dar Namcap crede că acesta este un director non-standard, acesta este un pic contradictoriu cu link-ul.

Iată un exemplu de pachet care editează dkms.conf în funcție de numele și versiunea pachetului.

Acum, în pacman există cârlige DKMS, deci nu este necesar să specificați o configurație specifică DKMS în fișierul .install. dkms install și dkms remove va fi apelat automat.

Vezi de asemenea







Trimiteți-le prietenilor: