EU ASRock Rack B450D4U-V1LQ5 mATX AM4

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

luckylinux

Active Member
Mar 18, 2012
812
215
43
Does anybody know what is this good for?
View attachment 43865
A Picture where we could see:
- The FULL Part Number (is that a 2 or 8 or what between 33 and 00 ?)
- The Part in Question (Picture from the opposite Side)

I would have thought one small Solar Busbar if I were to throw a wild Guess but hey that's the Info I can gather from this Picture :p
 

luckylinux

Active Member
Mar 18, 2012
812
215
43
search for "20210623" ( unicode )
I finally managed to fix my Script to do that.

But, even though I am writing the correct Serial Number, it still "Falls back" to 534d:2130 MacroSilicon USB Video (instead of Bus 004 Device 003: ID 345f:2130 UltraSemi USB3 Video with Stock Firmware).

Serial on the Patched Firmware shows 20201228 which is nowhere to be seen in the File from HxD :rolleyes: .

Something weird is going on ...
 

luckylinux

Active Member
Mar 18, 2012
812
215
43
who tells you that serial ?
lsusb -d 534d:2130 -vvv | grep -i serial

But I still don't understand why the VendorID changes after changing ANYTHING. Do they have some kind of CRC/Checksum and if that fails, they load a Fallback Image or something ?
 

RolloZ170

Well-Known Member
Apr 24, 2016
8,133
2,543
113
germany
lsusb -d 534d:2130 -vvv | grep -i serial

But I still don't understand why the VendorID changes after changing ANYTHING. Do they have some kind of CRC/Checksum and if that fails, they load a Fallback Image or something ?
i found a checksum
area from 0x30 (exclude header)
to 0xFBCF = lenght 0xFBA0
Zwischenablage_05-29-2025_02.jpgZwischenablage_05-29-2025_03.jpg
 
Last edited:
  • Like
Reactions: luckylinux

chlastakov

Active Member
Jan 26, 2025
208
63
28
Czech Republic
A Picture where we could see:
- The FULL Part Number (is that a 2 or 8 or what between 33 and 00 ?)
- The Part in Question (Picture from the opposite Side)

I would have thought one small Solar Busbar if I were to throw a wild Guess but hey that's the Info I can gather from this Picture :p
I received this with my 12-board package, so I was hoping someone from you guys will know :)

Ah, makes sense :) Shame M.2 slots are not working :D
 
  • Haha
Reactions: luckylinux

luckylinux

Active Member
Mar 18, 2012
812
215
43
i found a checksum
area from 0x30 (exclude header)
to 0xFBCF = lenght 0xFBA0
View attachment 43871View attachment 43872
I'm also wondering if it's an OEM (Ultrasemi) that's doing a bit of a Special Firmware compared to Stock Macrosilicon Firmware.

I also read on some GitHub Repository that they changed the Firmware Version at some Point and the old one was somewhat better.

What Checksum algorithm is that they used ?

