DKMS làm gì? Làm thế nào để tôi sử dụng nó?


23

Gần đây tôi đã thấy một vài đề cập về DKMS nhưng không rõ nó thực sự đang làm gì trên hệ thống của tôi.

DKMS thực sự làm gì và làm thế nào để tôi sử dụng nó?

Câu trả lời:


25

Gói DKMS (Hỗ trợ mô-đun hạt nhân động) ( http://linux.dell.com/dkms/ ) cung cấp hỗ trợ để cài đặt các phiên bản bổ sung của mô-đun hạt nhân. Gói biên dịch và cài đặt vào cây kernel. Gỡ cài đặt khôi phục các mô-đun trước đó. Theo mặc định, cài đặt vào cây nhân hiện tại, nhưng bất kỳ cây nhân nào cũng có thể được chọn với các tùy chọn dòng lệnh. Hơn nữa, DKMS được gọi tự động khi cài đặt các gói hình ảnh hạt nhân Ubuntu mới, và do đó các mô-đun được thêm vào DKMS sẽ được tự động chuyển qua các bản cập nhật.

Tổng quan

Để sử dụng mô-đun với DKMS, người ta đặt các tệp cài đặt mô-đun (có thể là mã nguồn hoặc nhị phân) vào / usr / src / -, cùng với tệp cấu hình dkms.conf cho DKMS biết cách xây dựng / định cấu hình mô-đun và những gì tên là. Trong các kịch bản nâng cao hơn, các hướng dẫn xây dựng và vá lỗi có điều kiện có thể được thực hiện bởi hệ thống dkms, nhưng xem xét về trường hợp của bạn, điều này có thể không cần thiết.

Đi qua

Giả sử bạn muốn cài đặt một mô-đun cho "Bộ điều hợp tuyệt vời". Bạn được cung cấp một nguồn tarball awesome-20091211-v1.1.tgz.

Với DKMS, chúng tôi cho DKMS biết cách thực hiện điều đó cho bạn bằng cách tạo tệp dkms.conf với các mục thích hợp. Ví dụ: sau khi chúng tôi giải nén tarball:

# cd awesome-20091211-v1.1/
# touch dkms.conf 
# create dkms.conf file
# vi dkms.conf

Bên trong dkms.conf, chúng tôi có thể thêm các dòng:

MAKE="make -C src/ KERNELDIR=/lib/modules/${kernelver}/build"
CLEAN="make -C src/ clean"
BUILT_MODULE_NAME=awesome
BUILT_MODULE_LOCATION=src/
PACKAGE_NAME=awesome
PACKAGE_VERSION=1.1
REMAKE_INITRD=yes

Tất cả các thư mục liên quan đến vị trí của tệp dkms.conf. Điều này nói với DKMS

  1. Lệnh xây dựng mô-đun (chạy make trong thư mục src /).
  2. Lệnh để làm sạch cây nguồn (chạy make trong thư mục src /).
  3. Tên của mô-đun không có phần mở rộng .o hoặc .ko. Đây thực sự có thể là một mảng các mô-đun nếu nhiều mô-đun được xây dựng, xem man dkms.
  4. Nơi DKMS có thể tìm thấy mô-đun được xây dựng.
  5. Tên và phiên bản DKMS nên liên kết với (các) mô-đun.
  6. Để làm lại hình ảnh initrd sau khi cài đặt mô-đun.

Bạn cũng có thể thêm các tùy chọn để gọi các tập lệnh trước hoặc sau khi xây dựng hoặc cài đặt, cung cấp các lệnh tạo (điều kiện) bổ sung, lệnh vá, v.v. Nếu cần. Các tùy chọn này và nhiều tùy chọn khác được mô tả trong phần dkms.conf trong man dkms.

Tiếp theo, chúng tôi cài đặt mô-đun vào DKMS bằng cách sao chép các tệp cài đặt mô-đun vào cây nguồn / usr / src / - và nói với DKMS về mô-đun mới:

# ls
    README dkms.conf lib src
# sudo cp -R . /usr/src/awesome-1.1
# sudo dkms add -m awesome -v 1.1
    dkms does its thing...

Đó là nó! DKMS hiện đã thêm mô-đun của chúng tôi vào danh sách các mô-đun để xây dựng cho các cài đặt kernel trong tương lai. Để đảm bảo nó hoạt động và để cài đặt mô-đun vào kernel hiện tại của chúng tôi, chúng tôi có thể hướng dẫn dkms xây dựng và cài đặt mô-đun:

# sudo dkms build -m awesome -v 1.1
    dkms does its thing.... watch for build errors... you may need to tweak dkms.conf
# sudo dkms install -m awesome -v 1.1
    dkms does its thing.... module is copied into current kernel module tree

Nếu may mắn, mô-đun của bạn sẽ được cài đặt và cài đặt lại vào các bản cập nhật kernel trong tương lai.

Ví dụ

Các trang người đàn ông DKMS có thông tin hữu ích về việc thiết lập mô-đun hạt nhân ưa thích của bạn để sử dụng với DKMS. Nó không phải là tài liệu toàn diện, nhưng nó sẽ trả lời rất nhiều câu hỏi. Nó có thể giúp bạn lưu ý các ví dụ sau, ngay cả khi các mô-đun được sử dụng không phải là mô-đun bạn muốn thiết lập:

  • RocketRaid - Hai ví dụ về cách thiết lập trình điều khiển RocketRaid Highpoint RR26xx và RR62x với DKMS.

Từ: help.ubfox.com

Tìm thêm thông tin tại đây:


2
FWIW, dự án DKMS có một ngôi nhà mới trên Github github.com/dell/dkms
DDay
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.