Создание DKMS без значимой ошибки

Я пытаюсь включить модуль ядра, который у меня есть у устройства, для работы с DKMS. Я могу успешно создать модуль и вручную установить его и включить. Но при использовании DKMS получите ошибку, которая мне никак не помогает:

$ sudo dkms build -m biokernbase -v 3.1.2.1 Kernel preparation unnecessary for this kernel. Skipping... Building module: cleaning build area.... make KERNELRELEASE=3.13.0-123-generic all KVERSION=3.13.0-123-generic DKMS=y .... .ko failed for: 3.13.0-123-generic (x86_64) Consult the make.log in the build directory /var/lib/dkms/biokernbase/3.1.2.1/build/ for more information.

make.log

DKMS make.log for biokernbase-3.1.2.1 for kernel 3.13.0-123-generic (x86_64) Wed Dec 13 17:22:51 CET 2017 make -C /lib/modules/3.13.0-123-generic/build M=/var/lib/dkms/biokernbase/3.1.2.1/build modules make[1]: Entering directory `/usr/src/linux-headers-3.13.0-123-generic' CC [M] /var/lib/dkms/biokernbase/3.1.2.1/build/main.o CC [M] /var/lib/dkms/biokernbase/3.1.2.1/build/event.o CC [M] /var/lib/dkms/biokernbase/3.1.2.1/build/usbreader.o CC [M] /var/lib/dkms/biokernbase/3.1.2.1/build/memory.o CC [M] /var/lib/dkms/biokernbase/3.1.2.1/build/misc.o CC [M] /var/lib/dkms/biokernbase/3.1.2.1/build/isa.o LD [M] /var/lib/dkms/biokernbase/3.1.2.1/build/biokernbase.o Building modules, stage 2. MODPOST 1 modules CC /var/lib/dkms/biokernbase/3.1.2.1/build/biokernbase.mod.o LD [M] /var/lib/dkms/biokernbase/3.1.2.1/build/biokernbase.ko make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-123-generic'

make.log

PACKAGE_NAME="biokernbase" PACKAGE_VERSION="3.1.2.1" CLEAN="make clean DKMS=y" MAKE[0]="make all KVERSION=$kernelver DKMS=y" BUILT_MODULE_NAME[0]="biokernbase" DEST_MODULE_LOCATION[0]="/kernel/drivers/misc" AUTOINSTALL="yes"

Makefile

DRV_NAME := biokernbase DRV_PATH := daqnavi KVERSION := $(shell uname -r) KDIR := /lib/modules/$(KVERSION)/build BASE_DIR := /usr/lib/daqnavi obj-m := $(DRV_NAME).o $(DRV_NAME)-objs := main.o event.o usbreader.o memory.o misc.o isa.o EXTRA_CFLAGS += -I$(BASE_DIR)/include -I$(BASE_DIR)/include/hw -I$(BASE_DIR)/include/linux SYMBOL_PATH = $(BASE_DIR)/modules all: $(MAKE) -C $(KDIR) M=$(PWD) modules clean: $(MAKE) -C $(KDIR) M=$(PWD) clean rm -f *.o *~ .depend .*.cmd *.ko *.mod.c .tmp_versions modules.order Module.symvers

Makefile

Я сейчас на Ubuntu 14.04.5 LTS с ядром 3.13 .0-123-generic.

Документация поставщика утверждает совместимость с Ubuntu 12.04 / 14.04 / 15.10, версия ядра 3.2 / 3.13 / 4.2.

Когда я вручную копирую biokernbase.ko построенный dkms до /lib/modules/3.13.0-123-generic/kernel/drivers/misc/, модуль ядра, кажется, успешно загружен:

$ sudo modprobe biokernbase; echo $? 0

Любые идеи или подсказки очень ценятся.

0
задан 15 December 2017 в 13:47

4 ответа

Удалите скопированную вручную biokernbase.ko из /lib/modules/3.13.0-123-generic/kernel/drivers/misc/.

Измените dkms.conf как это ... (сохраните исходный файл как .bak) ...

PACKAGE_NAME="biokernbase" PACKAGE_VERSION="3.1.2.1" CLEAN="make clean" MAKE[0]="'make' all KVER=${kernelver}" BUILT_MODULE_NAME[0]="biokernbase" DEST_MODULE_LOCATION[0]="/updates/dkms" AUTOINSTALL="yes"

Еще раз выполните sudo dkms build и проверьте, устраняет ли это проблему.

0
ответ дан 18 July 2018 в 01:15

Я работал с этим точно таким же модулем (от Advantech). Я обнаружил, что в их включенном dkms.conf есть некоторые обратные каретки, которые привели к ошибке в сценарии dkms. Попробуйте запустить dos2unix на dkms.conf или иначе убедитесь, что нет нежелательных пробельных символов.

0
ответ дан 18 July 2018 в 01:15

Удалите скопированную вручную biokernbase.ko из /lib/modules/3.13.0-123-generic/kernel/drivers/misc/.

Измените dkms.conf как это ... (сохраните исходный файл как .bak) ...

PACKAGE_NAME="biokernbase" PACKAGE_VERSION="3.1.2.1" CLEAN="make clean" MAKE[0]="'make' all KVER=${kernelver}" BUILT_MODULE_NAME[0]="biokernbase" DEST_MODULE_LOCATION[0]="/updates/dkms" AUTOINSTALL="yes"

Еще раз выполните sudo dkms build и проверьте, устраняет ли это проблему.

0
ответ дан 24 July 2018 в 17:22

Я работал с этим точно таким же модулем (от Advantech). Я обнаружил, что в их включенном dkms.conf есть некоторые обратные каретки, которые привели к ошибке в сценарии dkms. Попробуйте запустить dos2unix на dkms.conf или иначе убедитесь, что нет нежелательных пробельных символов.

0
ответ дан 24 July 2018 в 17:22
  • 1
    Интересный намек, я попробую, когда у меня будет такая возможность. В настоящее время я запускаю собственную интеграцию в ящики для установки / удаления – Hurzelchen 16 July 2018 в 23:39

Другие вопросы по тегам:

Похожие вопросы: