Как найти, к чему относятся ссылки driver.mod.c?

Я пытаюсь соединить составной гаджет веб-камеры с ядра 2.6.37 до 2.6.32. У меня нет выбора на этом, так как я зависим от других драйверов и SDK, которые только компилируются для этой версии.

Мой ход мысли заключался в том, чтобы имитировать функциональность гаджета ethernet с некоторыми незначительными изменениями и заставить его работать быстро, по крайней мере, правильно загружать, а затем тратить время на работу с потоковыми потоками.

Я быстро столкнулся с кирпичной стеной, потому что мой новый драйвер не может быть insmod, потому что -1 Устройство ресурса занято.

Я попытался углубиться в печать и выяснить, что происходит.

Основная инициализация, похоже, идет следующим образом

module_init(webcam_init) webcam_init() usb_composite_register(&webcam_driver) usb_gadget_register_driver(&composite_driver) 

Эти функции определяются следующим образом:

 static struct usb_composite_driver webcam_driver = { .name = "g_webcam", .dev = &webcam_device_descriptor, .strings = webcam_device_strings, .bind = webcam_bind, .unbind = webcam_unbind, }; static int __init webcam_init(void) { return usb_composite_register(&webcam_driver); } int __init usb_composite_register(struct usb_composite_driver *driver) { if (!driver || !driver->dev || !driver->bind || composite) return -EINVAL; if (!driver->name) driver->name = "composite"; composite_driver.function = (char *) driver->name; composite_driver.driver.name = driver->name; composite = driver; return usb_gadget_register_driver(&composite_driver); } 

На странице пользователя usb_gadget_register_driver показано это

Вызовите это в функции инициализации модуля драйвера гаджета, чтобы сообщить основному драйверу контроллера USB о вашем драйвере. Функция связывания драйвера вызывается, чтобы связать его с гаджетом до того, как этот регистрационный вызов вернется. Ожидается, что функции связывания будут в разделах init. Эта функция должна вызываться в контексте, который может спать.

Я ожидал бы, что usb_gadget_register_driver будет сопоставлен либо с составным_объектом webcam_bind, оба из которых определены. К сожалению, printks в любой из функций никогда не появляются в dmesg, поэтому я бы предположил, что здесь что-то не хватает.

usb_gadget_register_driver появляется в g_webcam.mod.c, который говорит мне, что он отображается где-то, я просто не могу добраться туда, где это место!

Linux и Unix - лучшая ОС в мире.