Nama
depmod - menangani deskripsi ketergantungan untuk modul kernel yang dapat dimuat
Ringkasan
depmod [-aA] [-ehnqrsuvV] [-C configfile ] [-F kernelsyms ] [-b basedirectory ] [ forced_version ]
depmod [-enqrsuv] [-F kernelsyms ] module1.o module2.o ...
Deskripsi
Utilitas depmod dan modprobe dimaksudkan untuk membuat kernel modular Linux dapat dikelola untuk semua pengguna, administrator dan pengelola distribusi.
Depmod membuat file dependensi mirip "Makefile", berdasarkan pada simbol yang ditemukan dalam set modul yang disebutkan di baris perintah atau dari direktori yang ditentukan dalam file konfigurasi. File dependensi ini kemudian digunakan oleh modprobe untuk memuat modul atau tumpukan modul secara otomatis.
Penggunaan normal depmod adalah untuk memasukkan garis
/ sbin / depmod -a
di suatu tempat di file-file rc di /etc/rc.d , sehingga dependensi modul yang benar akan tersedia segera setelah boot sistem. Perhatikan bahwa opsi -a sekarang opsional. Untuk tujuan boot-up, opsi -q mungkin lebih tepat karena itu membuat depmod diam tentang simbol yang belum terselesaikan.
Juga dimungkinkan untuk membuat file dependensi segera setelah kompilasi kernel baru. Jika Anda melakukan " depmod -a 2.2.99 " ketika Anda telah meng-compile kernel 2.2.99 dan modul-modulnya pertama kali, sementara masih menjalankan misalnya 2.2.98, file akan dibuat di tempat yang benar. Namun dalam kasus ini, dependensi pada kernel tidak akan dijamin benar. Lihat opsi -F , -C dan -b di atas untuk informasi lebih lanjut tentang penanganan ini.
Saat membangun hubungan antara modul dan simbol yang diekspor oleh modul lain, depmod tidak mempertimbangkan status GPL dari modul atau simbol yang diekspor. Artinya, depmod tidak akan menandai kesalahan jika modul tanpa lisensi GPL yang kompatibel merujuk ke simbol GPL saja (EXPORT_SYMBOL_GPL di kernel). Namun insmod akan menolak untuk menyelesaikan simbol GPL hanya untuk modul non-GPL sehingga beban sebenarnya akan gagal.
Pilihan
-a , --all
Cari modul di semua direktori yang ditentukan dalam file konfigurasi (opsional) /etc/modules.conf .
-A , --cepat
Bandingkan cap waktu file dan, jika perlu, bertindak seperti depmod -a . Opsi ini hanya memperbarui file dependensi jika ada yang berubah.
-e , --errsyms
Tampilkan semua simbol yang belum terselesaikan untuk setiap modul.
-h , --help
Tampilkan ringkasan opsi dan segera keluar.
-n , --show
Tuliskan file dependensi pada stdout, bukan di pohon / lib / modules .
-q , --quiet
Beritahu depmod untuk tetap diam dan jangan mengeluh tentang simbol yang hilang.
-r , --root
Beberapa pengguna mengkompilasi modul di bawah userid non-root kemudian menginstal modul sebagai root. Proses ini dapat meninggalkan modul yang dimiliki oleh userid non-root, meskipun direktori modul dimiliki oleh root. Jika userid non-root dikompromikan, penyusup dapat menimpa modul yang ada yang dimiliki oleh userid itu dan menggunakan eksposur ini untuk bootstrap ke akses root.
Secara default, modutils akan menolak upaya untuk menggunakan modul yang tidak dimiliki oleh root. Menentukan -r akan menekan kesalahan dan memungkinkan root untuk memuat modul yang tidak dimiliki oleh root.
Penggunaan -r adalah paparan keamanan utama dan tidak disarankan.
-s , --syslog
Tulis semua pesan kesalahan melalui daemon syslog alih-alih stderr.
-u , --unresolved-error
depmod 2.4 tidak menetapkan kode kembali ketika ada simbol yang belum terselesaikan. Rilis utama berikutnya dari modutils (2.5) akan menetapkan kode kembali untuk simbol yang belum terselesaikan. Beberapa distribusi menginginkan kode kembali non-nol dalam modutils 2.4 tetapi perubahan itu dapat menyebabkan masalah bagi pengguna yang mengharapkan perilaku lama. Jika Anda menginginkan kode kembali non-nol dalam depmod 2.4, tentukan -u . depmod 2.5 akan diam-diam mengabaikan tanda -u dan akan selalu memberikan kode kembali non-nol untuk simbol yang belum terselesaikan.
-v , - verbose
Tunjukkan nama setiap modul saat sedang diproses.
-V , --versi
Tampilkan versi depmod .
Opsi berikut berguna untuk orang yang mengelola distribusi:
-b berbasis direktori , direktori berbasis -basedir
Jika pohon direktori / lib / modul berisi sub-tree modul dipindahkan ke tempat lain untuk menangani modul untuk lingkungan yang berbeda, opsi -b memberi tahu depmod di mana menemukan gambar bergerak dari pohon / lib / modules . Referensi file dalam file output depmod yang dibangun, modules.dep , tidak akan berisi jalur direktori . Ini berarti bahwa ketika pohon file dipindahkan kembali dari direktori / lib / modules ke dalam / lib / modul dalam distribusi akhir, semua referensi akan benar.
-C configfile , --config configfile
Gunakan file configfile sebagai ganti dari /etc/modules.conf . Variabel lingkungan MODULECONF juga dapat digunakan untuk memilih file konfigurasi yang berbeda dari default /etc/modules.conf (atau /etc/conf.modules (deprecated)).
Ketika variabel lingkungan
UNAME_MACHINE diset, modutils akan menggunakan nilainya sebagai ganti bidang mesin dari syscall uname (). Ini terutama digunakan ketika Anda menyusun modul 64 bit di ruang pengguna 32 bit atau sebaliknya, atur UNAME_MACHINE ke jenis modul yang sedang dibangun. Modutils saat ini tidak mendukung mode full cross build untuk modul, terbatas untuk memilih antara versi 32 dan 64 bit dari arsitektur host.
-F kernelsyms , --fileyms kernelsyms
Ketika membangun file dependensi untuk kernel yang berbeda dari kernel yang sedang berjalan, penting bahwa depmod menggunakan kumpulan simbol kernel yang benar untuk menyelesaikan referensi kernel di setiap modul. Simbol-simbol ini bisa berupa salinan System.map dari kernel lain, atau salinan output dari / proc / ksyms . Jika kernel Anda menggunakan simbol berversi, sebaiknya gunakan salinan output / proc / ksyms , karena file tersebut berisi versi simbol dari simbol kernel. Namun Anda dapat menggunakan System.map bahkan dengan simbol berversi.
Konfigurasi
Perilaku depmod dan modprobe dapat disesuaikan dengan file konfigurasi (opsional) /etc/modules.conf .
Lihat modprobe (8) dan modules.conf (5) untuk deskripsi lengkap.
Strategi
Setiap kali Anda mengkompilasi kernel baru, perintah " make modules_install " akan membuat direktori baru, tetapi tidak akan mengubah default.
Ketika Anda mendapatkan modul yang tidak terkait dengan distribusi kernel, Anda harus menempatkannya di salah satu direktori independen-versi di bawah / lib / modules .
Ini adalah strategi default, yang dapat di-override di /etc/modules.conf .
Lihat juga
Penting: Gunakan perintah man ( % man ) untuk melihat bagaimana perintah digunakan pada komputer khusus Anda.