USB摄像头描述符参数获取和来源分析

USB摄像头描述符参数获取和来源分析


文章目录

  • USB摄像头描述符参数获取和来源分析
  • 描述符
    • USB设备描述符
    • 描述符
  • USB摄像头参数获取
    • myuvc.c
    • 结果
      • device descriptor设备描述符
      • configuration descriptor配置描述符
      • interface association接口关联
      • inteface desciptor atsetting
      • videocontrol interface descriptor视频控制接口描述符
      • videostreaming interface descriptor
      • endpoint descriptor端点描述符
  • 描述符分析
    • VideoControl Interface的自定义描述符:
    • VideoControl Interface的自定义描述符:
    • PU描述符
    • EU
    • 实例
    • VideoStreaming Interface的自定义描述符:


描述符

USB设备描述符

在这里插入图片描述

Interface Descriptor(接口描述符):用于描述USB设备中的一个接口,包括接口号、接口类别、子类别、协议等信息。

VideoControl Interface Descriptor(视频控制接口描述符):描述支持摄像头控制功能的接口,例如调整设置、控制曝光、对焦、白平衡等。

VideoStreaming Interface Descriptor(视频流接口描述符):描述支持视频流传输的接口,指定视频流的设置和参数,如分辨率、帧率、压缩类型等。

Endpoint Descriptor(端点描述符):描述接口中的端点的属性和功能,包括端点号、传输类型、端点方向、最大包大小等。

描述符

在这里插入图片描述

USB摄像头参数获取

myuvc.c

#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/module.h>
#include <linux/usb.h>
#include <linux/videodev2.h>
#include <linux/vmalloc.h>
#include <linux/wait.h>
#include <asm/atomic.h>
#include <asm/unaligned.h>

#include <media/v4l2-common.h>

static const char *get_guid(const unsigned char *buf)
{
    static char guid[39];

    /* NOTE:  see RFC 4122 for more information about GUID/UUID
     * structure.  The first fields fields are historically big
     * endian numbers, dating from Apollo mc68000 workstations.
     */
    sprintf(guid, "{%02x%02x%02x%02x"
            "-%02x%02x"
            "-%02x%02x"
            "-%02x%02x"
            "-%02x%02x%02x%02x%02x%02x}",
           buf[0], buf[1], buf[2], buf[3],
           buf[4], buf[5],
           buf[6], buf[7],
           buf[8], buf[9],
           buf[10], buf[11], buf[12], buf[13], buf[14], buf[15]);
    return guid;
}


static void parse_video_control_interface(struct usb_interface *intf,unsigned char *buf,int buflen){


    static const char * const ctrlnames[] = {
        "Brightness", "Contrast", "Hue", "Saturation", "Sharpness", "Gamma",
        "White Balance Temperature", "White Balance Component", "Backlight Compensation",
        "Gain", "Power Line Frequency", "Hue, Auto", "White Balance Temperature, Auto",
        "White Balance Component, Auto", "Digital Multiplier", "Digital Multiplier Limit",
        "Analog Video Standard", "Analog Video Lock Status"
    };
    static const char * const camctrlnames[] = {
        "Scanning Mode", "Auto-Exposure Mode", "Auto-Exposure Priority",
        "Exposure Time (Absolute)", "Exposure Time (Relative)", "Focus (Absolute)",
        "Focus (Relative)", "Iris (Absolute)", "Iris (Relative)", "Zoom (Absolute)",
        "Zoom (Relative)", "PanTilt (Absolute)", "PanTilt (Relative)",
        "Roll (Absolute)", "Roll (Relative)", "Reserved", "Reserved", "Focus, Auto",
        "Privacy"
    };
    static const char * const stdnames[] = {
        "None", "NTSC - 525/60", "PAL - 625/50", "SECAM - 625/50",
        "NTSC - 625/50", "PAL - 525/60" };
    unsigned int i, ctrls, stds, n, p, termt, freq;

    while(buflen > 0){
        if (buf[1] != USB_DT_CS_INTERFACE)
            printk("      Warning: Invalid descriptor\n");
        else if (buf[0] < 3)
            printk("      Warning: Descriptor too short\n");
        printk("      VideoControl Interface Descriptor:\n"
               "        bLength             %5u\n"
               "        bDescriptorType     %5u\n"
               "        bDescriptorSubtype  %5u ",
               buf[0], buf[1], buf[2]);
        switch (buf[2]) {
        case 0x01:  /* HEADER */
            printk("(HEADER)\n");
            n = buf[11];
            if (buf[0] < 12+n)
                printk("      Warning: Descriptor too short\n");
            freq = buf[7] | (buf[8] << 8) | (buf[9] << 16) | (buf[10] << 24);
            printk("        bcdUVC              %2x.%02x\n"
                   "        wTotalLength        %5u\n"
                   "        dwClockFrequency    %5u.%06uMHz\n"
                   "        bInCollection       %5u\n",
                   buf[4], buf[3], buf[5] | (buf[6] << 8), freq / 1000000,
                   freq % 1000000, n);
            for (i = 0; i < n; i++)
                printk("        baInterfaceNr(%2u)   %5u\n", i, buf[12+i]);
            
            break;

        case 0x02:  /* INPUT_TERMINAL */
            printk("(INPUT_TERMINAL)\n");
            termt = buf[4] | (buf[5] << 8);
            n = termt == 0x0201 ? 7 : 0;
            
            if (buf[0] < 8 + n)
                printk("      Warning: Descriptor too short\n");
            printk("        bTerminalID         %5u\n"
                   "        wTerminalType      0x%04x \n"
                   "        bAssocTerminal      %5u\n",
                   buf[3], termt, buf[6]);
            printk("        iTerminal           %5u \n",
                   buf[7]);
            if (termt == 0x0201) {
                n += buf[14];
                printk("        wObjectiveFocalLengthMin  %5u\n"
                       "        wObjectiveFocalLengthMax  %5u\n"
                       "        wOcularFocalLength        %5u\n"
                       "        bControlSize              %5u\n",
                       buf[8] | (buf[9] << 8), buf[10] | (buf[11] << 8),
                       buf[12] | (buf[13] << 8), buf[14]);
                ctrls = 0;
                for (i = 0; i < 3 && i < buf[14]; i++)
                    ctrls = (ctrls << 8) | buf[8+n-i-1];
                printk("        bmControls           0x%08x\n", ctrls);
                for (i = 0; i < 19; i++)
                    if ((ctrls >> i) & 1)
                        printk("          %s\n", camctrlnames[i]);
            }
        
            break;

        case 0x03:  /* OUTPUT_TERMINAL */
            printk("(OUTPUT_TERMINAL)\n");
            
            termt = buf[4] | (buf[5] << 8);
            
            if (buf[0] < 9)
                printk("      Warning: Descriptor too short\n");
            printk("        bTerminalID         %5u\n"
                   "        wTerminalType      0x%04x \n"
                   "        bAssocTerminal      %5u\n"
                   "        bSourceID           %5u\n"
                   "        iTerminal           %5u \n",
                   buf[3], termt,  buf[6], buf[7], buf[8]);
            
            break;

        case 0x04:  /* SELECTOR_UNIT */
            printk("(SELECTOR_UNIT)\n");
            p = buf[4];
            if (buf[0] < 6+p)
                printk("      Warning: Descriptor too short\n");
            

            printk("        bUnitID             %5u\n"
                   "        bNrInPins           %5u\n",
                   buf[3], p);
            for (i = 0; i < p; i++)
                printk("        baSource(%2u)        %5u\n", i, buf[5+i]);
            printk("        iSelector           %5u \n",
                   buf[5+p]);
            
            break;

        case 0x05:  /* PROCESSING_UNIT */
            printk("(PROCESSING_UNIT)\n");
            n = buf[7];
            
            if (buf[0] < 10+n)
                printk("      Warning: Descriptor too short\n");
            printk("        bUnitID             %5u\n"
                   "        bSourceID           %5u\n"
                   "        wMaxMultiplier      %5u\n"
                   "        bControlSize        %5u\n",
                   buf[3], buf[4], buf[5] | (buf[6] << 8), n);
            ctrls = 0;
            for (i = 0; i < 3 && i < n; i++)
                ctrls = (ctrls << 8) | buf[8+n-i-1];
            printk("        bmControls     0x%08x\n", ctrls);
            for (i = 0; i < 18; i++)
                if ((ctrls >> i) & 1)
                    printk("          %s\n", ctrlnames[i]);
            stds = buf[9+n];
            printk("        iProcessing         %5u \n"
                   "        bmVideoStandards     0x%2x\n", buf[8+n], stds);
            for (i = 0; i < 6; i++)
                if ((stds >> i) & 1)
                    printk("          %s\n", stdnames[i]);
            break;

        case 0x06:  /* EXTENSION_UNIT */
            printk("(EXTENSION_UNIT)\n");
            p = buf[21];
            n = buf[22+p];
        
            if (buf[0] < 24+p+n)
                printk("      Warning: Descriptor too short\n");
            printk("        bUnitID             %5u\n"
                   "        guidExtensionCode         %s\n"
                   "        bNumControl         %5u\n"
                   "        bNrPins             %5u\n",
                   buf[3], get_guid(&buf[4]), buf[20], buf[21]);
            for (i = 0; i < p; i++)
                printk("        baSourceID(%2u)      %5u\n", i, buf[22+i]);
            printk("        bControlSize        %5u\n", buf[22+p]);
            for (i = 0; i < n; i++)
                printk("        bmControls(%2u)       0x%02x\n", i, buf[23+p+i]);
            printk("        iExtension          %5u \n",
                   buf[23+p+n]);
            
            break;

        default:
            printk("(unknown)\n"
                   "        Invalid desc subtype:");
            
            break;
        }
        buflen -= buf[0];
        buf += buf[0];
        
    }


}

