Eu pessoalmente não precisei fazer isso, mas este link mostra que você deve ser capaz de modificar o mapeamento de teclado do kernel na inicialização para fazer essa troca.
Este link também declara que o XFree86 tentará carregue o mapeamento do kernel no seu tempo de carregamento, de modo que não seja necessário fazer mudanças apenas para X se você fizer o primeiro acima.