Ubuntu e problemas com botão direito touchpad HP Pavilion

27 Comentários

broken mouse

Uma dica rápida para quem, assim como eu, possui um HP Pavilion dv5-2040br e ao instalar o Ubuntu passou por uma experiência um pouco “chata” mas bastante limitadora: um botão direito do touchpad não funciona de jeito nenhum. Não conseguia usar os menus do Gnome de forma decente, estava impedido de usar o AWN ou Docky satisfatoriamente e não podia abrir os links do Firefox em abas. Eu tinha que ter um mouse disponível o tempo todo para fazer tais coisas. Muito chato.

Depois de muito procurar na internet e não obter nenhum sucesso, desisti por um tempo. Mas ontem algo fez com que eu procurasse mais uma vez no www.vivaolinux.com.br e encontrei alguém com o mesmo problema que o meu e, como sempre acontece, a solução apareceu graças ao raulrgr. O link com a solução original está aqui.

Siga os passos abaixo caso você se encontre nessa mesma situação

1. Abra o terminal e digite o comando:

$ sudo apt-get install dkms build-essential

2. Você vai precisar baixar um arquivo clicando aqui.

3. Pelo terminal, vá para onde você baixou o arquivo

$ cd /home/seunomedesusuario/ondevcbaixouOarquivo

4. Mais comandos

$ tar xvf psmouse-2.6.35-22-generic-patched.tar.bz2.tar

$ sudo mv psmouse-2.6.35-22-generic /usr/src

$ cd /usr/src

$ sudo dkms add -m psmouse -v 2.6.35-22-generic

$ sudo dkms build -m psmouse -v 2.6.35-22-generic

$ sudo dkms install -m psmouse -v 2.6.35-22-generic

5. Reinicie o PC e depois faça os testes com o botão direito.

Para mim funcionou. E para você?

Dúvidas e sugestões nos comentários.

Anúncios

Problemas ao compartilhar arquivos via bluetooth no Ubuntu

2 Comentários

Imagem Ilustrativa

Olá pessoal.

Essa é uma dica que será útil para quem passou a seguinte situação no ubuntu: você consegue enviar dados do seu pc ou notebook para seu celular via bluetooth, mas o inverso não dá certo. Passei por essa situação assim que comprei meu notebook, um HP Pavilion dv5-2040br, e tentei compartilhar dados com meu celular. Achei estranho passar dados por um lado mas não pelo outro, pois no meu PC conseguia trocar fotos, arquivos e vídeos via Bluetooth sem nenhum problema. Então me perguntei: “Que raios está acontecendo?”.

Procurando no Google achei uma postagem do Diego Silva no www.bestlinux.com.br, onde ele explicava que, caso ocorresse o problema descrito acima, bastava executar o seguinte comando:

sudo apt-get install gnome-user-share

que deve ter uma saída semelhente a:

Output Bluetooth Package installation

Caso o problema persista, faça o seguinte:

1 – Clique no ícone do Bluetooth, localizado no canto superior direito da barra do Gnome

Selecionando icone bluetooth

2 – Depois vá em Preferências (Preferences)

Bluetooth icon preferences menu

3 – Na janela que abrirá, clique no botão Arquivos Recebidos (Receive Files)

Bluetooth Preferences

4 – Mais uma janela abrirá. Verifique se ele se encontra como a figura abaixo:

Bluetooth file sharing preferences

Pronto, acho que isso deve bastar. Postem nos comentários qualquer dúvida ou sugestão.

Até mais.

Diminuindo a listagem do GRUB 2

2 Comentários

Uma Larva (Grub) gigante

Giant Grub

Uma pequena história

Quando atualizei meu Ubuntu para a versão 9.10 (Karmic Koala) não notei uma mudança sútil, mas importante: a mudança do Grub 1 para o Grub 2. Depois de um tempo usando de uso, após baixar algumas atualizações, minha listagem original de linux-headers começa a “inchar”.

Bem, isso não era problema, pois era simplesmente ir atrás do arquivo de configuração menu.lst e apagar os headers não mais necessários, deixando a tela do Grub limpa e organizada, certo? Errado. Foi aí que notei a mudança de versão do Grub (Grub 1 para o Grub 2). O menu.lst simplesmente não existia mais. Como resolver o problema?

