DisplayLink Forum

DisplayLink Forum (https://displaylink.org/forum/index.php)
-   Linux and Open Source (https://displaylink.org/forum/forumdisplay.php?f=29)
-   -   Display HP S410u possible workling with RaspberryPi (https://displaylink.org/forum/showthread.php?t=64882)

Mahdi2016 10-24-2016 10:05 AM

Display HP S410u possible workling with RaspberryPi
 
i've an Display HP S140u (DL 41xx). I would like to use this display on a RaspberryPi 2. Currently, I've translated dkms to evdi module. The udev.rules are installed, and the modules are successfully loaded. At the moment, i´ve got no alternative for the "DisplayManager".
According to the description, the firmware should not be the problem?

Debug output:
Quote:

Bus 001 Device 004: ID 17e9:ff06 DisplayLink
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.10
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2 ?
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x17e9 DisplayLink
idProduct 0xff06
bcdDevice 1.28
iManufacturer 1 DisplayLink
iProduct 2 HP S140u USB Monitor
iSerial 3 CNC611046J
bNumConfigurations 1
and loaded modules:
Quote:

evdi 43794 0
drm_kms_helper 139888 1 evdi
drm 350602 2 evdi,drm_kms_helper
syscopyarea 3289 3 evdi,udlfb,drm_kms_helper
sysfillrect 3890 3 evdi,udlfb,drm_kms_helper
sysimgblt 2544 3 evdi,udlfb,drm_kms_helper
fb_sys_fops 1805 2 udlfb,drm_kms_helper
loaded kernel is 4.4.0-1-rpi2 on actual rasbian jessi.

Mahdi2016 10-28-2016 01:17 PM

After testing this, i've loaded the udl and the evdi module. The LED of this display, blinked white for 1 second.

lsusb:
Code:

Bus 001 Device 004: ID 17e9:ff06 DisplayLink
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

lsmod:
Code:

evdi                  43794  0
drm_kms_helper        139888  2 udl,evdi
drm                  350602  3 udl,evdi,drm_kms_helper
syscopyarea            3289  2 evdi,drm_kms_helper
sysfillrect            3890  2 evdi,drm_kms_helper
sysimgblt              2544  2 evdi,drm_kms_helper
fb_sys_fops            1805  1 drm_kms_helper

The old module udlfb has been added to the blacklist.

Has anyone got an idea to get the ad running on a Raspberry or ARM platform?

RobertCochran 10-29-2016 08:42 PM

These are your options:

1. Hope that DisplayLink releases the DisplayLinkManager code as open source

2. Hope that DisplayLink releases a DisplayLinkManager build for ARM

3. Hope that someone is able to reverse engineer the protocol for these devices and write their
own (hopefully open source) driver.

That's all you can do. DisplayLink has not been doing well at all when it
comes to supporting Linux users IMO.

Mahdi2016 11-01-2016 12:11 PM

is it possible that DisplayLink will support ARM in the near future?
Especially in the ARM environment, there are many solutions that may work very fine with such a display. At my company we have already installed & configured such a display.

mlukaszek 11-03-2016 01:38 PM

tl;dr: no compatible ARM platform found yet, except for Chromebooks and Android devices.

The main use case we'd like to enable is being able to extend screens - to be able to use multiple monitors simultaneously.

While DisplayLinkManager can be compiled for ARM (and in fact it already has been compiled for ARM; there are Chromebooks which use ARM binary of DLM, as well as our Android app), that's not all you need.

We have not yet seen an ARM based platform which would support cross-device DRM prime support well (necessary to use output offloading, think xrandr --setprovideroutputsource ...). This is required for evdi to get pixels that we display on a device.

Last time I tried, Raspberry Pi was almost there - with Eric Anholt's experimental vc4 module for the GPU. However, I only managed to use one screen at a time - i.e. only DisplayLink-connected screen was operable, not the built-in HDMI. Other devices I tried (e.g. BBB) didn't even get close to this.

You could argue that certain use cases would be fine with just accessing a plain framebuffer through /dev/fbX - so, legacy fbdev interface. Sadly, neither UDL nor evdi don't support this mode anymore - last driver that did was pre-DRM legacy driver "udlfb" - which only supported USB2.0-era devices.

If someone confirms he's successful with second screen driven by UDL on any ARM-based platform, configured in a way that both screens can be used - both the built-in and UDL-driven, I think we'd be happy to release ARM binary of DLM for use with evdi.

Regards,
Michal

Mahdi2016 11-08-2016 12:39 PM

Thanks for the note.

After some testing this , i got some problems with the new kernel. At the first bootup the "rainbowscreen" comes up too. The kernel 4.9.0-rc2 works _not_ fine.

I`ve builded the kernel 4.4.26 (stable) and the newest versions from the extra modules e.g. libdrm, mesa, xserver, evdev ..
After this, i activated experimental opengl (vc4) and rebooted the system - works fine.

The output from glxgears -info
Code:

Running synchronized to the vertical refresh.  The framerate should be
approximately the same as the monitor refresh rate.
GL_RENDERER  = Gallium 0.4 on VC4 V3D 2.1
GL_VERSION    = 2.1 Mesa 13.1.0-devel (git-00baaa4)
GL_VENDOR    = Broadcom

The output from lsmod:
Code:

Module                  Size  Used by
bnep                  10340  2
bluetooth            326105  5 bnep
cfg80211              427855  0
rfkill                16037  3 cfg80211,bluetooth
vc4                  109413  1
evdev                  11396  4
sg                    18319  0
drm_kms_helper        101028  2 vc4
drm_mipi_dsi            8702  1 vc4
drm                  262564  4 vc4,drm_kms_helper
syscopyarea            2945  1 drm_kms_helper
sysfillrect            3443  1 drm_kms_helper
sysimgblt              2069  1 drm_kms_helper
snd_bcm2835            20447  1
fb_sys_fops            1309  1 drm_kms_helper
snd_pcm                75762  1 snd_bcm2835
snd_timer              19288  1 snd_pcm
snd                    51908  5 snd_bcm2835,snd_timer,snd_pcm
i2c_bcm2708            4834  0
bcm2835_wdt            3225  0
bcm2835_gpiomem        3040  0
uio_pdrv_genirq        3164  0
uio                    8000  1 uio_pdrv_genirq
i2c_dev                5859  0
fuse                  83781  3
ipv6                  347530  46

My problem is, the Display HP S140u (DL 41xx) doesn't work as it should be.
I need this display as the primary (standalone) display on my RaspberryPi2 (raspian jessie).

Has anyone some experience to get the display working on an rasperrypi?

mlukaszek 11-08-2016 08:55 PM

See, but that's just half way through. The only thing that changed so far is using a DRM-compatible module for the built-in GPU (vc4).

Now, the trick is to add `udl` (for older devices) or evdi (for newer) on top of that, and call `xrandr --setprovideroutputsource ...`.

So - what you could do now is to try to build evdi (I remember I used rpi-update and rpi-source combo for getting kernel sources and building the module afterwards). Then, despite lacking DLM, you can try to build and run monitorsim from here.

Alternatively, if you have an older device that can be driven with UDL, try this instead.

If everything works, meaning that you still get to see the main HDMI output, plus additionally you see the second screen (in a window, in case of monitorsim), please do report back.

Note: I'd recommend to experiment via ssh.

Fingers crossed!

Cheers,
Michal

Mahdi2016 11-11-2016 10:42 AM

Hi Michal,

i've built the evdi module and it works fine.

here is the output from lsmod:
Code:

#lsmod | grep evdi
evdi                  36280  0
drm_kms_helper        101028  3 vc4,evdi
drm                  262564  5 vc4,evdi,drm_kms_helper
syscopyarea            2945  2 evdi,drm_kms_helper
sysfillrect            3443  2 evdi,drm_kms_helper
sysimgblt              2069  2 evdi,drm_kms_helper

After that I started building the evdipp package.

After 'make install' the build breaks up with the following message:
Code:

make install
[  5%] Performing download step (git clone) for 'github_evdi'
Cloning into 'github_evdi'...
remote: Counting objects: 389, done.
remote: Total 389 (delta 0), reused 0 (delta 0), pack-reused 389
Receiving objects: 100% (389/389), 524.26 KiB | 871.00 KiB/s, done.
Resolving deltas: 100% (226/226), done.
Checking connectivity... done.
Already on 'devel'
Your branch is up-to-date with 'origin/devel'.
[ 11%] No patch step for 'github_evdi'
[ 16%] Performing update step for 'github_evdi'
Already on 'devel'
Your branch is up-to-date with 'origin/devel'.
[ 22%] No configure step for 'github_evdi'
[ 27%] Performing build step for 'github_evdi'
[ 33%] No install step for 'github_evdi'
[ 38%] Completed 'github_evdi'
[ 44%] Built target github_evdi
Scanning dependencies of target evdipp
[ 50%] Building CXX object libevdipp/CMakeFiles/evdipp.dir/buffer.cpp.o
[ 55%] Building CXX object libevdipp/CMakeFiles/evdipp.dir/evdi.cpp.o
[ 61%] Building CXX object libevdipp/CMakeFiles/evdipp.dir/screen.cpp.o
In file included from /usr/src/evdipp/libevdipp/screen.cpp:1:0:
/usr/src/evdipp/libevdipp/screen.hpp:25:11: error: ‘size_t’ does not name a type
    const size_t BUFFER_COUNT = 2;
          ^
/usr/src/evdipp/libevdipp/screen.hpp:26:19: error: ‘unique_ptr’ is not a member of ‘std’
    std::map<int, std::unique_ptr<Buffer>> buffers;
                  ^
/usr/src/evdipp/libevdipp/screen.hpp:26:19: error: ‘unique_ptr’ is not a member of ‘std’
/usr/src/evdipp/libevdipp/screen.hpp:26:44: error: ‘buffers’ was not declared in this scope
    std::map<int, std::unique_ptr<Buffer>> buffers;
                                            ^
/usr/src/evdipp/libevdipp/screen.hpp:26:44: error: template argument 2 is invalid
/usr/src/evdipp/libevdipp/screen.hpp:26:44: error: template argument 4 is invalid
/usr/src/evdipp/libevdipp/screen.hpp:36:5: error: ‘size_t’ does not name a type
    size_t bufferToUpdate;
    ^
/usr/src/evdipp/libevdipp/screen.hpp:42:14: error: ‘shared_ptr’ in namespace ‘std’ does not name a template type
 typedef std::shared_ptr<Screen> ScreenPtr;
              ^
/usr/src/evdipp/libevdipp/screen.cpp: In constructor ‘Screen::Screen(const Evdi&, std::vector<unsigned char>&)’:
/usr/src/evdipp/libevdipp/screen.cpp:8:3: error: class ‘Screen’ does not have any field named ‘bufferToUpdate’
 , bufferToUpdate(0)
  ^
/usr/src/evdipp/libevdipp/screen.cpp: In member function ‘virtual void Screen::on_mode_change(evdi_mode)’:
/usr/src/evdipp/libevdipp/screen.cpp:60:22: error: ISO C++ forbids declaration of ‘buffer_id’ with no type [-fpermissive]
    for (const auto& buffer_id : buffers | boost::adaptors::map_keys) {
                      ^
/usr/src/evdipp/libevdipp/screen.cpp:60:34: error: range-based ‘for’ loops are not allowed in C++98 mode
    for (const auto& buffer_id : buffers | boost::adaptors::map_keys) {
                                  ^
/usr/src/evdipp/libevdipp/screen.cpp:60:34: error: ‘buffers’ was not declared in this scope
/usr/src/evdipp/libevdipp/screen.cpp:66:25: error: ‘BUFFER_COUNT’ was not declared in this scope
    for (int i = 0; i < BUFFER_COUNT; ++i) {
                        ^
/usr/src/evdipp/libevdipp/screen.cpp:67:22: error: ‘make_unique’ is not a member of ‘std’
        buffers[i] = std::make_unique<Buffer>(i, mode.width, mode.height, mode.bits_per_pixel/8 * mode.width);
                      ^
/usr/src/evdipp/libevdipp/screen.cpp:67:45: error: expected primary-expression before ‘>’ token
        buffers[i] = std::make_unique<Buffer>(i, mode.width, mode.height, mode.bits_per_pixel/8 * mode.width);
                                            ^
/usr/src/evdipp/libevdipp/screen.cpp: In member function ‘void Screen::update()’:
/usr/src/evdipp/libevdipp/screen.cpp:107:29: error: ‘bufferToUpdate’ was not declared in this scope
    if (evdi.request_update(bufferToUpdate)) {
                            ^
/usr/src/evdipp/libevdipp/screen.cpp:110:5: error: ‘bufferToUpdate’ was not declared in this scope
    bufferToUpdate = (bufferToUpdate + 1) % BUFFER_COUNT;
    ^
/usr/src/evdipp/libevdipp/screen.cpp:110:45: error: ‘BUFFER_COUNT’ was not declared in this scope
    bufferToUpdate = (bufferToUpdate + 1) % BUFFER_COUNT;
                                            ^
libevdipp/CMakeFiles/evdipp.dir/build.make:100: recipe for target 'libevdipp/CMakeFiles/evdipp.dir/screen.cpp.o' failed
make[2]: *** [libevdipp/CMakeFiles/evdipp.dir/screen.cpp.o] Error 1
CMakeFiles/Makefile2:112: recipe for target 'libevdipp/CMakeFiles/evdipp.dir/all' failed
make[1]: *** [libevdipp/CMakeFiles/evdipp.dir/all] Error 2
Makefile:117: recipe for target 'all' failed
make: *** [all] Error 2

Please i need some help and i havent any ideas anymore.

Best regards
Michael

mlukaszek 11-12-2016 03:26 PM

Hi,

You need a C++14 compliant compiler. For the reasons I can't fully understand you sometimes must pass CXX flags manually, as cmake setting that I think should work doesn't :)

Have a look at https://github.com/mlukaszek/evdipp/...er/.travis.yml - this is the configuration for Travis CI. I was forced to run cmake with -DCMAKE_CXX_FLAGS="-std=c++14" as you'll see.

Cheers,
Michal

Mahdi2016 11-14-2016 12:40 PM

Hi Michal,

i've built the evdipp package without errors.

After reboot and plug in the HP s140u Monitor and type "sudo monitorsim EDIDv1_1600x900"
a new clear window opened and after 10 seconds the window closed automatically. The output of the terminal window is at follows:
Code:

pi@raspberrypi:~ $ sudo monitorsim EDIDv1_1600x900
[libevdi] ioctl: drop_master error=-1
[libevdi] ioctl: drop_master error=-1
[libevdi] ioctl: drop_master error=-1
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to retrieve device information


Please i need some help and i havent any ideas anymore.

Best regards
Michael

mlukaszek 11-14-2016 05:10 PM

Hmm. Try with something simpler first, e.g. the "example" program that you also built.
This won't show any pixels, but will possibly print more to the console, especially if you
enable debug printout (you need to define DEBUG for the build).

What's closing the app? Is it crashing? If yes, then running it in gdb might give some extra clues.

Cheers,
Michal

Mahdi2016 11-15-2016 10:12 AM

Hi Michal,

i've built the evdipp package with debug symbols. The output of the terminal window is at follows:
Code:

(gdb) run
Starting program: /bin/monitorsim edid.dat --enable-debug
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
[libevdi] ioctl: drop_master error=-1
[libevdi] ioctl: drop_master error=-1
[libevdi] ioctl: drop_master error=-1
MESA-LOADER: failed to retrieve device information

Program received signal SIGILL, Illegal instruction.
0x73424de8 in ?? () from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0
(gdb)

The output from 'example' command of the terminal window is at follows:
Code:

(gdb) run
Starting program: /bin/example EDIDv1_1280x900 --enable-debug
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
Reading the EDID file EDIDv1_1280x900 failed.
[Inferior 1 (process 1822) exited with code 01]
(gdb)

The "edid.dat" is generated with "tvservice -d edid.dat" (for the pluged in HDMI-Monitor).

I hope that helps.

Best regards
Michael

mlukaszek 11-16-2016 08:14 AM

What happens if you use a full path to edid file. The message indicates that the program had problems with opening/reading the file that you gave as an argument?

Cheers,
Michal

Mahdi2016 11-22-2016 11:40 AM

Hi Michal,

i'm back from vacation.

Here is the output from 'example' command of the terminal window is at follows:
Code:

(gdb) run
Starting program: /bin/example /home/pi/EDIDv1_1280x900 --enable-debug
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
Reading the EDID file /home/pi/EDIDv1_1280x900 failed.
[Inferior 1 (process 962) exited with code 01]

And the output from 'monitorsim' command of the terminal window is at follows:
Code:

Reading symbols from /bin/monitorsim...done.
(gdb) run
Starting program: /bin/monitorsim /home/pi/EDIDv1_1280x900 --enable-debug
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
Reading the EDID file /home/pi/EDIDv1_1280x900 failed.
[Inferior 1 (process 1018) exited with code 01]

I hope that helps. :confused:

Best regards
Michael

mlukaszek 11-22-2016 12:49 PM

I don't think the file "EDIDv1_1280x900" exists, given that you probably are using EDIDs from Google autotest. You probably meant 1280x800, 1440x900 or 1600x900.

Cheers,
Michal

Mahdi2016 11-24-2016 01:13 PM

Hi Michal,

Here is the output from 'example' command of the terminal window is at follows:
Code:

Starting program: /bin/example /home/pi/EDIDv1_1440x900 --enable-debug
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
[libevdi] ioctl: drop_master error=-1
[libevdi] ioctl: drop_master error=-1
Attempting to use device /dev/dri/card1...
[libevdi] ioctl: drop_master error=-1
Press Enter or Ctrl+C to quit...

There was a window without information (title bar with clean and minimal window, to see is a "maximized" symbol as window).

And the output from 'monitorsim' command of the terminal window is at follows:
Code:

(gdb) run
Starting program: /bin/monitorsim /home/pi/EDIDv1_1440x900 --enable-debug
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
[libevdi] ioctl: drop_master error=-1
[libevdi] ioctl: drop_master error=-1
[libevdi] ioctl: drop_master error=-1
MESA-LOADER: failed to retrieve device information

Program received signal SIGILL, Illegal instruction.
0x73424de8 in ?? () from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0

I hope this information will help you..

Best regards
Michael

mlukaszek 11-24-2016 05:52 PM

Looks like `example` managed to talk to evdi and connected to it. You didn't define DEBUG so the output is minimal.
Not sure why you're getting SIGILL for the Qt app, but it looks like you should perhaps update your pi (https://github.com/raspberrypi/linux/issues/766).

Anyway. With the `example` running, play with `xrandr` to list available outputs and connectors, and see if reverse prime works.

So, in short, keep `example` in the background, and test the following:
  • xrandr
  • xrandr --listproviders
  • xrandr --setprovideroutputsource 1 0
  • xrandr --auto

...and see how far you get.

Regards,
Michal

Mahdi2016 11-25-2016 03:35 PM

Hi Michal,

Here is the output from 'xrandr' command of the terminal window is at follows:
Code:

xrandr
Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 2048 x 2048
HDMI-0 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 359mm x 287mm
  1280x1024    60.02*+
  1280x960      60.00
  1024x768      60.00
  800x600      60.32
  640x480      60.00
  720x400      70.08

Here is the output from 'xrandr --listproviders' command of the terminal window is at follows:
Code:

Providers: number : 1
Provider 0: id: 0x43 cap: 0x2, Sink Output crtcs: 3 outputs: 1 associated providers: 0 name:modesetting
pi@raspberrypi:~ $ sudo modprobe evdi
pi@raspberrypi:~ $ xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x43 cap: 0x2, Sink Output crtcs: 3 outputs: 1 associated providers: 0 name:modesetting
pi@raspberrypi:~ $ xrandr --setprovideroutputsource 1 0
Could not find provider with index 1

Here is the output from 'xrandr --setprovideroutputsource 1 0' command of the terminal window is at follows:
Code:

xrandr --setprovideroutputsource 1 0
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  35 ()
  Value in failed request:  0x43
  Serial number of failed request:  16
  Current serial number in output stream:  17

And the 'xrandr --auto' command are without output.

For this test I used a 17 inch monitor and the HP s140u USB monitor.
For a special debug I put up a new image, because I have updated the mesa and libdrm manually.

Best regards
Michael

Mahdi2016 12-05-2016 01:26 PM

Hi Michal,

I have built a new image, only with existing packages. I builded evdi module and evdipp without any problems.
The system is an up-to-date Raspian Jessi.

After testing the following commands, there was always the error message: *No usable EVDI found* (The evdi module under lsmod is active.)

Here is the output from 'example' command of the terminal window is at follows:
Code:

#as root:
Starting program: /bin/example /home/pi/EDIDv1_1440x900
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
[libevdi] ioctl: drop_master error=-1
Attempting to use device /dev/dri/card1...
[libevdi] ioctl: drop_master error=-1
Press Enter or Ctrl+C to quit...

#as user:
Starting program: /bin/example /home/pi/EDIDv1_1440x900
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
No usable EVDI found
[Inferior 1 (process 3898) exited with code 02]

No Screen showed up.

And the output from 'monitorsim' command of the terminal window is at follows:
Code:

#as root:
Starting program: /bin/monitorsim /home/pi/EDIDv1_1440x900
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
[libevdi] ioctl: drop_master error=-1
[libevdi] ioctl: drop_master error=-1
[libevdi] ioctl: drop_master error=-1
[libevdi] ioctl: drop_master error=-1
No protocol specified
QXcbConnection: Could not connect to display :0

Program received signal SIGABRT, Aborted.
0x75f89f70 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56      ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.

#as user:
Starting program: /bin/monitorsim /home/pi/EDIDv1_1440x900
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
No usable EVDI found
[Inferior 1 (process 3864) exited with code 02]

The output from the "xrandr" is the same as in my last post.

I hope this information will help you.

Best regards
Michael

mlukaszek 12-05-2016 04:03 PM

Not being able to use evdi if not running as root is normal. (see note in https://displaylink.github.io/evdi/q...rt/#evdi-nodes)

Not seeing any extra output from "example" is also normal - but while the application is running, it should already be possible to check `xrandr` if you see DVI-*-* connector. Also, what `xrandr --listproviders` shows.

From what monitorsim run as root logs, I think you are running in ssh session, with no DISPLAY set. Run `export DISPLAY=:0` and try again...
Edit: on another look, it complains about not being able to connect to :0, so it might be something else...

Cheers,
Michal

Mahdi2016 12-06-2016 01:42 PM

Hi Michal,

I have tested as native desktop and with ssh.

Here is the output from 'example' command of the terminal window is at follows:
Code:

sudo /bin/example /home/pi/EDIDv1_1440x900
[libevdi] ioctl: drop_master error=-1
Attempting to use device /dev/dri/card1...
[libevdi] ioctl: drop_master error=-1
Press Enter or Ctrl+C to quit...

In the same time the other window is at follows:
Code:

pi@raspberrypi:~ $ xrandr
Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 2048 x 2048
HDMI-0 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 359mm x 287mm
  1280x1024    60.02*+
  1280x960      60.00
  1024x768      60.00
  800x600      60.32
  640x480      60.00
  720x400      70.08

pi@raspberrypi:~ $ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x43 cap: 0x2, Sink Output crtcs: 3 outputs: 1 associated providers: 0 name:modesetting
Provider 1: id: 0x270 cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 0 name:modesetting

pi@raspberrypi:~ $ xrandr --setprovideroutputsource 1 0
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  35 ()
  Value in failed request:  0x43
  Serial number of failed request:  16
  Current serial number in output stream:  17

 pi@raspberrypi:~ $ xrandr --auto
(without output)

And here is the output from 'monitorsim' command of the terminal window is at follows:
Code:

pi@raspberrypi:~ $ sudo /bin/monitorsim /home/pi/EDIDv1_1440x900
[libevdi] ioctl: drop_master error=-1
[libevdi] ioctl: drop_master error=-1
[libevdi] ioctl: drop_master error=-1
No protocol specified
QXcbConnection: Could not connect to display :0

I hope this information will help you.. i havent any ideas anymore.

Best regards
Michael

mlukaszek 12-07-2016 08:52 AM

He're how it looks on my Pi - just had a moment to try a few things out. Note this is WITHOUT evdi loaded yet.
Code:

$ uname -a
Linux ubuntupi 4.4.35-v7+ #931 SMP Sat Nov 26 13:05:09 GMT 2016 armv7l armv7l armv7l GNU/Linux

Code:

$ lsmod | grep drm
drm_kms_helper        101028  2 vc4
drm_mipi_dsi            8702  1 vc4
drm                  262564  4 vc4,drm_kms_helper
syscopyarea            2945  1 drm_kms_helper
sysfillrect            3443  1 drm_kms_helper
sysimgblt              2069  1 drm_kms_helper
fb_sys_fops            1309  1 drm_kms_helper

And the most important difference - Sink Offload capability is present:
Code:

$ xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x43 cap: 0x9, Source Output, Sink Offload crtcs: 3 outputs: 1 associated providers: 0 name:modesetting

I used rpi-update and rpi-source to get the freshest kernel and its sources. What happens if you try the same?

Cheers,
Michal

Mahdi2016 12-07-2016 09:44 AM

Hi Michal,

I use Debian Jessi (raspbian) on my RaspberryPi 2.
The system is up-to-date.

Here is the output from 'uname -a' command of the terminal window is at follows:
Code:

Linux raspberrypi 4.4.34-v7+ #930 SMP Wed Nov 23 15:20:41 GMT 2016 armv7l GNU/Linux
Here is the output from 'lsmod | grep drm' command of the terminal window is at follows:
Code:

drm_mipi_dsi            8702  1 vc4
drm_kms_helper        101028  3 vc4,evdi
drm                  262564  5 vc4,evdi,drm_kms_helper
syscopyarea            2945  2 evdi,drm_kms_helper
sysfillrect            3443  2 evdi,drm_kms_helper
sysimgblt              2069  2 evdi,drm_kms_helper
fb_sys_fops            1309  1 drm_kms_helper

Here is the output from 'xrandr --listproviders ' command of the terminal window is at follows:
Code:

Providers: number : 1
Provider 0: id: 0x43 cap: 0x2, Sink Output crtcs: 3 outputs: 1 associated providers: 0 name:modesetting

What kind of OS do you use on your Raspi?

Best regards
Michael

mlukaszek 12-07-2016 02:17 PM

Hi, at the moment it's Ubuntu MATE.

Cheers,
Michal

Mahdi2016 12-08-2016 03:26 PM

Hi Michal,

I use ubuntu mate (16.04) on my RaspberryPi 2.
The system is up-to-date.

The outputs are the same.

I will try to install 'evdi' and 'evdipp' tomorrow, and hope it will work.

My goal is to just using the USB monitor..

Best regards
Michael

Mahdi2016 12-09-2016 01:52 PM

Hi Michal,

I use ubuntu mate (16.04) for my RaspberryPi 2.
The system is up to date (apt update, apt upgrade). After trying 'sudo BRANCH=next rpi-update' and 'sudo rpi-source' the current kernel and sources was installed.
I also try to add the following lines into '/boot/config.txt’:
Code:

dtoverlay=vc4-kms-v3d
gpu_mem=128

I tried to compile dkms. This broke with the following error message:
Code:

Error! Bad return status for module build on kernel: 4.4.36-v7+ (armv7l)

the file: Consult /var/lib/dkms/evdi/devel/module/build/make.log:
DKMS make.log for evdi-devel/module for kernel 4.4.36-v7+ (armv7l)
Fr 9. Dez 13:44:39 CET 2016
make KBUILD_VERBOSE=1 SUBDIRS=/var/lib/dkms/evdi/devel/module/build SRCROOT=/var/lib/dkms/evdi/devel/module/build CONFIG_MODULE_SIG= -C /lib/modules/4.4.36-v7+/build modules
make[1]: Entering directory '/home/pi/linux-c6d86f7aa554854b04614ebb4d394766081fb41f'
test -e include/generated/autoconf.h -a -e include/config/auto.conf || (                \
echo >&2;                                                      \
echo >&2 "  ERROR: Kernel configuration is invalid.";          \
echo >&2 "        include/generated/autoconf.h or include/config/auto.conf are missing.";\
echo >&2 "        Run 'make oldconfig && make prepare' on kernel src to fix it.";      \
echo >&2 ;                                                      \
/bin/false)
mkdir -p /var/lib/dkms/evdi/devel/module/build/.tmp_versions ; rm -f /var/lib/dkms/evdi/devel/module/build/.tmp_versions/*

  WARNING: Symbol version dump ./Module.symvers
          is missing; modules will have no dependencies and modversions.

make -f ./scripts/Makefile.build obj=/var/lib/dkms/evdi/devel/module/build
  gcc -Wp,-MD,/var/lib/dkms/evdi/devel/module/build/.evdi_drv.o.d  -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabihf/4.9/include -I./arch/arm/include -Iarch/arm/include/generated/uapi -Iarch/arm/include/generated  -Iinclude -I./arch/arm/include/uapi -Iarch/arm/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Iarch/arm/mach-bcm2709/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-dwarf2-cfi-asm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -fno-ipa-sra -mabi=aapcs-linux -mno-thumb-interwork -mfpu=vfp -funwind-tables -marm -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-delete-null-pointer-checks -Wno-maybe-uninitialized -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -DCC_HAVE_ASM_GOTO -Iinclude/drm  -DMODULE  -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(evdi_drv)"  -D"KBUILD_MODNAME=KBUILD_STR(evdi)" -c -o /var/lib/dkms/evdi/devel/module/build/.tmp_evdi_drv.o /var/lib/dkms/evdi/devel/module/build/evdi_drv.c
In file included from include/asm-generic/int-ll64.h:10:0,
                from ./arch/arm/include/asm/types.h:4,
                from include/uapi/linux/types.h:4,
                from include/linux/types.h:5,
                from include/linux/list.h:4,
                from include/linux/agp_backend.h:33,
                from include/drm/drmP.h:35,
                from /var/lib/dkms/evdi/devel/module/build/evdi_drv.c:10:
include/uapi/asm-generic/int-ll64.h:11:29: fatal error: asm/bitsperlong.h: No such file or directory
 #include <asm/bitsperlong.h>
                            ^
compilation terminated.
scripts/Makefile.build:258: recipe for target '/var/lib/dkms/evdi/devel/module/build/evdi_drv.o' failed
make[2]: *** [/var/lib/dkms/evdi/devel/module/build/evdi_drv.o] Error 1
Makefile:1401: recipe for target '_module_/var/lib/dkms/evdi/devel/module/build' failed
make[1]: *** [_module_/var/lib/dkms/evdi/devel/module/build] Error 2
make[1]: Leaving directory '/home/pi/linux-c6d86f7aa554854b04614ebb4d394766081fb41f'
Makefile:21: recipe for target 'all' failed
make: *** [all] Error 2

The same are with the evdi version 1.2.64, 1.2.65 and devel.
A try with the original installation package 'displaylink-driver-1.2.65.run*' end also with a similar error.

I've built the evdipp package without errors. so far so good :)

What steps have you done until to compile evdi and running the module?

Best regards
Michael

mlukaszek 12-12-2016 12:14 PM

I didn't use dkms, just used make to build in place. I think the problem you have is this:
Code:

echo >&2 "        Run 'make oldconfig && make prepare' on kernel src to fix it.";      \
Cheers,
Michal

Mahdi2016 12-13-2016 10:37 AM

Hi Michal,

After successfull build the evdi module and reboot
The Build of evdi are successfull.

Here is the output from 'example' command of the terminal window is at follows:
Code:

pi@pi-desktop:~/target/bin$ sudo ./example EDIDv1_1440x900
terminate called after throwing an instance of 'boost::filesystem::filesystem_error'
  what():  boost::filesystem::directory_iterator::construct: No such file or directory
Aborted (core dumped)

And here is the output from 'monitorsim' command of the terminal window is at follows:
Code:

pi@pi-desktop:~/target/bin$ sudo ./example EDIDv1_1440x900
terminate called after throwing an instance of 'boost::filesystem::filesystem_error'
  what():  boost::filesystem::directory_iterator::construct: No such file or directory
Aborted (core dumped)
pi@pi-desktop:~/target/bin$ sudo ./monitorsim EDIDv1_1440x900
[libevdi] ioctl: drop_master error=-1
[libevdi] ioctl: drop_master error=-1
[libevdi] ioctl: drop_master error=-1
[libevdi] ioctl: drop_master error=-1
The X11 connection broke: I/O error (code 1)
XIO:  fatal IO error 22 (Invalid argument) on X server ":0"
      after 399 requests (399 known processed) with 0 events remaining.

After the fourth "[libevdi] ioctl: drop_master error=-1" the screen was blank.

The output from 'lsmod' command of the terminal window is at follows:
Code:

lsmod| grep evdi
evdi                  36280  0
drm_kms_helper        101028  3 vc4,evdi
drm                  262564  8 vc4,evdi,drm_kms_helper
syscopyarea            2945  2 evdi,drm_kms_helper
sysfillrect            3443  2 evdi,drm_kms_helper
sysimgblt              2069  2 evdi,drm_kms_helper

I've built the 'evdi' and 'evdipp' under the current kernel and without errors.

What steps have you done until to compile evdi?

How did you actually compile evdi? Runs under ubuntu mate an USB monitor (DL31xx) e.g. HP s104u?

I havent any ideas anymore..

Best regards
Michael

Mahdi2016 12-19-2016 01:14 PM

..does anyone else have an idea? :confused:

Mahdi2016 01-03-2017 10:27 AM

.. push.

Best regards
Michael

RussianNeuroMancer 11-11-2017 04:57 AM

Quote:

Originally Posted by mlukaszek (Post 81793)
Last time I tried, Raspberry Pi was almost there - with Eric Anholt's experimental vc4 module for the GPU. However, I only managed to use one screen at a time - i.e. only DisplayLink-connected screen was operable, not the built-in HDMI.

Maybe it's good idea to fill bugreport about this?

RussianNeuroMancer 02-09-2019 04:56 AM

Quote:

Originally Posted by mlukaszek (Post 81793)
no compatible ARM platform found yet, except for Chromebooks and Android devices.

There is more compatible devices now:

PineBook Pro: https://forum.pine64.org/showthread.php?tid=7093
Asus NovaGo TP370QL, HP Envy x2 12-e011nr/12-e001nf, Lenovo Mixx 630: https://github.com/aarch64-laptops

mlukaszek 02-20-2019 04:05 PM

Not sure if you noticed, but we started releasing armhf binaries of DLM since 4.4 release.

There are still serious limitations of the environment though, which cause us being unable
to support it at this stage. See our FAQs, let us know if you manage to get it running!

The idea page is here:
https://support.displaylink.com/foru...-linux-support

FAQ:
https://support.displaylink.com/know...n-raspberry-pi
https://support.displaylink.com/know...n-raspberry-pi

Cheers,
Michal

jbrock 07-18-2020 07:59 PM

Pinebook Pro?
 
Quote:

Originally Posted by RussianNeuroMancer (Post 87526)
There is more compatible devices now:

PineBook Pro: https://forum.pine64.org/showthread.php?tid=7093
Asus NovaGo TP370QL, HP Envy x2 12-e011nr/12-e001nf, Lenovo Mixx 630: https://github.com/aarch64-laptops

I am interested in trying to get my DisplayLink USB 2.0 monitor working with the Pinebook Pro. Is there information or a github project online that allows for compatibility? I cannot find anything where someone claims to have successfully used DisplayLink on the Pinebook Pro or on the Rockchip RK3399 SOC successfully and shown how to implement it.

Thank you

RussianNeuroMancer 07-20-2020 05:58 PM

Quote:

Originally Posted by mlukaszek (Post 87595)
Not sure if you noticed, but we started releasing armhf binaries of DLM since 4.4 release.

There are still serious limitations of the environment though, which cause us being unable
to support it at this stage. See our FAQs, let us know if you manage to get it running!

The idea page is here:
https://support.displaylink.com/foru...-linux-support

FAQ:
https://support.displaylink.com/know...n-raspberry-pi
https://support.displaylink.com/know...n-raspberry-pi

Cheers,
Michal

There is only Xorg instructions. I been using Gnome Shell Wayland on ARM (currently with Freedreno and Panfrsot video drivers) so I would like to ask if current version of DisplayLink driver is compatible with Wayland session specifically on ARM?


All times are GMT. The time now is 11:00 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.