1

我正在尝试在 Docker 容器中运行uv4l 。这是 u4vl 项目的简短描述:

跨平台,用于真实或虚拟视频输入和输出设备的用户空间驱动程序(与内核驱动程序完全没有外部差异),以及其他可插入的后端或前端。

所以在 docker 容器内,u4vl 会尝试注册一个用户空间驱动。在我的情况下,将 Raspberry Pi 相机暴露为/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

为了“允许”它创建用户空间驱动程序和新设备,我还需要在容器内做些什么吗?

我绝不是 Linux 专家,所以如果我的术语/理解有点偏离,请原谅我。

4

2 回答 2

1

我只是在研究它,我通过运行让它与 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-uv4lhttps://hub.docker.com找到一种方法来让它工作/r/daniego/rover-uv4l/

于 2017-05-15T23:01:32.040 回答
1

您是在容器内部还是外部运行此命令?在模式下运行容器--privileged只会暴露容器内的主机设备节点,你不能在里面新建节点。如果你在外面运行命令,然后运行带有标志的容器,你应该能够看到新的设备节点。

于 2016-12-13T10:24:58.240 回答