Checagem: 31/05/2019, em todos os Essentials (8), excluídos modelos com memória Flash (3). As demais linhas custam todas de R$3.000 pra cima, ou custam menos de R$2.000 e têm memória Flash. Não me interessaram, e por isto não conferi.
Role para o lado usando as teclas ← e → para visualizar todos os atributos dos modelos.
Checagem: 30/05/2019, em todos os Inspiron. As outras linhas são todas muito caras, portanto não interessaram a mim, consequentemente não conferi. Exceção: Vostro, que tem apenas um modelo.
Nota: o Intel HD Graphics 620 e o Intel UHD Graphics 620 são praticamente idênticos, a diferença é mínima!
Role para o lado usando as teclas ← e → para visualizar todos os atributos dos modelos.
300Mbps Mini Wireless N USB Adapter Marca: TP-LINK Modelo: TL-WN823N(EU) Versão:2.0
Neste tutorial, ensinarei como instalar este dongle USB para wireless no Debian 9. Mas não simplesmente entregar um passo-a-passo, eu quero que você entenda o que está fazendo, e seus conhecimentos expandam-se, consequentemente.
O problema
O manual do produto diz que há suporte oficial para o Linux, pela TP-LINK, porém não existe suporte de verdade pela TP-LINK, e eu penei um bocado para fazê-lo funcionar. Trago então minha solução para você!
O driver oficial, do site da TP-LINK, está obsoleto! O que há ali é o código, a partir do qual você deve compilar (produzir) o driver especificamente para seu sistema, não é só dar 2 cliques. Mas para compilar, você precisa ter o ambiente adequado, isto é, seu sistema tem de possuir algumas características específicas. A característica crucial nesse caso é o kernel do Linux: o site oficial diz que o driver é compatível com as versões 2.6.18 até a 3.10.10. Legal, mas o suporte para a versão 3.10 acabou em novembro de 2017, e já estamos em 2018... O Debian que uso, segundo o comando lsb_release -r é a 9.5, e o kernel, segundo o comando uname -r, é o 4.9.0-7-amd64 (suportado até janeiro de 2019). Então este driver não dá suporte ao Debian 9, apenas versões mais antigas...
Obtendo o firmware
Os repositórios oficiais do Debian 9 incluem o pacote firmware-realtek, que por sua vez inclui o firmware do chipset Realtek rtl8192eu, que é o que está dentro do dongle. Os repositórios do Debian 8 incluem um pacote de mesmo nome (firmware-realtek), que porém, não dá suporte ao chipset em questão (rtl8192eu). Então faça um upgrade do seu sistema, se ainda não estiver usando a versão 9.
Dado que o pacote firmware-realtek não é software livre, é necessário alterar sua lista de repositórios para "tornar visíveis" os pacotes de software proprietário:
em um terminal root, abra a lista de repositórios no editor de texto nano: nano /etc/apt/sources.list;
adicione non-free (com um espaço antes) após cada linha escrita no arquivo;
salve as alterações com ^O (CTRL+O), e depois feche o editor de texto com ^X (CTRL+X);
atualize sua lista de fontes de software com apt update, e instale o firmware com apt install firmware-realtek;
reinicie o computador, para que o firmware seja carregado na próxima inicialização do sistema e entre em ação.
Encontrando redes sem-fio
Após reiniciar, você já deve ser capaz de encontrar as redes sem-fio das redondezas. Por exemplo, se você tiver o network-manager-gnome instalado, o nm-applet (um ícone na barra de aplicativos que exibe informações de rede) deve mostrar-lhe uma lista de redes wireless disponíveis, se você clicar nele. Se você consegue essa geração de lista de redes, você tem o firmware adequado para o seu dongle, e o passo-a-passo anterior teve sucesso em seu objetivo.
Escanear o ar buscando redes sem fio é necessário, mas não suficiente. Tente conectar-se a alguma, mesmo uma sem senha e sem segurança - se não tiver uma assim por perto, você pode configurar seu roteador para tal. O nm-applet roda, roda, mas não conecta? Então ainda tem algo errado.
digite echo "blacklist rtl8xxxu" | tee /etc/modprobe.d/rtl8xxxu.conf;
reinicie o computador. Se ainda assim não funcionar, dê modprobe rtl8xxxu no terminal.
Após configurar o dispositivo assim, tente novamente se conectar a uma rede sem senha e sem segurança, ou com segurança WEP. Conseguiu? Ótimo. Mas e as conexões WPA, WPA2, e WPA-WPA2, funcionam? Se não, siga adiante o tutorial.
Conectando-se a redes WPA, WPA2, e WPA-WPA2
As proteções WPA, WPA2 e WPA-WPA2 são mais recentes que a WEP, já obsoleta devido à falta de segurança. Por isto mesmo, funcionam diferente e exigem configuração adicional.
Conferindo nos logs do sistema (comando nano /var/log/messages como root), constatei que existem quatro "apertos de mão" (4-way handshake) entre o dongle e o roteador sem fio, compondo uma etapa de negociação. É esta etapa que falha e impede e a conexão, registrando no log, após a troca de mensagens "eapol", que a autenticação falhou pela "razão 15". O protocolo do "eapol" é uma inovação das tecnologias WPA e WPA2 (não existiam na WEP). E a razão 15 significa que o handshake estourou o tempo-limite.
O que faz o handshake falhar é a aleatorização do endereço MAC do dongle, pelo que pesquisei. Esse recurso é importante para previnir que clientes wireless sejam identificados pessoalmente quando usarem wifis públicos: a cada conexão, um endereço MAC diferente é usado pelo aparelho, dando certa privacidade. Mas isso não funciona bem com o dongle TL-WN823N(EU) v2.0, e o recurso precisa ser desabilitado. Isso é simples de resolver:
abra um terminal root, e edite o gerenciador de redes no editor de textos nano, com nano /etc/NetworkManager/NetworkManager.conf;
adicione as linhas ao arquivo:[device]wifi.scan-rand-mac-address=no
salve as alterações com ^O (CTRL+O), e depois feche o editor de texto com ^X (CTRL+X);
reinicie o computador.
Voilà! Resolvido. Agora o dongle deve funcionar perfeitamente. Se para você, ainda assim não estiver dando certo, deixe um comentário neste post explicando o que deu errado, e talvez eu possa lhe ajudar.
Em 2007, Evan Prodromou desenvolveu o "esqueleto" do que eventualmente se tornaria o GNU Social. Na época de sua concepção, ele era conhecido como Laconica, e era utilizado em um serviço de microblogging chamado Identi.ca. Após ser financiado, Prodromou renomeou Laconica para StatusNet e começou o desenvolvimento do serviço. A ideia por detrás da StatusNet era que qualquer um pudesse baixar o software e rodar seu próprio serviço de microblogging. O nobre objetivo estava embrulhado em estratégia de marca, e buscas corporativas, na esperança de um dia levar o microblog para as massas (tanto marcas quanto indivíduos) tal qual WordPress fez para os blogs.
Várias pessoas contribuíram código para a StatusNet e o projeto cresceu. Em 2010, Prodromou documentou o protocolo OStatus que ele criou e fez a StatusNet usar, e conseguiu levar este protocolo para o W3C, para que fosse mais desenvolvido (o que não ocorreria até 6 anos depois). OStatus tornou-se o padrão sucessor do protocolo OpenMicroBlogging. Esta foi uma grande conquista, pois o OStatus é a tecnologia que o W3C mantém e desenvolve, e é basicamente o procedimento operativo padrão para comunidades coesas de microblog. A maioria destas comunidades OStatus podem comunicar-se umas com as outras (Federação).
Em algum momento por aqui, Matt Lee começou a explorar opções para ferramentas sociais para o GNU FM, e a StatusNet capturou sua atenção. Algum interesse continua a crescer, mas nade demais acontece. Prodromou eventualmente perde seu financiamento em 2012, e o desenvolvimento real da StatusNet parece estar condenada à morte, apesar de continuar um pouco.
Devido ao projeto usar uma licença livre, as pessoas tinham a capacidade de fazer "forks" (ramificações do desenvolvimento), e Mikael Nordfeldth havia feito um fork da StatusNet para um projeto chamado Free Social. O projeto de Mikael era "por diversão", mas após Prodromou ter decidido seguir adiante com o pump.io, Matt e Mikael oferecem a ideia de fundir o projeto StatusNet em um novo, nomeado GNU Social (já que os desenvolvedores em questão eram desenvolvedores e apoiadores do Projeto GNU / Fundação do Software Livre). Mikael continua a manter e dar suporte ao GNU Social em 2017, mas houveram vários forks que constroem por sobre seu próprio trabalho, enquanto tentam seus próprios objetivos.
Existe um rumor de que a Identi.ca era um serviço de microblogging independente, e não federava com os nos StatusNet. Este rumor está errado: a companhia StatusNet fazia ser fácil criar seu nó "nome.status.net", de graça para nós de usuário único, e também provia vários nós com nomes como "240.status.net", "unlimited.status.net", para que se experimentasem diferentes tamanhos de mensagem. Prodromou realmente tentou fazer com que pessoas mesclassem-se com a Federação e saíssem do nó com o nome da empresa. Mas Identi.ca era a face da StatusNet, e continuou crescendo. Não foi até o "pumpocalypse" que sites alternativos como Quitter.se realmente deslanchassem, no grande êxodo da Identi.ca por pessoas que estavam confusas ou não gostavam no novo software (pump.io).
O GNU Social é um projeto de rede social que está em desenvolvimento há alguns anos. Originalmente implementado através do serviço Identi.ca, logo evoluiu quando a Free Software Foundation se juntou em seu desenvolvimento. Trata-se de uma rede social de aparência muito similar ao Twitter, porém com algumas vantagens, como a possibilidade de enviar mensagens de mais de 140 caracteres, participar de grupos, e seguir usuários de outras instâncias que utilizem os mesmos padrões abertos.
Diferente do Twitter, que é um serviço centralizado, o GNU Social é um software livre que pode ser instalado em qualquer servidor. Cada instância da rede social inter-opera com as demais de maneira horizontal, formando assim uma rede distribuída onde os participantes não dependem das políticas corporativas de uma única empresa, e aonde a adoção de novas funcionalidades é livre, desde que siga-se os protocolos de comunicação.
Como é de se imaginar, existem muitos serviços "públicos" de GNU Social. Alguns dos mais conhecidos são: Quitter.se, Quitter.es e lamatriz.org; porém, existem muitos outros, que você pode conferir no site Fediverse.org. Mesmo estando em um nó qualquer, é possível conectar-se às demais instâncias e assim inter-conectar-se com os outros usuários também.
Porquê usar?
De que nos interessaria criar um novo perfil em uma outra rede social que tem uma aparência similar ao Twitter? Porquê se dar ao trabalho e tempo?
Em primeiro lugar, porquê na Internet, sempre vamos estar vivendo mudanças e saltos, de uma tecnologia a outra. Se não o fizermos conscientemente e por escolha própria, os donos das grandes plataformas nos obrigarão, de qualquer maneira, a aceitar as mudanças que eles impõe a partir de suas políticas empresariais centralizadas, em termos que não conhecemos nem controlamos. Assim, somar-se à história de uma tecnologia livre, aberta, e descentralizada, como o GNU Social, é abrir uma janela de ar fresco em direção a uma comunicação que podemos controlar mais coletivamente, sob normas comunitárias de netiqueta, e não sob Termos de Uso abusivos, e sob permanente ameaça de censura.
Em segundo lugar, porquê nestas redes sociais distribuídas, estão acontecendo coisas interessantes! Estão somando-se cada vez mais pessoas, e estão se abrindo novos nós nos quais prosperam todo tipo de comunicades, com sua variedade de idiomas e temas a explorar. Entramos em um território livre de algoritmos de personalização, e que assim não podem ser manipulados visando lucros com propaganda. Bem distante dos ruídos impostos pelos grandes meios de massa, das marcas, das celebridades, e dos trolls que inundam o Twitter e Facebook, podemos retomar espaços de comunicação mais adequados para o diálogo real.
Entender como funciona o OStatus facilita que novos desenvolvedores possam unir-se ao projeto e criar novas possibilidades para o GNU Social.
OStatus: as peças da engrenagem
Ostatus combina de forma natural e eficiente um conjunto de peças, protocolos, que permitem implementar comunicações distribuídas na Web:
Activity Streams codifica as publicações, atividades e eventos sociais dos usuários nos padrões Atom ou RSS;
PubSubHubbub envia, em tempo real, estes feeds a seus assinantes ao redor da Web;
Salmon notifica aos usuários sobre as respostas a suas publicações;
Webfinger torna fácil encontrar outros usuários na rede de nós.
Ainda que cada um destes protocolos cumpra uma função determinada, veremos como colaboram entre si e ganham sentido ao trabalharem como uma engrenagem dentro de cada nó do GNU Social. Seguiremos agora os passos que o GNU Social dá quando lhe pedimos para assinar os posts de um usuário remoto, ou seja, um usuário que não está cadastrado no próprio nó de quem assina.
Porém, antes de passar à ação, vejamos onde encontrar OStatus dentro do código-fonte do GNU Social:
OStatus no código-fonte do GNU Social
Uma das maravilhas do GNU Social é sua modularidade. E, como não podia ser de outra forma, a implementação do OStatus está encapsulada dentro do plugin OStatus que podemos encontrar no diretório plugins.
O plugin OStatus agrega ao GNU Social um conjunto de bibliotecas, funcionalidades, e rotas para fazer possível a comunicação entre os nós do GNU Social. Vamos seguir os passos do processo de assinatura entre usuários remotos. O ponto de acesso principal para esta opção em qualquer nó do GNU Social é main/ostatussub. Por exemplo, na instância Quitter España, é no endereço https://quitter.es/main/ostatussub.
Esta URL será nosso ponto de partida para dar uma viagem guiada pelo processo de assinatura a usuários remotos. Um processo aonde centramo-nos no trabalho que realiza o protocolo PubSubHubbub.
Iniciamos a viagem até a assinatura
Estando no ponto de partida, main/ostatussub, perante o usuário final o processo não tem grandes segredos: insere-se o endereço do OStatus, usuario@exemplo.net ou https://exemplo.net/usuario, do usuário que deseja-se seguir, e então o GNU Social pede-lhe para confirmar a assinatura, realiza a confirmação e, a partir deste momento, começa a receber todas as publicações do usuário a que foi solicitado seguir, em sua linha do tempo pessoal.
Sigamos estes mesmos passos, mas agora fazendo referência às linhas de código do GNU Social adonde se desenvolve a ação:
Executa-se a ação. Quando o usuário aperta o botão «continuar», executa-se uma solicitação POST, que inclui a variável profile, sobre a ação ostatussub implementada pelo plugin OStatus.A partir deste momento o GNU Social lança-se à caça do feed, tudo é um feed, que se esconde por detrás do usuario OStatus que indicamos a ele.
Uma URI ou um e-mail? O primeiro a se fazer é confirmar se o usuário introduziu no formulário uma URI ou um usuário em formato de endereço de e-mail. Se o que temos é um usuário OStatus em formato de endereço de e-mail, teríamos que extrair pelo Webfinger. Porém, para este post, vamos a supor que temos uma URI para encontrar o feed que buscamos. A partir deste momento é quando entra en ação o PubSubHubbub.PubSubHubbub permite-nos assinar um feed em tempo real. Não temos que fazer solicitações regulares ao feed para obter as novas publicações, ao invés disto nós é que seremos notificados, e nos será enviado o novo conteúdo, em tempo real, quando o feed se atualizar. Para entender a lógica por detrás do PubSubHubbub recomendo ver este vídeo.Nos passos paraimplementarPubSubHubbub, o primeiro é descobrir como assinarmos o feed, descobrir qual é o agente (hub) a que temos que pedir que o feed assine. Este hub se encarrega de informar aos assinantes remotos sobre as atualizações dos feeds dos usuários em seu nó. Cada nó do GNU Social tem seu próprio agente (hub).
Descobrir o hub. Uma vez que tenhamos a ULR do feed, o GNU Social realiza uma solicitação GET para obter a informação sobre o hub ao qual tem de solicitar assinatura, dá persitência aos dados encontrados (URL do feed, hub do feed, etc), guarda-os na base de dados associados ao usuário OStatus para o qual recebemos uma pedido de assinatura. Terminado este passo, o GNU Social nos apresenta os dados do usuário do qual queremos assinar, e nos pede confirmação.
Enviamos solicitação de assinatura ao hub. Uma vez que o usuário confirme a assinatura, o GNU Social dá início ao processo de assinatura. Seguindo a especificação do PubSubHubbub, para solicitar a assinatura a um hub, temos que fazer uma solicitação POST enviando-lhe a seguinte informação: mode=subscribe, topic=, callback=, verify=sync. O "topic" é a URL do feed a que queremos assinar, e "callback" é a URL à qual queremos receber primeiro a chave de confirmação, e a partir daí, as atualizações do feed. Aqui está o código que implesmenta isto no GNU Social. Enviada a solicitação, temos que esperar que o hub faça-nos uma petiação GET com a chave de confirmação.
Já estamos seguindo!! A partir deste momento o hub nos vai enviar as atualizações do feed ao qual nós acabamos de assinar, com solicitações à URL do callback que passamo-lho.
Descoberta do hub.Solicitação de assinatura.
O texto deste post de Anders Bateva está liberado sob domínio público.Baseado no trabalho disponível no blog Las Indias.