Antes de proseguir verique a versão do kernel que você está usando. Ela NUNCA deve ser alterada ou apagada. Para qual a versão vá System -> Administration -> System Monitor. No meu caso, é a versão 2.6.31-20. Como ela não apresenta nenhum problema vou apagar todas as versões anteriores.

versão atual do kernel

versão atual do kernel

Agora que você sabe a versão do kernel que está em uso, siga os passos abaixo.

1. System → Administration → Synaptic Package Manager

Select Synaptic

2. No Quick search digite linux-headers

Quick Search

3. Verifique quais são as versões mais antigas instaladas e remova-as. CUIDADO PARA NÃO REMOVER A VERSÃO MAIS NOVA. PRESTE BASTANTE ATENÇÃO.

Remove All Packages

Algo que chamou bastante minha atenção foi a quantidade de espaço liberado após a operação: 328 MB.

Apenas liberamos o espaço usado pelos headers. Agora temos que limpá-los da lista de entrado do Grub.

Vou pegar emprestado uma dica do edturbo que encontrei no VOL (www.vivaolinux.com.br).

Vá ao terminal e digite os seguintes comandos

$ cd /boot/

$ ls

Agora você vai ver os infernais arquivos de inicialização que não foram removidos no passo anterior. Você terá que remover manualmente cada um. Vão aparecer vários agrupamentos (abi, config, initrd.img, system.map, vmcoreinfo, vmlinuz), mas será fácil identificar os arquivos que você necessita apagar olhando na sequência de números iguais aos arquivos headers diferentes da versão do kernel que está em uso.

Para remover cada um use:

$ sudo rm abi… (nome do arquivo inteiro)

$ sudo rm -r config… (nome do arquivo inteiro, veja que tem um adicional “-r” pois este é um diretório e deve ser removido por inteiro, quando usar apenas o “rm” e não funcionar, tente este!)

Para visualizar se deletou corretamente digite o comando:

$ ls

Continue apagando todos os arquivos que possuem a sequência numérica semelhante aos headers que você apagou no início. Lembre-se que é necessário muito cuidado para apagar os arquivos, tenha certeza que está apagando os certos.

Por fim digite:

$ sudo update-grub

E agora reinicie o computador para ver se realmente a sua lista GRUB diminuiu.

Até a próxima

Trabalhando com MIDlet um pouco mais “reais”.

1 Comentário

img ilustrativa

Desenvolver aplicativos para dispositivos móveis utilizando Java ME é bem simples. Primeiro você cria seu MIDlet, roda pelo Wireless Toolkit e se ele funcionar do modo esperado tudo bem, não é? Tudo isso muda até o dia em que você decide instalar seu MIDlet em um celular, ou melhor, dois celulares de modelos e fabricantes diferentes. Aí você percebe pequenas (ou grandes) diferenças na forma de navegação e como o MIDlet se comporta, às vezes fazendo algo que com certeza não era esperado. Mas como isso é possível se você testou ele antes utilizando os emuladores do Wireless Toolkit? A resposta é bem simples: A plataforma Java ME é apenas uma especificação, onde quem define realmente a maneira como o MIDlets irão se comportar dentro dos dispositivos são seus fabricantes (Motorola, SonyEriccson, Nokia, etc).

Então vem a pergunta: “Mas como diabos eu vou saber se meu MIDlet irá se comportar da forma adequada no meu celular ou no dos meus clientes?”. Existem duas formas, uma fácil e outra difícil:

  • Difícil: Testar em cada dispositivo e fazer os ajustes, testar novamente…
  • Fácil: Testar seus MIDlets nos SDKs que os fabricantes disponibilizam e que se aproximam muito da forma como os celulares reais irão tratar seus MIDlets.

Qual você prefere? Se a resposta foi a maneira fácil, acompanhe os passos abaixo e aprenda a utilizar o SDK da Motorola dentro do próprio Eclipse. Neste post estou levando em consideração que você já tem os plugins Java ME e/ou Pulsar instalados.

