You do not need Kies or a driver to use ADB and the sdk on Linux.
First go to the android developer web site and install the SDK and Eclipse. I expect as you are developing on Windows already you'll work this bit out following their instructions.
In Linux a usb driver can be in user space, that is built right into the program. The coder uses the libusb API for this. But there is a little more, it will not work out of the box.
When a USB device is inserted into you PC the service udev is used to arbitrate how and where the 'device' is mounted. As your phone, when in debug mode, is unknown to the system it will only create the usb file node, which libusb uses to talk to it. Everything is a file in Linux. The problem is that this node is only accessible by the root account. You need to tell udev to allow a program, ADB in this case, talk to it with a normal user account.
To do this you create a file in /etc/udev/rules.d/
I have one called 99-my.rules
In this file, for your S2, add the single line
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8",ATTR{idProduct}="685e", OWNER="YOUR USERNAME", GROUP="YOUR USERNAME"
Where YOUR USERNAME is, put your username.
You'll have to be the root account to do this, in ubuntu use sudo in front of the command your are calling. EG sudo gedit /etc/udev/rules.d/99-my.rules
Now reboot or run sudo service udev restart
Plug phone in and test with adb devices. Should show the phone ID.
Ubuntu is perfect for Android development, I use it at work all the time. Whilst the windows guys are trying to find drivers for a new device being tested I just do lsusb get the idVendor and idProduct values, add a new line in udev and restart the service and i'm up and running. :)