Alguns esclarecimentos sobre uso do Plasma NM

Eu estava lendo este blog e senti que deveria explicar algumas coisas para os usuários do Plasma NM. Primeiramente a maneira mais fácil de adicionar uma conexão sem fio é clicando no ícone da bandeja de sistema, depois o nome da conexão, preencher a chave de criptografia (se necessário) e clicar Ok. São três cliques, o mesmo número que no MacOS segundo o autor do blog descreveu.

Quando você clica no ícone do painel e não há nenhuma conexão wifi configurada o botão “Mostrar Mais” é automaticamente alternado:

Clicando na minha rede:

Escrevendo a chave de criptografia e configurando para auto-connectar:

E depois de clicar no botão Ok:

Aqui vocês podem notar que o botão “Mostrar Mais” (Show More) não está mais alternado porque agora existe uma conexão configurada. Isto é feito para evitar que a lista de conexões fique lotada com pontos de acessos que não nos interessam. Você sempre pode listar todos os pontos de acesso clicando no botão “Mostrar Mais”.

Um problema fácil de notar é que a lista de conexões não está ordenada. Eu já tentei resolver esse problema mas tenho que refazer algumas classes internas para poder implementar isso de forma eficiente. Alternar a lista de conexões é razoavelmente CPU intensivo da forma que ela está implementada hoje.

Comentando algumas afirmações do outro blog:

“Você não pode conectar clicando em um nome de rede, você tem que usar o editor de conexões.”

Isto não é verdade, você pode clicar no nome da rede também. O bug que impedia isso de funcionar foi corrigido três meses atrás. O que deve estar acontecendo é que a sua distribuição, OpenSuse, inclui uma versão muito antiga do Plasma NM de novembro do ano passado no OpenSuse 11.4. Dúzias de bugs foram resolvidos desde aquela época. Se você quer usar uma versão mais atualizada do Plasma NM faça atualização dos pacotes do OpenSuse ou compile o Plasma NM. Honestamente, eu prefiro compilá-lo, é fácil e mesmo hoje o OpenSuse e outras distribuições são um pouco lentas para acompanhar o ritmo de correções de bugs no Plasma NM. Por exemplo, os pacotes do link acima tem mais de dois meses, o que é um pouco antigo se você considerar que já foram lançados duas atualizações do KDE SC neste período.

Se você quiser compilar o Plasma NM faça o seguinte:

  1. instale os pacotes git, make, g++, cmake, qt devel libs, kdelibs devel, kde-workspace devel, NetworkManager devel e suas dependências.
  2. Execute: git clone git://anongit.kde.org/networkmanagement.git
  3. mkdir networkmanagement/build
  4. cd networkmanagement/build
  5. cmake -DCMAKE_INSTALL_PREFIX=/usr ..
  6. make
  7. make install
  8. Pronto.

Se você usa NM-0.9 execute ’git checkout nm09′ antes do passo #5.

“Por último, para finalizar o processo, eu preciso clicar em Ok algumas vezes e então voltar para o desktop. Mas eu ainda não estou conectado. Eu preciso voltar ao ícone de sem fio da bandeja de sistema e agora eu posso ver a conexão que adicionei nos passos anteriores. Uma vez clicado sobre ela, finalmente termino a configuração com a conexão sendo iniciada”.

Você não marcou “Conectar automaticamente”. O NetworkManager não conecta automaticamente sem essa configuração. Eu escreviNetworkManager porque é o NetworkManager e não o Plasma NM (nem o nm-applet) que aciona o processo de auto-conexão. Somente acionamentos manuais de conexão são acionados nos clients do NM (Plasma NM, nm-applet, etc). Algumas pessoas já reclamaram do processo de edição de conexões, mas eu não planejo alterá-lo tão cedo.

Um usuário comentou no outro blog: “Eu ainda tenho problemas com o knetworkmanager/plasmoid, principalmente porque ao criar uma conexão por exemplo eu ainda não consigo criar “conexões de sistema” porque o checkbox está desabilitado e não há outra forma de habilitá-lo (exceto logando como root).”

Isto não é um bug no Plasma NM, outra pessoa desabilitou este checkbox. Ubuntu é uma distribuição que percebi que desabilita “conexões de sistema” no Plasma NM.

Outro usuário mencionou o fato do kwallet perguntar pela senha na hora de abrí-lo. Bem, você pode desabilitar a senha mestre no kwallet e problema resolvido. Mas o que eu acho que seria bem legal era se ele fosse aberto na hora que o usuário logasse no kdm. Bem, alguém está trabalhando nisso: bug do KDE sobre single sign-on. Infelizmente as coisas andam bem calmas nos comentários do bug. Eu espero que o cara que vinha trabalhando nele não tenha desistido.

Outro problema que nós do Plasma NM enfrentamos é o fato da especificação do NetworkManager não conter alguns detalhes que são cruciais para fazer o Plasma NM funcionar corretamente, principalmente com relação a conexões VPN. O NetworkManager criteriozamente testa todos os parâmetros da conexão e invalida a conexão se um dos testes falha. O problema é que não há nenhuma documentação sobre esses testes. A única forma de sabermos com certeza qual configuração é permitida em uma conexão é lendo o código fonte do NetworkManager, o que não é algo fácil. Depois de ter que recorrer a isso várias vezes eu já estou até me acostumando com o código fonte do NM. Algumas semanas atrás eu até enviei um patch que parcialmente corrige este bug. Agora eu só preciso que os mantenedores do NetworkManager apliquem o patch ou o melhorem para finalmente corrigir o problema que impede o Plasma NM de alterar segredos (senhas, chaves de criptografia, etc) das conexões. Nós estamos seguindo a especificação do NM-0.9 mas parece que o daemon do NM não está quando ele chama os “agentes de segredo” (secret agents) para salvar os segredos antigos ao invés dos novos. Se você está imaginando por que isso não acontece com o nm-applet, eu também gostaria de saber. O fato do nm-applet e o NetworkManager serem desenvolvidos pelas mesmas pessoas facilitam as coisas para o nm-applet, lógico.

O Plasma NM ainda tem vários bugs para corrigir e funcionalidades para implementar. Nós estamos trabalhando nelas quando possível, algumas são mais fáceis de implementar então são feitas primeiro. De tempos em tempos nós implementamos uma nova funcionalidade no branch nm09, se ela é fácil de portar nós a portamos para o branch master, aonde fica o código que roda com o NM-0.8. Eu sei, precisamos mover o código para um branch nm08, algum dia fazemos isso.

A propósito, o último dia 13 foi meu aniversário :-D no dia Internacional do Rock, oh yeah!!! hehe.

Leave a Comment