I could also try to find an old Firmware directly from Macrosilicon (there were some Files available on the Internet, but I didn't feel comfortable downloading some Files from some Russian linked Website ...) and flash that instead. Problem is finding something that looks and is legit though ...

EDIT 1: the Discussion on GitHub I was referring to might be this one


And Associated

Firmware F3 seems to be somewhat unofficial and available on Yandex.ru :rolleyes: .
 
Last edited:

luckylinux

Active Member
Mar 18, 2012
812
215
43
written in nice letters on the left of the checksum (screenshot results)
checksum-16
add all bytes to a 16 bit result,
So that would explain why it's falling back to some sort of stock Firmware, the CRC mismatches.

EDIT 1: @RolloZ170 is the 25 F7 (just before the Checksum itself) to be included in the Checksum Calculation ? Or what is it otherwise ?
 

RolloZ170

Well-Known Member
Apr 24, 2016
8,133
2,543
113
germany
IAlright. Is the 25 F7 (just before the Checksum itself) to be included in the Checksum Calculation ? Or what is it otherwise ? You did NOT have it as selected in your Screenshot.
if not selected, not included in checksum-16
the two bytes are same in both files and some other meaning.
 
  • Like
Reactions: luckylinux

luckylinux

Active Member
Mar 18, 2012
812
215
43
take a look at the header, 3C C3 FB A0
FB A0 = 0xFBA0 data size after header
Thank you @RolloZ170.

I was getting crazy until I remembered that Python indexing for List Slices need to have a +1 for the End Index (otherwise it's NOT included).

After that, I could verify the same Result as the Stock Firmware.

And a few Bug Fixes later for the same List Slice Issue, I wrote the new Checksum after altering the Firmware :D .

Code:
# After Flashing but BEFORE disconnecting & reconnecting Adapter
root@HOST:/home/user# lsusb -d 345f:2130 -vvv | grep -i serial
  iSerial                 3 20210623

# After Flashing and AFTER Disconnecting & reconnecting Adapter
root@HOST:/home/user# lsusb -d 345f:2130 -vvv | grep -i serial
  iSerial                 3 OJJOTYI1
A bit of a Bummer that it supports only 8 Characters (one of the Repositories that I linked claimed it supported up to 31 Characters) but maybe that's the difference between UTF-8 and UTF-16 where we have 1 WORD (1 Hex Value, 2 Bytes) set to 0x00 in between each Word.

For Reference this is what I ran with:
Code:
sudo ./configure.py --executable=./ms-tools/cli/cli --serial=OJJOTYI1T3WQSS05 --log-level=0 --no-backup --file ms2130.modified.flash.2025-05-30-07-08-35.bin
EDIT 1: By the Way, with the correct Checsum, it stays with the correct (?) VendorID
Code:
Bus 004 Device 092: ID 345f:2130 UltraSemi USB3 Video
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.20
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 [unknown]
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0         9
  idVendor           0x345f UltraSemi
  idProduct          0x2130 USB3 Video
  bcdDevice           31.00
  iManufacturer           1 UltraSemi
  iProduct                2 USB3 Video
  iSerial                 3 OJJOTYI1
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0528
    bNumInterfaces          5
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              512mA
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         0
      bInterfaceCount         2
      bFunctionClass         14 Video
      bFunctionSubClass       3 Video Interface Collection
      bFunctionProtocol       0
      iFunction               2 USB3 Video
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass        14 Video
      bInterfaceSubClass      1 Video Control
      bInterfaceProtocol      0
      iInterface              2 USB3 Video
      VideoControl Interface Descriptor:
        bLength                13
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdUVC               1.00
        wTotalLength       0x0033
        dwClockFrequency      125.000000MHz
        bInCollection           1
        baInterfaceNr( 0)       1
      VideoControl Interface Descriptor:
        bLength                18
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             1
        wTerminalType      0x0201 Camera Sensor
        bAssocTerminal          0
        iTerminal               0
        wObjectiveFocalLengthMin      0
        wObjectiveFocalLengthMax      0
        wOcularFocalLength            0
        bControlSize                  3
        bmControls           0x00000000
      VideoControl Interface Descriptor:
        bLength                11
        bDescriptorType        36
        bDescriptorSubtype      5 (PROCESSING_UNIT)
      Warning: Descriptor too short
        bUnitID                 2
        bSourceID               1
        wMaxMultiplier      16384
        bControlSize            2
        bmControls     0x0000000f
          Brightness
          Contrast
          Hue
          Saturation
        iProcessing             0
        bmVideoStandards     0x09
          None
          SECAM - 625/50
      VideoControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID             3
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bSourceID               2
        iTerminal               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass        14 Video
      bInterfaceSubClass      2 Video Streaming
      bInterfaceProtocol      0
      iInterface              0
      VideoStreaming Interface Descriptor:
        bLength                            15
        bDescriptorType                    36
        bDescriptorSubtype                  1 (INPUT_HEADER)
        bNumFormats                         2
        wTotalLength                   0x0435
        bEndpointAddress                 0x83  EP 3 IN
        bmInfo                              0
        bTerminalLink                       3
        bStillCaptureMethod                 0
        bTriggerSupport                     0
        bTriggerUsage                       0
        bControlSize                        1
        bmaControls( 0)                     0
        bmaControls( 1)                     0
      VideoStreaming Interface Descriptor:
        bLength                            27
        bDescriptorType                    36
        bDescriptorSubtype                  4 (FORMAT_UNCOMPRESSED)
        bFormatIndex                        2
        bNumFrameDescriptors               11
        guidFormat                            {32595559-0000-0010-8000-00aa00389b71}
        bBitsPerPixel                      16
        bDefaultFrameIndex                  1
        bAspectRatioX                       0
        bAspectRatioY                       0
        bmInterlaceFlags                 0x00
          Interlaced stream or variable: No
          Fields per frame: 2 fields
          Field 1 first: No
          Field pattern: Field 1 only
        bCopyProtect                        0
      VideoStreaming Interface Descriptor:
        bLength                            46
        bDescriptorType                    36
        bDescriptorSubtype                  5 (FRAME_UNCOMPRESSED)
        bFrameIndex                         1
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                           1920
        wHeight                          1080
        dwMinBitRate                331776000
        dwMaxBitRate                1990656000
        dwMaxVideoFrameBufferSize     4147200
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  5
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            200000
        dwFrameInterval( 2)            333333
        dwFrameInterval( 3)            500000
        dwFrameInterval( 4)           1000000
      VideoStreaming Interface Descriptor:
        bLength                            46
        bDescriptorType                    36
        bDescriptorSubtype                  5 (FRAME_UNCOMPRESSED)
        bFrameIndex                         2
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                           1600
        wHeight                          1200
        dwMinBitRate                307200000
        dwMaxBitRate                1843200000
        dwMaxVideoFrameBufferSize     3840000
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  5
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            200000
        dwFrameInterval( 2)            333333
        dwFrameInterval( 3)            500000
        dwFrameInterval( 4)           1000000
      VideoStreaming Interface Descriptor:
        bLength                            46
        bDescriptorType                    36
        bDescriptorSubtype                  5 (FRAME_UNCOMPRESSED)
        bFrameIndex                         3
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                           1360
        wHeight                           768
        dwMinBitRate                167116800
        dwMaxBitRate                1002700800
        dwMaxVideoFrameBufferSize     2088960
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  5
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            200000
        dwFrameInterval( 2)            333333
        dwFrameInterval( 3)            500000
        dwFrameInterval( 4)           1000000
      VideoStreaming Interface Descriptor:
        bLength                            46
        bDescriptorType                    36
        bDescriptorSubtype                  5 (FRAME_UNCOMPRESSED)
        bFrameIndex                         4
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                           1280
        wHeight                          1024
        dwMinBitRate                209715200
        dwMaxBitRate                1258291200
        dwMaxVideoFrameBufferSize     2621440
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  5
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            200000
        dwFrameInterval( 2)            333333
        dwFrameInterval( 3)            500000
        dwFrameInterval( 4)           1000000
      VideoStreaming Interface Descriptor:
        bLength                            46
        bDescriptorType                    36
        bDescriptorSubtype                  5 (FRAME_UNCOMPRESSED)
        bFrameIndex                         5
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                           1280
        wHeight                           960
        dwMinBitRate                196608000
        dwMaxBitRate                1179648000
        dwMaxVideoFrameBufferSize     2457600
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  5
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            200000
        dwFrameInterval( 2)            333333
        dwFrameInterval( 3)            500000
        dwFrameInterval( 4)           1000000
      VideoStreaming Interface Descriptor:
        bLength                            46
        bDescriptorType                    36
        bDescriptorSubtype                  5 (FRAME_UNCOMPRESSED)
        bFrameIndex                         6
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                           1280
        wHeight                           720
        dwMinBitRate                147456000
        dwMaxBitRate                884736000
        dwMaxVideoFrameBufferSize     1843200
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  5
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            200000
        dwFrameInterval( 2)            333333
        dwFrameInterval( 3)            500000
        dwFrameInterval( 4)           1000000
      VideoStreaming Interface Descriptor:
        bLength                            46
        bDescriptorType                    36
        bDescriptorSubtype                  5 (FRAME_UNCOMPRESSED)
        bFrameIndex                         7
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                           1024
        wHeight                           768
        dwMinBitRate                125829120
        dwMaxBitRate                754974720
        dwMaxVideoFrameBufferSize     1572864
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  5
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            200000
        dwFrameInterval( 2)            333333
        dwFrameInterval( 3)            500000
        dwFrameInterval( 4)           1000000
      VideoStreaming Interface Descriptor:
        bLength                            46
        bDescriptorType                    36
        bDescriptorSubtype                  5 (FRAME_UNCOMPRESSED)
        bFrameIndex                         8
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                            800
        wHeight                           600
        dwMinBitRate                 76800000
        dwMaxBitRate                460800000
        dwMaxVideoFrameBufferSize      960000
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  5
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            200000
        dwFrameInterval( 2)            333333
        dwFrameInterval( 3)            500000
        dwFrameInterval( 4)           1000000
      VideoStreaming Interface Descriptor:
        bLength                            46
        bDescriptorType                    36
        bDescriptorSubtype                  5 (FRAME_UNCOMPRESSED)
        bFrameIndex                         9
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                            720
        wHeight                           576
        dwMinBitRate                 66355200
        dwMaxBitRate                398131200
        dwMaxVideoFrameBufferSize      829440
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  5
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            200000
        dwFrameInterval( 2)            333333
        dwFrameInterval( 3)            500000
        dwFrameInterval( 4)           1000000
      VideoStreaming Interface Descriptor:
        bLength                            46
        bDescriptorType                    36
        bDescriptorSubtype                  5 (FRAME_UNCOMPRESSED)
        bFrameIndex                        10
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                            720
        wHeight                           480
        dwMinBitRate                 55296000
        dwMaxBitRate                331776000
        dwMaxVideoFrameBufferSize      691200
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  5
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            200000
        dwFrameInterval( 2)            333333
        dwFrameInterval( 3)            500000
        dwFrameInterval( 4)           1000000
      VideoStreaming Interface Descriptor:
        bLength                            46
        bDescriptorType                    36
        bDescriptorSubtype                  5 (FRAME_UNCOMPRESSED)
        bFrameIndex                        11
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                            640
        wHeight                           480
        dwMinBitRate                 49152000
        dwMaxBitRate                294912000
        dwMaxVideoFrameBufferSize      614400
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  5
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            200000
        dwFrameInterval( 2)            333333
        dwFrameInterval( 3)            500000
        dwFrameInterval( 4)           1000000
      VideoStreaming Interface Descriptor:
        bLength                             6
        bDescriptorType                    36
        bDescriptorSubtype                 13 (COLORFORMAT)
        bColorPrimaries                     1 (BT.709,sRGB)
        bTransferCharacteristics            1 (BT.709)
        bMatrixCoefficients                 4 (SMPTE 170M (BT.601))
      VideoStreaming Interface Descriptor:
        bLength                            11
        bDescriptorType                    36
        bDescriptorSubtype                  6 (FORMAT_MJPEG)
        bFormatIndex                        1
        bNumFrameDescriptors               11
        bFlags                              1
          Fixed-size samples: Yes
        bDefaultFrameIndex                  1
        bAspectRatioX                       0
        bAspectRatioY                       0
        bmInterlaceFlags                 0x00
          Interlaced stream or variable: No
          Fields per frame: 1 fields
          Field 1 first: No
          Field pattern: Field 1 only
        bCopyProtect                        0
      VideoStreaming Interface Descriptor:
        bLength                            46
        bDescriptorType                    36
        bDescriptorSubtype                  7 (FRAME_MJPEG)
        bFrameIndex                         1
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                           1920
        wHeight                          1080
        dwMinBitRate                331776000
        dwMaxBitRate                1990656000
        dwMaxVideoFrameBufferSize     4147200
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  5
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            200000
        dwFrameInterval( 2)            333333
        dwFrameInterval( 3)            500000
        dwFrameInterval( 4)           1000000
      VideoStreaming Interface Descriptor:
        bLength                            46
        bDescriptorType                    36
        bDescriptorSubtype                  7 (FRAME_MJPEG)
        bFrameIndex                         2
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                           1600
        wHeight                          1200
        dwMinBitRate                307200000
        dwMaxBitRate                1843200000
        dwMaxVideoFrameBufferSize     3840000
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  5
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            200000
        dwFrameInterval( 2)            333333
        dwFrameInterval( 3)            500000
        dwFrameInterval( 4)           1000000
      VideoStreaming Interface Descriptor:
        bLength                            46
        bDescriptorType                    36
        bDescriptorSubtype                  7 (FRAME_MJPEG)
        bFrameIndex                         3
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                           1360
        wHeight                           768
        dwMinBitRate                167116800
        dwMaxBitRate                1002700800
        dwMaxVideoFrameBufferSize     2088960
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  5
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            200000
        dwFrameInterval( 2)            333333
        dwFrameInterval( 3)            500000
        dwFrameInterval( 4)           1000000
      VideoStreaming Interface Descriptor:
        bLength                            46
        bDescriptorType                    36
        bDescriptorSubtype                  7 (FRAME_MJPEG)
        bFrameIndex                         4
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                           1280
        wHeight                          1024
        dwMinBitRate                209715200
        dwMaxBitRate                1258291200
        dwMaxVideoFrameBufferSize     2621440
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  5
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            200000
        dwFrameInterval( 2)            333333
        dwFrameInterval( 3)            500000
        dwFrameInterval( 4)           1000000
      VideoStreaming Interface Descriptor:
        bLength                            46
        bDescriptorType                    36
        bDescriptorSubtype                  7 (FRAME_MJPEG)
        bFrameIndex                         5
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                           1280
        wHeight                           960
        dwMinBitRate                196608000
        dwMaxBitRate                1179648000
        dwMaxVideoFrameBufferSize     2457600
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  5
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            200000
        dwFrameInterval( 2)            333333
        dwFrameInterval( 3)            500000
        dwFrameInterval( 4)           1000000
      VideoStreaming Interface Descriptor:
        bLength                            46
        bDescriptorType                    36
        bDescriptorSubtype                  7 (FRAME_MJPEG)
        bFrameIndex                         6
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                           1280
        wHeight                           720
        dwMinBitRate                147456000
        dwMaxBitRate                884736000
        dwMaxVideoFrameBufferSize     1843200
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  5
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            200000
        dwFrameInterval( 2)            333333
        dwFrameInterval( 3)            500000
        dwFrameInterval( 4)           1000000
      VideoStreaming Interface Descriptor:
        bLength                            46
        bDescriptorType                    36
        bDescriptorSubtype                  7 (FRAME_MJPEG)
        bFrameIndex                         7
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                           1024
        wHeight                           768
        dwMinBitRate                125829120
        dwMaxBitRate                754974720
        dwMaxVideoFrameBufferSize     1572864
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  5
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            200000
        dwFrameInterval( 2)            333333
        dwFrameInterval( 3)            500000
        dwFrameInterval( 4)           1000000
      VideoStreaming Interface Descriptor:
        bLength                            46
        bDescriptorType                    36
        bDescriptorSubtype                  7 (FRAME_MJPEG)
        bFrameIndex                         8
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                            800
        wHeight                           600
        dwMinBitRate                 76800000
        dwMaxBitRate                460800000
        dwMaxVideoFrameBufferSize      960000
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  5
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            200000
        dwFrameInterval( 2)            333333
        dwFrameInterval( 3)            500000
        dwFrameInterval( 4)           1000000
      VideoStreaming Interface Descriptor:
        bLength                            46
        bDescriptorType                    36
        bDescriptorSubtype                  7 (FRAME_MJPEG)
        bFrameIndex                         9
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                            720
        wHeight                           576
        dwMinBitRate                 66355200
        dwMaxBitRate                398131200
        dwMaxVideoFrameBufferSize      829440
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  5
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            200000
        dwFrameInterval( 2)            333333
        dwFrameInterval( 3)            500000
        dwFrameInterval( 4)           1000000
      VideoStreaming Interface Descriptor:
        bLength                            46
        bDescriptorType                    36
        bDescriptorSubtype                  7 (FRAME_MJPEG)
        bFrameIndex                        10
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                            720
        wHeight                           480
        dwMinBitRate                 55296000
        dwMaxBitRate                331776000
        dwMaxVideoFrameBufferSize      691200
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  5
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            200000
        dwFrameInterval( 2)            333333
        dwFrameInterval( 3)            500000
        dwFrameInterval( 4)           1000000
      VideoStreaming Interface Descriptor:
        bLength                            46
        bDescriptorType                    36
        bDescriptorSubtype                  7 (FRAME_MJPEG)
        bFrameIndex                        11
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                            640
        wHeight                           480
        dwMinBitRate                 49152000
        dwMaxBitRate                294912000
        dwMaxVideoFrameBufferSize      614400
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  5
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            200000
        dwFrameInterval( 2)            333333
        dwFrameInterval( 3)            500000
        dwFrameInterval( 4)           1000000
      VideoStreaming Interface Descriptor:
        bLength                             6
        bDescriptorType                    36
        bDescriptorSubtype                 13 (COLORFORMAT)
        bColorPrimaries                     1 (BT.709,sRGB)
        bTransferCharacteristics            1 (BT.709)
        bMatrixCoefficients                 4 (SMPTE 170M (BT.601))
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         2
      bInterfaceCount         2
      bFunctionClass          1 Audio
      bFunctionSubClass       2 Streaming
      bFunctionProtocol       0
      iFunction               4 USB3 Digital Audio
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      1 Control Device
      bInterfaceProtocol      0
      iInterface              4 USB3 Digital Audio
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               1.00
        wTotalLength       0x0026
        bInCollection           1
        baInterfaceNr(0)        3
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             1
        wTerminalType      0x0602 Digital Audio Interface
        bAssocTerminal          0
        bNrChannels             2
        wChannelConfig     0x0003
          Left Front (L)
          Right Front (R)
        iChannelNames           0
        iTerminal               0
      AudioControl Interface Descriptor:
        bLength                 8
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                 2
        bSourceID               1
        bControlSize            1
        bmaControls(0)       0x01
          Mute Control
        iFeature                0
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID             3
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bSourceID               2
        iTerminal               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0
      iInterface              4 USB3 Digital Audio
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0
      iInterface              4 USB3 Digital Audio
      AudioStreaming Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           3
        bDelay                  0 frames
        wFormatTag         0x0001 PCM
      AudioStreaming Interface Descriptor:
        bLength                11
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bNrChannels             2
        bSubframeSize           2
        bBitResolution         16
        bSamFreqType            1 Discrete
        tSamFreq[ 0]        48000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes           13
          Transfer Type            Isochronous
          Synch Type               Synchronous
          Usage Type               Data
        wMaxPacketSize     0x00c0  1x 192 bytes
        bInterval               4
        bRefresh                0
        bSynchAddress           0
        bMaxBurst               0
        AudioStreaming Endpoint Descriptor:
          bLength                 7
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bLockDelayUnits         0 Undefined
          wLockDelay         0x0000
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        4
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode           33 US
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      23
          Report Descriptors:
            ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval              16
        bMaxBurst               0
Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength       0x0016
  bNumDeviceCaps          2
  USB 2.0 Extension Device Capability:
    bLength                 7
    bDescriptorType        16
    bDevCapabilityType      2
    bmAttributes   0x00000006
      BESL Link Power Management (LPM) Supported
  SuperSpeed USB Device Capability:
    bLength                10
    bDescriptorType        16
    bDevCapabilityType      3
    bmAttributes         0x00
    wSpeedsSupported   0x000e
      Device can operate at Full Speed (12Mbps)
      Device can operate at High Speed (480Mbps)
      Device can operate at SuperSpeed (5Gbps)
    bFunctionalitySupport   1
      Lowest fully-functional device speed is Full Speed (12Mbps)
    bU1DevExitLat           0 micro seconds
    bU2DevExitLat           0 micro seconds
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0000
  (Bus Powered)
EDIT 2:
Explanation:
  • --executable tells where to find ms-tools Executable for cli
  • --serial is to set a custom Serial Number (useful if you want something Specific AND/OR if you need to run the Script several Times because there were some Errors
  • --log-level=0 suppress all output from ms-tools Executable
  • --no-backup do NOT backup the current (stock) Firmware, useful if you run this Script several Times and do NOT want to wait a couple Minutes each Time
  • --file is to use a custom File to calculate the Checksum (only useful if you have a CORRECT File with the new Serial Number already present, otherwise do NOT use this Parameter !)
 
Last edited:
  • Like
Reactions: RolloZ170

luckylinux

Active Member
Mar 18, 2012
812
215
43
The only "Minor" Problem is that the only Thing I get as Capture is a black Screen ...

EDIT 1: also my MS2309 seems to be affected, so it's maybe more Linux Kernel Update or maybe ffmpeg related or something (it also affects 2 PCs, both running Ubuntu).

EDIT 2: Changed VGA to HDMI Adapter, changed Power Supply Cable. No change. Now I changed HDMI Cable and it works. So maybe HDMI Cable was faulty/broken/twisted/etc :( .
 
Last edited:
  • Like
Reactions: RolloZ170

luckylinux

Active Member
Mar 18, 2012
812
215
43
@dbram I thought I would ask before embarking on some parallel Work & reinventing the Wheel :D .

Can you share the Image/Build Script/Configuration for the PiKVM on a GitHub (or GitLab I guess) Repository ?

I'd like to try to see first of all if my "Concept" to rename USB Devices Works.

ffplay (and apparently ffmpeg in General) does NOT work nicely with Symlinks.

On the other Hand, guvcview seems to work fine with Symlinks.

This works as a normal User (without sudo / root Access):

user@HOST:/$ /usr/bin/ffplay -fflags nobuffer -input_format mjpeg -video_size 1280x720 -framerate 60 -color_range pc /dev/video0

user@HOST:/$ guvcview --device=/dev/video0

user@HOST:/$ guvcview --device=/dev/ms2130-pc01-video0

This does NOT work, not even with root / sudo access:
Code:
user@HOST:/$ /usr/bin/ffplay -fflags nobuffer -input_format mjpeg -video_size 1280x720 -framerate 60 -color_range pc /dev/ms2130-pc01-video0
ffplay version 6.1.1-3ubuntu5 Copyright (c) 2003-2023 the FFmpeg developers
  built with gcc 13 (Ubuntu 13.2.0-23ubuntu3)
  configuration: --prefix=/usr --extra-version=3ubuntu5 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --disable-omx --enable-gnutls --enable-libaom --enable-libass --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libharfbuzz --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-openal --enable-opencl --enable-opengl --disable-sndio --enable-libvpl --disable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-ladspa --enable-libbluray --enable-libjack --enable-libpulse --enable-librabbitmq --enable-librist --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libx264 --enable-libzmq --enable-libzvbi --enable-lv2 --enable-sdl2 --enable-libplacebo --enable-librav1e --enable-pocketsphinx --enable-librsvg --enable-libjxl --enable-shared
  libavutil      58. 29.100 / 58. 29.100
  libavcodec     60. 31.102 / 60. 31.102
  libavformat    60. 16.100 / 60. 16.100
  libavdevice    60.  3.100 / 60.  3.100
  libavfilter     9. 12.100 /  9. 12.100
  libswscale      7.  5.100 /  7.  5.100
  libswresample   4. 12.100 /  4. 12.100
  libpostproc    57.  3.100 / 57.  3.100
/dev/ms2130-pc01-video0: Invalid argument=    0KB sq=    0B f=0/0  
    nan    :  0.000 fd=   0 aq=    0KB vq=    0KB sq=    0B f=0/0
Where the Symlink is as follows
Code:
user@HOST:/$ ls -l /dev/ms2130-pc01-video0
lrwxrwxrwx 1 root root 6 May 31 07:05 /dev/ms2130-pc01-video0 -> video0
That was configured as a UDEV Rule (after several Attempts I think I found the one that worked, see last Line - 1) in /etc/udev/rules.d/99-ms2130.rules:
Code:
# First HDMI Capture Device
# SUBSYSTEM=="video4linux", ATTRS{serial}=="SXEFK471", NAME="/dev/video/ms2130-pc01"
# SUBSYSTEM=="video4linux", ATTRS{idVendor}=="345f", ATTRS{idProduct}=="2130", ATTRS{serial}=="SXEFK471", NAME="/dev/video/ms2130-pc01", ACTION=="add"
# SUBSYSTEM=="video4linux", ATTRS{idVendor}=="345f", ATTRS{idProduct}=="2130", ATTRS{serial}=="SXEFK471", NAME="ms2130-pc01"
# SUBSYSTEM=="video4linux", ATTRS{idVendor}=="345f", ATTRS{idProduct}=="2130", ATTRS{serial}=="SXEFK471", SYMLINK+="ms2130-pc01"
# SUBSYSTEM=="video4linux", ATTR{name}=="USB3 Video: USB3 Video", ATTRS{idVendor}=="345f", ATTRS{idProduct}=="2130", ATTRS{serial}=="SXEFK471", ENV{ID_V4L_CAPABILITIES}==":capture:", GROUP="video", SYMLINK+="ms2130-pc01"
SUBSYSTEM=="video4linux", ATTR{index}=="0", ATTR{name}=="USB3 Video: USB3 Video", ATTRS{idVendor}=="345f", ATTRS{idProduct}=="2130", ATTRS{serial}=="SXEFK471", ENV{ID_V4L_CAPABILITIES}==":capture:", GROUP="video", SYMLINK+="ms2130-pc01-video0"
SUBSYSTEM=="video4linux", ATTR{index}=="1", ATTR{name}=="USB3 Video: USB3 Video", ATTRS{idVendor}=="345f", ATTRS{idProduct}=="2130", ATTRS{serial}=="SXEFK471", ENV{ID_V4L_CAPABILITIES}==":capture:", GROUP="video", SYMLINK+="ms2130-pc01-video1"
Only the one with ATTR{index}==0 works strangely enough though, even though /dev/video1 also exists.

This shouldn't be a huge problem with Containers, as I can probably just do a small Python Script to write Podman Quadlets and replace the /dev/ms2310-pcX-video0 Symlink with the Target (/dev/videoY) at startup. But it would still be nice to avoid that extra Work if I can help it :D.
 

dbram

Member
Mar 3, 2021
80
50
18
@luckylinux , I haven’t decided if and how to put this opensource (yet).

When I tried ffmpeg or ffplay directly it was quite (cpu) resource intensive.

I’ve been using ustreamer from the pikvm project and this is very low on resource consumption, I believe when specifying the right hardware encoding on the usb capture stick. For the Id I’m just using /dev/video0 if I’m not mistaken.

will double check later on.

edit: typo
 
Last edited:
  • Wow
Reactions: luckylinux

luckylinux

Active Member
Mar 18, 2012
812
215
43
Well I gave it a try on a RockPro64 SBC I had laying around (with /dev/video4 AKA NOT renamed, need to put a 10k Resistor on this SBC because it will NOT handle Reboots otherwise [apparently]).

So ustreamer Docker Image worked fine with Podman Rootless (although so far I am running with several Options that might not be needed in order to allow more Lax Permissions) once I let it run using Exec (Command) Mode. Undeed switching to MJPEG Format dropped the CPU Usage quite a bit (although I will NOT be able to handle more than 4 Streams on this SBC).

I believe an Intel Xeon/i5 or AMD Zen APU with integrated Graphics will probably fair much better.

Documentation was VERY lacking on the Docker Options, Command Line Options is as simple as listing them with podman exec -it kvm-test-01 /ustreamer/ustreamer --help.

Now I have to Catch up on how to deploy the Rest of the Components via Containers (kvmd as well as the "main" Server ?) plus of course the HID Device which I probably will also use the esp32-s3.

EDIT 1: Podman AddDevice= Directive in Quadlets (equivalent to --device in Command Line) will actually resolve Symlinks for you, so you only need to add this to get renamed USB Capture Device available in the Container:

Code:
AddDevice=/dev/ms2130-pc01-video0:/dev/ms2130-pc01-video0
 
Last edited: