Giter Site home page Giter Site logo

Comments (7)

hosaka avatar hosaka commented on July 3, 2024 5

I also have a similar problem when trying to open /dev/video0 device inside aarch64 docker container (balena/resin). Although irrelevant, I'm using gstreamer to start a pipeline:

root@5bb9d1759c16:/usr/src/app# gst-launch-1.0 v4l2src device=/dev/video0 ! fakesink
Unsupported ioctl: cmd=0xffffffff80685600
Setting pipeline to PAUSED ...
Unsupported ioctl: cmd=0xffffffff80685600
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Error getting capabilities for device '/dev/video0': It isn't a v4l2 driver. Check if it is a v4l1 driver.
Additional debug info:
v4l2_calls.c(94): gst_v4l2_get_capabilities (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
system error: Function not implemented
Setting pipeline to NULL ...
Freeing pipeline ...

from qemu-user-static.

gvolk0 avatar gvolk0 commented on July 3, 2024 1

I have a similar issue, different cmd:
Unsupported ioctl: cmd=0xffffffff8004f50c

Not using docker, just chrooting with qemu-arm-static in binfmts, then running fossil open repo.fossil (fossil-scm).

from qemu-user-static.

junaruga avatar junaruga commented on July 3, 2024

For the steps to reproduce the issue, could you share it with the actual commands?

Is the architecture not yet supported ?

At least, the armv7 (ARM 32-bit) CPU architecture emulation is implemented in QEMU, and the binfmt_misc file /proc/sys/fs/binfmt_misc/qemu-arm is also available.

For example sudo command works with a specific binfmt_misc flags (credential option). Ref #17 (comment) .

Does your case work with following command?

$ docker run --rm --privileged multiarch/qemu-user-static --reset -p yes -c yes

$ cat /proc/sys/fs/binfmt_misc/qemu-arm
enabled
interpreter /usr/bin/qemu-arm-static
flags: OCF
offset 0
magic 7f454c4601010100000000000000000002002800
mask ffffffffffffff00fffffffffffffffffeffffff

$ docker run something_to_run_arch_container

Some system calls in the container works for only docker run --privileged option.

Does your case work with x86_64 container on the x86_64 host?

or I need to add ioctl mapping manually?

I do not understand what you are saying, and not familiar with the topic.

from qemu-user-static.

lyon0417 avatar lyon0417 commented on July 3, 2024

Dear @junaruga, thanks for your reply.

At least, the armv7 (ARM 32-bit) CPU architecture emulation is implemented in QEMU, and the binfmt_misc file /proc/sys/fs/binfmt_misc/qemu-arm is also available.

For example sudo command works with a specific binfmt_misc flags (credential option). Ref #17 (comment) .

I have seen this issues, but still have similar problem for ioctl.

Does your case work with following command?

$ docker run --rm --privileged multiarch/qemu-user-static --reset -p yes -c yes

$ cat /proc/sys/fs/binfmt_misc/qemu-arm
enabled
interpreter /usr/bin/qemu-arm-static
flags: OCF
offset 0
magic 7f454c4601010100000000000000000002002800
mask ffffffffffffff00fffffffffffffffffeffffff

$ docker run something_to_run_arch_container

yes, I have the same result as you.
$ docker run --rm --privileged multiarch/qemu-user-static --reset -p yes -c yes
Setting /usr/bin/qemu-alpha-static as binfmt interpreter for alpha
Setting /usr/bin/qemu-arm-static as binfmt interpreter for arm
Setting /usr/bin/qemu-armeb-static as binfmt interpreter for armeb
Setting /usr/bin/qemu-sparc-static as binfmt interpreter for sparc
Setting /usr/bin/qemu-sparc32plus-static as binfmt interpreter for sparc32plus
Setting /usr/bin/qemu-sparc64-static as binfmt interpreter for sparc64
Setting /usr/bin/qemu-ppc-static as binfmt interpreter for ppc
Setting /usr/bin/qemu-ppc64-static as binfmt interpreter for ppc64
Setting /usr/bin/qemu-ppc64le-static as binfmt interpreter for ppc64le
Setting /usr/bin/qemu-m68k-static as binfmt interpreter for m68k
Setting /usr/bin/qemu-mips-static as binfmt interpreter for mips
Setting /usr/bin/qemu-mipsel-static as binfmt interpreter for mipsel
Setting /usr/bin/qemu-mipsn32-static as binfmt interpreter for mipsn32
Setting /usr/bin/qemu-mipsn32el-static as binfmt interpreter for mipsn32el
Setting /usr/bin/qemu-mips64-static as binfmt interpreter for mips64
Setting /usr/bin/qemu-mips64el-static as binfmt interpreter for mips64el
Setting /usr/bin/qemu-sh4-static as binfmt interpreter for sh4
Setting /usr/bin/qemu-sh4eb-static as binfmt interpreter for sh4eb
Setting /usr/bin/qemu-s390x-static as binfmt interpreter for s390x
Setting /usr/bin/qemu-aarch64-static as binfmt interpreter for aarch64
Setting /usr/bin/qemu-aarch64_be-static as binfmt interpreter for aarch64_be
Setting /usr/bin/qemu-hppa-static as binfmt interpreter for hppa
Setting /usr/bin/qemu-riscv32-static as binfmt interpreter for riscv32
Setting /usr/bin/qemu-riscv64-static as binfmt interpreter for riscv64
Setting /usr/bin/qemu-xtensa-static as binfmt interpreter for xtensa
Setting /usr/bin/qemu-xtensaeb-static as binfmt interpreter for xtensaeb
Setting /usr/bin/qemu-microblaze-static as binfmt interpreter for microblaze
Setting /usr/bin/qemu-microblazeel-static as binfmt interpreter for microblazeel
Setting /usr/bin/qemu-or1k-static as binfmt interpreter for or1k
$ cat /proc/sys/fs/binfmt_misc/qemu-arm
enabled
interpreter /usr/bin/qemu-arm-static
flags: OCF
offset 0
magic 7f454c4601010100000000000000000002002800
mask ffffffffffffff00fffffffffffffffffeffffff

Some system calls in the container works for only docker run --privileged option.

yes, I already have used it.

Does your case work with x86_64 container on the x86_64 host?

yes, I successfully build virtual network interface in others x86_64 container.

or I need to add ioctl mapping manually?

I do not understand what you are saying, and not familiar with the topic.

I apologize for the misunderstanding caused,
I guess it misses some ioctl (system call) implementations.

for example, the following simple steps :
$ docker run --rm --privileged multiarch/qemu-user-static --reset -p yes -c yes
$ docker run --privileged -t -i armv7/armhf-ubuntu /bin/bash
$ apt-get update
$ apt-get install uml-utilities
$ tunctl
Unsupported ioctl: cmd=0x400454ca
TUNSETIFF: Function not implemented

But it can work in x86-64 container.

from qemu-user-static.

junaruga avatar junaruga commented on July 3, 2024

Thank you for the steps.

By the way, there is a way for multiple lines code syntax in markdown format, if you do not know it.

That is "back quote x 3". The example is here.
https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code-and-syntax-highlighting

from qemu-user-static.

vak avatar vak commented on July 3, 2024

@hosaka I've created a new issue #121 for this case.

from qemu-user-static.

pppaulpeter avatar pppaulpeter commented on July 3, 2024

I also have a similar problem when trying to open /dev/video0 device inside aarch64 docker container (balena/resin). Although irrelevant, I'm using gstreamer to start a pipeline:

root@5bb9d1759c16:/usr/src/app# gst-launch-1.0 v4l2src device=/dev/video0 ! fakesink
Unsupported ioctl: cmd=0xffffffff80685600
Setting pipeline to PAUSED ...
Unsupported ioctl: cmd=0xffffffff80685600
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Error getting capabilities for device '/dev/video0': It isn't a v4l2 driver. Check if it is a v4l1 driver.
Additional debug info:
v4l2_calls.c(94): gst_v4l2_get_capabilities (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
system error: Function not implemented
Setting pipeline to NULL ...
Freeing pipeline ...

Hi, have you solve the issue? i have the same problem. thanks!

from qemu-user-static.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.