Compile and install Linux "ms912x" driver for device "534d:6021" (USB 3.0 to HDMI adapter)

I know that the best option would be to use the manufacturer’s website, but let’s see what we can do with our knowledge about Linux since the manufacturer doesn’t care about :roll_eyes:

I was able to compile and install the ms912x ( GitHub - rhgndf/ms912x: MacroSilicon USB to VGA/HDMI adapter (534d:6021) Linux DRM driver ) driver for Device 534d:6021 (USB 3.0 to HDMI Adapter). However, I have the following problems and would like some help so that we can diagnose what is happening together and, if possible, resolve it:

  • The device is recognized, but the screen is completely dark.

  • If I restart OS, then the driver no longer works. I have to reinstall.

OS: Manjaro Linux (Linux Kernel 6.5.5)

MANUFACTURER PRODUCT CODES: MT-UH02, MT-UV02 .

NOTE: When I try to activate the ms912x connected monitor, the other monitors are unconfigured for a moment and then the ms912x connected monitor is deactivated.

PLUS I: This fork contains implementations that are not available in ms912x driver repository ( GitHub - nunesbns/ms912x at kernel-6-support ).

PLUS II: Here ( https://askubuntu.com/a/1488791/134723 ) there is an interesting forum about the ms912x driver.


lsusb output…

Bus 001 Device 010: ID 534d:6021 MacroSilicon VGA Display Adapter

Commands I’m using to compile and install the ms912x driver…

cd "./ms912x"
make clean
make all -j
sudo rmmod ms912x 2>/dev/null
sudo modprobe drm_shmem_helper
sudo insmod ms912x.ko
journalctl -k | grep ms912x # To confirm the instalation.

Thanks! :smiling_face_with_three_hearts:

KDE Display Settings

SOME REFERENCES:

https://askubuntu.com/a/1488791/134723
https://askubuntu.com/q/1488474/134723


UPDATE I:

I reproduce the process on a clean Manjaro KDE (23.0.4, linux65) installation. Same problem…

If we had some log output to be able to handle this problem… Then we would have some starting point to find out what happens… :slightly_smiling_face:

Just to clarify further, this device uses the Macrosilicon MS9122 chipset ( Semiconductor integrated circuit,analog digital,audio and video signal processing - macrosilicon.com - Products - Chips - MS9122 , https://blog.csdn.net/YOU_SeMi/article/details/125105651 ).

Here’s a photo and the purchase link…

USB 3.0 to HDMI adapter


UPDATE II:

The journalctl -k | grep ms912x output…

out 20 16:35:49 eduardolac-pc kernel: usbcore: registered new interface driver ms912x
out 20 16:37:07 eduardolac-pc kernel: [drm] Initialized ms912x 0.0.1 20220101 for 1-4:1.3 on minor 2
out 20 16:37:07 eduardolac-pc kernel: ms912x 1-4:1.3: [drm] Cannot find any crtc or sizes
out 20 16:37:07 eduardolac-pc kernel: ms912x 1-4:1.3: [drm] Cannot find any crtc or sizes
out 20 16:37:08 eduardolac-pc kernel: ms912x 1-4:1.3: [drm] fb1: ms912xdrmfb frame buffer device
My last "ms912x" driver installation did not cause "video crash", but the monitor screen remained black.

UPDATE III:

The lsusb -v output…

Bus 001 Device 006: ID 534d:6021 MacroSilicon VGA Display Adapter
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x534d MacroSilicon
  idProduct          0x6021 VGA Display Adapter
  bcdDevice            1.10
  iManufacturer           1 USB Display 
  iProduct                2 usb extscreen
  iSerial                 3 2019BA7160B0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x00a2
    bNumInterfaces          4
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 
      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     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval              16
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         1
      bInterfaceCount         2
      bFunctionClass          1 Audio
      bFunctionSubClass       1 Control Device
      bFunctionProtocol       0 
      iFunction               4 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      1 Control Device
      bInterfaceProtocol      0 
      iInterface              4 
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               1.00
        wTotalLength       0x002b
        bInCollection           1
        baInterfaceNr(0)        2
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             1
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bNrChannels             2
        wChannelConfig     0x0003
          Left Front (L)
          Right Front (R)
        iChannelNames           0 
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                13
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                 2
        bSourceID               1
        bControlSize            2
        bmaControls(0)     0x0001
          Mute Control
        bmaControls(1)     0x0000
        bmaControls(2)     0x0000
        iFeature                0 
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID             3
        wTerminalType      0x0301 Speaker
        bAssocTerminal          0
        bSourceID               2
        iTerminal               0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              4 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              4 
      AudioStreaming Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           1
        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     0x03  EP 3 OUT
        bmAttributes           13
          Transfer Type            Isochronous
          Synch Type               Synchronous
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               4
        bRefresh                0
        bSynchAddress           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        3
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              5 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0