Driver TN-502 Siliconmotion not list in xrandr

My desktop has 3 monitors, 1 running on the Intel onboard card and 2 on the TN-502 card.

When I list the xrandr -q command only the Onboard monitor is listed.

xrandr -q
Screen 0: minimum 16 x 16, current 1366 x 768, maximum 32767 x 32767
XWAYLAND0 connected 1366x768+0+0 (normal left inverted right x axis y axis) 410mm x 230mm
   1366x768      59.62*+
   1024x768      59.68  
   800x600       59.47  
   640x480       59.38  
   320x240       59.52  
   720x480       59.71  
   640x400       59.20  
   320x200       58.96  
   1280x720      59.65  
   1024x576      59.58  
   864x486       59.45  
   720x400       59.55  
   640x350       58.91  

Here lspci:

lspci
00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
00:16.3 Serial controller: Intel Corporation 6 Series/C200 Series Chipset Family KT Controller (rev 04)
00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (Lewisville) (rev 04)
00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 04)
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b4)
00:1c.4 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 5 (rev b4)
00:1c.6 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 7 (rev b4)
00:1c.7 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 8 (rev b4)
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev a4)
00:1f.0 ISA bridge: Intel Corporation Q67 Express Chipset LPC Controller (rev 04)
00:1f.2 IDE interface: Intel Corporation 6 Series/C200 Series Chipset Family Desktop SATA Controller (IDE mode, ports 0-3) (rev 04)
00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 04)
00:1f.5 IDE interface: Intel Corporation 6 Series/C200 Series Chipset Family Desktop SATA Controller (IDE mode, ports 4-5) (rev 04)
01:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8192EE PCIe Wireless Network Adapter
02:00.0 USB controller: VIA Technologies, Inc. VL805 USB 3.0 Host Controller (rev 01)
**05:00.0 Display controller: Silicon Motion, Inc. SM501 VoyagerGX Rev. AA (rev c0)**

On the manufacturer’s website there is a .so but I couldn’t use it.

Bellow details from TN-502 card.

05:00.0 Display controller: Silicon Motion, Inc. SM501 VoyagerGX Rev. AA (rev c0)
	Subsystem: Device 0101:0101
	Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Interrupt: pin A routed to IRQ 20
	Region 0: Memory at fa800000 (32-bit, non-prefetchable) [size=8M]
	Region 1: Memory at fb000000 (32-bit, non-prefetchable) [size=2M]
	Capabilities: [40] Power Management version 1
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Kernel driver in use: sm501
	Kernel modules: sm501

Thansk so much!

Did your tried


instead?
PS: xrandr only lists one display for me, too.

Yes Vits, see bellow.

Your can use Alt + printScreen(SysRq), to “shot” only the active window.