Instalando o MOTODEV SDK

Abra o Eclipse na perspectiva Java ME. Na parte de baixo (ver figura 1) clique na aba Mobile SDKs. Lá você irá encontrar uma série de SDKs dos grandes fabricantes como Motorola, Ericsson, Sony e Nokia. Vá até MOTODEV SDKs e dê um duplo clique no plugin MOTODEV Studio (figura 2).

Mobile SDKs

Figura 1

SDKs disponíveis

Figura 2

Após o Eclipse calcular tudo o que é preciso baixar, irá aparecer uma janela para instalação do plugin. Faça todo o processo de instalação norma de plugins e, assim que terminar, escolha para aplicar as mudanças.

Testando nosso MIDlets

Agora veja algo interessante: vá em WindowPreferencesJava MEDevice Management. O SDK da Motorola já está carregado com todos os seus dispositivos. Caso queira importar dispositivos de outros SDKs, como o Wireless Toolkit por exemplo, sinta-se a vontade.

Agora vamos ver como isso funciona na prática. Crie um novo MIDlet Project e coloque o nome de Teste Motorola SDK. Quando o projeto for criado, crie um novo pacote e dentro dele coloque um MIDlet chamado TesteMotorola e adicione a interface CommandListener. Olhe o código abaixo:

import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.StringItem;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class TesteMotorola extends MIDlet implements CommandListener
{

	private Display display;
	private Form loginForm;
	private Form sucessfulForm;
	private TextField tfUser;
	private TextField tfPassword;
	private StringItem stSucessful;
	private Command cmdLogin;
	private Command cmdExit;

	public TesteMotorola()
	{
		display = Display.getDisplay(this);

		tfUser = new TextField("User", " ", 30, TextField.ANY);
		tfPassword = new TextField("Password", "", 30, TextField.PASSWORD | TextField.ANY);

		cmdLogin = new Command("Login", Command.SCREEN, 0);
		cmdExit = new Command("Exit", Command.EXIT, 1);

		stSucessful = new StringItem(null, "Login Sucessful");

		loginForm = new Form("Login");
		loginForm.append(tfUser);
		loginForm.append(tfPassword);
		loginForm.setCommandListener(this);
		loginForm.addCommand(cmdLogin);
		loginForm.addCommand(cmdExit);

		sucessfulForm = new Form("Login Susceseful");
		sucessfulForm.append(stSucessful);
		sucessfulForm.setCommandListener(this);
		sucessfulForm.addCommand(cmdExit);

	}

	protected void destroyApp(boolean arg0)
		throws MIDletStateChangeException
	{
		// TODO Auto-generated method stub

	}

	protected void pauseApp()
	{
		// TODO Auto-generated method stub

	}

	protected void startApp() throws MIDletStateChangeException
	{
		// TODO Auto-generated method stub
		display.setCurrent(loginForm);
	}

	public void commandAction(Command c, Displayable d)
	{
		if (c == cmdLogin)
			display.setCurrent(sucessfulForm);
		else
			if (c == cmdExit)
			{
				// o aplicativo irá pedir para ser desativado.
				display.setCurrent(null);
				notifyDestroyed();
			}
	}

}

Até agora nada de novo, não é? Bem, agora clique com o botão direito no código-fonte e escolha Run AsRun Configuration. Clique na aba Emulation e marque a opção Specific Device. No menu Device escolha o dispositivo FLIP. Clique em Apply e depois em Run.

Escolhendo preferências de runtime

Emulador SDK Motorola

Legal não é? Agora podemos ver como nosso MIDlet iria se comportar em alguns modelos de celulares da Motorola. Quer mudar de dispositivo? Quer ver como ficariam seus MIDlets antigos nesses SDKs? Faça o mesmo processo de quando você clicou com o botão direito em cima do código e escolha o SDK e o dispositivo que você quiser.

Emulador MOTODEV Studio - FLIP

Assim como a Motorola, outros fabricantes também disponibilizam seus SDKs. Alguns sites interessantes:

Infelizmente a maioria é somente para o Microsoft Windows 😥 .

