Linux. USB drivers. simple "hello world" when I plug device

uaha1979

Перед написанием простого "hello world" модуля, когда какое-либо устройство подключается, => в лог пишется: "Hello cruel world, I have something to say ...". Я подумал (я ваще крут неимоверно даже думать умею =]) о следующем:
1. Вот устройство подключилось, какой драйвер выберется для управления устройством из двух, если оба драйвера заточены под idVendor, idProduct? те оба драйвера использовали

static struct usb_device_id table [ ] = {
{ USB_DEVICE(USB_VENDOR_ID, USB_PRODUCT_ID) },
{ } /* Terminating entry */
};
MODULE_DEVICE_TABLE (usb, table);

2. Аналогичная 1. ситуация, НО один драйвер заточен под конкретные id, другой под все usb устройства.
Я решил экспериментировать на мышке, те подключать usb-mouse и лезть потом в лог, отсюда возник следующий вопрос:
3. Как узнать idVendor, idProduct моей мышки?
4. Как сделать так чтобы именно мой модуль управлял моей мышкой, а остальные модули лесом бы шли?
PS. 1. изучаю книгу Linux device drivers 3rd edition
2. Рад получить любую инфу по моим вопросам, рад также ссылкам на нужную инфу или просто "прочитай то-то", все же желательно ссылки поконкретнее давать =]

ppplva

Исходники ядра открыты, в них есть все ответы. Учись читать код - это полезнее чем писать модули.

dgaf

Какой драйвер раньше проинициализируется, тот и будет рулить устройством. Сначала инциализируются вкомпиленные в ядро драйверы в определённом порядке, потом драйверы из модулей в порядке их загрузки. Выноси всё в модули и управляй порядком их загрузки.
lsusb(usbutils)
Оставить комментарий
Имя или ник:
Комментарий: