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

news2024/11/18 8:23:08

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 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

详解创建共享邮箱的步骤和方法

共享邮箱是一个类似于分发列表 (DL) 的组&#xff0c;它具有由组织内的一组用户共享的公共电子邮件地址。与 DL 不同&#xff0c;外部成员不能添加到共享邮箱&#xff0c;并且不支持流。发送到共享邮箱的电子邮件不会出现在个人用户的邮箱中&#xff0c;从而减少电子邮件重复。…

【设计模式】我终于读懂了观察者模式。。。

文章目录 &#x1f506;天气预报项目需求,具体要求如下&#x1f506;天气预报设计方案 - 普通方案&#x1f506;问题分析 &#x1f506;观察者模式&#x1f506;debug下去看一下&#x1f506;观察者模式的好处&#x1f506;观察者模式在Jdk 应用的源码分析 &#x1f506;天气预…

凭借这个笔记,拿下8家大厂offer....

如何拿到多家大厂的offer&#xff0c;没有过硬的实力&#xff0c;就需要不断的学习。 我是如何拿到&#xff0c;阿里&#xff0c;腾讯&#xff0c;百度等八家大厂的offer的&#xff0c;今天我就给大家来分享我的秘密武器&#xff0c;阿里大神整理的包括&#xff0c;测试基础&am…

【MySQL联合查询】轻松实现数据关联

1、联合查询 联合查询又称为多表查询&#xff0c;它的基本执行过程就是笛卡尔积 1.1 认识笛卡尔积 那么什么是笛卡尔积呢&#xff1f; 答&#xff1a;笛卡尔积就是将两张表放在一起进行计算&#xff0c;把第一张表的每一行分别取出来和第二张表的每一行进行连接&#xff0c;得到…

springboot导出excel 多个sheet导出

1.pom.xml <!--文件导出--><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.9</version></dependency><dependency><groupId>org.apache.poi</groupId><ar…

使用Win10自带的PowerShell命令校验文件和镜像文件的Hash值(MD5、SHA1/256等)正确性

通常为了保证我们从网上下载的文件的完整性和可靠性&#xff0c;我们把文件下载下来以后都会校验一下MD5值或SHA1值&#xff08;例如验证下载的Win10 ISO镜像是否为原始文件&#xff09;&#xff0c;这一般都需要借助专门的MD5检验工具来完成。但其实使用Windows系统自带的Wind…

HTML+CSS(练习)实现棋盘电话拨号盘红绿灯

目录 棋盘HTMLCSS版本HTMLCSSJavaScript版本 电话拨号盘红绿灯 棋盘 HTMLCSS版本 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>作业2591实现棋盘效果</title><style>.container {width: 600px;height: 60…

8.FireWalld防火墙

文章目录 FireWalld防火墙概述firewalld和iptables区别firewalld区域firewalld配置查增删改 FireWalld防火墙 概述 firewalld防火墙是Centos7系统默认的防火墙管理工具&#xff0c;取代了之前的iptables防火墙&#xff0c;也 是工作在网络层&#xff0c;属于包过滤防火墙。 …

vue3 新特性详解(2)

文章目录 自定义Hook函数roRef 其它 Composition APIshallowReactive 与 shallowRefreadonly 与 shallowReadonlytoRaw 与 markRawcustomRefprovide 与 inject响应式数据的判断 Composition Api 的优势。 新的组件.FragmentTeleportSuspensevue3 一些api的转移 自定义Hook函数 …

Flink Hudi DataStream API代码示例

前言 总结Flink通过DataStream API读写Hudi Demo示例&#xff0c;主要是自己备忘用。 最开始学习Flink时都是使用Flink SQL,所以对于Flink SQL读写Hudi比较熟悉。但是对于写代码实现并不熟悉&#xff0c;而有些需求是基于Flink代码实现的&#xff0c;所以需要学习总结一下。仅…

ZYNQ无SD卡配置Linux系统到QSPI Flash和eMMC

硬件&#xff1a;黑金AX7450开发板、zynq7100、QSPI Flash、eMMC Flash 软件&#xff1a;Vivado 2017.4、Petalinux 我用了一台Windows主机&#xff0c;用于设计Vivado和烧写QSPI Flash&#xff0c;一台Ubuntu主机&#xff0c;用于运行Petalinux配置Linux系统。 硬件设计 新建…

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…

生成VLC 及其模块的全面帮助

使用vlc.exe -H命令生成VLC帮助文件vlc-help.txt -h, --help, --no-help 打印 VLC 帮助 (可以和 --advanced 和 --help-verbose 一起使用) (默认禁用) -H, --full-help, --no-full-help VLC 及…

如何创造一个属于自己的springboot stater

如何创造一个属于自己的springboot stater 什么是staterstater是怎么实现注入进来的如何进行约定 基于上述理论的demo实现功能代码目录核心实现spring.factoriesSpringMessageSubscribe&#xff08;扫描所有Subscribe注解生成消息订阅&#xff09;基于Redis的消息订阅基于redis…

对封装好的Vue组件库进行打包,并发布到npm上

1. 新建vue 项目 并且在根目录创建两个文件夹 packages和examples。 packages&#xff1a;用于存放所有的组件 examples&#xff1a;用于进行测试组件&#xff0c;把src改为examples 2.配置vue.config.js 并设置入口文件 如果没有vue.config.js文件 就需要在项目根目录下创…

数说故事@FBIC丨首发食饮SMI社媒心智品牌榜,为品牌支招紧跟健康新风尚

第八届Foodaily创博会&#xff08;FBIC全球食品饮料创新大会&#xff09;于5月14-16日在上海跨国采购会展中心圆满落幕&#xff0c;呈现了一场食品饮料行业盛会。数说故事与众多食饮健康品牌一起&#xff0c;走过了一段大数据AI加持的创新之旅。 数说故事VP孙淑娟Jessie受邀分享…

Android APP 集成系统签名

由于android 系统权限限制&#xff0c;很多时候普通APP权限无法完成&#xff0c;需要系统APP才有足够的权限&#xff0c; 比如&#xff1a;安装、卸载应用&#xff0c;重启设备&#xff0c;恢复出厂设置&#xff0c;以及设置里面的一些功能&#xff0c;都是需要系统权限才能调…

【WLAN网络故障,带你搞定它!】

01 无线网卡搜索不到 AP的无线信号 01 问题现象 无线网卡搜索不到 AP 的无线信号 02 问题分析 无线网卡搜索不到 AP 的信号 ,原因可以从两方面着手&#xff1a; 1.无线网卡 AP本身 在遇到该问题的时候&#xff0c;我们可以从以上两个方面进行处理。 03 处理过程 1.无线…

Python GUI编程:使用wxPython处理长文本

这段代码的应用场景有&#xff1a; 在文本编辑器和IDE等应用程序中&#xff0c;可以使用这个示例代码来处理长文本&#xff0c;以便用户更好地查看和编辑文本。在数据分析和科学计算等领域中&#xff0c;可以使用这个示例代码来显示和处理大量的数据和结果。在日志分析和系统监…

解决方案 TestCenter自动测试软件平台

方案概述 TestCenter是一个专为加速您的测试系统软件开发而设计的自动测试系统软件平台&#xff0c;主要应用于测试程序的开发、运行和管理。TestCenter实现了对测试资源管理、测试程序开发与调试、测试数据管理以及测试程序发布等功能的无缝集成和统一部署&#xff0c;这将帮…