Este post vai ficando por aqui pessoal. Qualquer dúvida postem nos comentário ou mandem um email. Ficarei muito feliz em ajudar.

Até a próxima.

Preparando ambiente para desenvolvimento de aplicações Java ME no Ubuntu

4 Comentários

java_firefox_ubuntu

Pretendo iniciar uma ‘série’ sobre desenvolvimento para Java ME, onde pretendo explicar o que sei sobre a plataforma, incluindo prática, muita prática. O primeiro post dessa série foi Java ME – Uma breve introdução.

Agora vamos prepara o ambiente para começar o desenvolvimento dos nossos MIDlets. Para isso, temos que fazer alguns downloads e instalações.

Os downloads necessários para começarmos são:
Java SDK, Standard Edition 1.4 ou superior;
Sun Wireless Toolkit 2.5.2;
Eclipse IDE – Pulsar

Siga os passos a seguir e caso encontre algum problema, por favor coloque nos comentários.

Instanlando Java SDK

Precisamos intalar o Java SE SDK para ter acesso a plataforma Java, necessária para a utilização do Sun Wireless Toolkit do IDE Eclipse.

1. Vá em System – > Administration – > Synaptic Package Manager

synaptic-SDK

3 – Em Quick Search, digite java

sdk-find

3 – Na lista de pacotes, selecione o pacote openjdk-6-jdk. Instale-o junto com os demais pacotes requisitados pelo Synaptic.

Baixando e instalando o Sun Wireless Toolkit 2.5.2

Agora que já instalamos o Java SDK, estamos prontos para instalar o Sun Wireless Toolkit. Mas o que é esse Sun Wireless Toolkit? Bem, segundo o site da Sun:

The Sun Java Wireless Toolkit (formerly known as J2ME Wireless Toolkit) is a set of tools for creating Java applications that run on devices compliant with the Java Technology for the Wireless Industry (JTWI, JSR 185) specification and the Mobile Service Architecture (MSA, JSR 248) specification. It consists of build tools, utilities, and a device emulator.

Primeiro, vá no site de download do Sun Wireless Toolkit: http://java.sun.com/javame/downloads/index.jsp.

Ecolha o Sun Wireless Toolkit 2.5.2 para download (destacado na imagem). Ei, mas lá tem um mais novo, o Java Platform Micro Edition Software Development Kit 3.0, por quê não posso copiá-lo? – você poderia perguntar. Simples, ainda não existe uma versão para Linux, apenas para Windows. 😦

paginaDownload-j2me

Após clicar em Download, pela segunda vez, escolha a plataforma (essa é fácil – Linux), a linguagem, só tem inglês, e aceite os termos da licença. Depois clique em Continue. Na página seguinte, selecione sun_java_wireless_toolkit-2.5.2_01-linuxi486.bin.sh para começar o download.

Após o termino do downlaod, abra um console.

Dê permissão de escrita e leitura ao arquivo e execute-o com os comandos:

sudo chmod +x sun_java_wireless_toolkit-2.5.2_01-
linuxi486.bin.sh
sudo ./sun_java_wireless_toolkit-2.5.2_01-linuxi486.bin.sh

Leia os termos da licença ou aperte q para ir direto ao final. Concorde com os termos da licença digitando yes.
Depois irá aparcer algo como:

Testing /usr/X11R6/bin/java...
A suitable Java interpreter was detected
0) Use /usr/X11R6/bin/
1) Specify a path to a Java interpreter directory.
2) Cancel this installation.

Escolha 0 (zero) para usar a o JDK default, ou 1 para especificar um outro JDK. Caso escolha 1, digite o caminho da JDK desejada e depois digite 0 para começar a instalação.

Para fazer um teste, vá do diretório onde o Wireless Toolkit foi instalado (deve estar numa pasta WTK2.5.2), através do terminal, vá na pasta bin e execute o ktoolbar. Deve aparecer um aplicativo semelhante ao da imagem abaixo.

Ktoolbar