static void parse_video_streaming_interface(struct usb_interface *intf,unsigned char *buf,int buflen){
    static const char * const colorPrims[] = { "Unspecified", "BT.709,sRGB",
        "BT.470-2 (M)", "BT.470-2 (B,G)", "SMPTE 170M", "SMPTE 240M" };
    static const char * const transferChars[] = { "Unspecified", "BT.709",
        "BT.470-2 (M)", "BT.470-2 (B,G)", "SMPTE 170M", "SMPTE 240M",
        "Linear", "sRGB"};
    static const char * const matrixCoeffs[] = { "Unspecified", "BT.709",
        "FCC", "BT.470-2 (B,G)", "SMPTE 170M (BT.601)", "SMPTE 240M" };
    unsigned int i, m, n, p, flags, len;

    while(buflen > 0){
        if (buf[1] != USB_DT_CS_INTERFACE)
            printk("      Warning: Invalid descriptor\n");
        else if (buf[0] < 3)
            printk("      Warning: Descriptor too short\n");
        printk("      VideoStreaming Interface Descriptor:\n"
               "        bLength                         %5u\n"
               "        bDescriptorType                 %5u\n"
               "        bDescriptorSubtype              %5u ",
               buf[0], buf[1], buf[2]);
        switch (buf[2]) {
        case 0x01: /* INPUT_HEADER */
            printk("(INPUT_HEADER)\n");
            p = buf[3];
            n = buf[12];
            if (buf[0] < 13+p*n)
                printk("      Warning: Descriptor too short\n");
            printk("        bNumFormats                     %5u\n"
                   "        wTotalLength                    %5u\n"
                   "        bEndPointAddress                %5u\n"
                   "        bmInfo                          %5u\n"
                   "        bTerminalLink                   %5u\n"
                   "        bStillCaptureMethod             %5u\n"
                   "        bTriggerSupport                 %5u\n"
                   "        bTriggerUsage                   %5u\n"
                   "        bControlSize                    %5u\n",
                   p, buf[4] | (buf[5] << 8), buf[6], buf[7], buf[8],
                   buf[9], buf[10], buf[11], n);
            for (i = 0; i < p; i++)
                printk(
                "        bmaControls(%2u)                 %5u\n",
                    i, buf[13+p*n]);
            
            break;

        case 0x02: /* OUTPUT_HEADER */
            printk("(OUTPUT_HEADER)\n");
            p = buf[3];
            n = buf[8];
            if (buf[0] < 9+p*n)
                printk("      Warning: Descriptor too short\n");
            printk("        bNumFormats                 %5u\n"
                   "        wTotalLength                %5u\n"
                   "        bEndpointAddress            %5u\n"
                   "        bTerminalLink               %5u\n"
                   "        bControlSize                %5u\n",
                   p, buf[4] | (buf[5] << 8), buf[6], buf[7], n);
            for (i = 0; i < p; i++)
                printk(
                "        bmaControls(%2u)             %5u\n",
                    i, buf[9+p*n]);
            
            break;

        case 0x03: /* STILL_IMAGE_FRAME */
            printk("(STILL_IMAGE_FRAME)\n");
            n = buf[4];
            m = buf[5+4*n];
            if (buf[0] < 6+4*n+m)
                printk("      Warning: Descriptor too short\n");
            printk("        bEndpointAddress                %5u\n"
                   "        bNumImageSizePatterns             %3u\n",
                   buf[3], n);
            for (i = 0; i < n; i++)
                printk("        wWidth(%2u)                      %5u\n"
                       "        wHeight(%2u)                     %5u\n",
                       i, buf[5+4*i] | (buf[6+4*i] << 8),
                       i, buf[7+4*i] | (buf[8+4*i] << 8));
            printk("        bNumCompressionPatterns           %3u\n", n);
            for (i = 0; i < m; i++)
                printk("        bCompression(%2u)                %5u\n",
                       i, buf[6+4*n+i]);
            
            break;

        case 0x04: /* FORMAT_UNCOMPRESSED */
        case 0x10: /* FORMAT_FRAME_BASED */
            if (buf[2] == 0x04) {
                printk("(FORMAT_UNCOMPRESSED)\n");
                len = 27;
            } else {
                printk("(FORMAT_FRAME_BASED)\n");
                len = 28;
            }
            if (buf[0] < len)
                printk("      Warning: Descriptor too short\n");
            flags = buf[25];
            printk("        bFormatIndex                    %5u\n"
                   "        bNumFrameDescriptors            %5u\n"
                   "        guidFormat                            %s\n"
                   "        bBitsPerPixel                   %5u\n"
                   "        bDefaultFrameIndex              %5u\n"
                   "        bAspectRatioX                   %5u\n"
                   "        bAspectRatioY                   %5u\n"
                   "        bmInterlaceFlags                 0x%02x\n",
                   buf[3], buf[4], get_guid(&buf[5]), buf[21], buf[22],
                   buf[23], buf[24], flags);
            printk("          Interlaced stream or variable: %s\n",
                   (flags & (1 << 0)) ? "Yes" : "No");
            printk("          Fields per frame: %u fields\n",
                   (flags & (1 << 1)) ? 1 : 2);
            printk("          Field 1 first: %s\n",
                   (flags & (1 << 2)) ? "Yes" : "No");
            printk("          Field pattern: ");
            switch ((flags >> 4) & 0x03) {
            case 0:
                printk("Field 1 only\n");
                break;
            case 1:
                printk("Field 2 only\n");
                break;
            case 2:
                printk("Regular pattern of fields 1 and 2\n");
                break;
            case 3:
                printk("Random pattern of fields 1 and 2\n");
                break;
            }
            printk("          bCopyProtect                  %5u\n", buf[26]);
            if (buf[2] == 0x10)
                printk("          bVariableSize                 %5u\n", buf[27]);
            
            break;

        case 0x05: /* FRAME UNCOMPRESSED */
        case 0x07: /* FRAME_MJPEG */
        case 0x11: /* FRAME_FRAME_BASED */
            if (buf[2] == 0x05) {
                printk("(FRAME_UNCOMPRESSED)\n");
                n = 25;
            } else if (buf[2] == 0x07) {
                printk("(FRAME_MJPEG)\n");
                n = 25;
            } else {
                printk("(FRAME_FRAME_BASED)\n");
                n = 21;
            }
            len = (buf[n] != 0) ? (26+buf[n]*4) : 38;
            if (buf[0] < len)
                printk("      Warning: Descriptor too short\n");
            flags = buf[4];
            printk("        bFrameIndex                     %5u\n"
                   "        bmCapabilities                   0x%02x\n",
                   buf[3], flags);
            printk("          Still image %ssupported\n",
                   (flags & (1 << 0)) ? "" : "un");
            if (flags & (1 << 1))
                printk("          Fixed frame-rate\n");
            printk("        wWidth                          %5u\n"
                   "        wHeight                         %5u\n"
                   "        dwMinBitRate                %9u\n"
                   "        dwMaxBitRate                %9u\n",
                   buf[5] | (buf[6] <<  8), buf[7] | (buf[8] << 8),
                   buf[9] | (buf[10] << 8) | (buf[11] << 16) | (buf[12] << 24),
                   buf[13] | (buf[14] << 8) | (buf[15] << 16) | (buf[16] << 24));
            if (buf[2] == 0x11)
                printk("        dwDefaultFrameInterval      %9u\n"
                       "        bFrameIntervalType              %5u\n"
                       "        dwBytesPerLine              %9u\n",
                       buf[17] | (buf[18] << 8) | (buf[19] << 16) | (buf[20] << 24),
                       buf[21],
                       buf[22] | (buf[23] << 8) | (buf[24] << 16) | (buf[25] << 24));
            else
                printk("        dwMaxVideoFrameBufferSize   %9u\n"
                       "        dwDefaultFrameInterval      %9u\n"
                       "        bFrameIntervalType              %5u\n",
                       buf[17] | (buf[18] << 8) | (buf[19] << 16) | (buf[20] << 24),
                       buf[21] | (buf[22] << 8) | (buf[23] << 16) | (buf[24] << 24),
                       buf[25]);
            if (buf[n] == 0)
                printk("        dwMinFrameInterval          %9u\n"
                       "        dwMaxFrameInterval          %9u\n"
                       "        dwFrameIntervalStep         %9u\n",
                       buf[26] | (buf[27] << 8) | (buf[28] << 16) | (buf[29] << 24),
                       buf[30] | (buf[31] << 8) | (buf[32] << 16) | (buf[33] << 24),
                       buf[34] | (buf[35] << 8) | (buf[36] << 16) | (buf[37] << 24));
            else
                for (i = 0; i < buf[n]; i++)
                    printk("        dwFrameInterval(%2u)         %9u\n",
                           i, buf[26+4*i] | (buf[27+4*i] << 8) |
                           (buf[28+4*i] << 16) | (buf[29+4*i] << 24));
            
            break;

        case 0x06: /* FORMAT_MJPEG */
            printk("(FORMAT_MJPEG)\n");
            if (buf[0] < 11)
                printk("      Warning: Descriptor too short\n");
            flags = buf[5];
            printk("        bFormatIndex                    %5u\n"
                   "        bNumFrameDescriptors            %5u\n"
                   "        bFlags                          %5u\n",
                   buf[3], buf[4], flags);
            printk("          Fixed-size samples: %s\n",
                   (flags & (1 << 0)) ? "Yes" : "No");
            flags = buf[9];
            printk("        bDefaultFrameIndex              %5u\n"
                   "        bAspectRatioX                   %5u\n"
                   "        bAspectRatioY                   %5u\n"
                   "        bmInterlaceFlags                 0x%02x\n",
                   buf[6], buf[7], buf[8], flags);
            printk("          Interlaced stream or variable: %s\n",
                   (flags & (1 << 0)) ? "Yes" : "No");
            printk("          Fields per frame: %u fields\n",
                   (flags & (1 << 1)) ? 2 : 1);
            printk("          Field 1 first: %s\n",
                   (flags & (1 << 2)) ? "Yes" : "No");
            printk("          Field pattern: ");
            switch ((flags >> 4) & 0x03) {
            case 0:
                printk("Field 1 only\n");
                break;
            case 1:
                printk("Field 2 only\n");
                break;
            case 2:
                printk("Regular pattern of fields 1 and 2\n");
                break;
            case 3:
                printk("Random pattern of fields 1 and 2\n");
                break;
            }
            printk("          bCopyProtect                  %5u\n", buf[10]);
            
            break;

        case 0x0a: /* FORMAT_MPEG2TS */
            printk("(FORMAT_MPEG2TS)\n");
            len = buf[0] < 23 ? 7 : 23;
            if (buf[0] < len)
                printk("      Warning: Descriptor too short\n");
            printk("        bFormatIndex                    %5u\n"
                   "        bDataOffset                     %5u\n"
                   "        bPacketLength                   %5u\n"
                   "        bStrideLength                   %5u\n",
                   buf[3], buf[4], buf[5], buf[6]);
            if (len > 7)
                printk("        guidStrideFormat                      %s\n",
                       get_guid(&buf[7]));
            
            break;

        case 0x0d: /* COLORFORMAT */
            printk("(COLORFORMAT)\n");
            if (buf[0] < 6)
                printk("      Warning: Descriptor too short\n");
            printk("        bColorPrimaries                 %5u (%s)\n",
                   buf[3], (buf[3] <= 5) ? colorPrims[buf[3]] : "Unknown");
            printk("        bTransferCharacteristics        %5u (%s)\n",
                   buf[4], (buf[4] <= 7) ? transferChars[buf[4]] : "Unknown");
            printk("        bMatrixCoefficients             %5u (%s)\n",
                   buf[5], (buf[5] <= 5) ? matrixCoeffs[buf[5]] : "Unknown");
            
            break;

        default:
            printk("        Invalid desc subtype:");
        
            break;
        }
        
        buflen -= buf[0];
        buf += buf[0];
    }


}

static void dump_endpoint(const struct usb_endpoint_descriptor *endpoint)
{
    static const char * const typeattr[] = {
        "Control",
        "Isochronous",
        "Bulk",
        "Interrupt"
    };
    static const char * const syncattr[] = {
        "None",
        "Asynchronous",
        "Adaptive",
        "Synchronous"
    };
    static const char * const usage[] = {
        "Data",
        "Feedback",
        "Implicit feedback Data",
        "(reserved)"
    };
    static const char * const hb[] = { "1x", "2x", "3x", "(?\?)" };
    unsigned wmax = le16_to_cpu(endpoint->wMaxPacketSize);

    printk("      Endpoint Descriptor:\n"
           "        bLength             %5u\n"
           "        bDescriptorType     %5u\n"
           "        bEndpointAddress     0x%02x  EP %u %s\n"
           "        bmAttributes        %5u\n"
           "          Transfer Type            %s\n"
           "          Synch Type               %s\n"
           "          Usage Type               %s\n"
           "        wMaxPacketSize     0x%04x  %s %d bytes\n"
           "        bInterval           %5u\n",
           endpoint->bLength,
           endpoint->bDescriptorType,
           endpoint->bEndpointAddress,
           endpoint->bEndpointAddress & 0x0f,
           (endpoint->bEndpointAddress & 0x80) ? "IN" : "OUT",
           endpoint->bmAttributes,
           typeattr[endpoint->bmAttributes & 3],
           syncattr[(endpoint->bmAttributes >> 2) & 3],
           usage[(endpoint->bmAttributes >> 4) & 3],
           wmax, hb[(wmax >> 11) & 3], wmax & 0x7ff,
           endpoint->bInterval);
    /* only for audio endpoints */
    if (endpoint->bLength == 9)
        printk("        bRefresh            %5u\n"
               "        bSynchAddress       %5u\n",
               endpoint->bRefresh, endpoint->bSynchAddress);

}

static int myuvc_probe (struct usb_interface *intf,
          const struct usb_device_id *id){

    static int cnt = 0;

    struct usb_device *dev = interface_to_usbdev(intf);
    struct usb_device_descriptor *descriptor = &dev->descriptor;
    struct usb_host_config *hostconfig;
    struct usb_config_descriptor *config;
    struct usb_interface_assoc_descriptor *assoc_desc;
    struct usb_interface_descriptor *interface;
    struct usb_endpoint_descriptor *endpoint;
    int i,j,k,l,m;

    unsigned char *buffer ;
    int buflen ;
    int desc_len;
    int desc_cnt;

    printk("myuvc_probe : cnt = %d\n", cnt++);
    /* 打印设备描述符 */
    printk("Device Descriptor:\n"
               "  bLength              %5u\n"
               "  bDescriptorType      %5u\n"
               "  bcdUSB              %2x.%02x\n"
               "  bDeviceClass          %5u \n"
               "  bDeviceSubClass      %5u \n"
               "  bDeviceProtocol      %5u \n"
               "  bMaxPacketSize0      %5u\n"
               "  idVendor             0x%04x \n"
               "  idProduct          0x%04x \n"
               "  bcdDevice           %2x.%02x\n"
               "  iManufacturer       %5u\n"
               "  iProduct              %5u\n"
               "  iSerial              %5u\n"
               "  bNumConfigurations  %5u\n",
               descriptor->bLength, descriptor->bDescriptorType,
               descriptor->bcdUSB >> 8, descriptor->bcdUSB & 0xff,
               descriptor->bDeviceClass, 
               descriptor->bDeviceSubClass,
               descriptor->bDeviceProtocol, 
               descriptor->bMaxPacketSize0,
               descriptor->idVendor,  descriptor->idProduct,
               descriptor->bcdDevice >> 8, descriptor->bcdDevice & 0xff,
               descriptor->iManufacturer, 
               descriptor->iProduct, 
               descriptor->iSerialNumber, 
               descriptor->bNumConfigurations);
               
    for(i = 0; i  < descriptor->bNumConfigurations ; i++){
        hostconfig = &dev->config[i];
        config = &hostconfig->desc;
        printk("  Configuration Descriptor %d:\n"
           "    bLength             %5u\n"
           "    bDescriptorType     %5u\n"
           "    wTotalLength        %5u\n"
           "    bNumInterfaces      %5u\n"
           "    bConfigurationValue %5u\n"
           "    iConfiguration      %5u\n"
           "    bmAttributes         0x%02x\n",
           i,
           config->bLength, config->bDescriptorType,
           le16_to_cpu(config->wTotalLength),
           config->bNumInterfaces, config->bConfigurationValue,
           config->iConfiguration,
           config->bmAttributes);
           
           assoc_desc = hostconfig->intf_assoc[0];
           printk("    Interface Association:\n"
           "      bLength             %5u\n"
           "      bDescriptorType     %5u\n"
           "      bFirstInterface     %5u\n"
           "      bInterfaceCount     %5u\n"
           "      bFunctionClass      %5u\n"
           "      bFunctionSubClass   %5u\n"
           "      bFunctionProtocol   %5u\n"
           "      iFunction           %5u\n",
               assoc_desc->bLength,
            assoc_desc->bDescriptorType,
            assoc_desc->bFirstInterface,
            assoc_desc->bInterfaceCount,
            assoc_desc->bFunctionClass,
            assoc_desc->bFunctionSubClass,
            assoc_desc->bFunctionProtocol,
            assoc_desc->iFunction );

            /* 接口描述符 */
            for(j = 0;j < intf->num_altsetting; j++){
                interface = &intf->altsetting[j].desc;
                printk("    Interface Descriptor altsetting %d:\n"
               "      bLength             %5u\n"
               "      bDescriptorType     %5u\n"
               "      bInterfaceNumber    %5u\n"
               "      bAlternateSetting   %5u\n"
               "      bNumEndpoints       %5u\n"
               "      bInterfaceClass     %5u \n"
               "      bInterfaceSubClass  %5u \n"
               "      bInterfaceProtocol  %5u \n"
               "      iInterface          %5u \n",
               j,
               interface->bLength, interface->bDescriptorType, interface->bInterfaceNumber,
               interface->bAlternateSetting, interface->bNumEndpoints, interface->bInterfaceClass, 
               interface->bInterfaceSubClass, interface->bInterfaceProtocol, 
               interface->iInterface);

               /* 打印端点描述符 */
               for(j = 0;m < interface->bNumEndpoints; m++){
                    endpoint = &intf->altsetting[j].endpoint[m].desc;
                    dump_endpoint(endpoint);
               
               
                }
               
            }

            buffer = intf->cur_altsetting->extra;
            buflen = intf->cur_altsetting->extralen;
            printk("extra buffer of interface %d :\n",cnt - 1);
            k = 0;
            desc_cnt = 0;//第几个额外的描述符
            while (k < buflen)
                    {
                        desc_len = buffer[k];
                        printk("extra desc %d: ", desc_cnt);
                        for (l = 0; l < desc_len; l++, k++)
                        {
                            printk("%02x ", buffer[k]);
                        }
                        desc_cnt++;
                        printk("\n");
                    }


            interface = &intf->cur_altsetting->desc;
            if((buffer[1] == USB_DT_CS_INTERFACE) && (interface->bInterfaceSubClass == 1)){
                parse_video_control_interface(intf,buffer,buflen);


            }
            if((buffer[1] == USB_DT_CS_INTERFACE) && (interface->bInterfaceSubClass == 2)){
                parse_video_streaming_interface(intf,buffer,buflen);
                
            }
            




            
    }
    
    return 0;

}

void myuvc_disconnect (struct usb_interface *intf){

    static int cnt = 0;
    printk("myuvc_disconnect : cnt = %d\n", cnt++);

}

static struct usb_device_id myuvc_ids[] = {
    /* Generic USB Video Class */
    { USB_INTERFACE_INFO(USB_CLASS_VIDEO, 1, 0) },  /* VideoControl Interface */
    { USB_INTERFACE_INFO(USB_CLASS_VIDEO, 2, 0) },  /* VideoStreaming Interface */
    {}
};


/* 1.分配usb_deiver结构体 */
/* 2.设置 */

static struct usb_driver myuvc_driver = {
    .name        = "myuvc", // 驱动名
    .probe        = myuvc_probe, // 探测函数
    .disconnect = myuvc_disconnect, // 断开连接函数    
    .id_table    = myuvc_ids, // 设备 ID 表

};


//入口
static int myuvc_init(void){
    /* 3.注册 */

    usb_register(&myuvc_driver);

    return 0;
}


static void myuvvc_exit(void){

    usb_deregister(&myuvc_driver);

}

module_init(myuvc_init);
module_exit(myuvvc_exit);
MODULE_LICENSE("GPL");

结果

device descriptor设备描述符

在USB摄像头的Device Descriptor(设备描述符)中,中文指的是产品的语言ID。Device Descriptor是USB设备的一部分,它包含有关设备的基本信息,如厂商ID、产品ID、设备类别和子类别等。
在这里插入图片描述

configuration descriptor配置描述符

在USB摄像头的Configuration Descriptor(配置描述符)中,中文指的是配置描述符的语言ID。Configuration Descriptor是USB设备的一部分,它描述了设备的一个或多个配置。
在这里插入图片描述

interface association接口关联

Interface Association(接口关联)是USB设备描述符中的一个字段,用于关联多个接口,表示它们在逻辑上是相关联的。

在这里插入图片描述
在这里插入图片描述

inteface desciptor atsetting

在这里插入图片描述

videocontrol interface descriptor视频控制接口描述符

在USB摄像头中,VideoControl Interface Descriptor(视频控制接口描述符)是用于描述摄像头控制功能的USB接口描述符。
在这里插入图片描述

在这里插入图片描述

videostreaming interface descriptor

在USB摄像头中,VideoStreaming Interface Descriptor(视频流接口描述符)用于描述支持视频流传输的USB接口。
与VideoControl Interface Descriptor类似,VideoStreaming Interface Descriptor也不包含中文字段或语言ID。它提供了关于视频流接口的基本属性和功能的描述,如接口号、接口类别、子类别、协议等。
VideoStreaming Interface Descriptor用于指定与视频数据流相关的设置和参数,包括视频格式、分辨率、帧率、压缩类型等。它使得应用程序或操作系统能够了解和配置摄像头的视频流传输功能。
需要注意的是,与语言相关的信息通常在设备描述符或配置描述符中找到,以确定设备支持的语言设置和本地化信息,而不是直接包含在VideoStreaming Interface Descriptor中。
在这里插入图片描述
在这里插入图片描述

endpoint descriptor端点描述符

在USB摄像头中,Endpoint Descriptor(端点描述符)用于描述USB接口中的端点(endpoint)的属性和功能。
Endpoint Descriptor并不包含中文字段或语言ID。它提供了有关端点的基本信息,包括端点号、传输类型(例如控制、批量、等等)、端点方向(输入或输出)、最大包大小、传输间隔等。
对于USB摄像头,通常会使用两个端点:一个用于视频流的传输,另一个用于控制命令的传输。视频流传输端点负责实时传输图像数据,而控制端点负责传输设置和命令以控制摄像头的行为。
Endpoint Descriptor允许操作系统和应用程序了解端点的特性,例如数据传输方向、传输类型和数据包的大小,以便正确地配置和管理摄像头的数据传输。
在这里插入图片描述

描述符分析

VideoControl Interface的自定义描述符:

extra buffer of interface 0:
在这里插入图片描述

第四位含义
baSourceID
在这里插入图片描述

VideoControl Interface的自定义描述符:

每一位的含义

0:长度
1:类自定义的接口
2:子类
VC_OUTPUT_TERMINAL
在这里插入图片描述

3.terminalID
xx(ID)
IT(01) ===> PU(03) ===> EU(04) ===> OT(02)
在这里插入图片描述

PU描述符

在这里插入图片描述

EU

在这里插入图片描述

OT
在这里插入图片描述

实例

extra desc 0: 0d 24 01 00 01 4d 00 80 c3 c9 01 01 01 
                    VC_HEADER
extra desc 1: 12 24 02                 01 01 02 00 00 00 00 00 00 00 00 03 0e 00 00 
                    VC_INPUT_TERMINAL  ID
extra desc 2: 09 24 03                 02 01 01          00             04         00 
                    VC_OUTPUT_TERMINAL ID wTerminalType  bAssocTerminal bSourceID
extra desc 3: 0b 24 05                 03 01         00 00           02           7f 14      00 
                    VC_PROCESSING_UNIT ID bSourceID  wMaxMultiplier  bControlSize bmControls
extra desc 4: 1a 24 06                 04 ad cc b1 c2 f6 ab b8 48 8e 37 32 d4 f3 a3 fe ec 08            01        03         01 3f 00
                    VC_EXTENSION_UNIT  ID GUID                                            bNumControls  bNrInPins baSourceID

IT(01)  ===>  PU(03)  ===>  EU(04)  ===>  OT(02)
                    

VC_DESCRIPTOR_UNDEFINED 0x00 
VC_HEADER 0x01 
VC_INPUT_TERMINAL 0x02 
VC_OUTPUT_TERMINAL 0x03 
VC_SELECTOR_UNIT 0x04 
VC_PROCESSING_UNIT 0x05 
VC_EXTENSION_UNIT 0x06 
VC_ENCODING_UNIT 0x07

在这里插入图片描述

罗技c920摄像头对应的描述符

[ 4629.424526] extra buffer of interface 0 :
[ 4629.424527] extra desc 0:
[ 4629.424527] 0d 
[ 4629.424527] 24 
[ 4629.424527] 01 
[ 4629.424528] 00 
[ 4629.424528] 01 
[ 4629.424528] d7 
[ 4629.424528] 00 
[ 4629.424529] 80 
[ 4629.424529] c3 
[ 4629.424529] c9 
[ 4629.424530] 01 
[ 4629.424530] 01 
[ 4629.424530] 01 

[ 4629.424531] extra desc 1:
[ 4629.424531] 12 
[ 4629.424531] 24 
[ 4629.424531] 02 
[ 4629.424532] 01 
[ 4629.424532] 01 
[ 4629.424532] 02 
[ 4629.424532] 00 
[ 4629.424533] 00 
[ 4629.424533] 00 
[ 4629.424533] 00 
[ 4629.424533] 00 
[ 4629.424534] 00 
[ 4629.424534] 00 
[ 4629.424534] 00 
[ 4629.424534] 03 
[ 4629.424535] 2e 
[ 4629.424535] 0a 
[ 4629.424535] 02 

[ 4629.424536] extra desc 2:
[ 4629.424536] 0b 
[ 4629.424536] 24 
[ 4629.424536] 05 
[ 4629.424537] 03 
[ 4629.424537] 01 
[ 4629.424537] 00 
[ 4629.424537] 40 
[ 4629.424538] 02 
[ 4629.424538] 5b 
[ 4629.424538] 17 
[ 4629.424538] 00 

[ 4629.424539] extra desc 3:
[ 4629.424539] 1b 
[ 4629.424539] 24 
[ 4629.424540] 06 
[ 4629.424540] 02 
[ 4629.424540] 6a 
[ 4629.424540] d1 
[ 4629.424541] 49 
[ 4629.424541] 2c 
[ 4629.424541] b8 
[ 4629.424541] 32 
[ 4629.424542] 85 
[ 4629.424542] 44 
[ 4629.424542] 3e 
[ 4629.424542] a8 
[ 4629.424543] 64 
[ 4629.424543] 3a 
[ 4629.424543] 15 
[ 4629.424543] 23 
[ 4629.424544] 62 
[ 4629.424544] f2 
[ 4629.424544] 06 
[ 4629.424544] 01 
[ 4629.424545] 06 
[ 4629.424545] 02 
[ 4629.424545] 3f 
[ 4629.424546] 00 
[ 4629.424546] 00 

[ 4629.424546] extra desc 4:
[ 4629.424546] 1b 
[ 4629.424547] 24 
[ 4629.424547] 06 
[ 4629.424547] 06 
[ 4629.424547] d0 
[ 4629.424548] 9e 
[ 4629.424548] e4 
[ 4629.424548] 23 
[ 4629.424548] 78 
[ 4629.424549] 11 
[ 4629.424549] 31 
[ 4629.424549] 4f 
[ 4629.424550] ae 
[ 4629.424550] 52 
[ 4629.424550] d2 
[ 4629.424550] fb 
[ 4629.424551] 8a 
[ 4629.424551] 8d 
[ 4629.424551] 3b 
[ 4629.424551] 48 
[ 4629.424552] 0a 
[ 4629.424552] 01 
[ 4629.424552] 03 
[ 4629.424552] 02 
[ 4629.424553] ff 
[ 4629.424553] 6f 
[ 4629.424553] 00 

[ 4629.424554] extra desc 5:
[ 4629.424554] 1b 
[ 4629.424554] 24 
[ 4629.424554] 06 
[ 4629.424554] 08 
[ 4629.424555] e4 
[ 4629.424555] 8e 
[ 4629.424555] 67 
[ 4629.424556] 69 
[ 4629.424556] 0f 
[ 4629.424556] 41 
[ 4629.424556] db 
[ 4629.424557] 40 
[ 4629.424557] a8 
[ 4629.424557] 50 
[ 4629.424557] 74 
[ 4629.424558] 20 
[ 4629.424558] d7 
[ 4629.424558] d8 
[ 4629.424558] 24 
[ 4629.424559] 0e 
[ 4629.424559] 07 
[ 4629.424559] 01 
[ 4629.424559] 03 
[ 4629.424560] 02 
[ 4629.424560] 3b 
[ 4629.424560] 03 
[ 4629.424560] 00 

[ 4629.424561] extra desc 6:
[ 4629.424561] 1c 
[ 4629.424561] 24 
[ 4629.424562] 06 
[ 4629.424562] 09 
[ 4629.424562] a9 
[ 4629.424562] 4c 
[ 4629.424563] 5d 
[ 4629.424563] 1f 
[ 4629.424563] 11 
[ 4629.424563] de 
[ 4629.424564] 87 
[ 4629.424564] 44 
[ 4629.424564] 84 
[ 4629.424564] 0d 
[ 4629.424565] 50 
[ 4629.424565] 93 
[ 4629.424565] 3c 
[ 4629.424565] 8e 
[ 4629.424566] c8 
[ 4629.424566] d1 
[ 4629.424566] 10 
[ 4629.424566] 01 
[ 4629.424567] 03 
[ 4629.424567] 03 
[ 4629.424567] f3 
[ 4629.424567] ff 
[ 4629.424568] 13 
[ 4629.424568] 00 

[ 4629.424569] extra desc 7:
[ 4629.424569] 1b 
[ 4629.424569] 24 
[ 4629.424569] 06 
[ 4629.424569] 0a 
[ 4629.424570] 15 
[ 4629.424570] 02 
[ 4629.424570] e4 
[ 4629.424570] 49 
[ 4629.424571] 34 
[ 4629.424571] f4 
[ 4629.424571] fe 
[ 4629.424571] 47 
[ 4629.424572] b1 
[ 4629.424572] 58 
[ 4629.424572] 0e 
[ 4629.424573] 88 
[ 4629.424573] 50 
[ 4629.424573] 23 
[ 4629.424573] e5 
[ 4629.424574] 1b 
[ 4629.424574] 07 
[ 4629.424574] 01 
[ 4629.424574] 03 
[ 4629.424575] 02 
[ 4629.424575] aa 
[ 4629.424575] 0f 
[ 4629.424575] 00 

[ 4629.424576] extra desc 8:
[ 4629.424576] 1c 
[ 4629.424576] 24 
[ 4629.424576] 06 
[ 4629.424577] 0b 
[ 4629.424577] 21 
[ 4629.424577] 2d 
[ 4629.424578] e5 
[ 4629.424578] ff 
[ 4629.424578] 30 
[ 4629.424578] 80 
[ 4629.424579] 2c 
[ 4629.424579] 4e 
[ 4629.424579] 82 
[ 4629.424579] d9 
[ 4629.424580] f5 
[ 4629.424580] 87 
[ 4629.424580] d0 
[ 4629.424580] 05 
[ 4629.424581] 40 
[ 4629.424581] bd 
[ 4629.424581] 03 
[ 4629.424581] 01 
[ 4629.424582] 03 
[ 4629.424582] 03 
[ 4629.424582] 00 
[ 4629.424582] 41 
[ 4629.424583] 01 
[ 4629.424583] 00 

[ 4629.424583] extra desc 9:
[ 4629.424584] 09 
[ 4629.424584] 24 
[ 4629.424584] 03 
[ 4629.424584] 04 
[ 4629.424585] 01 
[ 4629.424585] 01 
[ 4629.424585] 00 
[ 4629.424585] 03 
[ 4629.424586] 00 

VideoStreaming Interface的自定义描述符:

extra buffer of interface 1
在这里插入图片描述

0:长度
1:表明描述符为类所自定义的
2:VideoStreaming子类
在这里插入图片描述

VS_INPUT_HEADER 0x01 头部
VS_STILL_IMAGE_FRAME 0x03 静态图像,拍照
在这里插入图片描述

VS_FORMAT_UNCOMPRESSED 0x04 格式
VS_FRAME_UNCOMPRESSED 0x05 fram
VS_COLORFORMAT 0x0D
3:表示VideoStreaming支持多少种格式
在这里插入图片描述

VideoStreaming Interface的自定义描述符:
extra buffer of interface 1:
extra desc 0: 0e 24 01              01 df 00 81 00 02 02 01 01 01 00 
                    VS_INPUT_HEADER bNumFormats 
extra desc 1: 1b 24 04                     01           05                   59 55 59 32 00 00 10 00 80 00 00 aa 00 38 9b 71  10              01 00 00 00 00 
                    VS_FORMAT_UNCOMPRESSED bFormatIndex bNumFrameDescriptors GUID                                             bBitsPerPixel
extra desc 2: 1e 24 05                     01          00              80 02   e0 01   00 00 ca 08 00 00 ca 08 00 60 09 00 15 16 05 00 01 15 16 05 00 
                    VS_FRAME_UNCOMPRESSED  bFrameIndex bmCapabilities  wWidth  wHeight  
                                                                         640x480
extra desc 3: 1e 24 05 02 00 60 01 20 01 00 80 e6 02 00 80 e6 02 00 18 03 00 15 16 05 00 01 15 16 05 00 
                    VS_FRAME_UNCOMPRESSED
extra desc 4: 1e 24 05 03 00 40 01 f0 00 00 80 32 02 00 80 32 02 00 58 02 00 15 16 05 00 01 15 16 05 00 
extra desc 5: 1e 24 05 04 00 b0 00 90 00 00 a0 b9 00 00 a0 b9 00 00 c6 00 00 15 16 05 00 01 15 16 05 00 
extra desc 6: 1e 24 05 05 00 a0 00 78 00 00 a0 8c 00 00 a0 8c 00 00 96 00 00 15 16 05 00 01 15 16 05 00 

extra desc 7: 1a 24 03 00 05 80 02 e0 01 60 01 20 01 40 01 f0 00 b0 00 90 00 a0 00 78 00 00 
                    VS_STILL_IMAGE_FRAME
extra desc 8: 06 24 0d 01 01 04 

VS_INPUT_HEADER 0x01
VS_STILL_IMAGE_FRAME 0x03
VS_FORMAT_UNCOMPRESSED 0x04
VS_FRAME_UNCOMPRESSED 0x05
VS_COLORFORMAT 0x0D

罗技c920摄像头对应的描述符

[ 4629.424660] extra buffer of interface 1 :
[ 4629.424661] extra desc 0:
[ 4629.424661] 0f 
[ 4629.424661] 24 
[ 4629.424661] 01 
[ 4629.424662] 02 
[ 4629.424662] 2f 
[ 4629.424663] 07 
[ 4629.424663] 81 
[ 4629.424663] 00 
[ 4629.424664] 04 
[ 4629.424664] 00 
[ 4629.424664] 00 
[ 4629.424665] 00 
[ 4629.424665] 01 
[ 4629.424665] 00 
[ 4629.424665] 04 

[ 4629.424666] extra desc 1:
[ 4629.424666] 1b 
[ 4629.424667] 24 
[ 4629.424667] 04 
[ 4629.424667] 01 
[ 4629.424667] 12 
[ 4629.424668] 59 
[ 4629.424668] 55 
[ 4629.424668] 59 
[ 4629.424669] 32 
[ 4629.424669] 00 
[ 4629.424669] 00 
[ 4629.424670] 10 
[ 4629.424670] 00 
[ 4629.424670] 80 
[ 4629.424670] 00 
[ 4629.424671] 00 
[ 4629.424671] aa 
[ 4629.424671] 00 
[ 4629.424672] 38 
[ 4629.424672] 9b 
[ 4629.424672] 71 
[ 4629.424673] 10 
[ 4629.424673] 01 
[ 4629.424673] 00 
[ 4629.424674] 00 
[ 4629.424674] 00 
[ 4629.424674] 00 

[ 4629.424675] extra desc 2:
[ 4629.424675] 36 
[ 4629.424675] 24 
[ 4629.424676] 05 
[ 4629.424676] 01 
[ 4629.424676] 00 
[ 4629.424677] 80 
[ 4629.424677] 02 
[ 4629.424677] e0 
[ 4629.424677] 01 
[ 4629.424678] 00 
[ 4629.424678] 00 
[ 4629.424678] 77 
[ 4629.424679] 01 
[ 4629.424679] 00 
[ 4629.424679] 00 
[ 4629.424680] ca 
[ 4629.424680] 08 
[ 4629.424680] 00 
[ 4629.424681] 60 
[ 4629.424681] 09 
[ 4629.424681] 00 
[ 4629.424682] 15 
[ 4629.424682] 16 
[ 4629.424682] 05 
[ 4629.424682] 00 
[ 4629.424683] 07 
[ 4629.424683] 15 
[ 4629.424683] 16 
[ 4629.424684] 05 
[ 4629.424684] 00 
[ 4629.424684] 9a 
[ 4629.424685] 5b 
[ 4629.424685] 06 
[ 4629.424685] 00 
[ 4629.424686] 20 
[ 4629.424686] a1 
[ 4629.424686] 07 
[ 4629.424687] 00 
[ 4629.424687] 2a 
[ 4629.424687] 2c 
[ 4629.424688] 0a 
[ 4629.424688] 00 
[ 4629.424688] 40 
[ 4629.424689] 42 
[ 4629.424689] 0f 
[ 4629.424689] 00 
[ 4629.424689] 55 
[ 4629.424690] 58 
[ 4629.424690] 14 
[ 4629.424690] 00 
[ 4629.424691] 80 
[ 4629.424691] 84 
[ 4629.424691] 1e 
[ 4629.424692] 00 

[ 4629.424692] extra desc 3:
[ 4629.424693] 36 
[ 4629.424693] 24 
[ 4629.424693] 05 
[ 4629.424694] 02 
[ 4629.424694] 00 
[ 4629.424694] a0 
[ 4629.424694] 00 
[ 4629.424695] 5a 
[ 4629.424695] 00 
[ 4629.424695] 00 
[ 4629.424696] 94 
[ 4629.424696] 11 
[ 4629.424696] 00 
[ 4629.424697] 00 
[ 4629.424697] 78 
[ 4629.424697] 69 
[ 4629.424698] 00 
[ 4629.424698] 80 
[ 4629.424698] 70 
[ 4629.424699] 00 
[ 4629.424699] 00 
[ 4629.424699] 15 
[ 4629.424700] 16 
[ 4629.424700] 05 
[ 4629.424700] 00 
[ 4629.424700] 07 
[ 4629.424701] 15 
[ 4629.424701] 16 
[ 4629.424701] 05 
[ 4629.424702] 00 
[ 4629.424702] 9a 
[ 4629.424702] 5b 
[ 4629.424703] 06 
[ 4629.424703] 00 
[ 4629.424703] 20 
[ 4629.424704] a1 
[ 4629.424704] 07 
[ 4629.424704] 00 
[ 4629.424705] 2a 
[ 4629.424705] 2c 
[ 4629.424705] 0a 
[ 4629.424706] 00 
[ 4629.424706] 40 
[ 4629.424706] 42 
[ 4629.424707] 0f 
[ 4629.424707] 00 
[ 4629.424707] 55 
[ 4629.424708] 58 
[ 4629.424708] 14 
[ 4629.424708] 00 
[ 4629.424709] 80 
[ 4629.424709] 84 
[ 4629.424709] 1e 
[ 4629.424710] 00 

[ 4629.424710] extra desc 4:
[ 4629.424710] 36 
[ 4629.424711] 24 
[ 4629.424711] 05 
[ 4629.424711] 03 
[ 4629.424712] 00 
[ 4629.424712] a0 
[ 4629.424712] 00 
[ 4629.424713] 78 
[ 4629.424713] 00 
[ 4629.424713] 00 
[ 4629.424714] 70 
[ 4629.424714] 17 
[ 4629.424714] 00 
[ 4629.424715] 00 
[ 4629.424715] a0 
[ 4629.424715] 8c 
[ 4629.424715] 00 
[ 4629.424716] 00 
[ 4629.424716] 96 
[ 4629.424717] 00 
[ 4629.424717] 00 
[ 4629.424717] 15 
[ 4629.424717] 16 
[ 4629.424718] 05 
[ 4629.424718] 00 
[ 4629.424718] 07 
[ 4629.424719] 15 
[ 4629.424719] 16 
[ 4629.424719] 05 
[ 4629.424720] 00 
[ 4629.424720] 9a 
[ 4629.424720] 5b 
[ 4629.424720] 06 
[ 4629.424721] 00 
[ 4629.424721] 20 
[ 4629.424721] a1 
[ 4629.424722] 07 
[ 4629.424722] 00 
[ 4629.424722] 2a 
[ 4629.424723] 2c 
[ 4629.424723] 0a 
[ 4629.424723] 00 
[ 4629.424724] 40 
[ 4629.424724] 42 
[ 4629.424724] 0f 
[ 4629.424725] 00 
[ 4629.424725] 55 
[ 4629.424725] 58 
[ 4629.424726] 14 
[ 4629.424726] 00 
[ 4629.424726] 80 
[ 4629.424726] 84 
[ 4629.424727] 1e 
[ 4629.424727] 00 

[ 4629.424728] extra desc 5:
[ 4629.424728] 36 
[ 4629.424728] 24 
[ 4629.424729] 05 
[ 4629.424729] 04 
[ 4629.424729] 00 
[ 4629.424730] b0 
[ 4629.424730] 00 
[ 4629.424730] 90 
[ 4629.424730] 00 
[ 4629.424731] 00 
[ 4629.424731] f0 
[ 4629.424732] 1e 
[ 4629.424732] 00 
[ 4629.424732] 00 
[ 4629.424732] a0 
[ 4629.424733] b9 
[ 4629.424733] 00 
[ 4629.424733] 00 
[ 4629.424734] c6 
[ 4629.424734] 00 
[ 4629.424734] 00 
[ 4629.424735] 15 
[ 4629.424735] 16 
[ 4629.424735] 05 
[ 4629.424736] 00 
[ 4629.424736] 07 
[ 4629.424736] 15 
[ 4629.424737] 16 
[ 4629.424737] 05 
[ 4629.424737] 00 
[ 4629.424738] 9a 
[ 4629.424738] 5b 
[ 4629.424738] 06 
[ 4629.424739] 00 
[ 4629.424739] 20 
[ 4629.424739] a1 
[ 4629.424740] 07 
[ 4629.424740] 00 
[ 4629.424740] 2a 
[ 4629.424741] 2c 
[ 4629.424741] 0a 
[ 4629.424741] 00 
[ 4629.424742] 40 
[ 4629.424742] 42 
[ 4629.424742] 0f 
[ 4629.424743] 00 
[ 4629.424743] 55 
[ 4629.424743] 58 
[ 4629.424743] 14 
[ 4629.424744] 00 
[ 4629.424744] 80 
[ 4629.424745] 84 
[ 4629.424745] 1e 
[ 4629.424745] 00 

[ 4629.424746] extra desc 6:
[ 4629.424746] 36 
[ 4629.424746] 24 
[ 4629.424747] 05 
[ 4629.424747] 05 
[ 4629.424747] 00 
[ 4629.424748] 40 
[ 4629.424748] 01 
[ 4629.424748] b4 
[ 4629.424749] 00 
[ 4629.424749] 00 
[ 4629.424749] 50 
[ 4629.424749] 46 
[ 4629.424750] 00 
[ 4629.424750] 00 
[ 4629.424750] e0 
[ 4629.424751] a5 
[ 4629.424751] 01 
[ 4629.424751] 00 
[ 4629.424752] c2 
[ 4629.424752] 01 
[ 4629.424752] 00 
[ 4629.424753] 15 
[ 4629.424753] 16 
[ 4629.424753] 05 
[ 4629.424754] 00 
[ 4629.424754] 07 
[ 4629.424754] 15 
[ 4629.424755] 16 
[ 4629.424755] 05 
[ 4629.424755] 00 
[ 4629.424756] 9a 
[ 4629.424756] 5b 
[ 4629.424757] 06 
[ 4629.424757] 00 
[ 4629.424757] 20 
[ 4629.424757] a1 
[ 4629.424758] 07 
[ 4629.424758] 00 
[ 4629.424758] 2a 
[ 4629.424759] 2c 
[ 4629.424759] 0a 
[ 4629.424759] 00 
[ 4629.424760] 40 
[ 4629.424760] 42 
[ 4629.424760] 0f 
[ 4629.424761] 00 
[ 4629.424761] 55 
[ 4629.424761] 58 
[ 4629.424762] 14 
[ 4629.424762] 00 
[ 4629.424763] 80 
[ 4629.424763] 84 
[ 4629.424763] 1e 
[ 4629.424764] 00 

[ 4629.424764] extra desc 7:
[ 4629.424764] 36 
[ 4629.424765] 24 
[ 4629.424765] 05 
[ 4629.424765] 06 
[ 4629.424766] 00 
[ 4629.424766] 40 
[ 4629.424766] 01 
[ 4629.424767] f0 
[ 4629.424767] 00 
[ 4629.424767] 00 
[ 4629.424768] c0 
[ 4629.424768] 5d 
[ 4629.424768] 00 
[ 4629.424769] 00 
[ 4629.424769] 80 
[ 4629.424769] 32 
[ 4629.424770] 02 
[ 4629.424770] 00 
[ 4629.424770] 58 
[ 4629.424771] 02 
[ 4629.424771] 00 
[ 4629.424771] 15 
[ 4629.424772] 16 
[ 4629.424772] 05 
[ 4629.424773] 00 
[ 4629.424773] 07 
[ 4629.424773] 15 
[ 4629.424774] 16 
[ 4629.424774] 05 
[ 4629.424774] 00 
[ 4629.424775] 9a 
[ 4629.424775] 5b 
[ 4629.424775] 06 
[ 4629.424776] 00 
[ 4629.424776] 20 
[ 4629.424776] a1 
[ 4629.424777] 07 
[ 4629.424777] 00 
[ 4629.424777] 2a 
[ 4629.424778] 2c 
[ 4629.424778] 0a 
[ 4629.424778] 00 
[ 4629.424779] 40 
[ 4629.424779] 42 
[ 4629.424779] 0f 
[ 4629.424780] 00 
[ 4629.424780] 55 
[ 4629.424780] 58 
[ 4629.424781] 14 
[ 4629.424781] 00 
[ 4629.424781] 80 
[ 4629.424782] 84 
[ 4629.424782] 1e 
[ 4629.424782] 00 