I don’t know if I need to edit the x11 conf file manually including the other 2 monitors.

    Section "ServerLayout"
    	Identifier     "X.org Configured"
    	Screen      0  "Screen0" 0 0
    	Screen      1  "Screen1" RightOf "Screen0"
    	InputDevice    "Mouse0" "CorePointer"
    	InputDevice    "Keyboard0" "CoreKeyboard"
    EndSection

    Section "Files"
    	ModulePath   "/usr/lib64/xorg/modules"
    	FontPath     "catalogue:/etc/X11/fontpath.d"
    	FontPath     "built-ins"
    EndSection

    Section "Module"
    	Load  "glx"
    EndSection

    Section "InputDevice"
    	Identifier  "Keyboard0"
    	Driver      "kbd"
    EndSection

    Section "InputDevice"
    	Identifier  "Mouse0"
    	Driver      "mouse"
    	Option	    "Protocol" "auto"
    	Option	    "Device" "/dev/input/mice"
    	Option	    "ZAxisMapping" "4 5 6 7"
    EndSection

    Section "Monitor"
    	Identifier   "Monitor0"
    	VendorName   "Monitor Vendor"
    	ModelName    "Monitor Model"
    EndSection

    Section "Monitor"
    	Identifier   "Monitor1"
    	VendorName   "Monitor Vendor"
    	ModelName    "Monitor Model"
    EndSection

    Section "Device"
            ### Available Driver options are:-
            ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
            ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
            ### <percent>: "<f>%"
            ### [arg]: arg optional
            #Option     "Accel"              	# [<bool>]
            #Option     "AccelMethod"        	# <str>
            #Option     "Backlight"          	# <str>
            #Option     "CustomEDID"         	# <str>
            #Option     "DRI"                	# <str>
            #Option     "Present"            	# [<bool>]
            #Option     "ColorKey"           	# <i>
            #Option     "VideoKey"           	# <i>
            #Option     "Tiling"             	# [<bool>]
            #Option     "LinearFramebuffer"  	# [<bool>]
            #Option     "HWRotation"         	# [<bool>]
            #Option     "VSync"              	# [<bool>]
            #Option     "PageFlip"           	# [<bool>]
            #Option     "SwapbuffersWait"    	# [<bool>]
            #Option     "TripleBuffer"       	# [<bool>]
            #Option     "XvPreferOverlay"    	# [<bool>]
            #Option     "HotPlug"            	# [<bool>]
            #Option     "ReprobeOutputs"     	# [<bool>]
            #Option     "XvMC"               	# [<bool>]
            #Option     "ZaphodHeads"        	# <str>
            #Option     "VirtualHeads"       	# <i>
            #Option     "TearFree"           	# [<bool>]
            #Option     "PerCrtcPixmaps"     	# [<bool>]
            #Option     "FallbackDebug"      	# [<bool>]
            #Option     "DebugFlushBatches"  	# [<bool>]
            #Option     "DebugFlushCaches"   	# [<bool>]
            #Option     "DebugWait"          	# [<bool>]
            #Option     "BufferCache"        	# [<bool>]
    	Identifier  "Card0"
    	Driver      "intel"
    	BusID       "PCI:0:2:0"
    EndSection

    Section "Device"
            ### Available Driver options are:-
            ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
            ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
            ### <percent>: "<f>%"
            ### [arg]: arg optional
            #Option     "SWcursor"           	# [<bool>]
            #Option     "kmsdev"             	# <str>
            #Option     "ShadowFB"           	# [<bool>]
            #Option     "AccelMethod"        	# <str>
            #Option     "PageFlip"           	# [<bool>]
            #Option     "ZaphodHeads"        	# <str>
            #Option     "DoubleShadow"       	# [<bool>]
    	Identifier  "Card1"
    	Driver      "modesetting"
    	BusID       "PCI:5:0:0"
    EndSection

    Section "Screen"
    	Identifier "Screen0"
    	Device     "Card0"
    	Monitor    "Monitor0"
    	SubSection "Display"
    		Viewport   0 0
    		Depth     1
    	EndSubSection
    	SubSection "Display"
    		Viewport   0 0
    		Depth     4
    	EndSubSection
    	SubSection "Display"
    		Viewport   0 0
    		Depth     8
    	EndSubSection
    	SubSection "Display"
    		Viewport   0 0
    		Depth     15
    	EndSubSection
    	SubSection "Display"
    		Viewport   0 0
    		Depth     16
    	EndSubSection
    	SubSection "Display"
    		Viewport   0 0
    		Depth     24
    	EndSubSection
    EndSection

    Section "Screen"
    	Identifier "Screen1"
    	Device     "Card1"
    	Monitor    "Monitor1"
    	SubSection "Display"
    		Viewport   0 0
    		Depth     1
    	EndSubSection
    	SubSection "Display"
    		Viewport   0 0
    		Depth     4
    	EndSubSection
    	SubSection "Display"
    		Viewport   0 0
    		Depth     8
    	EndSubSection
    	SubSection "Display"
    		Viewport   0 0
    		Depth     15
    	EndSubSection
    	SubSection "Display"
    		Viewport   0 0
    		Depth     16
    	EndSubSection
    	SubSection "Display"
    		Viewport   0 0
    		Depth     24
    	EndSubSection
    EndSection

Are your not in the Wayland session? It is default!

To Xorg configs were useful, your need use Xsession.

Look at the error log while loading Xorg config,

