Issue
I'm trying to load a custom kernel module that accesses USB devices attached to a remote host. The module works fine on a regular Debian buster install locally (linux-image-amd64).
On an OpenStack VM which runs a Debian buster image with the linux-image-cloud-amd64 kernel, I run into this:
[ 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)
...
I'm guessing the virtualization-optimized cloud kernel builds don't compile USB drivers?
Is there a good way to add the USB drivers or do I have to build and maintain my own kernel?
Solution
This answer has helped me find a solution (which was: install a non-cloud kernel package): https://unix.stackexchange.com/questions/639608/difference-between-debians-linux-image-cloud-amd64-and-linux-image-amd64/639614#639614
Cloud kernels do indeed come with a lot of hardware support removed, including USB drivers.
Answered By - nfelger Answer Checked By - Candace Johnson (WPSolving Volunteer)