我安装了一个“上游内核”(下载了 deb 并用 dpkg 安装),因为我的默认内核有问题(请参阅https://bugs.launchpad.net/ubuntu/+source/linux/+bug/956918)现在我的自定义电池设置丢失了。我使用内核模块 tp-smapi 在 thinkpad 上更改此设置。如果我现在尝试加载这个模块,它会失败,因为它不是为这个内核构建的。安装的软件包是“tp-smapi-dkms”和“tp-smapi-source”。似乎没有触发自动重建。我该如何手动完成?
看来我陷入了dkms
无法移除包裹的循环中。请参阅以下命令和输出:
$ sudo dkms status | grep alsa
alsa-firewire, 3.11: added
$ sudo dkms remove alsa-firewire/3.11 --all
$ sudo dkms status | grep alsa
alsa-firewire, 3.11: added
$ sudo dkms install alsa-firewire/3.11
Error! This module/version has already been built on: 3.19.0-25-lowlatency
Directory: /var/lib/dkms/alsa-firewire/3.11/3.19.0-25-lowlatency/x86_64
already exists. Use the dkms remove function before trying to build again
Run Code Online (Sandbox Code Playgroud)
这是怎么回事?如何删除alsa-firewire
软件包以便我可以使用不同的版本重新安装它?
我正在运行 16.04。我安装了 6 个 DKMS 驱动程序并且运行良好。
但是,在 Ubuntu 软件更新期间更新内核时,两个通信设备驱动程序(rtl88212au 和 rtl8814au)的构建不正确。因此,这两个驱动程序不会加载。如果我在 Ubuntu 软件更新后对这些驱动程序中的任何一个执行 modinfo,则vermagic值显示它适用于先前版本的内核,而此时它应该显示内核的当前/新版本。
我确实禁用了安全启动,而我的其他 4 个 DKMS 驱动程序工作正常。只是这两个没有正确构建。
我必须做一个dkms remove
,然后是这些相同的驱动程序dkms build
,dkms install
手动完成时就好了。
这是两个 dkms.conf 文件:
PACKAGE_NAME="rtl8812au"
PACKAGE_VERSION="4.3.8.12175.20140902+dfsg"
BUILT_MODULE_NAME[0]="8812au"
MAKE[0]="'make' all"
DEST_MODULE_LOCATION[0]="/updates/dkms"
AUTOINSTALL="YES"
PACKAGE_NAME="rtl8814au"
PACKAGE_VERSION="4.3.17.13720.20150622_beta_led"
MAKE[0]="'make' all"
BUILT_MODULE_NAME[0]="8814au"
DEST_MODULE_LOCATION[0]="/updates/dkms"
AUTOINSTALL="YES"
REMAKE_INITRD="YES"
Run Code Online (Sandbox Code Playgroud)
关于从哪里开始寻找麻烦的任何想法?
干杯,阿尔
我运行的是 Ubuntu 20.04LTS。当我在包中搜索 virtualbox 时,它显示了许多包。
~$ apt list | grep virtualbox
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
boinc-virtualbox/focal 7.16.6+dfsg-1 amd64
unity-scope-virtualbox/focal,focal 0.1+13.10.20130723-0ubuntu2 all
virtualbox-dkms/focal-updates 6.1.10-dfsg-1~ubuntu1.20.04.1 amd64
virtualbox-ext-pack/focal-updates,focal-updates 6.1.10-1~ubuntu1.20.04.1 all
virtualbox-guest-additions-iso/focal-updates,focal-updates 6.1.10-1~ubuntu1.20.04.1 all
virtualbox-guest-dkms-hwe/focal-updates,focal-updates 6.1.10-dfsg-1~ubuntu1.20.04.1 all
virtualbox-guest-dkms/focal-updates,focal-updates 6.1.10-dfsg-1~ubuntu1.20.04.1 all
virtualbox-guest-source-hwe/focal-updates,focal-updates 6.1.10-dfsg-1~ubuntu1.20.04.1 all
virtualbox-guest-source/focal-updates,focal-updates 6.1.10-dfsg-1~ubuntu1.20.04.1 all
virtualbox-guest-utils-hwe/focal-updates 6.1.10-dfsg-1~ubuntu1.20.04.1 amd64
virtualbox-guest-utils/focal-updates 6.1.10-dfsg-1~ubuntu1.20.04.1 amd64
virtualbox-guest-x11-hwe/focal-updates 6.1.10-dfsg-1~ubuntu1.20.04.1 amd64
virtualbox-guest-x11/focal-updates 6.1.10-dfsg-1~ubuntu1.20.04.1 amd64
virtualbox-qt/focal-updates,now 6.1.10-dfsg-1~ubuntu1.20.04.1 amd64 [residual-config]
virtualbox-source/focal-updates 6.1.10-dfsg-1~ubuntu1.20.04.1 amd64
virtualbox/focal-updates,now 6.1.10-dfsg-1~ubuntu1.20.04.1 amd64 [residual-config]
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试删除其中任何一个时,它表示该软件包未安装,因此未删除。
$ sudo apt-get remove …
Run Code Online (Sandbox Code Playgroud) ~$ locate tp_smapi
/lib/modules/3.0.0-19-generic/updates/dkms/tp_smapi.ko
/lib/modules/3.2.0-26-generic/updates/dkms/tp_smapi.ko
/lib/modules/3.2.0-29-generic/updates/dkms/tp_smapi.ko
/usr/src/tp-smapi-0.41/tp_smapi.c
/var/lib/dkms/tp-smapi/0.41/3.0.0-19-generic/x86_64/module/tp_smapi.ko
/var/lib/dkms/tp-smapi/0.41/3.2.0-26-generic/x86_64/module/tp_smapi.ko
/var/lib/dkms/tp-smapi/0.41/3.2.0-29-generic/x86_64/module/tp_smapi.ko
/var/lib/dkms/tp-smapi/0.41/build/tp_smapi.c'
Run Code Online (Sandbox Code Playgroud)
如何从内核 3.0.0-19 和 3.2.0-26 中删除 2 个旧的 Linux 内核模块?
~$ man dkms
Run Code Online (Sandbox Code Playgroud)
“'dkms remove [module/module-version]' 从树中删除模块/版本组合。'
请问什么是“[模块/模块版本]”?
请注意:
我不想从树中删除旧的 Linux 内核模块 tp_smapi 但我想从我的 Ubuntu 12.04.1 计算机中删除旧的 Linux 内核模块。
我正在尝试遵循本教程,其中说:
sudo apt install git dkms
git clone https://github.com/aircrack-ng/rtl8812au.git
cd rtl8812au
sudo ./dkms-install.sh
Run Code Online (Sandbox Code Playgroud)
我的问题是我得到:
./dkms-install.sh: command not found
Run Code Online (Sandbox Code Playgroud)
你知道问题出在哪里吗?