Mailinglist Archive: opensuse-buildservice (166 mails)

< Previous Next >
Re: [opensuse-buildservice] HELP: How to setup cross-build on private OBS 2.5.2 using QEMU chroot?
On Mittwoch, 21. Mai 2014, 21:47:48 wrote Rick Liu:
Hi,

I'm in the process of migrating an old private OBS instance up to OBS 2.5.
"build" package used to have "copy_qemu" function to copy qemu static binary
from worker host into build chroot.
The project was building all fine with old "copy_qemu" function,
and I want to change from "copy_qemu" to "Preinstall" method.

yes, that is gone, because on an OBS and qemu update you would run
into the problem that newer qemu versions suddenly behave different
now.

So, we support only qemu builds where qemu comes from some project
repository so you can have different versions and also reliable
builds in future. (since OBS 2.4)


For newer opensuse 13.1 with OBS 2.5,
the copy function is gone,
so I create a pre-built QEMU binary package in my project,
and added lines below to the "Project Config":

%ifarch armv7el armv8el
Hostarch: x86_64
Preinstall: qemu-linux-user-arm
%endif

To be safe,
I still install packages below on both OBS server and OBS worker:
build 20140424-1.1
build-initvm-x86_64 20140424-1.1
qemu 2.0.0-236.1
qemu-arm 2.0.0-236.1
qemu-kvm 2.0.0-236.1
qemu-linux-user 2.0.0-234.3

The qemu packages should not be needed, if you use kvm or xen workers.

...
[ 0s] Building hello for project 'home:rickliu:trunk_mxc' repository
'Trunk_MxC_standard' arch 'armv7el' srcmd5 '113b5e223b7ed410d13a13aa2fa6449b'
[ 0s]
[ 0s] processing recipe
/local/ramdrive/obs/worker/root_1/.build-srcdir/hello.spec ...
[ 0s] running changelog2spec --target rpm --file
/local/ramdrive/obs/worker/root_1/.build-srcdir/hello.spec
[ 0s] init_buildsystem --configdir /var/run/obs/worker/1/build/configs
--cachedir /var/cache/build --clean --rpmlist
/local/ramdrive/obs/worker/root_1/.build.rpmlist
/local/ramdrive/obs/worker/root_1/.build-srcdir/hello.spec build
rpmlint-Factory ...
[ 0s] registering binfmt handlers for cross build
[ 0s] interpreter for 'aarch64' is -1
[ 0s] write: Invalid argument
[ 0s] /proc/sys/fs/binfmt_misc/register: write failed
[ 0s] /var/run/obs/worker/1/build/qemu-reg: line 7: write failed. Content:
:aarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-aarch64-binfmt:P

IIRC it should not abort here, but continue to register the other emulators.

Can you check if the registration did work?

ls /proc/sys/fs/binfmt_misc/arm*


--

Adrian Schroeter
email: adrian@xxxxxxx

SUSE LINUX GmbH, GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer, HRB 21284
(AG Nürnberg)
Maxfeldstraße 5
90409 Nürnberg
Germany



< Previous Next >
References