+2 different transport layers are used:
+. STLINKv1 uses SCSI passthru commands over USB,
+. STLINKv2 uses raw USB commands.
+
+Common requirements
+~~~~~~~~~~~~~~~~~~~
+
+. libusb-1.0 (You probably already have this, but you'll need the
+development version to compile)
+. pkg-config
+
+IF YOU HAVE AN STLINKv1
+~~~~~~~~~~~~~~~~~~~~~~~
+The STLINKv1's SCSI emulation is very broken, so the best thing to do
+is tell your operating system to completely ignore it.
+
+Options (do one of these before you plug it in)
+ *) modprobe -r usb-storage && modprobe usb-storage quirks=483:3744:i
+or *)1. add "options usb-storage quirks=483:3744:i" to /etc/modprobe.conf
+ *)2. modprobe -r usb-storage && modprobe usb-storage
+or *)1. cp stlink_v1.modprobe.conf /etc/modprobe.d
+ *)2. modprobe -r usb-storage && modprobe usb-storage
+
+IF YOU HAVE AN STLINKv2
+~~~~~~~~~~~~~~~~~~~~~~~
+
+You're ready to go :)
+
+To run the gdb server, do (you do not need sudo if you have set up
+permissions correctly):
+$ make && [sudo] ./gdbserver/st-util
+
+There are a few options:
+
+./gdbserver/st-util - usage:
+
+ -h, --help Print this help
+ -vXX, --verbose=XX specify a specific verbosity level (0..99)
+ -v, --verbose specify generally verbose logging
+ -s X, --stlink_version=X
+ Choose what version of stlink to use, (defaults to 2)
+ -1, --stlinkv1 Force stlink version 1
+ -p 4242, --listen_port=1234
+ Set the gdb server listen port. (default port: 4242)
+
+Then, in gdb: (remember, you need to run an _ARM_ gdb, not an x86 gdb)
+(gdb) target remote :4242