[Vm-dev] Newly built VM not finding its display plugin :-(

Hans-Martin Mosner hmm at heeg.de
Sun Nov 13 23:41:33 UTC 2016


Hi, I'm in the process of creating a simple and reproducible automated VM build environment using Docker. My current
docker image basically seems to work, however, I've not been able to run the created executable yet.

I've naively assumed that the shell script "squeak" in directory .../products/sqcogspur64linux would do the right thing,
but it complains that it could not find the display driver: "could not find display driver vm-display-X11".

The direcory structure in "products" differs a bit from the release VM directory structure, but it looks like it is
supposed to work anyway.

I've done an strace of the process, and it finds and opens the plugin just fine (twice, actually), but just before
writing the error message it seems to want to open it again under various different names, just not the right one...

Here are the relevant strace lines of the first two plugin maps:

stat("sqcogspur64linux/lib/squeak/5.0-/vm-display-X11", {st_mode=S_IFREG|0755, st_size=373136, ...}) = 0
open("sqcogspur64linux/lib/squeak/5.0-/vm-display-X11", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 j\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=373136, ...}) = 0
getcwd("/tmp/products", 128)            = 14
mmap(NULL, 2212928, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f3938d0d000
mprotect(0x7f3938d26000, 2097152, PROT_NONE) = 0
mmap(0x7f3938f26000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19000) = 0x7f3938f26000
mmap(0x7f3938f28000, 5184, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3938f28000
close(3)                                = 0

stat("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/vm-display-X11", {st_mode=S_IFREG|0755, st_size=373136, ...}) = 0
open("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/vm-display-X11", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 j\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=373136, ...}) = 0
mmap(NULL, 2212928, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f3938d0d000
mprotect(0x7f3938d26000, 2097152, PROT_NONE) = 0
mmap(0x7f3938f26000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19000) = 0x7f3938f26000
mmap(0x7f3938f28000, 5184, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3938f28000
close(3)                                = 0

But the last attempt fails:

stat("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/vm-display-X11.so", 0x7ffd9d228780) = -1 ENOENT (No such file or
directory)
stat("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/vm-display-X11.dylib", 0x7ffd9d228780) = -1 ENOENT (No such file or
directory)
stat("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/libvm-display-X11", 0x7ffd9d228780) = -1 ENOENT (No such file or
directory)
stat("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/libvm-display-X11.so", 0x7ffd9d228780) = -1 ENOENT (No such file or
directory)
stat("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/libvm-display-X11.dylib", 0x7ffd9d228780) = -1 ENOENT (No such file
or directory)
stat("/lib/x86_64-linux-gnu/vm-display-X11", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/lib/x86_64-linux-gnu/vm-display-X11.so", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/lib/x86_64-linux-gnu/vm-display-X11.dylib", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/lib/x86_64-linux-gnu/libvm-display-X11", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/lib/x86_64-linux-gnu/libvm-display-X11.so", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/lib/x86_64-linux-gnu/libvm-display-X11.dylib", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/lib/vm-display-X11", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/lib/vm-display-X11.so", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/lib/vm-display-X11.dylib", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/lib/libvm-display-X11", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/lib/libvm-display-X11.so", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/lib/libvm-display-X11.dylib", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/usr/lib/x86_64-linux-gnu/vm-display-X11", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/usr/lib/x86_64-linux-gnu/vm-display-X11.so", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/usr/lib/x86_64-linux-gnu/vm-display-X11.dylib", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/usr/lib/x86_64-linux-gnu/libvm-display-X11", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/usr/lib/x86_64-linux-gnu/libvm-display-X11.so", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/usr/lib/x86_64-linux-gnu/libvm-display-X11.dylib", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/usr/lib/vm-display-X11", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/usr/lib/vm-display-X11.so", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/usr/lib/vm-display-X11.dylib", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/usr/lib/libvm-display-X11", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/usr/lib/libvm-display-X11.so", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/usr/lib/libvm-display-X11.dylib", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/home/hmm/Squeak/images/vm-display-X11", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/home/hmm/Squeak/images/vm-display-X11.so", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/home/hmm/Squeak/images/vm-display-X11.dylib", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/home/hmm/Squeak/images/libvm-display-X11", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/home/hmm/Squeak/images/libvm-display-X11.so", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/home/hmm/Squeak/images/libvm-display-X11.dylib", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/usr/local/lib/vm-display-X11", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/usr/local/lib/vm-display-X11.so", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/usr/local/lib/vm-display-X11.dylib", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/usr/local/lib/libvm-display-X11", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/usr/local/lib/libvm-display-X11.so", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("/usr/local/lib/libvm-display-X11.dylib", 0x7ffd9d228780) = -1 ENOENT (No such file or directory)
stat("vm-display-X11", 0x7ffd9d22a7a0)  = -1 ENOENT (No such file or directory)
stat("vm-display-X11.so", 0x7ffd9d22a7a0) = -1 ENOENT (No such file or directory)
stat("vm-display-X11.dylib", 0x7ffd9d22a7a0) = -1 ENOENT (No such file or directory)
stat("libvm-display-X11", 0x7ffd9d22a7a0) = -1 ENOENT (No such file or directory)
stat("libvm-display-X11.so", 0x7ffd9d22a7a0) = -1 ENOENT (No such file or directory)
stat("libvm-display-X11.dylib", 0x7ffd9d22a7a0) = -1 ENOENT (No such file or directory)
stat("/vm-display-X11", 0x7ffd9d22a7a0) = -1 ENOENT (No such file or directory)
stat("/vm-display-X11.so", 0x7ffd9d22a7a0) = -1 ENOENT (No such file or directory)
stat("/vm-display-X11.dylib", 0x7ffd9d22a7a0) = -1 ENOENT (No such file or directory)
stat("/libvm-display-X11", 0x7ffd9d22a7a0) = -1 ENOENT (No such file or directory)
stat("/libvm-display-X11.so", 0x7ffd9d22a7a0) = -1 ENOENT (No such file or directory)
stat("/libvm-display-X11.dylib", 0x7ffd9d22a7a0) = -1 ENOENT (No such file or directory)
stat("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/vm-display-X11/.libs/vm-display-X11", 0x7ffd9d22a790) = -1 ENOTDIR
(Not a directory)
stat("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/vm-display-X11/.libs/vm-display-X11.so", 0x7ffd9d22a790) = -1
ENOTDIR (Not a directory)
stat("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/vm-display-X11/.libs/vm-display-X11.dylib", 0x7ffd9d22a790) = -1
ENOTDIR (Not a directory)
stat("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/vm-display-X11/.libs/libvm-display-X11", 0x7ffd9d22a790) = -1
ENOTDIR (Not a directory)
stat("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/vm-display-X11/.libs/libvm-display-X11.so", 0x7ffd9d22a790) = -1
ENOTDIR (Not a directory)
stat("/tmp/products/sqcogspur64linux/lib/squeak/5.0-/vm-display-X11/.libs/libvm-display-X11.dylib", 0x7ffd9d22a790) = -1
ENOTDIR (Not a directory)
write(2, "could not find display driver vm"..., 54could not find display driver vm-display-X11; either:
) = 54
write(2, "  - check that /tmp/products/sqc"..., 92  - check that
/tmp/products/sqcogspur64linux/lib/squeak/5.0-//vm-display-X11.so exists, or
) = 92
write(2, "  - use the '-plugins <path>' op"..., 64  - use the '-plugins <path>' option to tell me where it is, or
) = 64
write(2, "  - remove DISPLAY from your env"..., 42  - remove DISPLAY from your environment.
) = 42

Any idea what I might be missing?

Cheers,

Hans-Martin




More information about the Vm-dev mailing list