qemu-static-arm: проблемы с getpcaps
Hellsy22 23 декабря, 2013 - 20:47
(хост, amd64)# getpcaps $$
Capabilities for `17435': =ep
(hard, qemu-static-arm chroot) # getpcaps $$
Failed to get cap's for proccess 25181: (Function not implemented)
Соотв. не работает и setcap, что приводит к ошибкам при установке, например net-misc/iptools
Кто-нибудь сталкивался с этим?
»
- Для комментирования войдите или зарегистрируйтесь
Может все же
Может все же net-misc/iputils? И да, net-misc/iputils-20121221 собирается нормально. Только что проверял с qemu-static-arm версии 1.7.0.
Пакет собирается нормально,
Пакет собирается нормально, но в фазе постинсталляции вылетает ошибка, мол, невозможно выставить соотв. капабилити - фейлится setcap с тем же самым function not implemented.
Путем поиска я обнаружил, что у не работает и getpcap. Причем, в хост-системе он работает, а под chroot - нет. Не очень понятно, где копать.
В qemu системные вызовы
В qemu системные вызовы реализованы с помощью врапперов и далеко не все поддерживаются. Пишите разрабам qemu (если возможно), чтобы добавили оддержку данного syscall'а или лучше лезьте в исходники и добавляйте сами. Сейчас оно по всей видимости не поддерживается. У меня раньше не работалит вызовы chroot и некоторые фичи сети, не правильно работал fork, да и вообще половина сетевых операций. Не знаю, как сейчас, но сборку на arm недавно сломали добавлением новых сисколов.
Локальный оверлей растёт
Да,
Да, действительно:
qemu/syscall.c
Я потратил некоторое время разбираясь с адресацией из guest в host и по итогу сделал патч для qemu-user-9999 (актуальная версия - 1.7). Хорошо, что они добавили пользовательские патчи в ебилд. Короче:
http://pastebin.com/nGJ1A8w3
Наверняка надо еще поставить какие-то ifdef-ы для определения есть в системе capabilities.h или нет, но тут - увы, я никогда не занимался системным программированием, а на Си в предыдущий раз писал лет 15 назад.
Тем не менее оно работает:
Все чисто, никаких ошибок. Теперь осталось понять, надо ли вообще было этим заниматься или же это было данью перфекционизму и любознательности.
Остался лишь один вопрос - а как бы попросить разработчиков qemu включить правки хотя бы в следующей версии?
P.S.: Чтобы поставить qemu-user-1.7 и выше с ключом static нужно помимо glib и zlib собрать со static-libs dev-libs/openssl и net-libs/libssh2
Думаю, это:
Думаю, это: http://wiki.qemu.org/Contribute/SubmitAPatch
Локальный оверлей растёт
Ого. Серьезно ребята подошли
Ого. Серьезно ребята подошли к вопросу. Пожалуй, я воздержусь при таких раскладах. :-)