如何修复内核模块中的 "Unknown symbol usb_create_hcd (err -2)"(linux-image-cloud-amd64 内核)

How to fix "Unknown symbol usb_create_hcd (err -2)" in kernel module (linux-image-cloud-amd64 kernel)

我正在尝试加载访问连接到远程主机的 USB 设备的自定义内核模块。该模块在本地的常规 Debian buster 安装上运行良好(linux-image-amd64)。

在 OpenStack 虚拟机上,运行 是一个带有 linux-image-cloud-amd64 内核的 D​​ebian buster 镜像,我 运行 进入这个:

[ 5039.090864] my_mod: Unknown symbol usb_hcd_resume_root_hub (err -2)
[ 5039.099529] my_mod: Unknown symbol usb_put_dev (err -2)
[ 5039.101765] my_mod: Unknown symbol usb_get_dev (err -2)
[ 5039.121699] my_mod: Unknown symbol usb_create_hcd (err -2)
[ 5039.124383] my_mod: Unknown symbol usb_remove_hcd (err -2)
...

我猜虚拟化优化的云内核构建不编译 USB 驱动程序?

是否有添加 USB 驱动程序的好方法,或者我是否必须构建和维护自己的内核?

这个答案帮助我找到了解决方案(即:安装非云内核包):https://unix.stackexchange.com/questions/639608/difference-between-debians-linux-image-cloud-amd64-and-linux-image-amd64/639614#639614

云内核确实移除了许多硬件支持,包括 USB 驱动程序。