Bug 1047408 - MIMO DisplayLink device does not switch on or display video [NEEDINFO]
Summary: MIMO DisplayLink device does not switch on or display video
Keywords:
Status: CLOSED INSUFFICIENT_DATA
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: 19
Hardware: x86_64
OS: Linux
unspecified
unspecified
Target Milestone: ---
Assignee: Dave Airlie
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-12-31 01:11 UTC by markzzzsmith
Modified: 2014-06-23 14:40 UTC (History)
9 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2014-06-23 14:40:38 UTC
Type: Bug
Embargoed:
jforbes: needinfo?


Attachments (Terms of Use)
udlfb for newer kernels (40.40 KB, application/x-rpm)
2014-03-28 01:03 UTC, Benjamin Rose
no flags Details

Description markzzzsmith 2013-12-31 01:11:07 UTC
Description of problem:

I have a MIMO 710S USB DisplayLink monitor:

http://www.mimomonitors.com/products/mimo-710-s

which I'd like to use as an occasional frame buffer device (i.e., not have it as an extra display in X11).

I used to be able to display video on it using the following mplayer command line:

mplayer -vo fbdev2:/dev/fb1 -vf scale=800:480 <video file>


However, in more recent versions of Fedora, the screen stays black, and the power button on the side does not switch the display on, with one sign that it is on being that the LED on the top left switches from Blue to Green.

All the kernel messages etc. seem to indicate that it is available:

[68089.313031] usb 1-3: new high-speed USB device number 49 using ehci-pci
[68089.430869] usb 1-3: New USB device found, idVendor=17e9, idProduct=0335
[68089.430876] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[68089.430880] usb 1-3: Product: MIMO
[68089.430883] usb 1-3: Manufacturer: DisplayLink
[68089.430886] usb 1-3: SerialNumber: 1070001225
[68089.432993] [drm] vendor descriptor length:23 data:23 5f 01 00 21 00 04 04 07 00 01
[68089.514329] udl 1-3:1.0: fb1: udldrmfb frame buffer device
[68089.514336] [drm] Initialized udl 0.0.1 20120220 on minor 1


[mark@opy ~]$ fbset -i -fb /dev/fb1

mode "800x480"
    geometry 800 480 800 480 16
    timings 0 0 0 0 0 0 0
    accel true
    rgba 5/11,6/5,5/0,0/0
endmode

Frame buffer device information:
    Name        : udldrmfb
    Address     : 0xffffc900133c5000
    Size        : 770048
    Type        : PACKED PIXELS
    Visual      : TRUECOLOR
    XPanStep    : 1
    YPanStep    : 1
    YWrapStep   : 0
    LineLength  : 1600
    Accelerator : No
[mark@opy ~]$ 


When I try to use the above mplayer command, I now get the following messages:

Selected audio codec: [ffaac] afm: ffmpeg (FFmpeg AAC (MPEG-2/MPEG-4 Audio))
==========================================================================
AO: [pulse] 32000Hz 2ch floatle (4 bytes per sample)
Starting playback...
[fbdev2] Can't put VSCREENINFO: Invalid argument
[fbdev2] Can't put VSCREENINFO: Invalid argument
[fbdev2] Can't put VSCREENINFO: Invalid argument
[fbdev2] Can't put VSCREENINFO: Invalid argument
[fbdev2] Can't put VSCREENINFO: Invalid argument
[fbdev2] Can't put VSCREENINFO: Invalid argument
...

If I use the other mplayer fbdev driver (i.e., '-vo fbdev:/dev/fb1') , it produces similar errors:

Movie-Aspect is undefined - no prescaling applied.
VO: [fbdev] 800x480 => 800x533 BGR 16-bit 
Can't put VSCREENINFO: Invalid argument
FATAL: Cannot initialize video driver.
Too many buffered pts
Movie-Aspect is undefined - no prescaling applied.
VO: [fbdev] 800x480 => 800x533 BGR 16-bit 
Can't put VSCREENINFO: Invalid argument
FATAL: Cannot initialize video driver.
Too many buffered pts


I've tested the device on a Windows PC, and it worked fine on that, so it doesn't seem to be a hardware fault.

I don't seem to get any messages in /var/log/Xorg.0.log that indicate that the fbdev Xorg driver is grabbing the device. 

