pikvm / pi-builder

Extensible tool to build Arch Linux ARM for Raspberry Pi on x86_64 host using Docker
https://pikvm.org
GNU General Public License v3.0
94 stars 60 forks source link

Build Fails in Podman using non-Root #9

Closed cduplantis closed 3 years ago

cduplantis commented 3 years ago

Running on an updated Fedora 33

$ uname -a
Linux localhost.localdomain 5.9.13-200.fc33.x86_64 #1 SMP Tue Dec 8 15:42:52 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Using alias to podman,

$ ls -lsa `which docker`
0 lrwxrwxrwx. 1 root root 15 Dec 10 18:49 /usr/bin/docker -> /usr/bin/podman

$ podman --version
podman version 2.2.1

As non-root use, I can access /tools/install-binfmt

$ ls /proc/sys/fs/binfmt_misc/
arm  register  status

During a build of PiKVM (make os), Podman is unable to mount:

===== Toolbox image is ready =====
===== Ensuring arm binfmt =====
docker run \
        --rm \
        --tty \
        --privileged \
    pi-builder-toolbox /tools/install-binfmt \
        --mount \
        arm \
        /usr/bin/qemu-arm-static
:: Mounting binfmt_misc to '/proc/sys/fs/binfmt_misc' ...
mount: /proc/sys/fs/binfmt_misc: permission denied.
Traceback (most recent call last):
  File "/tools/install-binfmt", line 139, in <module>
    main()
  File "/tools/install-binfmt", line 128, in main
    _mount_binfmt(options.binfmt_misc)
  File "/tools/install-binfmt", line 68, in _mount_binfmt
    subprocess.check_output(["mount", "binfmt_misc", "-t", "binfmt_misc", mount_path])
  File "/usr/lib/python3.9/subprocess.py", line 420, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File "/usr/lib/python3.9/subprocess.py", line 524, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['mount', 'binfmt_misc', '-t', 'binfmt_misc', '/proc/sys/fs/binfmt_misc']' returned non-zero exit status 32.
make[1]: *** [Makefile:186: binfmt] Error 1
make[1]: Leaving directory '/home/cduplantis/code/pikv/os/.pi-builder'
make: *** [Makefile:54: os] Error 2

This is successful with sudo/rooted user however.

Potentially related to https://github.com/containers/podman/issues/4725

mdevaev commented 3 years ago

Work on podman is not guaranteed, only docker. I didn't check it and unfortunately i don't have time to do it. If you know how to fix it with a little blood, I'll be happy.