在Docker Container中运行uv4l – 不注册设备节点
我试图在Docker容器中运行uv4l 。 这是u4vl项目的简短描述:
跨平台,用于真实或虚拟videoinput和输出设备的用户空间驱动程序(与内核驱动程序完全没有任何区别),以及其他可插拔的后端或前端。
因此,在docker集装箱内,u4vl将尝试注册一个用户空间驱动程序。 在我的情况下暴露的树莓派相机作为/dev/video0
。
当我运行命令:
uv4l --auto-video_nr --driver raspicam --width 1080 --height 720 --encoding mjpeg --server-option '--port=9000'
我收到一条消息说<notice> [core] Registering device node /dev/video0
,但是当我尝试执行ls /dev
,没有/dev/video0
设备。
我使用--privileged
docker run
命令中的--privileged
标志以特权模式运行容器。
我还需要在容器内做些什么来“允许”它创build一个用户空间驱动程序和新设备?
我绝不是一个Linux专家,所以如果我的术语/理解有点偏差,请原谅我。
我只是在努力,并通过运行与Richo Thesa合作
docker run -it --device=/dev/bus/usb/`lsusb | grep Ricoh|awk {'print $2'}`/`lsusb | grep Ricoh|awk {'print $4'}|sed 's/:$//'` -p 8080:8080 --cap-add=ALL --privileged -v /lib/modules:/lib/modules -v=/dev:/dev -e UV4L_PARAMETERS="-k -f --sched-rr --mem-lock --driver uvc --device-id 05ca:2711 --auto-video_nr" daniego/rover-uv4l
可能你只需要映射设备。 我将在下个月对raspicam进行研究,但是您可以通过查看我的工作https://github.com/daniego/rover-uv4l和https://hub.docker.comfind一种方法来使其工作。 / R / daniego /stream动站-uv4l /
你在容器内部还是外部运行这个命令? 在--privileged
模式下运行容器只是暴露了容器内的主机设备节点,你不能在里面新build一个容器。 如果你在外面运行这个命令, 然后用这个标志运行容器,你应该可以看到新的设备节点。