LINUX.ORG.RU

Избранные сообщения alt-x

Бинарник был открыт, но «No such file or dirrectory”

Форум — Development

Пытаюсь использовать функцию из libxxx.so, взятой из Windriver arm hf 2.6.32. Эмулирую на qemu Debian wheezy hf 3.2.0. Скомпилив простейший бинарник hello, где вызываю dlopen на libxxx.so, получаю ошибку «cannot open shared object file: No such file or dirrectory”. Хотя:

strace:

open("/usr/src/hello/libxxx.so", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\330\26\0\0004\0\0\0"..., 512) = 512
lseek(3, 53056, SEEK_SET) = 53056
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1400) = 1400
lseek(3, 37784, SEEK_SET) = 37784
read(3, "A0\0\0\0aeabi\0\1&\0\0\0\0057-A\0\6\n\7A\10\1\t\2\n\4\22"..., 49) = 49
close(3) = 0
writev(2, [{"./hello", 7}, {": ", 2}, {"error while loading shared libra"..., 36}, {": ", 2}, {"libxxx.so", 13}, {": ", 2}, {"cannot open shared object file", 30}, {": ", 2}, {"No such file or directory", 25}, {"\n", 1}], 10./hello: error while loading shared libraries: libxxx.so: cannot open shared object file: No such file or directory
) = 120
exit_group(127)

# file libxxx.so:
ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, not stripped
# uname -a:
Linux debian-armhf 3.2.0-4-vexpress #1 SMP Debian 3.2.51-1 armv7l GNU/Linux
# file hello:
ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26
# ldd hello : libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x76ee9000) libxxx.so => not found libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x76e01000) /lib/ld-linux-armhf.so.3 
# ldconfig -p | grep libxxx.so : libxxx.so (libc6) => /lib/libxxx.so (it's not a link)
# ldd libxxx.so : not a dynamic executable

readelf говорит, что для libxxx.so NEEDED только libc. Секцию ARM.attributes смотрел, сверял с родными либами...

 , , , ,

botcser
()

Зависает ядро при попытке проброса Nvidia 210

Форум — Linux-hardware

Пытаюсь пробросить Nvidia G210 в qemu-kvm=linux/windows как через vfio, так и через pci-assign — и не получается нормально, получается либо полупроброс, либо линукс намертво зависает.

1. vfio:

${QEMU} \
    -enable-kvm -M q35 -m 4096 \
    -smp 4,sockets=1,cores=4,threads=1 \
    -cpu host,hv_relaxed,hv_vapic,hv_spinlocks=0x1000 \
    -device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 \
    -device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,romfile=GT218.rom,x-vga=on \
    -device vfio-pci,host=01:00.1,bus=root.1,addr=00.1 \
    -bios /usr/share/seabios/bios.bin \
    -boot menu=on -vga none \
    -cdrom /mnt/vm/images/arch.iso \

Что на q35, что на pc (pc-i440fx-2.0, pc-i440fx-2.5), при "-vga none" — линукс сразу зависает, только хардресет. Если убрать none, то включается, в окошке начинается загрузка (убунта, федора, арч, винда), в случае убунты даже включается монитор подключенный к пробрасываемой видеокарте, показывается графика, окно убунты «Try it / Install», но после нажатия Try — пропадает всё, черный экран. В случае федоры на пробрасываемом карте-мониторе только бут-процесс федоры, а потом обратно перекидывает в окно qemu.

Также можно подсунуть видобиос от неё, но делу это не помогает.

     -device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,romfile=GT218.rom,x-vga=on \
В общем, получается какой-то полупроброс здесь, хотя очевидно карта пробрасывается нормально, через неё показывает и работает, но только временно. Чего линукс зависает-то на -vga none?

2. pci-assign:

pci-assign не работает, еще 2 года назад автор vfio говорил, что он deprecated (хотя у меня и у многих работало, например на radeon 7870), вот такая ошибка, что не пробрасывай включая эту карту — машина не стартует:

qemu-system-x86_64: -device pci-assign,host=02:06.0: Failed to assign device "(null)": Invalid argument

pci-assign это добавление устройств в pci-stub при загрузке ядра, например:

CONFIG_CMDLINE="pci-stub.ids=10de:0a60,10de:0be3,13f6:0111"
и в машине:
    -device pci-assign,host=01:00.1 \
    -device pci-assign,host=01:00.0 \

В чём может быть дело? Кто сталкивался с зависающим ядром при пробросе на -vga none?

t184256, Deathstalker — вот вы говорили, что смогли пробросить Nvidia 210, не сохранилось ли у вас подробностей? Какая здесь еще нужна дополнительная магия?

 , , , ,

kep
()