[ 4629.424783] extra desc 8:
[ 4629.424783] 36 
[ 4629.424783] 24 
[ 4629.424784] 05 
[ 4629.424784] 07 
[ 4629.424784] 00 
[ 4629.424785] 60 
[ 4629.424785] 01 
[ 4629.424785] 20 
[ 4629.424785] 01 
[ 4629.424786] 00 
[ 4629.424786] c0 
[ 4629.424786] 7b 
[ 4629.424787] 00 
[ 4629.424787] 00 
[ 4629.424787] 80 
[ 4629.424788] e6 
[ 4629.424788] 02 
[ 4629.424789] 00 
[ 4629.424789] 18 
[ 4629.424789] 03 
[ 4629.424790] 00 
[ 4629.424790] 15 
[ 4629.424790] 16 
[ 4629.424791] 05 
[ 4629.424791] 00 
[ 4629.424791] 07 
[ 4629.424792] 15 
[ 4629.424792] 16 
[ 4629.424792] 05 
[ 4629.424792] 00 
[ 4629.424793] 9a 
[ 4629.424793] 5b 
[ 4629.424794] 06 
[ 4629.424794] 00 
[ 4629.424794] 20 
[ 4629.424795] a1 
[ 4629.424795] 07 
[ 4629.424795] 00 
[ 4629.424796] 2a 
[ 4629.424796] 2c 
[ 4629.424796] 0a 
[ 4629.424797] 00 
[ 4629.424797] 40 
[ 4629.424797] 42 
[ 4629.424798] 0f 
[ 4629.424798] 00 
[ 4629.424798] 55 
[ 4629.424799] 58 
[ 4629.424799] 14 
[ 4629.424799] 00 
[ 4629.424800] 80 
[ 4629.424800] 84 
[ 4629.424800] 1e 
[ 4629.424801] 00 

[ 4629.424801] extra desc 9:
[ 4629.424802] 36 
[ 4629.424802] 24 
[ 4629.424802] 05 
[ 4629.424802] 08 
[ 4629.424803] 00 
[ 4629.424803] b0 
[ 4629.424804] 01 
[ 4629.424804] f0 
[ 4629.424804] 00 
[ 4629.424804] 00 
[ 4629.424805] 90 
[ 4629.424805] 7e 
[ 4629.424805] 00 
[ 4629.424806] 00 
[ 4629.424806] 60 
[ 4629.424806] f7 
[ 4629.424806] 02 
[ 4629.424807] 00 
[ 4629.424807] 2a 
[ 4629.424807] 03 
[ 4629.424807] 00 
[ 4629.424808] 15 
[ 4629.424808] 16 
[ 4629.424808] 05 
[ 4629.424808] 00 
[ 4629.424809] 07 
[ 4629.424809] 15 
[ 4629.424809] 16 
[ 4629.424810] 05 
[ 4629.424810] 00 
[ 4629.424810] 9a 
[ 4629.424810] 5b 
[ 4629.424811] 06 
[ 4629.424811] 00 
[ 4629.424811] 20 
[ 4629.424811] a1 
[ 4629.424812] 07 
[ 4629.424812] 00 
[ 4629.424812] 2a 
[ 4629.424812] 2c 
[ 4629.424813] 0a 
[ 4629.424813] 00 
[ 4629.424813] 40 
[ 4629.424814] 42 
[ 4629.424814] 0f 
[ 4629.424814] 00 
[ 4629.424814] 55 
[ 4629.424815] 58 
[ 4629.424815] 14 
[ 4629.424815] 00 
[ 4629.424815] 80 
[ 4629.424816] 84 
[ 4629.424816] 1e 
[ 4629.424816] 00 

[ 4629.424817] extra desc 10:
[ 4629.424817] 36 
[ 4629.424817] 24 
[ 4629.424817] 05 
[ 4629.424818] 09 
[ 4629.424818] 00 
[ 4629.424818] 80 
[ 4629.424818] 02 
[ 4629.424819] 68 
[ 4629.424819] 01 
[ 4629.424819] 00 
[ 4629.424820] 40 
[ 4629.424820] 19 
[ 4629.424820] 01 
[ 4629.424820] 00 
[ 4629.424821] 80 
[ 4629.424821] 97 
[ 4629.424821] 06 
[ 4629.424821] 00 
[ 4629.424822] 08 
[ 4629.424822] 07 
[ 4629.424822] 00 
[ 4629.424822] 15 
[ 4629.424823] 16 
[ 4629.424823] 05 
[ 4629.424823] 00 
[ 4629.424823] 07 
[ 4629.424824] 15 
[ 4629.424824] 16 
[ 4629.424824] 05 
[ 4629.424824] 00 
[ 4629.424825] 9a 
[ 4629.424825] 5b 
[ 4629.424825] 06 
[ 4629.424826] 00 
[ 4629.424826] 20 
[ 4629.424826] a1 
[ 4629.424826] 07 
[ 4629.424827] 00 
[ 4629.424827] 2a 
[ 4629.424827] 2c 
[ 4629.424828] 0a 
[ 4629.424828] 00 
[ 4629.424828] 40 
[ 4629.430006] 42 
[ 4629.430104] 0f 
[ 4629.430104] 00 
[ 4629.430105] 55 
[ 4629.430105] 58 
[ 4629.430105] 14 
[ 4629.430106] 00 
[ 4629.430106] 80 
[ 4629.430107] 84 
[ 4629.430107] 1e 
[ 4629.430107] 00 

[ 4629.430109] extra desc 11:
[ 4629.430109] 36 
[ 4629.430110] 24 
[ 4629.430110] 05 
[ 4629.430110] 0a 
[ 4629.430111] 00 
[ 4629.430111] 20 
[ 4629.430111] 03 
[ 4629.430112] c0 
[ 4629.430112] 01 
[ 4629.430112] 00 
[ 4629.430113] 80 
[ 4629.430113] b5 
[ 4629.430113] 01 
[ 4629.430114] 00 
[ 4629.430114] 00 
[ 4629.430114] 41 
[ 4629.430115] 0a 
[ 4629.430115] 00 
[ 4629.430116] f0 
[ 4629.430116] 0a 
[ 4629.430116] 00 
[ 4629.430117] 15 
[ 4629.430117] 16 
[ 4629.430117] 05 
[ 4629.430118] 00 
[ 4629.430118] 07 
[ 4629.430118] 15 
[ 4629.430119] 16 
[ 4629.430119] 05 
[ 4629.430119] 00 
[ 4629.430120] 9a 
[ 4629.430120] 5b 
[ 4629.430120] 06 
[ 4629.430121] 00 
[ 4629.430121] 20 
[ 4629.430121] a1 
[ 4629.430122] 07 
[ 4629.430122] 00 
[ 4629.430123] 2a 
[ 4629.430123] 2c 
[ 4629.430123] 0a 
[ 4629.430124] 00 
[ 4629.430124] 40 
[ 4629.430124] 42 
[ 4629.430125] 0f 
[ 4629.430125] 00 
[ 4629.430125] 55 
[ 4629.430126] 58 
[ 4629.430126] 14 
[ 4629.430127] 00 
[ 4629.430127] 80 
[ 4629.430127] 84 
[ 4629.430128] 1e 
[ 4629.430128] 00 

[ 4629.430129] extra desc 12:
[ 4629.430129] 32 
[ 4629.430129] 24 
[ 4629.430130] 05 
[ 4629.430130] 0b 
[ 4629.430130] 00 
[ 4629.430131] 20 
[ 4629.430131] 03 
[ 4629.430131] 58 
[ 4629.430132] 02 
[ 4629.430132] 00 
[ 4629.430132] f0 
[ 4629.430133] 49 
[ 4629.430133] 02 
[ 4629.430133] 00 
[ 4629.430134] 80 
[ 4629.430134] fc 
[ 4629.430134] 0a 
[ 4629.430135] 00 
[ 4629.430135] a6 
[ 4629.430135] 0e 
[ 4629.430136] 00 
[ 4629.430136] 9a 
[ 4629.430137] 5b 
[ 4629.430137] 06 
[ 4629.430137] 00 
[ 4629.430138] 06 
[ 4629.430138] 9a 
[ 4629.430138] 5b 
[ 4629.430139] 06 
[ 4629.430139] 00 
[ 4629.430139] 20 
[ 4629.430140] a1 
[ 4629.430140] 07 
[ 4629.430140] 00 
[ 4629.430141] 2a 
[ 4629.430141] 2c 
[ 4629.430141] 0a 
[ 4629.430142] 00 
[ 4629.430142] 40 
[ 4629.430143] 42 
[ 4629.430143] 0f 
[ 4629.430143] 00 
[ 4629.430144] 55 
[ 4629.430144] 58 
[ 4629.430144] 14 
[ 4629.430145] 00 
[ 4629.430145] 80 
[ 4629.430145] 84 
[ 4629.430146] 1e 
[ 4629.430146] 00 

[ 4629.430147] extra desc 13:
[ 4629.430147] 32 
[ 4629.430147] 24 
[ 4629.430148] 05 
[ 4629.430148] 0c 
[ 4629.430148] 00 
[ 4629.430149] 60 
[ 4629.430149] 03 
[ 4629.430149] e0 
[ 4629.430150] 01 
[ 4629.430150] 00 
[ 4629.430150] 40 
[ 4629.430151] fa 
[ 4629.430151] 01 
[ 4629.430151] 00 
[ 4629.430152] 00 
[ 4629.430152] 7e 
[ 4629.430153] 09 
[ 4629.430153] 00 
[ 4629.430153] a8 
[ 4629.430154] 0c 
[ 4629.430154] 00 
[ 4629.430154] 9a 
[ 4629.430155] 5b 
[ 4629.430155] 06 
[ 4629.430155] 00 
[ 4629.430156] 06 
[ 4629.430156] 9a 
[ 4629.430156] 5b 
[ 4629.430157] 06 
[ 4629.430157] 00 
[ 4629.430157] 20 
[ 4629.430158] a1 
[ 4629.430158] 07 
[ 4629.430158] 00 
[ 4629.430159] 2a 
[ 4629.430159] 2c 
[ 4629.430160] 0a 
[ 4629.430160] 00 
[ 4629.430160] 40 
[ 4629.430161] 42 
[ 4629.430161] 0f 
[ 4629.430161] 00 
[ 4629.430162] 55 
[ 4629.430162] 58 
[ 4629.430162] 14 
[ 4629.430163] 00 
[ 4629.430163] 80 
[ 4629.430163] 84 
[ 4629.430164] 1e 
[ 4629.430164] 00 

[ 4629.430165] extra desc 14:
[ 4629.430165] 2a 
[ 4629.430165] 24 
[ 4629.430166] 05 
[ 4629.430166] 0d 
[ 4629.430166] 00 
[ 4629.430167] c0 
[ 4629.430167] 03 
[ 4629.430167] d0 
[ 4629.430168] 02 
[ 4629.430168] 00 
[ 4629.430168] c0 
[ 4629.430169] 4b 
[ 4629.430169] 03 
[ 4629.430169] 00 
[ 4629.430170] 40 
[ 4629.430170] e3 
[ 4629.430171] 09 
[ 4629.430171] 00 
[ 4629.430171] 18 
[ 4629.430172] 15 
[ 4629.430172] 00 
[ 4629.430172] 2a 
[ 4629.430173] 2c 
[ 4629.430173] 0a 
[ 4629.430173] 00 
[ 4629.430174] 04 
[ 4629.430174] 2a 
[ 4629.430175] 2c 
[ 4629.430175] 0a 
[ 4629.430175] 00 
[ 4629.430176] 40 
[ 4629.430176] 42 
[ 4629.430176] 0f 
[ 4629.430177] 00 
[ 4629.430177] 55 
[ 4629.430177] 58 
[ 4629.430178] 14 
[ 4629.430178] 00 
[ 4629.430178] 80 
[ 4629.430179] 84 
[ 4629.430179] 1e 
[ 4629.430179] 00 

[ 4629.430180] extra desc 15:
[ 4629.430180] 2a 
[ 4629.430181] 24 
[ 4629.430181] 05 
[ 4629.430181] 0e 
[ 4629.430182] 00 
[ 4629.430182] 00 
[ 4629.430182] 04 
[ 4629.430183] 40 
[ 4629.430183] 02 
[ 4629.430184] 00 
[ 4629.430184] 00 
[ 4629.430184] d0 
[ 4629.430185] 02 
[ 4629.430185] 00 
[ 4629.430186] 00 
[ 4629.430190] 70 
[ 4629.430190] 08 
[ 4629.430190] 00 
[ 4629.430191] 00 
[ 4629.430191] 12 
[ 4629.430191] 00 
[ 4629.430192] 2a 
[ 4629.430192] 2c 
[ 4629.430192] 0a 
[ 4629.430193] 00 
[ 4629.430193] 04 
[ 4629.430202] 2a 
[ 4629.430203] 2c 
[ 4629.430213] 0a 
[ 4629.430213] 00 
[ 4629.430220] 40 
[ 4629.430222] 42 
[ 4629.430223] 0f 
[ 4629.430235] 00 
[ 4629.430237] 55 
[ 4629.430238] 58 
[ 4629.430240] 14 
[ 4629.430241] 00 
[ 4629.430243] 80 
[ 4629.430245] 84 
[ 4629.430246] 1e 
[ 4629.430247] 00 

[ 4629.430250] extra desc 16:
[ 4629.430250] 26 
[ 4629.430251] 24 
[ 4629.430251] 05 
[ 4629.430253] 0f 
[ 4629.430256] 00 
[ 4629.430257] 00 
[ 4629.430258] 05 
[ 4629.430260] d0 
[ 4629.430262] 02 
[ 4629.430263] 00 
[ 4629.430264] 00 
[ 4629.430265] 65 
[ 4629.430266] 04 
[ 4629.430268] 00 
[ 4629.430269] 00 
[ 4629.430270] ca 
[ 4629.430272] 08 
[ 4629.430274] 00 
[ 4629.430275] 20 
[ 4629.430277] 1c 
[ 4629.430278] 00 
[ 4629.430280] 40 
[ 4629.430281] 42 
[ 4629.430282] 0f 
[ 4629.430284] 00 
[ 4629.430285] 03 
[ 4629.430286] 40 
[ 4629.430288] 42 
[ 4629.430289] 0f 
[ 4629.430290] 00 
[ 4629.430291] 55 
[ 4629.430293] 58 
[ 4629.430294] 14 
[ 4629.430296] 00 
[ 4629.430297] 80 
[ 4629.430299] 84 
[ 4629.430300] 1e 
[ 4629.430301] 00 

