在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一种方法来使其工作&#x3002; / R / daniego /stream动站-uv4l /

你在容器内部还是外部运行这个命令? 在--privileged模式下运行容器只是暴露了容器内的主机设备节点,你不能在里面新build一个容器。 如果你在外面运行这个命令, 然后用这个标志运行容器,你应该可以看到新的设备节点。