O netbook Philco PHN 10403 se comporta muito bem com o Ubuntu 10.04 LTS (Lucid Lynx), exceto pela questão das teclas de função "Fn". É, é um bug com as teclas multimídia para controle de volume:
Fn+Volume para cima
Fn+Volume para baixo
Fn+Mudo
ou seja
Fn+VolUp
Fn+VolDown
Fn+Mute
O teclado simplesmente fica doido, maluco, como se as teclas fossem mantidas pressionadas, a função ficando habilitada de forma repetida, consequentemente travando o sistema. Putz...
Mas não é nada que uma vasculhada não resolva, como temos no post do site abaixo:
http://ubuntuforums.org/archive/index.php/t-974723.html
É uma situação um pouco complicada para usuários normais, pois necessita alteração do código fonte de um driver (módulo evdev) utilizado pelo gerenciador do ambiente gráfico do Xorg do Linux. Mas, seguindo as instruções passo-a-passo que irei reproduzir aqui no blogue, deve correr tudo certo, inclusive para versões anteriores (e posteriores talvez)... SÓ TENHA MUITO CUIDADO.
1) Abra o Terminal / Console.
2) Digite o comando abaixo para baixar o código fonte da versão corrente do módulo evdev:
$ apt-get source xserver-xorg-input-evdev
3) Dentro do diretório que foi gerado ao terminar de baixar o módulo evdev deve existir um diretório com o nome "src". Entre nele e abra o fonte "evdev.c". Isto pode ser feito nos seguintes passos se a versão que foi baixada for a mesma que está sendo explicada neste blogue:
$ cd xserver-xorg-input-evdev-2.3.2/src
$ pico evdev.c
4) Dentro do arquivo "evdev.c" localize um bloco onde contenha uma programação similar ao que consta abaixo:
/* filter repeat events for chording keys */
if (value == 2 &&
(ev->code == KEY_LEFTCTRL || ev->code == KEY_RIGHTCTRL ||
ev->code == KEY_LEFTSHIFT || ev->code == KEY_RIGHTSHIFT ||
ev->code == KEY_LEFTALT || ev->code == KEY_RIGHTALT ||
ev->code == KEY_LEFTMETA || ev->code == KEY_RIGHTMETA ||
ev->code == KEY_CAPSLOCK || ev->code == KEY_NUMLOCK ||
ev->code == KEY_SCROLLLOCK)) /* XXX windows keys? */
return;
5) Ao encontrar, adicione uma linha em branco após este bloco e copie e cole o código abaixo:
/* fix events for volume keys */
if(ev->code == KEY_VOLUMEDOWN || ev->code == KEY_VOLUMEUP || ev->code == KEY_MUTE)
{
xf86PostKeyboardEvent(pInfo->dev, code, 1);
xf86PostKeyboardEvent(pInfo->dev, code, 0);
return;
}
6) Salve as alterações e saia do editor.
7) Vamos compilar a versão do evdev e botar pra rodar. Para isto, é necessário que você tenha tudo o que é necessário para compilar os fontes envolvidos. Vamos garantir isto digitando as seguintes linhas:
$ sudo apt-get install build-essential libtool automake gcc xorg-dev xutils-dev
$ sudo apt-get build-dep xserver-xorg-input-evdev
8) Após baixar todos pacotes necessários, vamos compilar. Digite:
$ cd ..
$ chmod +x autogen.sh
$ ./autogen.sh
$ make
9) Se não ocorreram erros até aqui, podemos instalar o que foi compilado, com o comando abaixo:
$ sudo make install
10) Agora, é necessário copiar o driver a recém compilado para o local que será utilizado pelo servidor Xorg. Ao executar a cópia, o ambiente gráfico será reiniciado e quando ele voltar, as teclas de volume deverão estar funcionando ok...! Faça isto com o comando abaixo:
$ sudo cp /usr/local/lib/xorg/modules/input/evdev_drv.so /usr/lib/xorg/modules/input/
11) E é isto aí!!! Se você precisou fazer isto, poste alguma coisa aí nos comentários! Se precisar de ajuda, também! :-)
Até a próxima!