[ 4629.430302] extra desc 17:
[ 4629.430303] 22 
[ 4629.430303] 24 
[ 4629.430313] 05 
[ 4629.430315] 10 
[ 4629.430318] 00 
[ 4629.430320] 40 
[ 4629.430320] 06 
[ 4629.430321] 80 
[ 4629.430323] 03 
[ 4629.430325] 00 
[ 4629.430327] 00 
[ 4629.430329] d6 
[ 4629.430330] 06 
[ 4629.430332] 00 
[ 4629.430338] 00 
[ 4629.430340] 41 
[ 4629.430341] 0a 
[ 4629.430342] 00 
[ 4629.430344] c0 
[ 4629.430346] 2b 
[ 4629.430349] 00 
[ 4629.430352] 55 
[ 4629.430353] 58 
[ 4629.430355] 14 
[ 4629.430355] 00 
[ 4629.430357] 02 
[ 4629.430359] 55 
[ 4629.430360] 58 
[ 4629.430370] 14 
[ 4629.430372] 00 
[ 4629.430373] 80 
[ 4629.430377] 84 
[ 4629.430380] 1e 
[ 4629.430380] 00 

[ 4629.430388] extra desc 18:
[ 4629.430388] 1e 
[ 4629.430390] 24 
[ 4629.430390] 05 
[ 4629.430390] 11 
[ 4629.430391] 00 
[ 4629.430391] 80 
[ 4629.430392] 07 
[ 4629.430392] 38 
[ 4629.430392] 04 
[ 4629.430393] 00 
[ 4629.430393] 40 
[ 4629.430394] e3 
[ 4629.430394] 09 
[ 4629.430395] 00 
[ 4629.430398] 40 
[ 4629.430400] e3 
[ 4629.430401] 09 
[ 4629.430405] 00 
[ 4629.430405] 48 
[ 4629.430412] 3f 
[ 4629.430413] 00 
[ 4629.430414] 80 
[ 4629.430416] 84 
[ 4629.430418] 1e 
[ 4629.430422] 00 
[ 4629.430423] 01 
[ 4629.430478] 80 
[ 4629.430484] 84 
[ 4629.430487] 1e 
[ 4629.430491] 00 

[ 4629.430498] extra desc 19:
[ 4629.430500] 1e 
[ 4629.430503] 24 
[ 4629.430507] 05 
[ 4629.430512] 12 
[ 4629.430515] 00 
[ 4629.430535] 00 
[ 4629.430536] 0a 
[ 4629.430537] c0 
[ 4629.430537] 05 
[ 4629.430538] 00 
[ 4629.430539] 00 
[ 4629.430540] f8 
[ 4629.430541] 11 
[ 4629.430541] 00 
[ 4629.430542] 00 
[ 4629.430543] f8 
[ 4629.430545] 11 
[ 4629.430546] 00 
[ 4629.430547] 00 
[ 4629.430547] 73 
[ 4629.430548] 00 
[ 4629.430549] 3e 
[ 4629.430550] 4b 
[ 4629.430551] 4c 
[ 4629.430552] 00 
[ 4629.430553] 01 
[ 4629.430554] 3e 
[ 4629.430555] 4b 
[ 4629.430556] 4c 
[ 4629.430557] 00 

[ 4629.430559] extra desc 20:
[ 4629.430559] 06 
[ 4629.430560] 24 
[ 4629.430561] 0d 
[ 4629.430563] 01 
[ 4629.430563] 01 
[ 4629.430565] 04 

[ 4629.430566] extra desc 21:
[ 4629.430567] 0b 
[ 4629.430568] 24 
[ 4629.430568] 06 
[ 4629.430569] 02 
[ 4629.430570] 11 
[ 4629.430571] 01 
[ 4629.430573] 01 
[ 4629.430573] 00 
[ 4629.430574] 00 
[ 4629.430575] 00 
[ 4629.430576] 00 

[ 4629.430578] extra desc 22:
[ 4629.430579] 36 
[ 4629.430580] 24 
[ 4629.430581] 07 
[ 4629.430583] 01 
[ 4629.430584] 00 
[ 4629.430585] 80 
[ 4629.430586] 02 
[ 4629.430587] e0 
[ 4629.430588] 01 
[ 4629.430589] 00 
[ 4629.430591] 00 
[ 4629.430592] 77 
[ 4629.430593] 01 
[ 4629.430594] 00 
[ 4629.430595] 00 
[ 4629.430596] ca 
[ 4629.430597] 08 
[ 4629.430599] 00 
[ 4629.430600] 60 
[ 4629.430601] 09 
[ 4629.430603] 00 
[ 4629.430604] 15 
[ 4629.430605] 16 
[ 4629.430606] 05 
[ 4629.430607] 00 
[ 4629.430608] 07 
[ 4629.430609] 15 
[ 4629.430611] 16 
[ 4629.430612] 05 
[ 4629.430613] 00 
[ 4629.430615] 9a 
[ 4629.430616] 5b 
[ 4629.430617] 06 
[ 4629.430618] 00 
[ 4629.430619] 20 
[ 4629.430620] a1 
[ 4629.430622] 07 
[ 4629.430623] 00 
[ 4629.430624] 2a 
[ 4629.430625] 2c 
[ 4629.430626] 0a 
[ 4629.430627] 00 
[ 4629.430628] 40 
[ 4629.430630] 42 
[ 4629.430631] 0f 
[ 4629.430632] 00 
[ 4629.430633] 55 
[ 4629.430635] 58 
[ 4629.430636] 14 
[ 4629.430637] 00 
[ 4629.430638] 80 
[ 4629.430639] 84 
[ 4629.430640] 1e 
[ 4629.430641] 00 

[ 4629.430643] extra desc 23:
[ 4629.430644] 36 
[ 4629.430646] 24 
[ 4629.430647] 07 
[ 4629.430648] 02 
[ 4629.430650] 00 
[ 4629.430651] a0 
[ 4629.430652] 00 
[ 4629.430653] 5a 
[ 4629.430654] 00 
[ 4629.430655] 00 
[ 4629.430657] 94 
[ 4629.430658] 11 
[ 4629.430659] 00 
[ 4629.430660] 00 
[ 4629.430661] 78 
[ 4629.430662] 69 
[ 4629.430663] 00 
[ 4629.430665] 80 
[ 4629.430666] 70 
[ 4629.430667] 00 
[ 4629.430668] 00 
[ 4629.430670] 15 
[ 4629.430671] 16 
[ 4629.430672] 05 
[ 4629.430673] 00 
[ 4629.430674] 07 
[ 4629.430676] 15 
[ 4629.430677] 16 
[ 4629.430678] 05 
[ 4629.430679] 00 
[ 4629.430680] 9a 
[ 4629.430682] 5b 
[ 4629.430683] 06 
[ 4629.430684] 00 
[ 4629.430685] 20 
[ 4629.430686] a1 
[ 4629.430687] 07 
[ 4629.430689] 00 
[ 4629.430690] 2a 
[ 4629.430692] 2c 
[ 4629.430693] 0a 
[ 4629.430694] 00 
[ 4629.430695] 40 
[ 4629.430696] 42 
[ 4629.430697] 0f 
[ 4629.430699] 00 
[ 4629.430700] 55 
[ 4629.430701] 58 
[ 4629.430702] 14 
[ 4629.430703] 00 
[ 4629.430705] 80 
[ 4629.430706] 84 
[ 4629.430707] 1e 
[ 4629.430708] 00 

[ 4629.430711] extra desc 24:
[ 4629.430711] 36 
[ 4629.430712] 24 
[ 4629.430713] 07 
[ 4629.430714] 03 
[ 4629.430716] 00 
[ 4629.430717] a0 
[ 4629.430718] 00 
[ 4629.430718] 78 
[ 4629.430719] 00 
[ 4629.430720] 00 
[ 4629.430721] 70 
[ 4629.430722] 17 
[ 4629.430723] 00 
[ 4629.430724] 00 
[ 4629.430725] a0 
[ 4629.430727] 8c 
[ 4629.430728] 00 
[ 4629.430728] 00 
[ 4629.430729] 96 
[ 4629.430730] 00 
[ 4629.430731] 00 
[ 4629.430732] 15 
[ 4629.430733] 16 
[ 4629.430734] 05 
[ 4629.430735] 00 
[ 4629.430736] 07 
[ 4629.430737] 15 
[ 4629.430738] 16 
[ 4629.430739] 05 
[ 4629.430740] 00 
[ 4629.430741] 9a 
[ 4629.430742] 5b 
[ 4629.430743] 06 
[ 4629.430744] 00 
[ 4629.430745] 20 
[ 4629.430746] a1 
[ 4629.430747] 07 
[ 4629.430748] 00 
[ 4629.430749] 2a 
[ 4629.430750] 2c 
[ 4629.430751] 0a 
[ 4629.430752] 00 
[ 4629.430754] 40 
[ 4629.430755] 42 
[ 4629.430756] 0f 
[ 4629.430756] 00 
[ 4629.430757] 55 
[ 4629.430758] 58 
[ 4629.430759] 14 
[ 4629.430760] 00 
[ 4629.430761] 80 
[ 4629.430763] 84 
[ 4629.430764] 1e 
[ 4629.430765] 00 

[ 4629.430767] extra desc 25:
[ 4629.430767] 36 
[ 4629.430768] 24 
[ 4629.430769] 07 
[ 4629.430770] 04 
[ 4629.430771] 00 
[ 4629.430773] b0 
[ 4629.430773] 00 
[ 4629.430774] 90 
[ 4629.430775] 00 
[ 4629.430776] 00 
[ 4629.430777] f0 
[ 4629.430778] 1e 
[ 4629.430779] 00 
[ 4629.430780] 00 
[ 4629.430782] a0 
[ 4629.430783] b9 
[ 4629.430784] 00 
[ 4629.430785] 00 
[ 4629.430786] c6 
[ 4629.430786] 00 
[ 4629.430787] 00 
[ 4629.430788] 15 
[ 4629.430789] 16 
[ 4629.430791] 05 
[ 4629.430792] 00 
[ 4629.430793] 07 
[ 4629.430794] 15 
[ 4629.430795] 16 
[ 4629.430796] 05 
[ 4629.430797] 00 
[ 4629.430798] 9a 
[ 4629.430800] 5b 
[ 4629.430801] 06 
[ 4629.430802] 00 
[ 4629.430803] 20 
[ 4629.430804] a1 
[ 4629.430805] 07 
[ 4629.430805] 00 
[ 4629.430806] 2a 
[ 4629.430807] 2c 
[ 4629.430809] 0a 
[ 4629.430810] 00 
[ 4629.430810] 40 
[ 4629.430811] 42 
[ 4629.430812] 0f 
[ 4629.430813] 00 
[ 4629.430814] 55 
[ 4629.430815] 58 
[ 4629.430817] 14 
[ 4629.430818] 00 
[ 4629.430819] 80 
[ 4629.430820] 84 
[ 4629.430821] 1e 
[ 4629.430822] 00 

[ 4629.430824] extra desc 26:
[ 4629.430824] 36 
[ 4629.430825] 24 
[ 4629.430827] 07 
[ 4629.430828] 05 
[ 4629.430828] 00 
[ 4629.430829] 40 
[ 4629.430830] 01 
[ 4629.430831] b4 
[ 4629.430832] 00 
[ 4629.430833] 00 
[ 4629.430834] 50 
[ 4629.430836] 46 
[ 4629.430837] 00 
[ 4629.430837] 00 
[ 4629.430838] e0 
[ 4629.430839] a5 
[ 4629.430840] 01 
[ 4629.430841] 00 
[ 4629.430842] c2 
[ 4629.430843] 01 
[ 4629.430844] 00 
[ 4629.430844] 15 
[ 4629.430845] 16 
[ 4629.430866] 05 
[ 4629.430867] 00 
[ 4629.430868] 07 
[ 4629.430869] 15 
[ 4629.430871] 16 
[ 4629.430878] 05 
[ 4629.430879] 00 
[ 4629.430879] 9a 
[ 4629.430880] 5b 
[ 4629.430880] 06 
[ 4629.430881] 00 
[ 4629.430882] 20 
[ 4629.430882] a1 
[ 4629.430882] 07 
[ 4629.430883] 00 
[ 4629.430884] 2a 
[ 4629.430884] 2c 
[ 4629.430884] 0a 
[ 4629.430885] 00 
[ 4629.430886] 40 
[ 4629.430886] 42 
[ 4629.430887] 0f 
[ 4629.430887] 00 
[ 4629.430888] 55 
[ 4629.430888] 58 
[ 4629.430889] 14 
[ 4629.430889] 00 
[ 4629.430890] 80 
[ 4629.430891] 84 
[ 4629.430892] 1e 
[ 4629.430892] 00 

[ 4629.430894] extra desc 27:
[ 4629.430895] 36 
[ 4629.430895] 24 
[ 4629.430896] 07 
[ 4629.430912] 06 
[ 4629.430913] 00 
[ 4629.430914] 40 
[ 4629.430914] 01 
[ 4629.430915] f0 
[ 4629.430915] 00 
[ 4629.430916] 00 
[ 4629.430917] c0 
[ 4629.430917] 5d 
[ 4629.430918] 00 
[ 4629.430918] 00 
[ 4629.430919] 80 
[ 4629.430920] 32 
[ 4629.430920] 02 
[ 4629.430921] 00 
[ 4629.430922] 58 
[ 4629.430923] 02 
[ 4629.430923] 00 
[ 4629.430924] 15 
[ 4629.430925] 16 
[ 4629.430926] 05 
[ 4629.430927] 00 
[ 4629.430927] 07 
[ 4629.430928] 15 
[ 4629.430929] 16 
[ 4629.430929] 05 
[ 4629.430930] 00 
[ 4629.430930] 9a 
[ 4629.430931] 5b 
[ 4629.430932] 06 
[ 4629.430932] 00 
[ 4629.430933] 20 
[ 4629.430934] a1 
[ 4629.430934] 07 
[ 4629.430935] 00 
[ 4629.430935] 2a 
[ 4629.430936] 2c 
[ 4629.430937] 0a 
[ 4629.430937] 00 
[ 4629.430938] 40 
[ 4629.430939] 42 
[ 4629.430939] 0f 
[ 4629.430940] 00 
[ 4629.430941] 55 
[ 4629.430941] 58 
[ 4629.430942] 14 
[ 4629.430943] 00 
[ 4629.430943] 80 
[ 4629.430944] 84 
[ 4629.430945] 1e 
[ 4629.430945] 00 

