Dica: no Linux você deve usar o rxtx (há duas versões, uma que implementa javax.comm, e outra que não implementa javax.comm. Obviamente você deve usar a versão que implementa javax.comm se quiser deixar seu programa compatível com o Windows.
A seguir você precisa ver se o Linux já não está usando a porta serial (pode ser que ele esteja já usando, porque é possível espetar um “terminal serial” a uma das portas COM.)
ps -ef | grep [am]getty
se isto retornar algo como
root 986 1 0 Nov04 tty2 00:00:00 /sbin/mgetty ttyS0
então você vai ter de ver porque é que o mgetty está habilitado (ele está pegando a porta serial COM1).
Depois disso, você precisa ver que usuário você está usando, e se for o caso, você precisa ou alterar a permissão do device, ou então incluir seu usuário no grupo que permite ler e escrever do device.
A seguir é necessário ver o arquivo de lock, para ver se você está com a permissão correta. Pode ser que você tenha de modificar a permissão do diretório onde ficam os arquivos de lock, que é /var/lock. No caso da maior parte dos linux costuma estar quase correto (você precisaria de ter permissão 777 para esse diretório, e o usuário e grupo desse diretório seria root:uucp. No caso do RedHat o usuário e grupo são root:lock). Normalmente a permissão é 776, deixe em 777.
Depois disso, tente rodar aquele programa que vem junto com o javax.comm versão Solaris (que é o samples/BlackBox.java). Se conseguir, você conseguiu usar o rxtx.
Use o instalador do rxtx para que ele recompile o fonte C do driver e o instale o librxtxSerial.so em um diretório no seu PATH (ou LD_LIBRARY_PATH).