U盘插入后,设备能检测到U盘插入,可是识别不成存储设备吗,在设置–存储 看不到插入的设备
抓到串口log如下
[ 166.181066] usb 1-1.2: new high-speed USB device number 7 using xhci-hcd
[ 166.285209] usb 1-1.2: New USB device found, idVendor=090c, idProduct=1000
[ 166.285271] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 166.291697] usb 1-1.2: Product: USB DISK
[ 166.299405] usb 1-1.2: Manufacturer: SMI Corporation
[ 166.302565] usb 1-1.2: SerialNumber: AA00000000015029
[ 166.324303] usb-storage 1-1.2:1.0: USB Mass Storage device detected
[ 166.327776] scsi host0: usb-storage 1-1.2:1.0
[ 167.803539] scsi 0:0:0:0: Direct-Access SMI USB DISK 1100 PQ: 0 ANSI: 6
[ 167.836629] sd 0:0:0:0: [sda] Write Protect is off
[ 167.836694] sd 0:0:0:0: [sda] Mode Sense: 22 00 00 00
[ 167.855933] sda: sda1
在修改系统为动态分区前是可以的,修改动态分区后就不行了。
对比修改动态分区修改的文件
最后发现和fstab文件有关
我们设备是non ab的,非动态分区使用的文件为
device\qcom\msm8953_64\fstabs-4.9\fstab_non_AB_variant.qti
动态分区使用的文件是
device\qcom\msm8953_64\fstabs-4.9\fstab_non_AB_dynamic_partition_variant.qti
对比两个文件的差异,
非动态分区usbotg
/devices/platform/soc/7000000.ssusb/7000000.dwc3/xhci-hcd.0.auto* /storage/usbotg vfat nosuid,nodev wait,voldmanaged=usbotg:auto
/devices/soc/7000000.ssusb/7000000.dwc3/xhci-hcd.0.auto* /storage/usbotg vfat nosuid,nodev wait,voldmanaged=usbotg:auto
动态分区usbotg
/devices/soc/78db000.usb/msm_hsusb_host* /storage/usbotg vfat nosuid,nodev wait,voldmanaged=usbotg:auto
/devices/platform/soc/78db000.usb/msm_hsusb_host* /storage/usbotg vfat nosuid,nodev wait,voldmanaged=usbotg:auto
差异分析出来,虽然不知道怎么改,但是非动态分区是ok的,那我把动态分区的usbotg 替换成非动态分区的是否可行呢,编译测试后 发现U盘可用了。
参考其他平台后 修改如下
/devices/soc/*.ssusb/*.dwc3/xhci-hcd.*.auto* /storage/usbotg vfat nosuid,nodev wait,voldmanaged=usbotg:auto
/devices/platform/soc/*.ssusb/*.dwc3/xhci-hcd.*.auto* /storage/usbotg vfat nosuid,nodev wait,voldmanaged=usbotg:auto