It hasn't worked for a while, and I think it may have stopped working when the kernel driver changed from being the 'udlfb' module to the 'udl' module. The udlfb module doesn't seem to available any more ('# CONFIG_FB_UDL is not set'), so I haven't been able to test that theory. 


Version-Release number of selected component (if applicable):

Kernel 3.12.5-200.fc19.x86_64


How reproducible:

All the time.

Steps to Reproduce:
1. Plug device in.
2. Attempt to switch it on if necessary (power switch on left side, LED goes from blue to green)
3. Attempt to play video to the new fbdev device (/dev/fb1)

Actual results:

- LED stays on blue
- No video
- error messages from mplayer

Expected results:

Video displayed.


Additional info:

Comment 1 Michele Baldessari 2014-01-01 18:33:03 UTC
Hi Mark,

I believe the general tendency is to move away from FB towards KMS for 
everything. 

You could try and see if setting CONFIG_FB_UDL=m fixes it, although I am
not sure what the story with the FB_CONFIGs is.

The following are the active ones:
$ grep CONFIG_FB config-generic |grep -v "is not set"
CONFIG_FB=y
CONFIG_FB_I810=m
CONFIG_FB_I810_GTF=y
CONFIG_FB_I810_I2C=y
CONFIG_FB_TILEBLITTING=y
CONFIG_FB_VESA=y
CONFIG_FB_VGA16=m
CONFIG_FB_VIRTUAL=m
CONFIG_FB_EFI=y
CONFIG_FB_NVIDIA_BACKLIGHT=y
CONFIG_FB_RIVA_BACKLIGHT=y
CONFIG_FB_RADEON_BACKLIGHT=y
CONFIG_FB_ATY128_BACKLIGHT=y
CONFIG_FB_ATY_BACKLIGHT=y

vs the non active ones:
generic |grep "is not set" |wc -l
64

regards,
Michele

Comment 2 markzzzsmith 2014-01-02 03:35:28 UTC
Hi Michele,

I'm aware that there is a general move to KMS, I only mentioned that the former udlfb module worked to help identify what udlfb might have been doing that the KMS udl module doesn't.

I'll find some time to build a custom kernel with the udlfb module enabled, to verify that it was the change to KMS udl that stopped my screen from working - it hasn't worked for quite a while, and I only got around to reporting the issue over the holiday break.

Thanks,
Mark.

Comment 3 Michele Baldessari 2014-01-02 07:25:12 UTC
Hi Mark,

