误删hid-redragon.ko等文件后,求助重新编译.ko文件的方法
恢复并编译hid-redragon.ko内核模块
1. 安装编译依赖
先确保系统具备编译内核模块的基础工具和依赖:
sudo apt install build-essential linux-image-$(uname -r)-generic linux-headers-$(uname -r) dkms
2. 获取hid-redragon驱动源码
hid-redragon是Linux内核自带的HID驱动,你可以通过以下方式获取对应内核版本的源码:
sudo apt source linux-image-$(uname -r)-generic
进入驱动所在目录:
cd linux-$(uname -r)/drivers/hid
该目录下的hid-redragon.c就是驱动源码。
3. 配置内核头文件编译环境
先确保内核头文件的配置与当前内核匹配:
sudo cp /boot/config-$(uname -r) /usr/src/linux-headers-$(uname -r)/.config cd /usr/src/linux-headers-$(uname -r) sudo make oldconfig sudo make prepare sudo make modules_prepare
4. 编译并安装模块
回到hid驱动目录,创建一个Makefile文件,内容如下:
obj-m += hid-redragon.o KDIR := /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) default: $(MAKE) -C $(KDIR) M=$(PWD) modules clean: $(MAKE) -C $(KDIR) M=$(PWD) clean
执行编译:
make
安装编译好的模块:
sudo make install
5. 多内核版本编译(可选)
如果需要为其他已安装的内核版本(如5.19.0-41-generic)编译模块,只需替换内核版本变量重复上述步骤:
# 替换为目标内核版本 export KERNEL_VERSION=5.19.0-41-generic # 配置对应内核头文件 sudo cp /boot/config-$KERNEL_VERSION /usr/src/linux-headers-$KERNEL_VERSION/.config cd /usr/src/linux-headers-$KERNEL_VERSION sudo make oldconfig sudo make prepare sudo make modules_prepare # 编译安装 cd /path/to/linux-$KERNEL_VERSION/drivers/hid make KDIR=/lib/modules/$KERNEL_VERSION/build sudo make install KDIR=/lib/modules/$KERNEL_VERSION/build
6. 验证模块加载
编译安装完成后,加载模块并检查状态:
sudo modprobe hid-redragon lsmod | grep hid_redragon
内容的提问来源于stack exchange,提问作者Nicholas Redi
相关产品推荐
相关产品推荐

