On Montag, 2. Dezember 2019, 08:36:20 CET Adrian Schröter wrote:
On Freitag, 29. November 2019, 23:30:50 CET Jan Engelhardt wrote:
On Friday 2019-11-29 14:25, Adrian Schröter wrote:
2) Building for foreign architectures using qemu system emulator.
osc is offering now to use any hardware architecture. (Thanks a lot Guillaume for the initial implementation of that code!). For example
osc build --vm-type=qemu openSUSE_Factory_ARM aarch64
will build for aarch64 on your x86_64 workstation for example. But it should work for any architecture. The downside (compared to our former qemu user land emulation) is that it works way slower due to emulation overhead and it works currently only in projects where a kernel-obs-build is defined.
logging output to /var/tmp/build-root/standard-riscv64/.build.log... [ 0s] Using BUILD_ROOT=/var/tmp/build-root/standard-riscv64/.mount [ 0s] Using BUILD_ARCH=riscv64 [ 0s] Doing qemu build in /var/tmp/build-root/standard-riscv64/img [ 0s] [ 0s] [ 0s] fj.lh started "build libHX.spec" at Fri Nov 29 22:20:25 UTC 2019. [ 0s] [ 0s] [ 0s] processing recipe /tmp/openSUSE:Factory:RISCV/libHX/libHX.spec ... [ 0s] running changelog2spec --target rpm --file /tmp/openSUSE:Factory:RISCV/libHX/libHX.spec [ 0s] init_buildsystem --configdir /usr/lib/build/configs --cachedir /var/cache/build --prepare --rpmlist /tmp/rpmlist.cxvdea89 /tmp/openSUSE:Factory:RISCV/libHX/libHX.sp. [ 0s] copying packages... [ 1s] reordering...done [ 1s] Warning: cross compile not possible due to missing static binaries. please install build-initvm package for that purpose. [ 1s] check that the right architecture is available for your build host, you need initvm.x86_64 for this one. [ 1s] booting qemu... [ 1s] -nodefaults -no-reboot -nographic -vga none -runas qemu -net none -kernel /var/tmp/build-root/standard-riscv64/.mount/boot/kernel -initrd /var/tmp/build-root/standa8 [ 1s] /usr/lib/build/build-vm-qemu: line 187: -nodefaults: command not found [ 1s] No buildstatus set, either the base system is broken (kernel/initrd/udev/glibc/bash/perl) [ 1s] or the build host has a kernel or hardware problem...
The "standard" repository of openSUSE:Factory:RISCV is setup for user land qemu emulator. This is conflicting, so you need to use "native" repository.
However, I noticed there are also some pieces still missing for RISCV in osc & build. And we need to have riscv enabled in our qemu package. Will check with Andreas Schwab later today hopefully about this.
okay, I needed two more fixes in build and osc for riscv64
Andreas, I also created an aggregate in openSUSE:Factory:RISCV to get a riscv64 kernel-obs-build
to be able to boot at all.
The build process is starting now with some kernel output, but our kernel-obs-build waits forever
for the root device. Maybe virtio support is not working/compiled in our riscv64 kernel?
Nevertheless, I leave it like that for now and wait for Andreas coming out of vacation for now.
Jan, thanks a lot for testing!
adrian
--
Adrian Schroeter