Linux-source -... memiliki modul yang dinonaktifkan di config /boot/config-3.4-trunk-686-pae sehingga itu bukan bagian dari linux-image -... (Ini ada di Debian, tetapi solusinya harus sama untuk Ubuntu, atau?), mis
# CONFIG_CAN_PEAK_USB is not set
Bagaimana seseorang mengkompilasi modul kernel saja, sehingga dapat digunakan dengan kernel terdistribusi?
Paket linux-source -... masing-masing sudah diinstal, tidak terkompresi, dan ditautkan ke / usr / src / linux. /boot/config-3.4-trunk-686-pae disalin ke /usr/src/linux/.config dan dimodifikasi dengan
CONFIG_CAN_PEAK_USB=m
Dengan
make
make modules
dimungkinkan untuk mengkompilasi kernel dan semua modul. Tetapi bagaimana seseorang hanya mengkompilasi modul tunggal tertentu?
(Catatan: juga kebutuhan kernel untuk dikompilasi sebelumnya, jika tidak, anda mendapatkan error berikut: no symbol version for module_layout
)
depmod -a
sebelumnyamodbrobe
?Jawaban:
Saya memiliki masalah yang sama. Saya berasumsi bahwa Anda tidak hanya perlu menyalin .config tetapi juga Module.symvers
langkah saya untuk mengkompilasi modul ft1000 (menjalankan Debian Wheeze 7.1.0; kernel 3.2.0-4-686-pae):
sumber
make M=/path/to/module
yang sepertinya berfungsi.Dari dalam direktori sumber tingkat atas, cukup berikan jalur ke nama modul atau direktori modul, misalnya:
atau untuk contoh yang lebih sederhana (driver Intel e1000 Ethernet):
sumber
make drivers/net/can/usb/peak_usb/pcan_usb.ko
apakah hanya membangun pcan_usb.o. Melakukanmake drivers/net/can/usb/peak_usb/ && make drivers/net/can/usb/peak_usb/pcan_usb.ko
kompilasi, tetapi insmod mengeluhError: could not insert module drivers/net/can/usb/peak_usb/peak_usb.ko: Invalid module format
. dmesg:peak_usb: no symbol version for module_layout
modprobe
juga.make modules SUBDIRS=drivers/net/can/usb/peak_usb
subdir atau lainnya. Ini berfungsi dengan baik di sini.Sesederhana: (contoh ini mengilustrasikan driver ft1000, ini hanya membutuhkan beberapa menit jika bukan instants)
Anda kemudian dapat memuat modul dengan
modprobe
setelahdepmod
Catatan: tergantung pada ketergantungan modul Anda mungkin perlu membangun kembali kernel sepenuhnya
sumber