LINUX.ORG.RU

запуск бинаря в qemu-arm

 ,


1

1

Пытаюсь запустить arm бинарь под arm-linux-user. софт динамически линкован, все либы имеются.

/usr/arm-linux-gnueabihf/bin/readelf -d bin/myapp

 0x00000001 (NEEDED)                     Совм. исп. библиотека: [libgobject-2.0.so.0]
 0x00000001 (NEEDED)                     Совм. исп. библиотека: [libglib-2.0.so.0]
 0x00000001 (NEEDED)                     Совм. исп. библиотека: [libdbus-glib-1.so.2]
...
 0x0000000f (RPATH)                      Библиотека rpath: [/usr/lib/qt-5.6.0-imx61-shared/lib]

либы лежат в rpath

запускаю

qemu-arm -L /usr/arm-linux-gnueabihf/ bin/myapp
bin/myapp: error while loading shared libraries: libgobject-2.0.so.0: cannot open shared object file: No such file or directory

запускаю с QEMU_STRACE=1

...
27669 open("/usr/lib/qt-5.6.0-imx61-shared/lib/libgobject-2.0.so.0",O_RDONLY|O_CLOEXEC) = 3
27669 read(3,0xf6ffed00,512) = 512
27669 close(3) = 0
...
27669 open("/lib/arm-linux-gnueabihf/tls/neon/vfp/libgobject-2.0.so.0",O_RDONLY|O_CLOEXEC) = -1 errno=2 (No such file or directory)
27669 stat64("/lib/arm-linux-gnueabihf/tls/neon/vfp",0xf6ffec28) = -1 errno=2 (No such file or directory)
27669 open("/lib/arm-linux-gnueabihf/tls/neon/libgobject-2.0.so.0",O_RDONLY|O_CLOEXEC) = -1 errno=2 (No such file or directory)
27669 stat64("/lib/arm-linux-gnueabihf/tls/neon",0xf6ffec28) = -1 errno=2 (No such file or directory)
27669 open("/lib/arm-linux-gnueabihf/tls/vfp/libgobject-2.0.so.0",O_RDONLY|O_CLOEXEC) = -1 errno=2 (No such file or directory)
27669 stat64("/lib/arm-linux-gnueabihf/tls/vfp",0xf6ffec28) = -1 errno=2 (No such file or directory)
27669 open("/lib/arm-linux-gnueabihf/tls/libgobject-2.0.so.0",O_RDONLY|O_CLOEXEC) = -1 errno=2 (No such file or directory)

...

т.е либа нашлась, но чем-то не понравилась. куда копать?

★★★★★
Ответ на: комментарий от vvviperrr

а, понял. Я так ни разу не запускал. Запускал готовый образ и уже там нужный софт.

UVV ★★★★★
()
Ответ на: комментарий от anonymous

и что это даст? по логу видно, что либа нашлась, но почему-то qemu решил, что она не подходит. с чего ты взял, что в чруте будет другое поведение?

vvviperrr ★★★★★
() автор топика

Я не знаю как это работает, но можно создать корневую ФС для ARM, затем скопировать /usr/bin/qemu-arm-static хоста в /usr/bin этой корневой системы, и после этого можно просто туда чрутнутся и все бинарники работают.

Rupricht ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.