虚拟机启动Ubuntu失败 module devicepoweron power on failed

解决Ubuntu虚拟机启动问题

今天打开虚拟机想重新启动Ubuntu遇到这个问题:


网上搜索后,解决方案如下:

1.根据初始启动页面下的信息,在本地找到Ubuntu.vmx文件:

  

2.编辑该文件:

将 vmci0.present = "true"  改为false

jetson@ubuntu:~/py$ v4l2-ctl -d /dev/video0 --set-ctrl brightness=0 jetson@ubuntu:~/py$ v4l2-ctl -d /dev/video0 --set-ctrl contrast=1 jetson@ubuntu:~/py$ v4l2-ctl -d /dev/video0 --set-ctrl saturation=62 jetson@ubuntu:~/py$ v4l2-ctl -d /dev/video0 --set-ctrl hue=0 jetson@ubuntu:~/py$ v4l2-ctl -d /dev/video0 --set-ctrl white_balance_temperature_auto=1 jetson@ubuntu:~/py$ v4l2-ctl -d /dev/video0 --set-ctrl gamma=100 jetson@ubuntu:~/py$ v4l2-ctl -d /dev/video0 --set-ctrl gain=100 jetson@ubuntu:~/py$ v4l2-ctl -d /dev/video0 --set-ctrl power_line_frequency=1 jetson@ubuntu:~/py$ v4l2-ctl -d /dev/video0 --set-ctrl white_balance_temperature=4600 VIDIOC_S_CTRL: failed: Input/output error white_balance_temperature: Input/output error jetson@ubuntu:~/py$ v4l2-ctl -d /dev/video0 --set-ctrl sharpness=0 jetson@ubuntu:~/py$ v4l2-ctl -d /dev/video0 --set-ctrl backlight_compensation=72 jetson@ubuntu:~/py$ v4l2-ctl -d /dev/video0 --set-ctrl exposure_auto=3 jetson@ubuntu:~/py$ v4l2-ctl -d /dev/video0 --set-ctrl exposure_absolute=156 VIDIOC_S_EXT_CTRLS: failed: Input/output error exposure_absolute: Input/output error jetson@ubuntu:~/py$ v4l2-ctl -d /dev/video0 --set-ctrl pan_absolute=0 jetson@ubuntu:~/py$ v4l2-ctl -d /dev/video0 --set-ctrl tilt_absolute=0 jetson@ubuntu:~/py$ v4l2-ctl -d /dev/video0 --set-ctrl focus_absolute=0 VIDIOC_S_EXT_CTRLS: failed: Input/output error focus_absolute: Input/output error jetson@ubuntu:~/py$ v4l2-ctl -d /dev/video0 --set-ctrl focus_auto=1 jetson@ubuntu:~/py$ v4l2-ctl -d /dev/video0 --set-ctrl zoom_absolute=0 修改输入输出的问题
最新发布
09-05
<think> 我们正在解决在Jetson Ubuntu系统上使用v4l2-ctl设置摄像头参数时出现Input/output error的问题。根据用户描述,问题出现在设置white_balance_temperature、exposure_absolute和focus_absolute这三个参数时。 分析可能的原因: 1. 参数当前处于自动模式,因此手动设置被拒绝。 - 例如,white_balance_temperature在white_balance_temperature_auto=1时是无效的(inactive),同理exposure_absolute在exposure_auto=3(自动模式)时也是无效的,focus_absolute在focus_auto=1(自动对焦)时无效。 2. 摄像头驱动不支持这些参数的设置,或者设置的值超出了允许的范围。 3. 摄像头设备正被其他进程占用,导致设置失败。 4. 硬件问题或驱动问题。 根据用户提供的参数信息,我们可以看到: - white_balance_temperature 的标志是inactive,因为white_balance_temperature_auto=1(自动白平衡开启) - exposure_absolute 的标志是inactive,因为exposure_auto=3(自动曝光模式) - focus_absolute 的标志是inactive,因为focus_auto=1(自动对焦开启) 因此,要设置这些参数,必须先关闭相应的自动模式。 解决方案步骤: 第一步:关闭自动模式,切换到手动模式 1. 设置白平衡为手动模式: ```bash v4l2-ctl -d /dev/video0 --set-ctrl=white_balance_temperature_auto=0 ``` 2. 设置曝光为手动模式(注意:曝光模式菜单中,1代表手动模式,3代表自动模式): 根据参数列表,exposure_auto的菜单选项: 1: Manual Mode 3: Aperture Priority Mode 所以,要手动设置曝光,需要将exposure_auto设为1: ```bash v4l2-ctl -d /dev/video0 --set-ctrl=exposure_auto=1 ``` 3. 设置对焦为手动模式: ```bash v4l2-ctl -d /dev/video0 --set-ctrl=focus_auto=0 ``` 第二步:设置手动参数 完成上述步骤后,再尝试设置对应的参数: ```bash v4l2-ctl -d /dev/video0 --set-ctrl=white_balance_temperature=4600 # 设置为默认值4600 v4l2-ctl -d /dev/video0 --set-ctrl=exposure_absolute=156 # 设置为默认值156 v4l2-ctl -d /dev/video0 --set-ctrl=focus_absolute=0 # 设置为默认值0 ``` 注意:设置参数时,确保值在允许范围内(参考参数列表中的min和max)。 第三步:验证设置 使用以下命令查看所有控制项的值: ```bash v4l2-ctl -d /dev/video0 --all ``` 其他注意事项: 1. 设备节点:确保使用的是正确的设备节点(如/dev/video0, /dev/video1等),可以通过`v4l2-ctl --list-devices`查看。 2. 参数依赖:有些参数可能依赖于其他参数,比如必须先关闭自动模式才能设置手动参数。 3. 设备占用:如果摄像头正被其他应用程序(如GStreamer管道、OpenCV程序等)占用,则设置会失败。确保在设置时没有其他程序在使用摄像头。 4. 权限问题:使用sudo运行命令,或者确保当前用户在video组中。 如果按照以上步骤仍然出现Input/output error,则可能是驱动或硬件问题。可以尝试: - 更新系统或摄像头驱动 - 检查dmesg日志,查看是否有摄像头相关的错误信息:`dmesg | grep video` - 尝试其他摄像头工具(如guvcview)设置参数,看是否同样出错。 生成相关问题: </think> ### Jetson Ubuntu系统设置摄像头参数出现Input/output error的解决方案 在Jetson设备上使用`v4l2-ctl`设置参数时出现`Input/output error`错误,通常由以下原因导致。请按顺序尝试解决: #### 1. **检查参数依赖关系(最常见原因)** 需要先禁用自动模式才能设置手动参数: ```bash # 关闭白平衡自动模式 sudo v4l2-ctl -d /dev/video0 --set-ctrl=white_balance_temperature_auto=0 # 关闭曝光自动模式(1=手动模式) sudo v4l2-ctl -d /dev/video0 --set-ctrl=exposure_auto=1 # 关闭对焦自动模式 sudo v4l2-ctl -d /dev/video0 --set-ctrl=focus_auto=0 # 再设置目标参数 sudo v4l2-ctl -d /dev/video0 \ --set-ctrl=white_balance_temperature=4600 \ --set-ctrl=exposure_absolute=156 \ --set-ctrl=focus_absolute=0 ``` #### 2. **验证参数值范围** 确保设置值在硬件支持的范围内(参考您的参数列表): ```bash # 示例:检查白平衡范围 v4l2-ctl -d /dev/video0 --list-ctrls | grep white_balance_temperature # 设置时添加范围检查 sudo v4l2-ctl --set-ctrl=exposure_absolute=156 \ --set-ctrl-min=1 --set-ctrl-max=10000 ``` #### 3. **释放设备占用** 当摄像头被其他进程占用时会出现I/O错误: ```bash # 查找占用进程 sudo lsof /dev/video0 # 强制释放设备(谨慎使用) sudo fuser -k /dev/video0 ``` #### 4. **更新V4L2驱动和固件** Jetson特定驱动问题解决方案: ```bash # 更新NVIDIA JetPack SDK sudo apt update sudo apt install nvidia-jetpack # 重新加载内核模块 sudo modprobe -r uvcvideo sudo modprobe uvcvideo ``` #### 5. **启用调试模式** 获取详细错误信息: ```bash # 启用驱动调试 echo 0xffff | sudo tee /sys/module/uvcvideo/parameters/debug # 尝试设置参数后查看内核日志 dmesg | tail -n 30 ``` #### 6. **验证设备兼容性** 检查摄像头是否支持参数设置: ```bash # 列出所有可用控制项 v4l2-ctl -d /dev/video0 --list-ctrls # 检查设备能力 v4l2-ctl -d /dev/video0 --info ``` #### 替代方案:使用Python脚本设置 ```python import v4l2ctl cam = v4l2ctl.V4l2Device('/dev/video0') cam.set_control('white_balance_temperature_auto', 0) # 先禁用自动 cam.set_control('white_balance_temperature', 4600) ``` > **注意事项**: > 1. Jetson的CSI摄像头接口可能需使用`nvarguscamerasrc`替代V4L2 > 2. 部分工业相机需要专用SDK设置参数 > 3. 使用`lsusb`确认摄像头PID/VID并查阅制造商文档[^1]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值