THIS GUIDE IS INTENDED FOR SUSE LINUX ENTERPRISE SERVER 11!!! 1. Install "usbip" and "usbip-devel" from rpm package! DO NOT IMPORT OpenSuse's repository!!! (it will cause the system to malfunction!!!) 2. make a symbolic link like this: mkdir /usr/share/hwdata ln -sf /usr/share/usbip/usb.ids /usr/share/hwdata/ 3. type the following command in the terminal: modprobe usbip modprobe usbip_common_mod The result: It doesn't work! What to do in this case? in a terminal window, navigate to the following path: /lib/modules/2.6.32.12-0.7-default/source in this path location type the command: make menuconfig or menuconfig this command requires "ncurses-devel, ncurses lib, ncurses all kind, automake, kernel-source, kernel-headders, gcc, and make" to be installed! A menu shall pop up, from there go to: Device driver -> staging drivers Exclude building drivers needs to be done opted as "n" (so there is no mark in the paranthesis) USBIP support, client driver, host driver should be opted as "M" Exit all and save the configuration of the kernel Run the "make" command. After this should build the modules. After finishing an "usbip" directory was created. So go to the path: /lib/modules/2.6.32.12-0.7-default/source/drivers/staging/usbip type "ls" there you will see three kernel module files: "usbip.ko", "usbip_common_mod.ko", "vhci-hcd.ko". to load this kernel modules type: insmod (start with usbip, common_mod, and vhci-hcd). 4. To check if they really got loaded, run: lsmod | grep usbip The output should be similar to this one: server1:~ # lsmod | grep usbip usbip 21540 0 usbip_common_mod 25232 1 usbip server1:~ # 5. To make sure that both modules get loaded automatically whenever you boot the system, you can add them to the MODULES_LOADED_ON_BOOT line in /etc/sysconfig/kernel: to do that, simply use joe: joe /etc/sysconfig/kernel add the following at the line MODULES_LOADED_ON_BOOT = "usbip usbip_common_mod" after that press "Ctrl + K" after releasing the key combination press "X" to save and exit. run "SuSEconfig" command to apply the changes. 6. Now we can start the usbip daemon: usbipd -D The terminal response shall look like this: server1:~ # usbipd -D Bind usbip.ko to a usb device to be exportable! server1:~ # 7. Now attach a USB device that you want to export to the server - I'm using a SanDisk USB flash drive here. Execute the command: lsusb to find the corresponding Vendor/Device ID which is in the form of: Bus XXX Device YYY: ID VendorID:DeviceID The output on my server is as follows: server1:~ # lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 058f:6362 Alcor Micro Corp. Hi-Speed 21-in-1 Flash Card Reader/Writer (Internal/External) Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 002: ID 0781:5151 SanDisk Corp. Cruzer Micro Flash Drive Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub server1:~ # The Vendor/Device ID of my SanDisk USB flash drive is 0781:5151. Now run bind_driver --list The output on my server is as follows: server1:~ # bind_driver --list List USB devices - busid 1-4 (058f:6362) 1-4:1.0 -> usb-storage - busid 2-5 (0781:5151) 2-5:1.0 -> usb-storage server1:~ # As you see, the Vendor/Device ID of my SanDisk USB flash drive (0781:5151) corresponds to the BUSID 2-5. We need this BUSID to attach the USB device to the server: bind_driver --usbip 2-5 server1:~ # bind_driver --usbip 2-5 ** (process:2952): DEBUG: 2-5:1.0 -> usb-storage ** (process:2952): DEBUG: unbinding interface ** (process:2952): DEBUG: write "add 2-5" to /sys/bus/usb/drivers/usbip/match_busid ** Message: bind 2-5 to usbip, complete! server1:~ # That's it, we can now use the SanDisk USB flash drive on a remote usbip client. BTW, if you run... netstat -tap ... you should see that the usbip daemon is listening on port 3240 (triomotion) so please make sure that this port isn't blocked by your firewall: server1:~ # netstat -tap Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 *:triomotion *:* LISTEN 2948/usbipd tcp 0 0 *:sunrpc *:* LISTEN 2397/rpcbind tcp 0 0 *:ssh *:* LISTEN 2731/sshd tcp 0 0 localhost:ipp *:* LISTEN 2455/cupsd tcp 0 0 *:smtp *:* LISTEN 2843/master tcp 0 0 192.168.0.15:ssh 192.168.0.1:d2000kernel ESTABLISHED 2905/0 tcp 0 0 *:sunrpc *:* LISTEN 2397/rpcbind tcp 0 0 *:ssh *:* LISTEN 2731/sshd tcp 0 0 localhost:ipp *:* LISTEN 2455/cupsd tcp 0 0 *:smtp *:* LISTEN 2843/master server1:~ #