chomiczon Posted January 27, 2019 Posted January 27, 2019 Hi. I have problem with Rock64 and ICYBOX IB-RD2253-U31 (USB3.1 Raid Enclosure) Kernel: Linux rock64 4.4.167-rockchip64 #3 SMP Sat Jan 12 18:58:23 CET 2019 aarch64 GNU/Linux dmesg on ICYBOX connected: [ 3.112348] usb 1-1: New USB device found, idVendor=1234, idProduct=5678 [ 3.112362] usb 1-1: New USB device strings: Mfr=2, Product=3, SerialNumber=1 [ 3.112368] usb 1-1: Product: ASM1352R-Safe [ 3.112374] usb 1-1: Manufacturer: Asmedia [ 3.112379] usb 1-1: SerialNumber: 123412341249 [ 3.113303] input: Asmedia ASM1352R-Safe as /devices/platform/ff580000.usb/usb1/1-1/1-1:1.0/input/input1 Rock64#lsusb -v -t -d 1234:5678 /: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc2/1p, 480M |__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=usbtouchscreen, 480M As you can see Mass Storage uses Driver=usbtouchscreen and I can't change it using udev mapping ACTION=="add", ATTRS{idVendor}=="1234", ATTRS{idProduct}=="5678", RUN+="/sbin/modprobe uas" RUN+="/bin/sh -c 'echo 1234 5678 > /sys/bus/usb/drivers/uas/new_id'" After udev: rock64:~# lsusb -v -t -d 1234:5678 /: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M |__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 480M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc2/1p, 480M |__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=usbtouchscreen, 480M On Debian9 x86_64 and RaspberryPi 2, ICYBOX work perfectly. Any ideas why it doesn't work on Rock64?
systemcarrotpt Posted February 7, 2019 Posted February 7, 2019 Hello, Were you able to set the right driver to the enclosure? I was able to get the RAID enclosure to be recognised by Armbian by unbinding the usbtouchscreen driver and then binding the uas driver to the enclosure. The device is still in two independent drives configuration (single mode), i didnt test any of the others but, i suppose that will not be a problem. In my case i done the following: Unbind: echo -n "5-1:1.0" > /sys/bus/usb/drivers/usbtouchscreen/unbind Confirm that nothing was binding to the device: tree /sys/bus/usb/devices/5-1:1.0 Bind the uas driver to the device. echo -n "5-1:1.0" > /sys/bus/usb/drivers/uas/bind After this the raid enclosure was available to use, doing a small speed test i got 40 MBps of a file transfer from the rock to my desktop. But now im facing another problem, if i do a reboot the enclosure is associated with the usbtouchsreen driver again. Do you or anyone have any idea on how i can specify a driver to be used for a device? Thanks
systemcarrotpt Posted February 7, 2019 Posted February 7, 2019 I tried doing that in modprobe.conf adding blacklist usbtouchscreen, but that was ignored and the driver was still used after rebooting.
systemcarrotpt Posted February 7, 2019 Posted February 7, 2019 Well after some more digging i have come to a solution that solves my problem. In "/etc/udev/rules.d" i added the file "98-icybox.rules" and inside it i placed the following: ACTION=="add", ATTRS{idVendor}=="1234", ATTRS{idProduct}=="5678", RUN+="/sbin/modprobe uas" RUN+="/bin/sh -c 'echo -n \"5-1:1.0\" > /sys/bus/usb/drivers/usbtouchscreen/unbind'" RUN+="/bin/sh -c 'echo -n \"5-1:1.0\" > /sys/bus/usb/drivers/uas/bind'" Now the Raid enclosure works right from boot.
chomiczon Posted February 10, 2019 Author Posted February 10, 2019 Glad to read the solution. I'll test it when I'll get new HDD's.
Recommended Posts