Go Back   DisplayLink Forum > DisplayLink Graphics Technology > Linux and Open Source

Reply
 
Thread Tools Search this Thread Display Modes
Old 11-11-2016, 10:42 AM   #1
Mahdi2016
Junior Member
 
Join Date: Oct 2016
Posts: 20
Exclamation

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

Last edited by Mahdi2016; 11-11-2016 at 11:01 AM.
Mahdi2016 is offline   Reply With Quote
Old 11-12-2016, 03:26 PM   #2
mlukaszek
Senior Member
 
mlukaszek's Avatar
 
Join Date: Feb 2010
Posts: 386
Default

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
mlukaszek is offline   Reply With Quote
Old 11-14-2016, 12:40 PM   #3
Mahdi2016
Junior Member
 
Join Date: Oct 2016
Posts: 20
Exclamation

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

Last edited by Mahdi2016; 02-09-2017 at 08:09 AM.
Mahdi2016 is offline   Reply With Quote
Old 11-14-2016, 05:10 PM   #4
mlukaszek
Senior Member
 
mlukaszek's Avatar
 
Join Date: Feb 2010
Posts: 386
Default

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
mlukaszek is offline   Reply With Quote
Old 11-15-2016, 10:12 AM   #5
Mahdi2016
Junior Member
 
Join Date: Oct 2016
Posts: 20
Exclamation

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
Mahdi2016 is offline   Reply With Quote
Old 11-16-2016, 08:14 AM   #6
mlukaszek
Senior Member
 
mlukaszek's Avatar
 
Join Date: Feb 2010
Posts: 386
Default

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
mlukaszek is offline   Reply With Quote
Old 11-22-2016, 11:40 AM   #7
Mahdi2016
Junior Member
 
Join Date: Oct 2016
Posts: 20
Post

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.

Best regards
Michael
Mahdi2016 is offline   Reply With Quote
Old 12-06-2016, 01:42 PM   #8
Mahdi2016
Junior Member
 
Join Date: Oct 2016
Posts: 20
Default

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
Mahdi2016 is offline   Reply With Quote
Old 12-07-2016, 08:52 AM   #9
mlukaszek
Senior Member
 
mlukaszek's Avatar
 
Join Date: Feb 2010
Posts: 386
Default

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
mlukaszek is offline   Reply With Quote
Old 12-07-2016, 09:44 AM   #10
Mahdi2016
Junior Member
 
Join Date: Oct 2016
Posts: 20
Post

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
Mahdi2016 is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 09:34 PM.


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