likely the new UDL is buggy with Framebuffer. Does it
work with xorg? (https://wiki.archlinux.org/index.php/DisplayLink)

This would tell us if it is a specific issue when used directly as framebuffer
or if it is a general brokenness

regards,
Michele

Comment 4 Michele Baldessari 2014-01-07 21:13:13 UTC
So I borrowed one of these out of curiosity. Indeed this seems to be a fallout
of the udl kms driver.

At least on 3.13-rc7 with udlfb compiled as a module,
mplayer -vo fbdev:/dev/fb1 -vf scale=800:480 foo.mp4

works correctly. The udl driver instead seems to just not turn on the display.

Trying to use the udl kms driver within xorg leaves the screen black as well.
And has the following in the logs:
[  1257.825] (--) FBDEV(0): Virtual size is 800x480 (pitch 800)      
[  1257.825] (**) FBDEV(0):  Built-in mode "current"                 
[  1257.825] (==) FBDEV(0): DPI set to (96, 96)                      
[  1257.825] (II) Loading sub module "fb"                            
[  1257.825] (II) LoadModule: "fb"                                   
[  1257.825] (II) Loading /usr/lib64/xorg/modules/libfb.so           
[  1257.825] (II) Module fb: vendor="X.Org Foundation"               
[  1257.825]    compiled for 1.14.4, module version = 1.0.0          
[  1257.825]    ABI class: X.Org ANSI C Emulation, version 0.4       
[  1257.825] (**) FBDEV(0): using shadow framebuffer                 
[  1257.825] (II) Loading sub module "shadow"                        
[  1257.825] (II) LoadModule: "shadow"                               
[  1257.825] (II) Loading /usr/lib64/xorg/modules/libshadow.so       
[  1257.825] (II) Module shadow: vendor="X.Org Foundation"           
[  1257.825]    compiled for 1.14.4, module version = 1.1.0          
[  1257.825]    ABI class: X.Org ANSI C Emulation, version 0.4       
[  1257.826] (==) FBDEV(0): Backing store disabled                   
[  1257.826] (EE) FBDEV(0): FBIOPUTCMAP: Invalid argument            
[  1257.826] (EE) FBDEV(0): FBIOPUTCMAP: Invalid argument            
[  1257.826] (EE) FBDEV(0): FBIOPUTCMAP: Invalid argument            
...snip...
[  1257.827] (EE) FBDEV(0): FBIOPUTCMAP: Invalid argument      
[  1257.827] (EE) FBDEV(0): FBIOPUTCMAP: Invalid argument      
[  1257.827] (EE) FBDEV(0): FBIOPUTCMAP: Invalid argument      
[  1257.827] (==) FBDEV(0): DPMS enabled                       
[  1257.827] (==) RandR enabled                                
[  1257.833] (II) SELinux: Disabled by boolean                 
[  1257.834] (II) AIGLX: Screen 0 is not DRI2 capable

Comment 5 markzzzsmith 2014-01-20 09:16:02 UTC
Hi,

I've been meaning to ask, since Michele has shown that the 'udl' module isn't working, and the 'udlfb' still is, is there anything further I need to do to assist with troubleshooting/resolving this issue?

Thanks,
Mark.

Comment 6 Dave Airlie 2014-01-23 05:33:20 UTC
I'm guessing this is more of an mplayer on the kms driver not being supported

it might be worth trying udl.fb_defio=1 on the command line.

Comment 7 Justin M. Forbes 2014-03-10 14:46:41 UTC
*********** MASS BUG UPDATE **************

We apologize for the inconvenience.  There is a large number of bugs to go through and several of them have gone stale.  Due to this, we are doing a mass bug update across all of the Fedora 19 kernel bugs.

Fedora 19 has now been rebased to 3.13.5-100.fc19.  Please test this kernel update and let us know if you issue has been resolved or if it is still present with the newer kernel.

If you experience different issues, please open a new bug report for those.

Comment 8 Benjamin Rose 2014-03-26 21:38:00 UTC
Hello,

I'd like to report this is still an issue. Doing udl.fb_defio does not fix the issue. I can confirm that this works on RHEL6 (Fedora 14?) with the udlfb kernel module.

The MIMO screens turn green when they are activated successfully, that never happens with udl kernel driver.

I've noticed upon plugging this device in, my background in Gnome 3, the top left 800x480 pixels (the exact size of this MIMO device) is my entire background, so it's like there's a small overlay of my background on top of my background. Strange.

Doing a dd of /dev/urandom into the newly-created /dev/fb1, which used to draw all sorts of colorful pixels (and still does using RHEL6+udlfb), now does absolutely nothing.

[174163.499691] usb 3-1: new high-speed USB device number 2 using xhci_hcd
[174163.511537] usb 3-1: device descriptor read/8, error -32
[174163.623652] usb 3-1: device descriptor read/8, error -32
[174163.876935] usb 3-1: new high-speed USB device number 3 using xhci_hcd
[174163.892044] usb 3-1: New USB device found, idVendor=17e9, idProduct=016b
[174163.892051] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[174163.892055] usb 3-1: Product: MIMO
[174163.892058] usb 3-1: Manufacturer: DisplayLink
[174163.892061] usb 3-1: SerialNumber: 1253002399
[174163.958629] [drm] vendor descriptor length:17 data:17 5f 01 00 15 05 00 01 03 00 04
[174164.033928] udl 3-1:1.0: fb1: udldrmfb frame buffer device
[174164.033938] [drm] Initialized udl 0.0.1 20120220 on minor 1
[174164.034015] usbcore: registered new interface driver udl
[174164.195210] [drm] write mode info 153

Linux localhost.localdomain 3.11.10-100.fc18.x86_64 #1 SMP Mon Dec 2 20:28:38 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Comment 9 Benjamin Rose 2014-03-27 02:16:44 UTC
More details:

My typical mode of operation is to display just a photo on this device. I use it as a status sign outside of my office to report my location on-campus. I have code here that used to work to display images:

http://allmybase.com/framebugger/

Or, as a bash equivalent:

#!/bin/sh

FILE=/var/www/html/brose/assets/current.jpg
TEMP=`mktemp -u /tmp/XXXXXXXX`
TEMP=${TEMP}.png

TEMP2=`mktemp /tmp/XXXXXXXX`

while [ 1 ]
do
	convert -resize '800x480!' $FILE $TEMP
	mkdfiff -f RGB16 $TEMP >$TEMP2 
	dd if=$TEMP2 of=/dev/fb1 bs=1 skip=24 
	sleep 5
done

Again, this works just fine with RHEL6+udlfb, but fails with the newer udl driver. I have been attempting to compile a kmod-udlfb for Fedora, but I have been met with limited success. Any assistance would be appreciated, and I would be happy to test whatever code/options and report back to gather additional information.

Comment 10 Benjamin Rose 2014-03-27 18:43:08 UTC
Hi, more information:

I get the same exact results on fully-updated Fedora 19 and Fedora 20 machines. X does indeed work when I set it up through the gnome GUI, but that is not my desired mode of operation. I want to be able to dd pictures directly into the framebuffer to use this device as a status sign. Again, udlfb worked perfectly for this, udl is broken. Please advise how I can troubleshoot or provide additional details.

Thanks.

Comment 11 Benjamin Rose 2014-03-28 01:03:24 UTC
Created attachment 879702 [details]
udlfb for newer kernels

Failing any immediate solution for this issue, I have recompiled the udlfb kernel module for modern kernels, using the latest kernel source from kernel.org. I have attached the SRPM to this ticket. You will need to make a couple of changes to get this to work on your local installation:

1) Change the kernel version in the top of the spec file based on the output of "uname -a"

