我已经安装了一个 *.ko 驱动程序(从源代码构建),并将其放置在/etc/modules
重新启动后,驱动程序加载失败,我注意到我实际上正在运行一个新内核(可能是在软件中心上次更新时更改的)。
我不知怎的感觉到有一种方法可以使得每次内核更新时都安装驱动程序,而无需我手动执行此操作。
那么,我该怎么做呢?
答案1
如果你有驱动程序的源代码(你没有在帖子中明确说明),那么你需要重新编译它。有一个应用程序可以帮你解决这个问题,它叫做陣容为了Dynamic Kernel Module Support
。
基本上,您需要做的是dkms.conf
在解压软件包后创建的目录中创建一个文件,然后将以下几行放入dkms.conf
文件中:
PACKAGE_NAME=r8168
PACKAGE_VERSION=8.032.00
MAKE[0]="'make'"
BUILT_MODULE_NAME[0]=r8168
BUILT_MODULE_LOCATION[0]="./"
DEST_MODULE_LOCATION[0]="/kernel/updates/dkms"
AUTOINSTALL="YES"
目录由其相对路径标识;该相对路径的来源是文件所在的目录dkms.conf
。请记住检查 make 命令是否正确,您必须根据每个软件包中包含的常规 README.txt 文件检查它们。
现在,我们始终从此目录将所有内容复制到其目标目录:
sudo cp -R . /usr/src/r8168-8.032.00/
最后,你告诉dkms
它做它的事情:
dkms add -m r8168 -v 8.032.00
dkms build -m r8168 -v 8.032.00
dkms install -m r8168 -v 8.032.00
您已经完成。
编辑:
抱歉,我忘了您需要安装内核头文件和 make/config/gcc......在 Debian 系列发行版(Debian、Ubuntu、Mint......aptosid......)中可以通过以下方式下载:
sudo apt-get install linux-headers-generic build-essential
其他发行版有等效的命令。