Você não precisa do Kies nem de um driver para usar o ADB e o sdk no Linux.
Primeiro, acesse o site do desenvolvedor android e instale o SDK e o Eclipse. Espero que, enquanto você está desenvolvendo no Windows, você já trabalhe com esse objetivo seguindo suas instruções.
No Linux, um driver USB pode estar no espaço do usuário, que está embutido no programa. O codificador usa a API da libusb para isso. Mas há um pouco mais, não vai funcionar fora da caixa.
Quando um dispositivo USB é inserido em seu PC, o serviço udev é usado para arbitrar como e onde o 'dispositivo' é montado. Como o seu telefone, quando em modo de depuração, é desconhecido para o sistema, ele apenas criará o nó do arquivo usb, que a libusb usa para conversar com ele. Tudo é um arquivo no Linux. O problema é que esse nó é acessível apenas pela conta root. Você precisa dizer ao udev para permitir que um programa, ADB, neste caso, converse com ele com uma conta de usuário normal.
Para fazer isso, você cria um arquivo em /etc/udev/rules.d /
Eu tenho um chamado 99-my.rules
Neste arquivo, para o seu S2, adicione a linha única
SUBSISTEMA == "usb", ATTR {idVendor} == "04e8", ATTR {idProduct}="685e", PROPRIETÁRIO="SEU NOME DE USUÁRIO", GROUP="SEU NOME DE USUÁRIO"
Em SEU NOME DE USUÁRIO, coloque seu nome de usuário.
Você terá que ser a conta root para fazer isso, no ubuntu use sudo na frente do comando que você está chamando. EG sudo gedit /etc/udev/rules.d/99-my.rules
Agora reinicie ou execute o serviço sudo udev restart
Conecte o telefone e teste com dispositivos adb. Deve mostrar o ID do telefone.
O Ubuntu é perfeito para o desenvolvimento do Android, eu o uso no trabalho o tempo todo. Enquanto os caras do windows estão tentando encontrar drivers para um novo dispositivo que está sendo testado, eu apenas faço o lsusb obter os valores idVendor e idProduct, adiciono uma nova linha no udev e reinicio o serviço, e estou pronto para rodar. :)