Bem, para começar a fazer nossas MIDlets poderíamos parar por aqui e começar a programar, mas, para facilitar o desenvolvimento e tornar mais rico o desenvolvimento, vamos instalar uma IDE e aproveitar todas as facilidades e recursos que ele oferece.

Eclipse IDE

O Eclipse é um IDE maduro, OpenSource e bastante popular na comunidade Java. Iremos utilizar o Eclipse Pulsar 3.5, que é um ambiente integrada já preparado para o desenvolvimento de aplicações Java ME.

Primeiro, vá no site da Eclipse Foundation, http://www.eclipse.org/ e clique no ícone do Pulsar logo na página inicial (caso não esteja na página inicial, vá em downloads e ele estará lá). Ao entrar na página do projeto, clique em Downlaod. Na página seguinte, escolha o S.O. e a arquitetura da sua máquina (32 ou 64 bits). O próprio site irá lhe oferecer uma opção de download, clique nela e espere o download acabar.

eclipse home download

Agora, vá na pasta onde você está o download e simplesmente extraia a pasta eclipse de dentro do arquivo compactado. Pronto, o Eclipse já está pronto para ser usado!

Dentro da pasta eclispe, clique em eclipse para executar o IDE. Ele irá sugerir uma pasta onde salvar os projetos. Caso queira escolher outra pasta que não seja a sugerida, clique em Browse…, escolha a pasta de sua preferência e clique em OK.

Após iniciar o programa, clique em Workbench (uma seta na página inicial), e irá aparecer uma tela parecida com a da figura abaixo.

Screenshot-Pulsar - Eclipse

Vá em Window – > Preferences

Eclipse-pulsar-preferences

Na janela que irá aparecer, vá em Java ME – > Device Manager. No Device Manager, clique em Import.

Device-manager-import

Irá aparecer uma outra janela. Nela, clique em Browse… e selecione a pasta onde está o Wireless Toolkit (deve ser WTK2.5.2) e clique OK. Espere o Device Import terminar de carregar todas as configuraçãos do Wireless Toolkit e clique em Finish. Depois clique em OK no Device Manager (janela anterior) e pronto.

Import-Device

No próximo post iremos começar a fazer nossas primerias MIDlets.

Até mais.

Links:

Sun Wireless Toolkit: http://java.sun.com/javame/downloads/index.jsp

Eclipse IDE – Pulsar: http://www.eclipse.org/pulsar/

Configurando o Eclipse para utilizar as bibliotecas SWT/JFace no Ubuntu 8.10

Deixe um comentário

swtUbuntuMenor

Este post tem como objetivo explicar como configurar o Eclipse (versão 3.4) em um sistema operacional que utiliza GTK (neste caso o Ubuntu 8.10) como biblioteca gráfica. Não vou mencionar aqui vantagens ou desvantagens dessas bibliotecas em relação ao SWING, pois não existe uma melhor ou pior que a outra. SWT/JFace, no meu ponto de vista, são uma alternativa e não substitutos para SWING.

SWT e JFace são duas bibliotecas criadas pelos desenvolvedores do Eclipse como uma alternativa a SWING, pois eles queriam uma ferramenta que possibilitasse GUIs Java rodarem em desktops com a mesma performance de uma aplicação nativa.

Para maiores informações sobre SWT/JFace eu recomendo a leitura do livro SWT/JFace in Action. Os passos a seguir foram tirados, em sua maioria de um dos apêndices desse livro com algumas modificações.

1 – Abra o Eclipse e inicie um novo projeto Java

Criando um novo projeto Java

Criando um novo projeto Java

Escolha um nome para o projeto, como por exemplo SWT_JFace teste e clique em Finish

Escolhendo um nome para o projeto

Escolhendo um nome para o projeto

Vá até a basta onde estão localizados os plugins do eclipse. No meu caso, eles estão em  /home/rafael/Programas/eclipse/plugins. Copie os seguintes JARs:

org.eclipse.core.boot_<version info>.jar
org.eclipse.core.commands_<version info>.jar
org.eclipse.core.runtime_<version info>.jar
org.eclipse.equinox.common_<version info>.jar
org.eclipse.jface_<version info>.jar
org.eclipse.osgi_<version info>.jar
org.eclipse.ui.workbench_<version info>.jar
org.eclipse.swt.gtk_<version info>.jar OU org.eclipse.swt.gtk.linux.x86_<version info>

