123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198 |
- #!/bin/bash
- # SPDX-License-Identifier: GPL-2.0
- # Kselftest framework requirement - SKIP code is 4.
- ksft_skip=4
- usage() { echo "usbip_test.sh -b <busid> -p <usbip tools path>"; exit 1; }
- while getopts "h:b:p:" arg; do
- case "${arg}" in
- h)
- usage
- ;;
- b)
- busid=${OPTARG}
- ;;
- p)
- tools_path=${OPTARG}
- ;;
- *)
- usage
- ;;
- esac
- done
- shift $((OPTIND-1))
- if [ -z "${busid}" ]; then
- usage
- fi
- echo "Running USB over IP Testing on $busid";
- test_end_msg="End of USB over IP Testing on $busid"
- if [ $UID != 0 ]; then
- echo "Please run usbip_test as root [SKIP]"
- echo $test_end_msg
- exit $ksft_skip
- fi
- echo "Load usbip_host module"
- if ! /sbin/modprobe -q -n usbip_host; then
- echo "usbip_test: module usbip_host is not found [SKIP]"
- echo $test_end_msg
- exit $ksft_skip
- fi
- if /sbin/modprobe -q usbip_host; then
- /sbin/modprobe -q -r test_bitmap
- echo "usbip_test: module usbip_host is loaded [OK]"
- else
- echo "usbip_test: module usbip_host failed to load [FAIL]"
- echo $test_end_msg
- exit 1
- fi
- echo "Load vhci_hcd module"
- if /sbin/modprobe -q vhci_hcd; then
- /sbin/modprobe -q -r test_bitmap
- echo "usbip_test: module vhci_hcd is loaded [OK]"
- else
- echo "usbip_test: module vhci_hcd failed to load [FAIL]"
- echo $test_end_msg
- exit 1
- fi
- echo "=============================================================="
- cd $tools_path;
- if [ ! -f src/usbip ]; then
- echo "Please build usbip tools"
- echo $test_end_msg
- exit $ksft_skip
- fi
- echo "Expect to see export-able devices";
- src/usbip list -l;
- echo "=============================================================="
- echo "Run lsusb to see all usb devices"
- lsusb -t;
- echo "=============================================================="
- src/usbipd -D;
- echo "Get exported devices from localhost - expect to see none";
- src/usbip list -r localhost;
- echo "=============================================================="
- echo "bind devices";
- src/usbip bind -b $busid;
- echo "=============================================================="
- echo "Run lsusb - bound devices should be under usbip_host control"
- lsusb -t;
- echo "=============================================================="
- echo "bind devices - expect already bound messages"
- src/usbip bind -b $busid;
- echo "=============================================================="
- echo "Get exported devices from localhost - expect to see exported devices";
- src/usbip list -r localhost;
- echo "=============================================================="
- echo "unbind devices";
- src/usbip unbind -b $busid;
- echo "=============================================================="
- echo "Run lsusb - bound devices should be rebound to original drivers"
- lsusb -t;
- echo "=============================================================="
- echo "unbind devices - expect no devices bound message";
- src/usbip unbind -b $busid;
- echo "=============================================================="
- echo "Get exported devices from localhost - expect to see none";
- src/usbip list -r localhost;
- echo "=============================================================="
- echo "List imported devices - expect to see none";
- src/usbip port;
- echo "=============================================================="
- echo "Import devices from localhost - should fail with no devices"
- src/usbip attach -r localhost -b $busid;
- echo "=============================================================="
- echo "bind devices";
- src/usbip bind -b $busid;
- echo "=============================================================="
- echo "List imported devices - expect to see exported devices";
- src/usbip list -r localhost;
- echo "=============================================================="
- echo "List imported devices - expect to see none";
- src/usbip port;
- echo "=============================================================="
- echo "Import devices from localhost - should work"
- src/usbip attach -r localhost -b $busid;
- echo "=============================================================="
- echo "List imported devices - expect to see imported devices";
- src/usbip port;
- echo "=============================================================="
- echo "Import devices from localhost - expect already imported messages"
- src/usbip attach -r localhost -b $busid;
- echo "=============================================================="
- echo "Un-import devices";
- src/usbip detach -p 00;
- src/usbip detach -p 01;
- echo "=============================================================="
- echo "List imported devices - expect to see none";
- src/usbip port;
- echo "=============================================================="
- echo "Un-import devices - expect no devices to detach messages";
- src/usbip detach -p 00;
- src/usbip detach -p 01;
- echo "=============================================================="
- echo "Detach invalid port tests - expect invalid port error message";
- src/usbip detach -p 100;
- echo "=============================================================="
- echo "Expect to see export-able devices";
- src/usbip list -l;
- echo "=============================================================="
- echo "Remove usbip_host module";
- rmmod usbip_host;
- echo "Run lsusb - bound devices should be rebound to original drivers"
- lsusb -t;
- echo "=============================================================="
- echo "Run bind without usbip_host - expect fail"
- src/usbip bind -b $busid;
- echo "=============================================================="
- echo "Run lsusb - devices that failed to bind aren't bound to any driver"
- lsusb -t;
- echo "=============================================================="
- echo "modprobe usbip_host - does it work?"
- /sbin/modprobe usbip_host
- echo "Should see -busid- is not in match_busid table... skip! dmesg"
- echo "=============================================================="
- dmesg | grep "is not in match_busid table"
- echo "=============================================================="
- echo $test_end_msg
|