Depmod - Lệnh Linux - Lệnh Unix

Tên

depmod - xử lý các mô tả phụ thuộc cho các mô-đun hạt nhân có thể nạp được

Tóm tắc

depmod [-aA] [-ehnqrsuvV] [-C configfile ] [-F kernelsyms ] [-b thư mục dựa trên ] [ force_version ]
depmod [-enqrsuv] [-F kernelsyms ] module1.o module2.o ...

Sự miêu tả

Các tiện ích depmodmodprobe nhằm tạo ra một hạt nhân mô-đun Linux có thể quản lý được cho tất cả người dùng, quản trị viên và người bảo trì phân phối.

Depmod tạo ra một tập tin phụ thuộc giống như "Makefile", dựa trên các biểu tượng mà nó tìm thấy trong tập hợp các mô-đun được đề cập trên dòng lệnh hoặc từ các thư mục được chỉ định trong tệp cấu hình. Tệp phụ thuộc này sau này được modprobe sử dụng để tự động tải mô-đun chính xác hoặc chồng các mô-đun.

Việc sử dụng depmod thông thường là bao gồm dòng


/ sbin / depmod -a

một nơi nào đó trong các tập tin rc trong /etc/rc.d , để các phụ thuộc mô-đun chính xác sẽ có sẵn ngay lập tức sau khi khởi động hệ thống. Lưu ý rằng tùy chọn -a bây giờ là tùy chọn. Đối với mục đích khởi động, tùy chọn -q có thể phù hợp hơn vì điều này làm cho immod im lặng về các ký hiệu chưa được giải quyết.

Cũng có thể tạo tệp phụ thuộc ngay lập tức sau khi biên dịch hạt nhân mới. Nếu bạn làm " depmod -a 2.2.99 " khi bạn đã biên dịch hạt nhân 2.2.99 và các mô-đun của nó lần đầu tiên, trong khi vẫn chạy 2.2.98, tệp sẽ được tạo ở đúng vị trí. Tuy nhiên, trong trường hợp này, các phụ thuộc vào hạt nhân sẽ không được bảo đảm là chính xác. Xem các tùy chọn -F , -C-b ở trên để biết thêm thông tin về cách xử lý này.

Trong khi xây dựng mối quan hệ giữa các mô-đun và các biểu tượng được xuất bởi các mô-đun khác, depmod không xem xét trạng thái GPL của các mô-đun cũng như các ký hiệu đã xuất. Nghĩa là, depmod sẽ không gắn cờ lỗi nếu một mô-đun không có giấy phép tương thích GPL đề cập đến biểu tượng chỉ GPL (EXPORT_SYMBOL_GPL trong hạt nhân). Tuy nhiên insmod sẽ từ chối giải quyết các biểu tượng GPL chỉ cho các mô-đun không GPL để tải thực tế sẽ không thành công.

Tùy chọn

-a , --all

Tìm kiếm các mô-đun trong tất cả các thư mục được chỉ định trong tệp cấu hình (tùy chọn) /etc/modules.conf .

-A , --quick

So sánh dấu thời gian tệp và nếu cần, hãy hành động như depmod -a . Tùy chọn này chỉ cập nhật tệp phụ thuộc nếu mọi thứ đã thay đổi.

-e , --errsyms

Hiển thị tất cả các ký hiệu chưa được giải quyết cho từng mô-đun.

-h , --help

Hiển thị tóm tắt các tùy chọn và thoát ngay lập tức.

-n , --show

Viết tệp phụ thuộc vào stdout thay vì trong cây / lib / modules .

-q , --quiet

Yêu cầu depmod giữ im lặng và không phàn nàn về các ký hiệu bị thiếu.

-r , --root

Một số người dùng biên dịch các mô-đun dưới một userid không phải root, sau đó cài đặt các mô-đun như là người chủ. Quá trình này có thể để lại các mô-đun thuộc sở hữu của userid không phải root, mặc dù thư mục modules được sở hữu bởi root. Nếu userid không root bị xâm nhập, kẻ xâm nhập có thể ghi đè lên các module hiện có thuộc sở hữu của userid đó và sử dụng phơi sáng này để bootstrap đến quyền truy cập root.

Theo mặc định, modutils sẽ từ chối các nỗ lực sử dụng một mô-đun không thuộc sở hữu của root. Chỉ định -r sẽ ngăn chặn lỗi và cho phép root tải các mô-đun không thuộc sở hữu của root.

Sử dụng -r là một tiếp xúc an ninh lớn và không được khuyến cáo.