Cole os JARs em uma basta separada. Aconselho criar uma basta onde você possa armazenar suas bibliotecas preferidas.

Agora, retorne ao Eclpse e clique com o botão direito do mouse em cima no projeto que você criou (SWT_JFace teste) e no menu que irá aparecer selecione Build Path → Configure Build Path…

Configurando o Build Path

Configurando o Build Path

Na janela que irá aparecer, clique no botão Add External JARs

Configurando JARs

Configurando JARs

Vá até a pasta onde estão os JARs que copiamos e colomas agora a pouco e selecione todos eles. Então clique em OK.

Adicionando JARS

Adicionando JARs

Clique em OK novamente. No seu projeto irá aparecer mais um pequeno ícone chamado Referenced Libraries. Ao clicar nele, você verá que todas as nossas bibliotecas podem ser utilizadas em nosso projeto.

As nossas bibliotecas já estão no nosso projeto prontas para ser usadas

As nossas bibliotecas já estão no nosso projeto prontas para ser usadas

Agora vamos fazer um pequeno exemplo para verificar se já podemos utilizar SWT/JFace. Crie uma nova classe Java, dê a ela o nome de  SWT_JFaceTest e faça-a estender a classe ApplicationWindow.

O seguinto código foi retirado do livro SWT/JFace in Action. Copie-o:

import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.*;
import org.eclipse.swt.widgets.*;

public class SWT_JFaceTestextends ApplicationWindow
{

    //Window allocation
    public SWT_JFaceTest()
    {
        super(null);
    }

    protected Control createContents(Composite parent)
    {
        Text helloText = new Text(parent, SWT.CENTER);
        helloText.setText("Hello SWT/JFace");
        parent.pack();
        return parent;
    }

    //Window operation
    public static void main(String[] args)
    {
        SWT_JFaceTest awin = new SWT_JFaceTest();
        awin.setBlockOnOpen(true);
        awin.open();
        Display.getCurrent().dispose();
    }
}

Execute a aplicação como uma Java Application para ver o resultado.

Hello SWT/JFace

Hello SWT/JFace

Pronto! Nosso teste foi um sucesso.

Agora que você já sabe como preparar o Eclipse para desenvolver GUIs que utilizam SWT/JFace. Aconselho, mais uma vez, a leitura do livro SWT/JFace in Action.

Alguns links interessantes:

Atualizando o OpenOffice.org 2.4 para o OpenOffice.org 3 – Ubuntu 8.10 (intrepid)

Deixe um comentário

Após relutar um pouco em atualizar meu Ubuntu 8.04 (Hardy Heron) para o 8.10 (Intrepid), resolvi fazê-lo já que li vários post em outros blogs elogiando o Intrepid. Após atulizar fiquei surpreso com o ganho de performance, a atualização de drives e programas e a correção de alguns bugs “leves”, mas que me irratavam às vezes, como, por exemplo, o Gnome travar quando clicava no botão de desligar, tendo que fazer isso pelo terminal.

Uma das coisas que me deixou desapontado foi que o OpenOffice.org ainda estava na versão 2.4 e não na versão 3 (que eu já havia testado no Windows e gostei bastante), mesmo eu atualizando os pacotes através do apt. Aí me ocorreu que a versão 3 do OpenOffice.org só estaria disponível oficialmente nos repositórios da Canonical no Ubuntu 9.04 (Jaunty Jackalope), com data de lançamento prevista para o dia 23 de abril de 2009.

Então fui logo procurar um jeito de atualizar o meu OpenOffice e encontrei alguns tutoriais, uns bem informativos, outros nem tanto. O link abaixo leva para a forma mais fácil e rápida de atualizar o OpenOffice:

http://news.softpedia.com/news/How-To-Install-OpenOffice-org-3-0-in-Ubuntu-8-10-96449.shtml

O tutorial está em inglês, mas é de fácil entendimento e está repleto de ilustrações.