树莓4,usb hub电源操作

yang 10cm2020-09-10124 次点击
本人通过echo "usb1" > /sys/bus/usb/drivers/usb/unbind
释放usb hub的电,但这时候插入usb摄像头,再echo "usb1" > /sys/bus/usb/drivers/usb/bind
将hub重新绑定,这个时候usb设备是找不到的,而且除了重启系统会一直找不到,请问是什么原因
收藏 ♥ 感谢
Spoony 小组长 2020-09-10 
首先通过 lsusb -t 来查看USB端口信息。
把查到的结果贴出来看看。
Spoony 小组长 2020-09-10 
执行以下command去unbind这个USB:
echo '2-1.6' | sudo tee /sys/bus/usb/drivers/usb/unbind
其实用不用tee都行, 直接重定向也可以. 需要注意的是, 所要echo的字符串:"$bus_num"-"$port1_num"."$port2_num"
大概是这么个format.
重新bind的command, 只需要把上面command中的unbind改成bind.
echo '2-1.6' | sudo tee /sys/bus/usb/drivers/usb/bind
yang 10cm 2020-09-10 
嗯嗯,这样子是可行的,但前提是要那个设备已经被插上了,且识别到了,我才能echo '2-1.6' | sudo tee /sys/bus/usb/drivers/usb/unbind这样的操作。所以在那个设备没被插上,或者因为某种原因忽然间识别不到了,我只能对usb hub进行操作
yang 10cm 2020-09-10 
这个是我插上摄像头后
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
|__ Port 1: Dev 9, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 10, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 1: Dev 10, If 1, Class=Video, Driver=uvcvideo, 480M
的端口信息
Spoony 小组长 2020-09-10 
摄像头看起来是
echo '1-1.1' | sudo tee /sys/bus/usb/drivers/usb/bind
yang 10cm 2020-09-11 
嗯嗯,我用的是1-1.1
yang 10cm 2020-09-11 
现在我的主要问题不是这个,为什么我在unbind之后插入设备,再bind就再也找不到设备了。是树莓里的特性么,我在别的开发板子上unbind中间插入摄像头不会遇到这个问题
Spoony 小组长 2020-09-11 
@yang 这个我也不清楚
yang 10cm 2020-09-14 
@Spoony 我想问一下,之前听别人说树莓4的电源管理系统有bug,然后usb hub的电是跟cpu直连的,请问这样能不能通过bind和unbind来进行控制usb的放电和上电呢
Spoony 小组长 2020-09-14 
@yang 电源的BUG已经修正了。而且和你说的这个问题也没有关系。
没有具体试过,我也不太清楚。
yang 10cm 2020-09-14 
硬件上修正的还是系统上修正的?
Spoony 小组长 2020-09-14 

登录注册 后可回复。