Debian 12中DKMS安装的ast模块未加载,仍使用内置旧驱动
Debian 12下DKMS安装AST驱动后新模块无法加载问题
问题详情
1. 驱动安装过程无报错
执行dpkg -i ast-drm-deb12.deb全程无异常,输出如下:
root@debian:/home/sw/Linux_DRM_1.14.1_4/DKMS# dpkg -i ast-drm-deb12.deb (Reading database ... 169202 files and directories currently installed.) Preparing to unpack ast-drm-deb12.deb ... Module ast-1.14.1 for kernel 6.1.0-9-amd64 (x86_64). Before uninstall, this module version was ACTIVE on this kernel. ast.ko: - Uninstallation - Module was not found within /lib/modules/6.1.0-9-amd64/ - Original module - No original module was found for this module on this kernel. - Use the dkms install command to reinstall any previous module version. depmod... Deleting module ast-1.14.1 completely from the DKMS tree. Unpacking ast-dkms (1.14.1) over (1.14.1) ... Setting up ast-dkms (1.14.1) ... Loading new ast-1.14.1 DKMS files... Building for 6.1.0-9-amd64 Building for architecture x86_64 Building initial module for 6.1.0-9-amd64 Done. ast.ko: Running module version sanity check. - Original module - Installation - Installing to /lib/modules/6.1.0-9-amd64/updates/dkms/ depmod...
2. 重启后仍加载内置旧版本驱动
系统重启后,dmesg显示仍使用内核内置的0.1.0版本AST驱动:
root@debian:/etc# dmesg | grep ast [ 3.852665] ast 0000:08:00.0: [drm] P2A bridge disabled, using default configuration [ 3.852666] ast 0000:08:00.0: [drm] AST 2600 detected [ 3.852678] ast 0000:08:00.0: [drm] Using analog VGA [ 3.852679] ast 0000:08:00.0: [drm] dram MCLK=396 Mhz type=1 bus_width=16 [ 3.852932] [drm] Initialized ast 0.1.0 20120228 for 0000:08:00.0 on minor 0
3. DKMS状态显示驱动已成功安装
root@debian:/var/log# dkms status ast/1.14.1, 6.1.0-9-amd64, x86_64: installed
4. modinfo可查询到更新后的模块信息
root@debian:/usr/src# modinfo ast filename: /lib/modules/6.1.0-9-amd64/updates/dkms/ast.ko version: 1.14.1 license: GPL and additional rights description: AST author: Dave Airlie firmware: ast_dp501_fw.bin srcversion: 41CEE48BDC2FE51E9754203 alias: pci:v00001A03d00002010sv*sd*bc03sc*i* alias: pci:v00001A03d00002000sv*sd*bc03sc*i* depends: drm_kms_helper,drm,drm_vram_helper,i2c-algo-bit,drm_ttm_helper retpoline: Y name: ast vermagic: 6.1.0-9-amd64 SMP preempt mod_unload modversions sig_id: PKCS#7 signer: DKMS module signing key sig_key: 67:37:CD:0D:22:4C:F8:7F:21:EB:BF:E2:0B:12:04:73:A8:57:0C:69 sig_hashalgo: sha256 signature: 05:3F:F4:D6:25:94:EC:DD:A3:B2:22:6C:90:73:F3:96:F9:14:56:BC: 71:C0:48:49:09:0D:04:3F:E8:05:9F:50:03:31:1A:C9:75:2F:41:07: B4:99:C7:9D:31:28:ED:1A:68:03:BB:8E:48:51:6B:72:61:EB:31:2B: 02:6A:F6:C2:64:6F:CF:36:AD:76:2E:93:D5:C6:2E:59:F2:A9:09:3B: 35:DA:EC:B3:69:61:77:93:6E:74:E6:FC:06:FB:77:CF:87:F9:B3:46: 72:B7:9E:9E:59:26:01:F4:AC:A0:ED:29:6A:37:D5:BB:E3:25:A5:5A: CE:89:72:CA:1E:D2:61:50:B5:33:DB:15:6A:3E:E5:5D:6A:B5:A0:6E: A5:F5:4F:C1:96:5E:FC:E6:FC:1E:58:BC:71:FC:51:30:70:3F:9B:98: 0C:7E:89:64:A0:6B:6C:11:71:64:64:89:16:16:EF:EF:5F:10:8E:25: 5D:AF:0C:70:A5:F0:7C:C7:E1:EB:86:A4:CE:FF:DA:0D:13:C3:86:AB: 21:11:C3:1D:76:DC:79:33:54:75:D3:61:7A:F2:D0:9E:1D:FB:52:68: 53:C3:14:2F:BB:D7:3A:D6:8F:63:2E:27:5F:50:67:7F:5F:DB:CB:D6: 87:AC:B0:70:22:F0:D1:B3:4A:19:97:9E:A3:DF:94:E8 parm: modeset:Disable/Enable modesetting (int)
5. DKMS配置文件内容
当前dkms.conf配置如下:
MAKE="BUILD_KERNEL=${kernelver} make -C src/ KERNELDIR=/lib/modules/${kernelver}/build" CLEAN="make -C src/ clean" BUILT_MODULE_NAME=ast BUILT_MODULE_LOCATION=src/ DEST_MODULE_LOCATION="/updates" PACKAGE_NAME=ast-dkms PACKAGE_VERSION=1.14.1 AUTOINSTALL=yes
解决方法
1. 阻止内核内置模块加载
内核内置的AST模块优先级高于DKMS安装的模块,需通过黑名单禁用:
- 创建黑名单文件:
echo "blacklist ast" > /etc/modprobe.d/blacklist-ast.conf - 更新initramfs,让黑名单生效:
update-initramfs -u -k all
2. 验证模块加载情况
重启系统后执行以下命令验证:
- 检查黑名单是否生效:
输出中应包含dmesg | grep -i blacklistast被拉黑的记录。 - 查看驱动版本:
此时应显示初始化的是dmesg | grep ast1.14.1版本的AST驱动。
3. 手动加载测试(可选)
若重启后仍未加载,可手动加载DKMS模块:
modprobe ast
再次查看dmesg | grep ast确认版本。
4. 确认depmod优先级
Debian系统中,/lib/modules/<kernel-ver>/updates/目录下的模块优先级高于内核默认模块目录,安装过程中depmod已执行,若仍有问题可手动重新生成依赖:
depmod -a 6.1.0-9-amd64
内容的提问来源于stack exchange,提问作者JHT
相关产品推荐
相关产品推荐

