http://launchpadlibrarian.net/349013047/dkms_2.3-3ubuntu4_all.deb
還有安裝一個必要套件 "debhelper"
在這列一下研究出來的 dkms.conf
---
MAKE="make -C src/ KERNELDIR=/lib/modules/${kernelver}/build"
DEST_MODULE_LOCATION="/kernel/drivers/hwmon"
CLEAN="make -C src/ clean"
BUILT_MODULE_NAME=it87
BUILT_MODULE_LOCATION=src/
PACKAGE_NAME=it87
PACKAGE_VERSION=1.0
REMAKE_INITRD=no
---
src/ 裡的檔案:
compat.h it87.c Makefile
Makefile內容:
---
TARGET := $(shell uname -r)
KERNEL_MODULES := /lib/modules/$(TARGET)
KERNEL_BUILD := /usr/src/linux-headers-$(TARGET)
SYSTEM_MAP := /boot/System.map-$(TARGET)
DRIVER := it87
MOD_SUBDIR = drivers/hwmon
obj-m := $(patsubst %,%.o,$(DRIVER))
obj-ko := $(patsubst %,%.ko,$(DRIVER))
MAKEFLAGS += --no-print-directory
.PHONY: all install modules modules_install clean
all: modules
modules clean:
@$(MAKE) -C $(KERNEL_BUILD) M=$(CURDIR) $@
install: modules_install
modules_install:
cp $(DRIVER).ko $(KERNEL_MODULES)/kernel/$(MOD_SUBDIR)
depmod -a -F $(SYSTEM_MAP) $(TARGET)
---
檔案一定要丟到 /usr/src/ 裡, 以下是我的內容, 版本為 1.0, 必需要有版本號. 以上沒提的檔案通通都可以忽略不用丟進去:
/usr/src/it87-1.0/
├── dkms.conf
├── ITE_Register_map.csv
├── ITE_Register_map.pdf
├── README
├── src
│ ├── compat.h
│ ├── it87.c
│ └── Makefile
└── TODO
這是 DKMS 一般的安裝手冊. 但是按照這個手冊跑, 它只是會編譯 .ko 檔跟安裝而已, 而我要的是每一次 upgrade kernel 時都要自己去編自己安裝...
https://help.ubuntu.com/community/DKMS
於是我簡化一下製作流程:
dkms add -m it87 -v 1.0
dkms build -m it87 -v 1.0
dkms mkdeb -m it87 -v 1.0
然後, 安裝已產生好的 deb:
dpkg -i /var/lib/dkms/it87/1.0/deb/it87-dkms_1.0_amd64.deb
沒有留言:
張貼留言