新しいカーネルバージョンにはインストールできませんか?

新しいカーネルバージョンにはインストールできませんか?

DKMSに複数のモジュールが設定されています。しなければならない新しいカーネルバージョンは自動的にインストールされますが、そうではありません。私は4つのホームブレーキDKMSモジュールで同じ問題を見つけました。

ここに例があります。

ファイルの生成カーネルモジュールの場合:

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.23.19.0-33では、モジュールが再び動作するようにモジュールを手動で再インストールする必要があり、アップグレードするたびにその手順を手動で実行する必要がありました。

Debianパッケージで作成し、インストール後に次のスクリプトを実行しました。インストール後のスクリプト:

#!/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

カーネルのアップグレード中になぜインストールされなかったのかわかりません。どんなアイデアがありますか?

ベストアンサー1

おすすめ記事