[ 4629.430948] extra desc 28:
[ 4629.430948] 36 
[ 4629.430949] 24 
[ 4629.430949] 07 
[ 4629.430950] 07 
[ 4629.430951] 00 
[ 4629.430951] 60 
[ 4629.430952] 01 
[ 4629.430952] 20 
[ 4629.430953] 01 
[ 4629.430954] 00 
[ 4629.430954] c0 
[ 4629.430955] 7b 
[ 4629.430956] 00 
[ 4629.430956] 00 
[ 4629.430957] 80 
[ 4629.430957] e6 
[ 4629.430958] 02 
[ 4629.430959] 00 
[ 4629.430959] 18 
[ 4629.430960] 03 
[ 4629.430961] 00 
[ 4629.430961] 15 
[ 4629.430962] 16 
[ 4629.430963] 05 
[ 4629.430964] 00 
[ 4629.430965] 07 
[ 4629.430966] 15 
[ 4629.430967] 16 
[ 4629.430967] 05 
[ 4629.430968] 00 
[ 4629.430969] 9a 
[ 4629.430969] 5b 
[ 4629.430970] 06 
[ 4629.430970] 00 
[ 4629.430971] 20 
[ 4629.430972] a1 
[ 4629.430972] 07 
[ 4629.430973] 00 
[ 4629.430974] 2a 
[ 4629.430974] 2c 
[ 4629.430975] 0a 
[ 4629.430976] 00 
[ 4629.430976] 40 
[ 4629.430977] 42 
[ 4629.430977] 0f 
[ 4629.430978] 00 
[ 4629.430979] 55 
[ 4629.430979] 58 
[ 4629.430980] 14 
[ 4629.430981] 00 
[ 4629.430981] 80 
[ 4629.430983] 84 
[ 4629.430983] 1e 
[ 4629.430984] 00 

[ 4629.430985] extra desc 29:
[ 4629.430985] 36 
[ 4629.430986] 24 
[ 4629.430987] 07 
[ 4629.430987] 08 
[ 4629.430988] 00 
[ 4629.430988] b0 
[ 4629.430989] 01 
[ 4629.430989] f0 
[ 4629.430990] 00 
[ 4629.430990] 00 
[ 4629.430991] 90 
[ 4629.430991] 7e 
[ 4629.430992] 00 
[ 4629.430992] 00 
[ 4629.430993] 60 
[ 4629.430993] f7 
[ 4629.430994] 02 
[ 4629.430995] 00 
[ 4629.430995] 2a 
[ 4629.430996] 03 
[ 4629.430996] 00 
[ 4629.430997] 15 
[ 4629.430997] 16 
[ 4629.430999] 05 
[ 4629.430999] 00 
[ 4629.431000] 07 
[ 4629.431000] 15 
[ 4629.431001] 16 
[ 4629.431001] 05 
[ 4629.431002] 00 
[ 4629.431002] 9a 
[ 4629.431003] 5b 
[ 4629.431004] 06 
[ 4629.431004] 00 
[ 4629.431005] 20 
[ 4629.431005] a1 
[ 4629.431006] 07 
[ 4629.431006] 00 
[ 4629.431007] 2a 
[ 4629.431007] 2c 
[ 4629.431008] 0a 
[ 4629.431008] 00 
[ 4629.431009] 40 
[ 4629.431009] 42 
[ 4629.431010] 0f 
[ 4629.431010] 00 
[ 4629.431011] 55 
[ 4629.431011] 58 
[ 4629.431012] 14 
[ 4629.431013] 00 
[ 4629.431014] 80 
[ 4629.431014] 84 
[ 4629.431015] 1e 
[ 4629.431016] 00 

[ 4629.431017] extra desc 30:
[ 4629.431018] 36 
[ 4629.431018] 24 
[ 4629.431019] 07 
[ 4629.431020] 09 
[ 4629.431020] 00 
[ 4629.431021] 80 
[ 4629.431021] 02 
[ 4629.431022] 68 
[ 4629.431023] 01 
[ 4629.431023] 00 
[ 4629.431024] 40 
[ 4629.431025] 19 
[ 4629.431025] 01 
[ 4629.431026] 00 
[ 4629.431026] 80 
[ 4629.431027] 97 
[ 4629.431028] 06 
[ 4629.431028] 00 
[ 4629.431029] 08 
[ 4629.431030] 07 
[ 4629.431030] 00 
[ 4629.431031] 15 
[ 4629.431033] 16 
[ 4629.431033] 05 
[ 4629.431034] 00 
[ 4629.431034] 07 
[ 4629.431035] 15 
[ 4629.431036] 16 
[ 4629.431036] 05 
[ 4629.431037] 00 
[ 4629.431037] 9a 
[ 4629.431038] 5b 
[ 4629.431039] 06 
[ 4629.431039] 00 
[ 4629.431040] 20 
[ 4629.431040] a1 
[ 4629.431041] 07 
[ 4629.431042] 00 
[ 4629.431042] 2a 
[ 4629.431043] 2c 
[ 4629.431044] 0a 
[ 4629.431044] 00 
[ 4629.431045] 40 
[ 4629.431045] 42 
[ 4629.431046] 0f 
[ 4629.431047] 00 
[ 4629.431048] 55 
[ 4629.431049] 58 
[ 4629.431049] 14 
[ 4629.431050] 00 
[ 4629.431051] 80 
[ 4629.431051] 84 
[ 4629.431052] 1e 
[ 4629.431053] 00 

[ 4629.431054] extra desc 31:
[ 4629.431054] 36 
[ 4629.431055] 24 
[ 4629.431056] 07 
[ 4629.431056] 0a 
[ 4629.431057] 00 
[ 4629.431057] 20 
[ 4629.431058] 03 
[ 4629.431059] c0 
[ 4629.431059] 01 
[ 4629.431060] 00 
[ 4629.431061] 80 
[ 4629.431062] b5 
[ 4629.431063] 01 
[ 4629.431063] 00 
[ 4629.431064] 00 
[ 4629.431065] 41 
[ 4629.431066] 0a 
[ 4629.431066] 00 
[ 4629.431067] f0 
[ 4629.431068] 0a 
[ 4629.431068] 00 
[ 4629.431069] 15 
[ 4629.431070] 16 
[ 4629.431070] 05 
[ 4629.431071] 00 
[ 4629.431071] 07 
[ 4629.431072] 15 
[ 4629.431073] 16 
[ 4629.431073] 05 
[ 4629.431074] 00 
[ 4629.431075] 9a 
[ 4629.431075] 5b 
[ 4629.431076] 06 
[ 4629.431077] 00 
[ 4629.431077] 20 
[ 4629.431078] a1 
[ 4629.431078] 07 
[ 4629.431079] 00 
[ 4629.431080] 2a 
[ 4629.431080] 2c 
[ 4629.431081] 0a 
[ 4629.431082] 00 
[ 4629.431082] 40 
[ 4629.431083] 42 
[ 4629.431083] 0f 
[ 4629.431084] 00 
[ 4629.431085] 55 
[ 4629.431085] 58 
[ 4629.431086] 14 
[ 4629.431087] 00 
[ 4629.431087] 80 
[ 4629.431088] 84 
[ 4629.431089] 1e 
[ 4629.431090] 00 

[ 4629.431091] extra desc 32:
[ 4629.431092] 36 
[ 4629.431093] 24 
[ 4629.431094] 07 
[ 4629.431094] 0b 
[ 4629.431095] 00 
[ 4629.431095] 20 
[ 4629.431119] 03 
[ 4629.431119] 58 
[ 4629.431120] 02 
[ 4629.431121] 00 
[ 4629.431121] f0 
[ 4629.431122] 49 
[ 4629.431123] 02 
[ 4629.431123] 00 
[ 4629.431124] a0 
[ 4629.431125] bb 
[ 4629.431126] 0d 
[ 4629.431126] 00 
[ 4629.431127] a6 
[ 4629.431128] 0e 
[ 4629.431129] 00 
[ 4629.431130] 15 
[ 4629.431130] 16 
[ 4629.431131] 05 
[ 4629.431132] 00 
[ 4629.431132] 07 
[ 4629.431133] 15 
[ 4629.431134] 16 
[ 4629.431135] 05 
[ 4629.431136] 00 
[ 4629.431138] 9a 
[ 4629.431139] 5b 
[ 4629.431139] 06 
[ 4629.431140] 00 
[ 4629.431141] 20 
[ 4629.431141] a1 
[ 4629.431142] 07 
[ 4629.431143] 00 
[ 4629.431143] 2a 
[ 4629.431144] 2c 
[ 4629.431145] 0a 
[ 4629.431146] 00 
[ 4629.431147] 40 
[ 4629.431147] 42 
[ 4629.431148] 0f 
[ 4629.431149] 00 
[ 4629.431150] 55 
[ 4629.431151] 58 
[ 4629.431152] 14 
[ 4629.431152] 00 
[ 4629.431153] 80 
[ 4629.431155] 84 
[ 4629.431155] 1e 
[ 4629.431157] 00 

[ 4629.431159] extra desc 33:
[ 4629.431159] 36 
[ 4629.431160] 24 
[ 4629.431161] 07 
[ 4629.431161] 0c 
[ 4629.431162] 00 
[ 4629.431163] 60 
[ 4629.431164] 03 
[ 4629.431165] e0 
[ 4629.431165] 01 
[ 4629.431166] 00 
[ 4629.431167] 40 
[ 4629.431168] fa 
[ 4629.431169] 01 
[ 4629.431169] 00 
[ 4629.431170] 80 
[ 4629.431171] dd 
[ 4629.431172] 0b 
[ 4629.431173] 00 
[ 4629.431175] a8 
[ 4629.431176] 0c 
[ 4629.431176] 00 
[ 4629.431177] 15 
[ 4629.431178] 16 
[ 4629.431179] 05 
[ 4629.431180] 00 
[ 4629.431181] 07 
[ 4629.431181] 15 
[ 4629.431182] 16 
[ 4629.431183] 05 
[ 4629.431184] 00 
[ 4629.431185] 9a 
[ 4629.431185] 5b 
[ 4629.431186] 06 
[ 4629.431187] 00 
[ 4629.431188] 20 
[ 4629.431188] a1 
[ 4629.431189] 07 
[ 4629.431190] 00 
[ 4629.431191] 2a 
[ 4629.431193] 2c 
[ 4629.431194] 0a 
[ 4629.431194] 00 
[ 4629.431195] 40 
[ 4629.431196] 42 
[ 4629.431197] 0f 
[ 4629.431198] 00 
[ 4629.431198] 55 
[ 4629.431199] 58 
[ 4629.431200] 14 
[ 4629.431201] 00 
[ 4629.431202] 80 
[ 4629.431202] 84 
[ 4629.431203] 1e 
[ 4629.431204] 00 

[ 4629.431206] extra desc 34:
[ 4629.431206] 36 
[ 4629.431207] 24 
[ 4629.431208] 07 
[ 4629.431208] 0d 
[ 4629.431209] 00 
[ 4629.431210] c0 
[ 4629.431210] 03 
[ 4629.431211] d0 
[ 4629.431212] 02 
[ 4629.431213] 00 
[ 4629.431213] c0 
[ 4629.431214] 4b 
[ 4629.431215] 03 
[ 4629.431215] 00 
[ 4629.431216] 80 
[ 4629.431217] c6 
[ 4629.431218] 13 
[ 4629.431218] 00 
[ 4629.431219] 18 
[ 4629.431220] 15 
[ 4629.431220] 00 
[ 4629.431221] 15 
[ 4629.431222] 16 
[ 4629.431223] 05 
[ 4629.431223] 00 
[ 4629.431224] 07 
[ 4629.431225] 15 
[ 4629.431226] 16 
[ 4629.431226] 05 
[ 4629.431227] 00 
[ 4629.431228] 9a 
[ 4629.431229] 5b 
[ 4629.431229] 06 
[ 4629.431230] 00 
[ 4629.431231] 20 
[ 4629.431232] a1 
[ 4629.431232] 07 
[ 4629.431233] 00 
[ 4629.431234] 2a 
[ 4629.431234] 2c 
[ 4629.431235] 0a 
[ 4629.431236] 00 
[ 4629.431236] 40 
[ 4629.431237] 42 
[ 4629.431238] 0f 
[ 4629.431238] 00 
[ 4629.431239] 55 
[ 4629.431240] 58 
[ 4629.431240] 14 
[ 4629.431241] 00 
[ 4629.431242] 80 
[ 4629.431242] 84 
[ 4629.431243] 1e 
[ 4629.431244] 00 

[ 4629.431245] extra desc 35:
[ 4629.431246] 36 
[ 4629.431247] 24 
[ 4629.431247] 07 
[ 4629.431248] 0e 
[ 4629.431249] 00 
[ 4629.431250] 00 
[ 4629.431251] 04 
[ 4629.431251] 40 
[ 4629.431252] 02 
[ 4629.431253] 00 
[ 4629.431253] 00 
[ 4629.431254] d0 
[ 4629.431255] 02 
[ 4629.431255] 00 
[ 4629.431256] 00 
[ 4629.431257] e0 
[ 4629.431257] 10 
[ 4629.431258] 00 
[ 4629.431259] 00 
[ 4629.431260] 12 
[ 4629.431260] 00 
[ 4629.431261] 15 
[ 4629.431262] 16 
[ 4629.431262] 05 
[ 4629.431263] 00 
[ 4629.431264] 07 
[ 4629.431265] 15 
[ 4629.431265] 16 
[ 4629.431266] 05 
[ 4629.431267] 00 
[ 4629.431268] 9a 
[ 4629.431268] 5b 
[ 4629.431269] 06 
[ 4629.431270] 00 
[ 4629.431271] 20 
[ 4629.431272] a1 
[ 4629.431272] 07 
[ 4629.431273] 00 
[ 4629.431274] 2a 
[ 4629.431275] 2c 
[ 4629.431276] 0a 
[ 4629.431276] 00 
[ 4629.431277] 40 
[ 4629.431278] 42 
[ 4629.431279] 0f 
[ 4629.431280] 00 
[ 4629.431280] 55 
[ 4629.431281] 58 
[ 4629.431282] 14 
[ 4629.431283] 00 
[ 4629.431284] 80 
[ 4629.431285] 84 
[ 4629.431285] 1e 
[ 4629.431286] 00 

