Você não precisa do Kies ou 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 você esteja desenvolvendo no Windows já que você resolverá esse problema seguindo as instruções.
No Linux, um driver usb pode estar no espaço do usuário, incorporado diretamente no programa. O codificador usa a API libusb para isso. Mas há um pouco mais, não funcionará imediatamente.
Quando um dispositivo USB é inserido no seu PC, o serviço udev é usado para arbitrar como e onde o 'dispositivo' está montado. Como o telefone, no modo de depuração, é desconhecido para o sistema, ele criará apenas o nó do arquivo usb, que o libusb usa para conversar com ele. Tudo é um arquivo no Linux. O problema é que esse nó é acessível apenas pela conta raiz. Você precisa dizer ao udev para permitir que um programa, neste caso, o ADB, converse 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 única linha SUBSISTEMA == "usb", ATTR {idVendor} == "04e8", ATTR {idProduct} = "685e", PROPRIETÁRIO = "SEU USUÁRIO", GRUPO = "SEU USUÁRIO "
Onde SEU NOME DO USUÁRIO está, coloque seu nome de usuário.
Você terá que ser a conta root para fazer isso, no ubuntu use o 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 sendo testado, apenas lsusb obtém os valores idVendor e idProduct, adiciona uma nova linha no udev e reinicia o serviço e estou em funcionamento. :)