2) Add "exclude=kernel-debug-devel" to /etc/mock/default.cfg under the [main] section. You want to build this against the mainline kernel, not the debug kernel.

3) Blacklist the udl module and force the loading of udlfb in /etc/modprobe.d

I am still happy to help track down the issue with the udl driver. Please let me know what I can do to assist. Now that I have the udlfb driver on Fedora 18/19/20, running commands directly against the framebuffer device works perfectly again!

Comment 12 Dave Airlie 2014-03-28 01:33:03 UTC
when you plug this device in, it should hotplug into your X session,

so you should see it in /var/log/Xorg.0.log appearing and in xrandr

maybe see if xrandr can move it around,

to avoid it being hotplugged you need an xorg.conf with Option "AutoAddGPU" "FALSE"

Now after that in theory it should work as a framebuffer device, but the framebuffer emulation is very limited on these devices, and defio isn't working that great with the kms driver.

Comment 13 Michele Baldessari 2014-05-07 15:55:15 UTC
So I planned to take a look again at this and re-borrowed a Mimo display. With 3.14.2 it all works out of the box. I.e. just plugged it, xrandr recognized it and I was able to set it up via the gnome desktop applet. I guess we can close this?

Comment 14 Benjamin Rose 2014-05-07 23:31:12 UTC
Hi, 

Not quite, the issue isn't whether or not X will work on the device, it's whether or not the device will operate as a framebuffer properly. Try to output a picture to it like I am doing above (convert, mkdfiff, dd), or try to play a movie on it with mplayer as a framebuffer device as O.P. was talking about. You will see it does not work as expected with the new driver as it does with the old.

Thanks for taking a look!

Comment 15 Michele Baldessari 2014-05-08 06:46:13 UTC
Well X surely did not work last time I tested it and now it does.
I am not really interested in the framebuffer usecase, so I won't dig much 
further here. The interested ones can always recompile their own kernels for that
or fix the real issue in udl as mentioned by Dave in c#12.

Comment 16 Justin M. Forbes 2014-05-21 19:29:58 UTC
*********** MASS BUG UPDATE **************

We apologize for the inconvenience.  There is a large number of bugs to go through and several of them have gone stale.  Due to this, we are doing a mass bug update across all of the Fedora 19 kernel bugs.

Fedora 19 has now been rebased to 3.14.4-100.fc19.  Please test this kernel update (or newer) and let us know if you issue has been resolved or if it is still present with the newer kernel.

If you have moved on to Fedora 20, and are still experiencing this issue, please change the version to Fedora 20.

If you experience different issues, please open a new bug report for those.

Comment 17 Justin M. Forbes 2014-06-23 14:40:38 UTC
*********** MASS BUG UPDATE **************
This bug is being closed with INSUFFICIENT_DATA as there has not been a response in 4 weeks. If you are still experiencing this issue, please reopen and attach the relevant data from the latest kernel you are running and any data that might have been requested previously.


Note You need to log in before you can comment on or make changes to this bug.