Не уверен... Разбирательство относительно #20027 выводит на ядерный модуль firmware_class.ko Этот же модуль требуется для поддержки других устройств. У нас ничего подобного не наблюдается. Является ли это ошибкой, либо в случае сборки имени Альт, механика загрузки работает по-другому?
Вопервых kernel-source здесь точно непричём
Этот модуль вкомпилён в ядро. Ошибка где-то в другом месте.
(В ответ на комментарий №2) > Этот модуль вкомпилён в ядро. Ошибка где-то в другом месте. я не настаиваю. однако настораживает: слежу за событиями (код ниже) при включении устройства: add@/devices/pci0000:00/0000:00:0b.1/usb2/2-2 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:0b.1/usb2/2-2 SUBSYSTEM=usb MAJOR=189 MINOR=140 DEVTYPE=usb_device DEVICE=/proc/bus/usb/002/013 PRODUCT=b05/1736/100 TYPE=0/0/0 BUSNUM=002 DEVNUM=013 SEQNUM=4160 5p1736d0100dc00dsc00dp00icFFisc00ip00 SEQNUM=4161 в /var/log/syslog/messages: usb 2-2: New USB device found, idVendor=0b05, idProduct=1736 May 24 21:21:20 home77 kernel: [208199.557778] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 2-2: Product: U3000 Hybrid usb 2-2: Manufacturer: ASUSTeK usb 2-2: SerialNumber: 89L3900537 dib0700: loaded with support for 8 different device-types usbcore: registered new interface driver dvb_usb_dib0700 В то же время. в /sys/$DEVPATH ОТСУТСТВУЮТ "файлы" loading и FIRNWARE. Насколько я понял, за это отвечает именно этот модуль, нет? файлы в /sys/$DEVPATH: . bDeviceProtocol bcdDevice devnum maxchild /subsystem .. bDeviceSubClass bmAttributes /driver /power uevent /2-2:1.0 bMaxPacketSize0 busnum / ep_00 product urbnum authorized bMaxPower configuration idProduct quirks /usb_device bConfigurationValue bNumConfigurations descriptors idVendor serial / usb_endpoint bDeviceClass bNumInterfaces dev manufacturer speed version код: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/poll.h> #include <sys/socket.h> #include <sys/types.h> #include <unistd.h> #include <linux/types.h> #include <linux/netlink.h> void die(char *s) { write(2,s,strlen(s)); exit(1); } int main(int argc, char *argv[]) { struct sockaddr_nl nls; struct pollfd pfd; char buf[512]; // Open hotplug event netlink socket memset(&nls,0,sizeof(struct sockaddr_nl)); nls.nl_family = AF_NETLINK; nls.nl_pid = getpid(); nls.nl_groups = -1; pfd.events = POLLIN; pfd.fd = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_KOBJECT_UEVENT); if (pfd.fd==-1) die("Not root\n"); // Listen to netlink socket if (bind(pfd.fd, (void *)&nls, sizeof(struct sockaddr_nl))) die("Bind failed\n"); while (-1!=poll(&pfd, 1, -1)) { int i, len = recv(pfd.fd, buf, sizeof(buf), MSG_DONTWAIT); if (len == -1) //die("recv\n"); // Print the data to stdout. i = 0; while (i<len) { printf("%s\n", buf+i); i += strlen(buf+i)+1; } } die("poll\n"); // Dear gcc: shut up. return 0; }
А в /sys/firmware ничего не появилось?
(В ответ на комментарий №4) > А в /sys/firmware ничего не появилось? да, в смысле нет :) Ни в /sys/firmware, ни в /sys/class/firmware и вообще, /sys/class, ничего НЕ появляется. PS: а при чём тут /sys/firmware, ежели скрипт загрузки расчитан на /sys/$DEVPATH ?
проверьте на современных версиях ядра