Bug 20084 - [?] (firmware_class.ko) отсутствующий модуль?
Summary: [?] (firmware_class.ko) отсутствующий модуль?
Status: CLOSED WORKSFORME
Alias: None
Product: Branch 5.0
Classification: Distributions
Component: kernel-image-std-def (show other bugs)
Version: unspecified
Hardware: all Linux
: P3 critical
Assignee: Michail Yakushin
QA Contact: qa-5.0@altlinux.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-05-18 11:49 MSD by Gleb Kulikov
Modified: 2010-07-06 11:08 MSD (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Gleb Kulikov 2009-05-18 11:49:44 MSD
Не уверен...

Разбирательство относительно #20027 выводит на ядерный модуль firmware_class.ko
Этот же модуль требуется для поддержки других устройств.

У нас ничего подобного не наблюдается.

Является ли это ошибкой, либо в случае сборки имени Альт, механика загрузки работает по-другому?
Comment 1 Michail Yakushin 2009-05-24 15:28:34 MSD
Вопервых kernel-source здесь точно непричём
Comment 2 Michail Yakushin 2009-05-24 15:36:50 MSD
Этот модуль вкомпилён в ядро. Ошибка где-то в другом месте.
Comment 3 Gleb Kulikov 2009-05-25 04:27:51 MSD
(В ответ на комментарий №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;
}
Comment 4 Michail Yakushin 2009-06-01 15:59:39 MSD
А в /sys/firmware ничего не появилось?
Comment 5 Gleb Kulikov 2009-06-04 09:29:32 MSD
(В ответ на комментарий №4)
> А в /sys/firmware ничего не появилось?

да, в смысле нет :)

Ни в /sys/firmware, ни в /sys/class/firmware и вообще, /sys/class, ничего НЕ появляется.

PS: а при чём тут /sys/firmware, ежели скрипт загрузки расчитан на /sys/$DEVPATH ?
Comment 6 Michail Yakushin 2010-07-06 11:08:51 MSD
проверьте на современных версиях ядра