![]() |
|
|
|
|
#1 |
|
Junior Member
Join Date: Oct 2016
Posts: 20
|
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 '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
Best regards Michael Last edited by Mahdi2016; 11-11-2016 at 11:01 AM. |
|
|
|
|
|
#2 |
|
Senior Member
Join Date: Feb 2010
Posts: 386
|
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 |
|
|
|
|
|
#3 |
|
Junior Member
Join Date: Oct 2016
Posts: 20
|
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. |
|
|
|
|
|
#4 |
|
Senior Member
Join Date: Feb 2010
Posts: 386
|
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 |
|
|
|
|
|
#5 |
|
Junior Member
Join Date: Oct 2016
Posts: 20
|
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) 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) I hope that helps. Best regards Michael |
|
|
|
|
|
#6 |
|
Senior Member
Join Date: Feb 2010
Posts: 386
|
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 |
|
|
|
|
|
#7 |
|
Junior Member
Join Date: Oct 2016
Posts: 20
|
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] 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] ![]() Best regards Michael |
|
|
|
|
|
#8 |
|
Junior Member
Join Date: Oct 2016
Posts: 20
|
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... 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) 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 Best regards Michael |
|
|
|
|
|
#9 |
|
Senior Member
Join Date: Feb 2010
Posts: 386
|
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 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 Cheers, Michal |
|
|
|
|
|
#10 |
|
Junior Member
Join Date: Oct 2016
Posts: 20
|
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 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 Code:
Providers: number : 1 Provider 0: id: 0x43 cap: 0x2, Sink Output crtcs: 3 outputs: 1 associated providers: 0 name:modesetting Best regards Michael |
|
|
|
![]() |
| Thread Tools | Search this Thread |
| Display Modes | |
|
|