On Thu, Jan 06, 2022 at 07:44:25PM +0800, Xiong。 wrote:
Dear sir:
I want to hook mmap system call in qemu, and I use
libvirt to passthrough the environment argument like this:
<qemu:commandline>
<qemu:env name='LD_PRELOAD' value='/glibcHookMMAP.so'/>
</qemu:commandline>
But it failed. I can hardly find out what is the matter!
The log in libvirt like this:ERROR: ld.so: object
'/glibcHookMMAP.so' from LD_PRELOAD cannot be preloaded
(cannot open shared object file): ignored. Firstly,
I think it's the problem of authority. But the file
glibcHookMMAP.so has been done with command `chmod 777`.
My environment is as follows: Ubuntu 18.04.2 Linux
5.4.0-92 libvirt 4.0.0 qemu 2.11.1
Aside from normal file permissions, the other likely problem on Ubuntu
will be AppArmor policy. It likely won't allow QEMU to load files from
the / directory - if you put your .so in /usr/local/lib it might
work.
Regards,
Daniel
--
|:
https://berrange.com -o-
https://www.flickr.com/photos/dberrange :|
|:
https://libvirt.org -o-
https://fstop138.berrange.com :|
|:
https://entangle-photo.org -o-
https://www.instagram.com/dberrange :|