Конки не отображает информацию о беспроводной сети

У меня была проблема с отображением уровня сигнала Wi-Fi и IP-адреса в conky (хотя загруженные и загруженные суммы и битрейты DL / UP отображались). Я использую ноутбук Dell Studio 1535 с беспроводным адаптером Broadcom (BCM4312). Подумав некоторое время и не сумев найти решение, я подумал, что было бы полезно поделиться своим опытом решения этой проблемы. Стоит отметить, что я использую Linux Mint 15 64 bit, который основан на Ubuntu (репозитории и все остальное), поэтому я думаю, что это должно относиться и к Ubuntu.

0
задан 26 September 2013 в 20:48

3 ответа

Было две проблемы: conky permissions и имя сетевого интерфейса (NIC). Краткая сводка:

  1. запустите эту команду, чтобы дать Конки необходимые разрешения:

    sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/conky
    
  2. Переименуйте вашу беспроводную сетевую карту с eth1 на wlan0 , Вот как .

Почему?

Некоторые люди (на своих сайтах) предположили, что проблема может быть в беспроводном адаптере boradcom, который блокирует скрытый запрос на получение информации об адаптере , но так как инструмент командной строки iwlist смог получить список беспроводных сетей в моем районе, я сомневался, что проблемы с блокировкой будут проблемой, хотя другой инструмент командной строки iwspy был невозможно получить информацию.

Подробный список беспроводных сетей в вашем районе можно получить с помощью инструмента командной строки iwlist :

iwlist eth1 scan

Действительно, одной из проблем был этот недостаток. иметь соответствующие привилегии пользователя root. Очевидно, что для доступа к сетевым библиотекам и функциональным возможностям Conky необходимо иметь привилегии root. Если вы не хотите запускать conky с привилегиями root, есть способ (начиная с ядра Linux 2.2) предоставить программам привилегии, которые им нужны, без запуска их под привилегиями root. Вы можете дать любой программе (ее исполняемому двоичному файлу) частичные привилегии суперпользователя для выполнения определенных функций (например, сетевых функций, функций файловой системы и т. Д.). Это полностью объясняется в этой справочной странице и частично здесь . Итак, нам нужно делегировать (в двоичный файл Conky) соответствующие привилегии root для выполнения задач, связанных с сетью, и для захвата необработанных пакетов от проводного / беспроводного адаптера. Другими словами, задачи подразделяются на различные категории привилегий. Две из этих категорий доступа (которые нужны conky) называются cap_net_admin и cap_net_raw. Нам нужно дать conky эти классы разрешения. Это делается с помощью следующей команды (источник: здесь ):

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

В дополнение к этому вопросу разрешения, ответ на тему дал мне подсказку что источником проблемы может быть имя моей сетевой карты (NIC) (в данном случае мой беспроводной адаптер), поскольку conky «предполагает», что имена интерфейсов, начинающиеся с «eth» (в моем случае eth1), являются ethernet (кабельные) сетевые карты и, следовательно, эти карты не должны представлять силу сигнала. Хотя подсказка была очень ценной, но в вышеупомянутой теме не было предложено никакого решения. Я думал, что переименование интерфейса может решить проблему, и это действительно так! Я переименовал беспроводной интерфейс (который по умолчанию назывался eth1) в wlan0. Здесь вы можете найти, как переименовать сетевую карту в Linux. Просто отметьте, что в этой статье они переименовали интерфейс в «wan0», а я переименовал его в wlan0 .

И вот сетевая часть моего конфигурационного файла .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}

И, наконец, несколько дополнительных команд для отображения и удаления возможностей (частичных и категоризированных корневых привилегий) из (исполняемый / двоичный) files:

Вы можете узнать разрешения, которые есть у каждого файла, выполнив следующую команду:

getcap filepath/filename

И удалить все разрешения (возможности) файла:

setcap -r filepath/filename
0
ответ дан 26 September 2013 в 20:48

Между прочим, на всякий случай кто-то не заметил и если это может помочь: не забывайте удалять любые наклонные черты после wlan0 в .conkryc файл. Примеры:

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

Если ни у кого нет наклонных черт после wlan0, затем без проблем, но я должен был удалить наклонные черты в моем .conkyrc файл или иначе Носатый не показал бы сеть upspeedf (точно так же для downspeedf) - даже после следования сообщению Metallica.

2
ответ дан 26 September 2013 в 20:48

Вот то, что я сделал для решения проблемы: сначала я получил свое название беспроводного адаптера с помощью этой команды:

ifconfig

Мое название беспроводного адаптера wlp2s0 Таким образом, я изменился wlan0 кому: wlp2s0 и проблемы решены.

можно следовать за основным потоком здесь.

Я использую Lubuntu 16.04

0
ответ дан 26 September 2013 в 20:48

Другие вопросы по тегам:

Похожие вопросы: