Skip to main content

编译一个Debian dkms 包

dkms usage:

dkms status # dkms status
sudo dkms add . # symlink current directory to /usr/src/lkm_example-0.1
sudo dkms build lkm_example/0.1 # dkms build ko
sudo dkms remove lkm_example/0.1 # dkms remove source code
sudo dkms install lkm_example/0.1 # dkms install ko
sudo dkms uninstall lkm_example/0.1 # dkms uninstall ko 

kernel module example code: https://github.com/peeweep/lkm_example

dkms.conf

PACKAGE_NAME="lkm_example"
PACKAGE_VERSION=0.1
BUILT_MODULE_NAME[0]="$PACKAGE_NAME"
MAKE[0]="make -C ${kernel_source_dir} M=${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build"
CLEAN="make -C ${kernel_source_dir} M=${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build clean"
DEST_MODULE_LOCATION[0]="/extra"
AUTOINSTALL=yes
# REMAKE_INITRD=yes
sudo git clone https://github.com/peeweep/lkm_example  /var/lib/dkms/lkm_example/0.1/source
sudo dkms mkdsc lkm_example/0.1 --source-only
uos@debian:~$ find /var/lib/dkms/lkm_example/0.1/dsc
/var/lib/dkms/lkm_example/0.1/dsc
/var/lib/dkms/lkm_example/0.1/dsc/lkm-example-dkms_0.1_source.changes
/var/lib/dkms/lkm_example/0.1/dsc/lkm-example-dkms_0.1.tar.gz
/var/lib/dkms/lkm_example/0.1/dsc/lkm-example-dkms_0.1.dsc
cd ~
cp -rv /var/lib/dkms/lkm_example/0.1/dsc ./
cd src
dpkg-source -x --skip-patches lkm-example-dkms_0.1.dsc

Ref: