DKMS에 여러 모듈이 설정되어 있습니다.~해야 한다새 커널 버전이 자동으로 설치되지만 그렇지 않습니다. 나는 홈브류 DKMS 모듈 4개 모두에서 동일한 문제를 발견했습니다.
여기에 예가 있습니다.
파일 생성커널 모듈의 경우:
KERNEL_VERSION := $(shell uname -r)
KERNEL_MODULES := /lib/modules/$(KERNEL_VERSION)/build
hid-y := hid-core.o hid-input.o hid-debug.o hidraw.o
obj-m += hid-apple.o hid.o
all:
$(MAKE) -C $(KERNEL_MODULES) M=$(PWD) modules
clean:
$(MAKE) -C $(KERNEL_MODULES) M=$(PWD) clean
dkms.confDKMS 모듈의 경우:
MAKE="make KERNEL_VERSION=${kernelver} all"
CLEAN="make KERNEL_VERSION=${kernelver} clean"
BUILT_MODULE_NAME[0]=hid
BUILT_MODULE_NAME[1]=hid-apple
DEST_MODULE_LOCATION[0]='/kernel/drivers/hid'
DEST_MODULE_LOCATION[1]='/kernel/drivers/hid'
PACKAGE_NAME=hid-apple
PACKAGE_VERSION=2.0
REMAKE_INITRD=yes
AUTOINSTALL=yes
이 모듈은 DKMS에 설치됩니다.
sudo dkms status -m hid-apple -v 4.2
hid-apple, 4.2, 3.19.0-32-generic, x86_64: installed (original_module exists)
hid-apple, 4.2, 3.19.0-33-generic, x86_64: installed (original_module exists)
sudo dkms install hid-apple/4.2
3.19.0-33에서는 모듈 이 다시 작동하도록 하려면 모듈을 수동으로 다시 설치해야 했고 , 업그레이드할 때마다 해당 단계를 수동으로 수행해야 했습니다.
데비안 패키지로 만들어 설치 후 다음 스크립트를 실행했습니다.설치 후 스크립트:
#!/bin/sh
set -e
dkms_name="hid-apple"
dkms_version="4.2"
case "$1" in
configure)
# add
if ! dkms status -m $dkms_name -v $dkms_version | egrep '(added|built|installed)' >/dev/null ; then
# if it's not been added yet, add it
dkms add -m $dkms_name -v $dkms_version
fi
# build
if ! dkms status -m $dkms_name -v $dkms_version | egrep '(built|installed)' >/dev/null ; then
# if it's not been built yet, build it
dkms build $dkms_name/$dkms_version
fi
# install
if ! dkms status -m $dkms_name -v $dkms_version | egrep '(installed)' >/dev/null; then
# if it's not been installed yet, install it
dkms install $dkms_name/$dkms_version
fi
;;
*)
echo "postinst called with unknown argument: $1"
exit 1
;;
esac
#DEBHELPER#
exit 0
커널 업그레이드 중에 왜 설치되지 않았는지 잘 모르겠습니다. 어떤 아이디어가 있나요?