[ 1033.558] Module class: X.Org Video Driver
[ 1033.559] ABI class: X.Org Video Driver, version 24.0
[ 1033.559] (II) LoadModule: “siliconmotion”
[ 1033.559] (II) Loading /usr/lib64/xorg/modules/drivers/siliconmotion_drv.so
[ 1033.559] (EE) Failed to load /usr/lib64/xorg/modules/drivers/siliconmotion_drv.so: /usr/lib64/xorg/modules/drivers/siliconmotion_drv.so: wrong ELF class: ELFCLASS32
[ 1033.559] (EE) Failed to load module “siliconmotion” (loader failed, 0)

Any idea?

The 32-bit architecture (your’ve downloaded wrong version)?

Vits, I copied the drive provided by the manufacturer, I will install siliconmotion again.

[vits@localhost drivers]$ file siliconmotion_drv.so 
siliconmotion_drv.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, with debug_info, not stripped

And your have placed it in /usr/lib64/ …

Makes sense! I’ll try.

If your will have no success, your may want to open new topic, like “how to make 32-bit driver work…” maybe someone know.
Good Luck!

OK, I’m installing everything from beginning, because I had already moved so much that it is easier to start over.

Thanks for attention.

I installed the OS again, when I create the xorg.conf file presents this error.

[ 379.406] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[ 379.407] (II) xfree86: Adding drm device (/dev/dri/card0)
[ 379.407] (EE) /dev/dri/card0: failed to set DRM interface version 1.4: Permission denied
[ 379.409] (–) PCI:*(0@0:2:0) 8086:0102:103c:1495 rev 9, Mem @ 0xfb400000/4194304, 0xd0000000/268435456, I/O @ 0x0000f000/64, BIOS @ 0x???/131072
[ 379.409] (–) PCI: (5@0:0:0) 126f:0501:0101:0101 rev 192, Mem @ 0xfa800000/8388608, 0xfb000000/2097152, BIOS @ 0x???/65536

Summary


  • Wayland
  • Xorg
  • Both not works by default (before intervention too) for these two displays. Correct?

    Manufacturer’s driver for Linux is 32-bits…

    The Kernel have some driver too:

    Kernel driver in use: sm501

    And, aside, when Topic Starter are using xorg.conf to somehow make this setup work (after reinstall), there is now “Permission Denied”…

    @xtym, your’ve helped that person with “disguised” video card. Please, do your’ve any ideas?

    Last modified in 06 January 2009… old driver. Of course, Linux motto is “we never break the user space”, but…

    $ strings siliconmotion_drv.so | grep GCC
    GCC: (GNU) 3.4.6 20060404 (Red Hat 3.4.6-9)
    
    $ gcc --version
    gcc (GCC) 9.2.1 20190827 (Red Hat 9.2.1-1)

    Yes, very old.
    I dont have more ideias haha…

    :flying_saucer: Is that bird … or plane … no! That is xtym!

    Hi @vits95 really i think i can not do best that you are doing with him really, but I think that also you 2 can try adding manually the BusID into a own file i.e. called 10-monitors.conf and place into the route /etc/X11/xorg.conf.d/

    From the driver sm501 is load there should be necesary indicate the driver and the BUSID and create a file like this one created from other user here in the forum.

    You need indicate manually the structure like indicate in the post refered but you will need indicate every screen his driver and his bus id the file will need contain the 3 monitors (the one with driver intel and the 2 others with the driver sm501)

    The structure should be according the indicate before and refereed in the arch wiki in the section of manual configuration and multiple monitors.

    https://wiki.archlinux.org/index.php/Xorg#Monitor_settings

    To know a bit more about BusID you can read man xorg.conf

    Other thing is that sometimes the valor hexadecimal of PCI port doesn’t match with the decimal vaule of decimal of BUSID according this post (really i don’t know this part ) where the last user needed change the value to decimal to do it works

    So i am sorry that i can not help you2 more here, but the only way looks fix manually a own conf.

    Regards.

    1 Like

    Thanks for this informations xtym, I’ll try configure manually, adding BusID!