-s , --syslog

Viết tất cả các thông báo lỗi thông qua syslog daemon thay vì stderr.

-u , --không giải quyết được lỗi

depmod 2.4 không đặt mã trả về khi có bất kỳ ký hiệu chưa được giải quyết nào. Bản phát hành chính của modutils (2.5) tiếp theo sẽ thiết lập một mã trả về cho các ký hiệu chưa được giải quyết. Một số bản phân phối muốn mã trả về khác 0 trong modutils 2.4 nhưng thay đổi đó có thể gây ra vấn đề cho người dùng mong đợi hành vi cũ. Nếu bạn muốn mã trả về khác 0 trong depmod 2.4, chỉ rõ -u . depmod 2.5 sẽ âm thầm bỏ qua cờ -u và sẽ luôn cung cấp mã trả về khác 0 cho các ký hiệu chưa được giải quyết.

-v , - verbose

Hiển thị tên của mỗi mô-đun khi nó đang được xử lý.

-V , --version

Hiển thị phiên bản depmod .

Các tùy chọn sau hữu ích cho những người quản lý bản phân phối:

-b basedirectory , --basedir basedirectory

Nếu cây thư mục / lib / modules chứa các cây con của mô-đun được di chuyển đến nơi khác để xử lý các mô-đun cho môi trường khác, tùy chọn -b cho depmod biết nơi tìm hình ảnh đã di chuyển của cây / lib / modules . Tệp tham chiếu trong tệp đầu ra depmod được xây dựng, modules.dep , sẽ không chứa đường dẫn thư mục con. Điều này có nghĩa rằng khi cây tập tin được chuyển trở lại từ thư mục / lib / modules vào / lib / modules trong bản phân phối cuối cùng, tất cả các tham chiếu sẽ chính xác.

-C configfile , --config configfile

Sử dụng tệp configfile thay vì /etc/modules.conf . Biến môi trường MODULECONF cũng có thể được sử dụng để chọn một tệp cấu hình khác với /etc/modules.conf mặc định (hoặc /etc/conf.modules (không được chấp nhận)).

Khi biến môi trường

UNAME_MACHINE được thiết lập, modutils sẽ sử dụng giá trị của nó thay vì trường máy từ uname () syscall. Điều này chủ yếu được sử dụng khi bạn đang biên dịch các mô đun 64 bit trong không gian người dùng 32 bit hoặc ngược lại, đặt UNAME_MACHINE thành loại mô-đun đang được xây dựng. Các modut hiện tại không hỗ trợ chế độ xây dựng chéo đầy đủ cho các mô-đun, nó được giới hạn trong việc lựa chọn giữa các phiên bản 32 và 64 bit của kiến ​​trúc máy chủ.

-F kernelsyms , --filesyms kernelsyms

Khi xây dựng các tệp phụ thuộc cho một hạt nhân khác với hạt nhân hiện đang chạy, điều quan trọng là depmod sử dụng tập hợp các ký hiệu hạt nhân chính xác để giải quyết các tham chiếu hạt nhân trong mỗi mô-đun. Những biểu tượng này có thể là bản sao của System.map từ hạt nhân khác hoặc bản sao của đầu ra từ / proc / ksyms . Nếu hạt nhân của bạn sử dụng các ký hiệu được phiên bản, tốt nhất là sử dụng một bản sao của đầu ra / proc / ksyms , vì tệp đó chứa các phiên bản ký hiệu của các ký hiệu hạt nhân. Tuy nhiên, bạn có thể sử dụng System.map ngay cả với các ký hiệu được phiên bản.

Cấu hình

Hành vi của depmodmodprobe có thể được điều chỉnh bởi tập tin cấu hình (tùy chọn) /etc/modules.conf .
Xem modprobe (8) và modules.conf (5) để biết mô tả đầy đủ.

Chiến lược

Mỗi khi bạn biên dịch một hạt nhân mới, lệnh " make modules_install " sẽ tạo một thư mục mới, nhưng sẽ không thay đổi mặc định.

Khi bạn nhận được một mô-đun không liên quan đến sự phân bố hạt nhân, bạn nên đặt nó vào một trong các thư mục độc lập phiên bản trong / lib / modules .

Đây là chiến lược mặc định, có thể được ghi đè trong /etc/modules.conf .

Xem thêm

lsmod (8), ksyms (8)

Quan trọng: Sử dụng lệnh man ( % man ) để xem cách một lệnh được sử dụng trên máy tính cụ thể của bạn.