Conky não exibe informações sem fio

0

Eu tive um problema com a exibição da força do sinal de Wi-Fi e IP em conky (embora os valores baixados e enviados e as taxas de bits DL / UP estivessem sendo exibidas). Eu uso um laptop Dell Studio 1535 com um adaptador sem fio broadcom (BCM4312). Depois de pesquisar por um tempo e não conseguir encontrar uma solução, achei que seria benéfico compartilhar minha experiência de resolver esse problema. Vale a pena mencionar que eu uso o Linux Mint 15 de 64 bits, que é baseado no Ubuntu (repositórios e tudo mais), então eu acho que isso deve se aplicar ao Ubuntu também.

    
por Javad Sadeqzadeh 26.09.2013 / 18:00

3 respostas

2

Houve dois problemas: permissões do conky e nome da interface de rede (NIC). O breve resumo é:

  1. execute este comando para dar a Conky as permissões necessárias:

    sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/conky
    
  2. Renomeie sua NIC sem fio de eth1 para wlan0. Aqui está como .

Por quê?

Algumas pessoas sugeriram (em seus sites) que o problema pode estar no adaptador sem fio boradcom, que bloqueia o pedido do conky para obter as informações do adaptador , mas desde a ferramenta de linha de comando iwlist foi capaz de obter a lista de redes sem fio no meu bairro, eu duvidei que o bloqueio de pedidos seria o problema, embora outra ferramenta de linha de comando iwspy não conseguisse informações.

Você pode obter uma lista detalhada de redes sem fio em sua vizinhança usando a ferramenta de linha de comando iwlist :

iwlist eth1 scan

De fato, um dos problemas foi essa falta de privilégios de usuário root apropriados. Aparentemente, o Conky precisa ter privilégios de root para acessar bibliotecas e funcionalidades de rede. Se você não quer rodar conky com privilégios de root, existe uma maneira (desde o kernel Linux 2.2) de dar aos programas os privilégios que eles precisam sem executá-los sob privilégios de root. Você pode dar a qualquer programa (seu arquivo binário executável) privilégios de raiz parcial para executar funcionalidades específicas (por exemplo, funcionalidades de rede, funcionalidades do sistema de arquivos, etc). Isso é totalmente explicado nesta página man e parcialmente aqui . Portanto, precisamos delegar (ao arquivo binário de Conky) os privilégios de raiz apropriados para realizar tarefas relacionadas à rede e capturar pacotes brutos de um adaptador sem fio / fio. Em outras palavras, as tarefas são categorizadas em diferentes categorias de privilégios. Duas dessas categorias de acesso (que o conky precisa delas) são chamadas de cap_net_admin e cap_net_raw. Precisamos dar a essas classes de permissão. Isso é feito pelo seguinte comando (fonte: here ):

sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/conky

Além desse problema de permissão, uma resposta a um tópico me deu uma pista de que o nome da minha placa de interface de rede (NIC) (neste caso meu adaptador sem fio) pode ser a origem do problema, pois "pressupõe" que os nomes de interface começando com "eth" (eth1, no meu caso) são ethernet ( cabo) e, portanto, esses cartões não devem representar a intensidade do sinal. Embora a pista fosse muito preciosa, mas nenhuma solução foi oferecida lá no tópico acima mencionado. Eu pensei que renomear a interface pode resolver o problema, e realmente aconteceu! Eu renomei a interface sem fio (que foi chamada eth1 por padrão) para wlan0. Aqui , você pode encontrar como renomear uma interface de rede cartão no Linux. Apenas observe que nesse artigo, eles renomearam a interface para "wan0", eu a renomei como wlan0 .

E aqui está a parte da rede do meu arquivo de configuração .conkyrc:

${if_existing /proc/net/route eth0}
${voffset -6}${font PizzaDude Bullets:size=14}O${font}   Up: ${upspeed eth0} kb/s 
${alignr}${upspeedgraph eth0 8,60}
${voffset 4}${font PizzaDude Bullets:size=14}U${font}   Down: ${downspeed eth0} kb/s ${alignr}${downspeedgraph eth0 8,60}
${voffset 4}${font PizzaDude Bullets:size=14}N${font}   Upload: ${alignr}${totalup eth0}
${voffset 4}${font PizzaDude Bullets:size=14}T${font}   Download: ${alignr}${totaldown eth0}
${voffset 4}${font PizzaDude Bullets:size=14}Z${font}   Signal: ${wireless_link_qual eth0}% ${alignr}${wireless_link_bar 8,60 eth0}
${voffset 4}${font PizzaDude Bullets:size=14}a${font}   Local Ip: ${alignr}${addr eth0}
${voffset 4}${font PizzaDude Bullets:size=14}b${font}   Public Ip: ${alignr} ${execi 3600 wget -O - http://ip.tupeux.com | tail}
${else if_existing /proc/net/route wlan0} ${voffset 4}${font PizzaDude Bullets:size=14}Z${font}   Signal: ${wireless_link_qual wlan0}% ${alignr}${wireless_link_bar 8,60 wlan0}
${voffset 4}${font PizzaDude Bullets:size=14}O${font}   Up: ${upspeed wlan0} kb/s ${alignr}${upspeedgraph wlan0 8,60}
${voffset 4}${font PizzaDude Bullets:size=14}U${font}   Down: ${downspeed wlan0} kb/s ${alignr}${downspeedgraph wlan0 8,60}
${voffset 4}${font PizzaDude Bullets:size=14}N${font}   Upload: ${alignr}${totalup wlan0}
${voffset 4}${font PizzaDude Bullets:size=14}T${font}   Download: ${alignr}${totaldown wlan0}
${voffset 4}${font PizzaDude Bullets:size=14}a${font}   Local Ip: ${alignr}${addr wlan0}
${voffset 4}${font PizzaDude Bullets:size=14}b${font}   Public Ip: ${alignr} ${execi 3600 wget -O - http://ip.tupeux.com | tail}
${endif}

E finalmente, aqui estão alguns comandos extras para exibir e remover recursos (privilégios de raiz parcial e categorizada) de arquivos (executáveis / binários):

Você pode descobrir as permissões que cada arquivo tem ao executar o seguinte comando:

getcap filepath/filename

E remova todas as permissões (capacidades) de um arquivo:

setcap -r filepath/filename
    
por Javad Sadeqzadeh 26.09.2013 / 18:00
2

A propósito, apenas no caso de alguém não notar e se isso puder ajudar: Não esqueça de remover qualquer barra após wlan0 no arquivo .conkryc . Exemplos:

${upspeedf wlan0/}  -->  ${upspeedf wlan0}
${downspeedf wlan0/}  -->  ${downspeedf wlan0}

Se ninguém tiver barras após wlan0 , não há problema, mas eu tive que remover as barras no meu arquivo .conkyrc ou então o Conky não mostraria a rede upspeedf (da mesma forma, para downspeedf ) - mesmo depois de seguir o post do Metallica.

    
por user510198 23.02.2016 / 00:10
0

Aqui está o que eu fiz para resolver o problema: primeiro eu tenho o nome do meu adaptador sem fio usando este comando:

ifconfig

Meu nome do adaptador sem fio é wlp2s0 Então, mudei wlan0 para wlp2s0 e os problemas foram resolvidos.

você pode seguir o tópico principal aqui .

Estou usando o Lubuntu 16.04

    
por Mehrdad Salimi 30.05.2017 / 15:14