[ 4629.431288] extra desc 36:
[ 4629.431288] 36 
[ 4629.431289] 24 
[ 4629.431290] 07 
[ 4629.431291] 0f 
[ 4629.431292] 00 
[ 4629.431292] 00 
[ 4629.431293] 05 
[ 4629.431294] d0 
[ 4629.431295] 02 
[ 4629.431296] 00 
[ 4629.431297] 00 
[ 4629.431297] 65 
[ 4629.431298] 04 
[ 4629.431299] 00 
[ 4629.431300] 00 
[ 4629.431301] 5e 
[ 4629.431302] 1a 
[ 4629.431302] 00 
[ 4629.431303] 20 
[ 4629.431304] 1c 
[ 4629.431305] 00 
[ 4629.431306] 15 
[ 4629.431306] 16 
[ 4629.431307] 05 
[ 4629.431308] 00 
[ 4629.431309] 07 
[ 4629.431310] 15 
[ 4629.431311] 16 
[ 4629.431311] 05 
[ 4629.431312] 00 
[ 4629.431313] 9a 
[ 4629.431314] 5b 
[ 4629.431314] 06 
[ 4629.431315] 00 
[ 4629.431316] 20 
[ 4629.431317] a1 
[ 4629.431318] 07 
[ 4629.431319] 00 
[ 4629.431320] 2a 
[ 4629.431321] 2c 
[ 4629.431322] 0a 
[ 4629.431324] 00 
[ 4629.431325] 40 
[ 4629.431325] 42 
[ 4629.431326] 0f 
[ 4629.431327] 00 
[ 4629.431328] 55 
[ 4629.431329] 58 
[ 4629.431329] 14 
[ 4629.431330] 00 
[ 4629.431331] 80 
[ 4629.431332] 84 
[ 4629.431333] 1e 
[ 4629.431334] 00 

[ 4629.431335] extra desc 37:
[ 4629.431336] 36 
[ 4629.431337] 24 
[ 4629.431337] 07 
[ 4629.431338] 10 
[ 4629.431339] 00 
[ 4629.431340] 40 
[ 4629.431341] 06 
[ 4629.431341] 80 
[ 4629.431342] 03 
[ 4629.431343] 00 
[ 4629.431344] 00 
[ 4629.431345] d6 
[ 4629.431345] 06 
[ 4629.431346] 00 
[ 4629.431348] 00 
[ 4629.431348] 04 
[ 4629.431350] 29 
[ 4629.431351] 00 
[ 4629.431352] c0 
[ 4629.431353] 2b 
[ 4629.431353] 00 
[ 4629.431354] 15 
[ 4629.431355] 16 
[ 4629.431356] 05 
[ 4629.431357] 00 
[ 4629.431357] 07 
[ 4629.431358] 15 
[ 4629.431359] 16 
[ 4629.431360] 05 
[ 4629.431361] 00 
[ 4629.431362] 9a 
[ 4629.431362] 5b 
[ 4629.431363] 06 
[ 4629.431364] 00 
[ 4629.431365] 20 
[ 4629.431367] a1 
[ 4629.431368] 07 
[ 4629.431369] 00 
[ 4629.431370] 2a 
[ 4629.431371] 2c 
[ 4629.431371] 0a 
[ 4629.431372] 00 
[ 4629.431373] 40 
[ 4629.431374] 42 
[ 4629.431375] 0f 
[ 4629.431375] 00 
[ 4629.431376] 55 
[ 4629.431377] 58 
[ 4629.431378] 14 
[ 4629.431379] 00 
[ 4629.431379] 80 
[ 4629.431380] 84 
[ 4629.431381] 1e 
[ 4629.431382] 00 

[ 4629.431384] extra desc 38:
[ 4629.431384] 36 
[ 4629.431385] 24 
[ 4629.431386] 07 
[ 4629.431386] 11 
[ 4629.431387] 00 
[ 4629.431388] 80 
[ 4629.431389] 07 
[ 4629.431390] 38 
[ 4629.431391] 04 
[ 4629.431392] 00 
[ 4629.431393] 40 
[ 4629.431395] e3 
[ 4629.431395] 09 
[ 4629.431396] 00 
[ 4629.431397] 80 
[ 4629.431398] 53 
[ 4629.431420] 3b 
[ 4629.431421] 00 
[ 4629.431423] 48 
[ 4629.431424] 3f 
[ 4629.431425] 00 
[ 4629.431426] 15 
[ 4629.431426] 16 
[ 4629.431427] 05 
[ 4629.431428] 00 
[ 4629.431429] 07 
[ 4629.431430] 15 
[ 4629.431430] 16 
[ 4629.431431] 05 
[ 4629.431432] 00 
[ 4629.431433] 9a 
[ 4629.431434] 5b 
[ 4629.431435] 06 
[ 4629.431436] 00 
[ 4629.431437] 20 
[ 4629.431438] a1 
[ 4629.431439] 07 
[ 4629.431440] 00 
[ 4629.431441] 2a 
[ 4629.431442] 2c 
[ 4629.431443] 0a 
[ 4629.431443] 00 
[ 4629.431444] 40 
[ 4629.431445] 42 
[ 4629.431446] 0f 
[ 4629.431447] 00 
[ 4629.431447] 55 
[ 4629.431448] 58 
[ 4629.431449] 14 
[ 4629.431450] 00 
[ 4629.431451] 80 
[ 4629.431452] 84 
[ 4629.431453] 1e 
[ 4629.431454] 00 

[ 4629.431456] extra desc 39:
[ 4629.431457] 06 
[ 4629.431458] 24 
[ 4629.431459] 0d 
[ 4629.431459] 01 
[ 4629.431460] 01 
[ 4629.431461] 04 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/22838.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux :: 【基础指令篇 :: 用户管理:(2)】::设置用户密码(及本地Xshell 登录云服务器操作演示) :: passwd

前言&#xff1a;本篇是 Linux 基本操作篇章的内容&#xff01; 笔者使用的环境是基于腾讯云服务器&#xff1a;CentOS 7.6 64bit。 目录索引&#xff1a; 1. 基本语法 2. 基本用法 3. 注意点 4. 补充&#xff1a;指定用户设置密码操作实例测试及登录本地 Xshell 登录演…

前端微服务无界实践 | 京东云技术团队

一、前言 随着项目的发展&#xff0c;前端SPA应用的规模不断加大、业务代码耦合、编译慢&#xff0c;导致日常的维护难度日益增加。同时前端技术的发展迅猛&#xff0c;导致功能扩展吃力&#xff0c;重构成本高&#xff0c;稳定性低。因此前端微服务应运而生。 前端微服务优势…

什么是智慧校园?

什么是智慧校园&#xff1f; 智慧校园平台是目前教育信息化领域的热点之一。 随着数字化转型的加速&#xff0c;越来越多的学校开始寻求解决方案&#xff0c;以提高教育管理的效率和质量。 在使用智慧校园平台的过程中&#xff0c;一些痛点问题也浮现出来。为解决这些问题&a…

10 工具Bootchart的使用(windows)

Bootchart的使用方法&#xff08;windows&#xff09; 下载bootchart.jar并拷贝到windows, 然后保证windows也安装了open jdk 1.8; 下载地址&#xff1a;https://download.csdn.net/download/Johnny2004/87807973 打开设备开机启动bootchart的开关: adb shell touch /data/boo…

DID-M3D 论文学习

1. 解决了什么问题&#xff1f; 单目 3D 检测成本低、配置简单&#xff0c;对一张 RGB 图像预测 3D 空间的 3D 边框。最难的任务就是预测实例深度&#xff0c;因为相机投影后会丢失深度信息。以前的方法大多直接预测深度&#xff0c;本文则指出 RGB 图像上的实例深度不是一目了…

【学习日记2023.5.22】 之 套餐模块完善

4. 功能模块完善之套餐模块 4.1 新增套餐 4.1.1 需求分析与设计 产品原型 后台系统中可以管理套餐信息&#xff0c;通过 新增功能来添加一个新的套餐&#xff0c;在添加套餐时需要添加套餐对应菜品的信息&#xff0c;并且需要上传套餐图片。 新增套餐原型&#xff1a; 当填…

自动化如何做?爆肝整理企业自动化测试工具/框架选择实施,你要的都有...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Python自动化测试&…

web基础与HTTP协议

web基础与HTTP协议 一、域名概述二、网页的概念三、HTML四、web概述静态网页&#xff1a;动态页面动态页面与静态页面的区别 五、HTTP 一、域名概述 域名的概念&#xff1a;IP地址不易记忆 早期使用Hosts文件解析域名 – 主机名称重复 – 主机维护困难 DNS&#xff08;域名系…

大学4年做出来这个算不算丢人

前言&#xff1a;相信看到这篇文章的小伙伴都或多或少有一些编程基础&#xff0c;懂得一些linux的基本命令了吧&#xff0c;本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python&#xff1a;一种编程语言&…

开发者关系工程师如何帮助开发者在Sui上构建

近期&#xff0c;我们与Sui开发者关系负责人Brian Hennessey-Hsien进行了对话&#xff0c;就Sui上的开源、去中心化和开发者成就等话题展开讨论。 日前&#xff0c;我们采访了Sui基金会的开发者关系负责人Brian Hennessey-Hsieh&#xff0c;共同探讨了其对于Web3中开发者发展历…

2009.03-2022.06华证ESG季度评级(季度)

2009.03-2022.06华证ESG评级&#xff08;季度&#xff09; 1、时间&#xff1a;2009.03-2022.06.15 2、来源&#xff1a;整理自Wind 3、指标&#xff1a;华证ESG&#xff08;只有综合评级&#xff0c;无细分评级数据&#xff09; 4、样本数量&#xff1a;A股4800多家公司 …

【数据安全-02】AI打假利器数字水印,及java+opencv实现

AIGC 的火爆引燃了数字水印&#xff0c;说实话数字水印并不是一项新的技术&#xff0c;但是这时候某些公司拿出来宣传一下特别应景&#xff0c;相应股票蹭蹭地涨。数字水印是什么呢&#xff0c;顾名思义&#xff0c;和我们在pdf中打的水印作用差不多&#xff0c;起到明确版权、…

拉货搬家货运APP开发分析和功能列表

作为国家经济发展的重要基础设施&#xff0c;物流行业正在面对转型升级的风口。巨大的市场体量&#xff0c;也迎来了激烈的市场竞争。为了从同质化的服务中脱颖而出&#xff0c;开拓更大的市场&#xff0c;并且解决线下司机的载货痛点&#xff0c;货运APP的开发必不可少。 开发…

firewalld防火墙

firewalld防火墙 1&#xff1a;firewalld概述 firewalld防火墙是Centos7系统默认的防火墙管理工具&#xff0c;取代了之前的iptables防火墙&#xff0c;也是工作在网络层&#xff0c;属于包过滤防火墙。firewalld和iptables都是用来管理防火墙的工具&#xff08;属于用户态&a…

学习如何将Jenkins与UI测试报告完美整合,事半功倍,轻松获取高薪职位!

目录 引言 &#xff08;一&#xff09;在本地整合出报告 1.在cmd分别安装pytest和allure-pytest 2.进入需要执行的代码所在的路径 3.运行测试报告&#xff0c;代码如下 4.解析此json文件&#xff0c;代码如下&#xff08;新打开cmd进入路径&#xff09; 5.打开此HTML文件…

在CTEX文档生成中使用WinEit编辑带有公式符号的中文文档应用举例

CTEX文档生成中使用WinEit编辑带有公式符号的中文文档应用举例 CTEX在编辑文档格式和排版时具有优秀的性能&#xff0c;可批量处理文档格式&#xff0c;该用格式时候也非常快捷。下面举例介绍CTEX文档生成中怎样使用WinEit编辑带有公式符号的中文文档。 1.需要的代码 .在WinEi…

TPlinker解读

参考&#xff1a; 关系抽取之TPLinker解读加源码分析 TPLinker 实体关系抽取代码解读 实体关系联合抽取&#xff1a;TPlinker TPLinker中文注释版 Tagging TPLinker模型需要对关系三元组(subject, relation, object)进行手动Tagging&#xff0c;过程分为三部分&#xff1a; &…

springboot+java大学生新生入学报到报道系统+jsp004

新生报到系统分为学院管理员&#xff0c;宿舍管理员&#xff0c;财务管理员&#xff0c;辅导员&#xff0c;学生五种登录身份 学院管理员界面登入后台后有个人信息的展示&#xff0c;可对余下的四种身份信息进行增删改查&#xff0c;可进行对高考信息的导入导出&#xff0c;对报…

(三)ArcGIS空间数据的转换与处理——栅格数据变换

ArcGIS空间数据的转换与处理——栅格数据变换 目录 ArcGIS空间数据的转换与处理——栅格数据变换 1.地理配准2.平移3.扭曲4.旋转5.翻转6.重设比例尺7.镜像 数据变换是指对数据进行诸如放大、缩小、翻转、移动、扭曲等几何位置、形状和方位的改变等操作。对于 栅格数据的相应操…

chatgpt赋能python:Pythonsearchsorted:用于搜索排序数组的快速工具

Python searchsorted&#xff1a;用于搜索排序数组的快速工具 在Python编程中&#xff0c;有时需要在有序数组中快速查找值的位置。Python searchsorted工具提供了一种快速而高效的方法&#xff0c;可用于在已排序的数组中搜索值的位置。在本文中&#xff0c;将深入探讨Python…