On Tue, Jan 24, 2023 at 12:31:01AM +0700, Ammar Faizi wrote:
On Mon, Jan 23, 2023 at 06:20:16PM +0100, Willy Tarreau wrote:
Ah now I think I understand Paul's question. I didn't know that the userland version was not always provided. I've always had both side by side.
It would be great if we can avoid building qemu from the source. But if not, let's go with that.
As Paul indicated, it's really trouble-free and I think I've only done that since the very first day I started to use QEMU, reason why I probably never noticed that not everything was packaged.
Then at least to respond to Paul, it could make sense to add a note that on some distros the userland version might not always be provided and might require a pretty simple rebuild of QEMU.
Ah well...
I figured it out. It turned qemu-user is a different package. So I have "qemu-system" installed, but not "qemu-user".
Without building from source, just do this on Ubuntu:
$ sudo apt-get install qemu-user -y ... Preparing to unpack .../qemu-user_1%3a6.2+dfsg-2ubuntu6.6_amd64.deb ... Unpacking qemu-user (1:6.2+dfsg-2ubuntu6.6) ... Selecting previously unselected package qemu-user-binfmt. Preparing to unpack .../qemu-user-binfmt_1%3a6.2+dfsg-2ubuntu6.6_amd64.deb ... Unpacking qemu-user-binfmt (1:6.2+dfsg-2ubuntu6.6) ... Setting up qemu-user (1:6.2+dfsg-2ubuntu6.6) ... Setting up qemu-user-binfmt (1:6.2+dfsg-2ubuntu6.6) ... Processing triggers for man-db (2.10.2-1) ...
$ which qemu-x86_64 /usr/bin/qemu-x86_64
$ sudo make run-user MKDIR sysroot/x86/include make[1]: Entering directory '/home/ammarfaizi2/work/linux.work.cc/tools/include/nolibc' make[2]: Entering directory '/home/ammarfaizi2/work/linux.work.cc' make[2]: Leaving directory '/home/ammarfaizi2/work/linux.work.cc' make[2]: Entering directory '/home/ammarfaizi2/work/linux.work.cc' INSTALL /home/ammarfaizi2/work/linux.work.cc/tools/testing/selftests/nolibc/sysroot/sysroot/include make[2]: Leaving directory '/home/ammarfaizi2/work/linux.work.cc' make[1]: Leaving directory '/home/ammarfaizi2/work/linux.work.cc/tools/include/nolibc' CC nolibc-test 83 test(s) passed.
Sorry for that. I didn't know that they come from different packages. It works fine for me now.
I looked for that, but didn't find it, so thank you!
(Yes, I should have used dpkg, but I was lazy.)
Except that when I install Ubuntu 20.04's version, I get this:
------------------------------------------------------------------------
$ sudo make run-user MKDIR sysroot/x86/include make[1]: Entering directory '/home/git/linux-rcu/tools/include/nolibc' make[2]: Entering directory '/home/git/linux-rcu' make[2]: Leaving directory '/home/git/linux-rcu' make[2]: Entering directory '/home/git/linux-rcu' INSTALL /home/git/linux-rcu/tools/testing/selftests/nolibc/sysroot/sysroot/include make[2]: Leaving directory '/home/git/linux-rcu' make[1]: Leaving directory '/home/git/linux-rcu/tools/include/nolibc' CC nolibc-test 32 gettimeofday_null = -1 EFAULT [FAIL] See all results in /home/git/linux-rcu/tools/testing/selftests/nolibc/run.out
------------------------------------------------------------------------
I have attached run.out.
In contrast, with my hand-built qemu-x86_64, all tests passed.
This might be just a version-related bug, but figured I should let you guys know.
Thanx, Paul