четверг, 13 января 2011 г.

Отмечаем опцию "Enable Wireless" в NetworkManager апплете программно

В последнее время на разных дистрибутивах (openSUSE 11.3, Jolicloud 1.1) заметил интересную проблему. В апплете NetworkManager'а по дефолту не выбрана опция "Enable Wireless", хотя все необходимые драйвера и прошивки для работы устройства беспроводной связи были установлены. И если в openSUSE 11.3 я не особо размышлял о решении этой проблемы и вручную включал устройство, то пересев на Jolicloud мне захотелось понять почему так происходит и найти решение.

Не скажу, что я понял, почему NetworkManager 0.8 автоматически выключает эту опцию, но зато я нашел, как этому противостоять. Решение оказалось очень простым, просто нужно отправить сообщение по dbus, которое включит "Enable Wireless":

dbus-send --system --type=method_call --dest=org.freedesktop.NetworkManager \
/org/freedesktop/NetworkManager org.freedesktop.DBus.Properties.Set \
string:org.freedesktop.NetworkManager string:WirelessEnabled variant:boolean:true

Дальше я добавил эту команду в автозагрузку ДЕ (System -> Preferences -> Startup Applications в Jolicloud, например) и при входе в систему теперь получаю автоматически работающее беспроводное соединение. Мелочь, а приятно!

зы. Если вы наоборот хочете автоматически выключить устройство беспроводной связи, то посылайте это же сообщение, только с false вместо true в конце.

зыы. Решение подсмотрел здесь и здесь.

Добавляем сторонние PPA репозитории в Jolicloud 1.1 или Joli OS 1.2

Последнюю неделю играюсь на своем Lenovo S12 с Jolicloud 1.1. Впечатления практически сугубо положительные. Очень удобный дистрибутив для людей, проводящих очень много времени в интернете.

Единственное, что раздражало пару дней было отсутствие нового Gajim'а. Не секрет, что Jolicloud 1.1 построен на основе Ubuntu Lucid Lynx, а в нем версия Gajim'a уж очень стара на текущий момент - 0.13.2 (да и иконка не поддерживала полупрозначности и выбивалась из общего стиля системного лотка). В то же время, новая версия этого замечательного джаббер-клиента была доступна в репозитории ppa:gajim/gajim-ppa. Пойдя путем найменьшего сопротивления, я было попытался добавить этот репозиторий, стандартно для Убунту:

# add-apt-repository ppa:gajim/gajim-ppa

но меня ожидал облом:

Traceback (most recent call last):
  File "/usr/bin/add-apt-repository", line 40, in 
    sp = SoftwareProperties(options) 
  File "/usr/lib/python2.6/dist-packages/softwareproperties/SoftwareProperties.py", line 90, in __init__
    self.reload_sourceslist()
  File "/usr/lib/python2.6/dist-packages/softwareproperties/SoftwareProperties.py", line 538, in reload_sourceslist
    self.distro.get_sources(self.sourceslist)    
  File "/usr/lib/python2.6/dist-packages/aptsources/distro.py", line 90, in get_sources
    raise NoDistroTemplateException("Error: could not find a "
aptsources.distro.NoDistroTemplateException: Error: could not find a distribution template

Вручную задать версию Убунту add-apt-repository не позволяет. Потому пришлось идти долгим путем. Для начала добавляем репозиторий в файл /etc/apt/sources.list.d/ubuntu.list (удобно в конце файла создать условный блок для всех сторонних репозиториев):

deb http://ppa.launchpad.net/gajim/gajim-ppa/ubuntu lucid main 
deb-src http://ppa.launchpad.net/gajim/gajim-ppa/ubuntu lucid main

А затем вручную добавляем ключ (находится на странице репо, блок Signing key) при помощи:

# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 00EECF10

Дальше, все легко, на арену выходит aptitude и без проблем обновляет gajim, который после обновления получает иконку в системном лотке с прозрачностью, ну и возможность общаться голосом/видео посредством вашего Jabber-аккаунта.

Аналогично вы можете добавлять и любые другие репозитории, которые совместимы с Lucid Lynx. И это позволяет превратить Jolicloud в операционную систему общего предназначения, а не только для интернет-сёрферов :)


Добавлено 15 апреля 2011 г. Описанный в посте метод работает и для новой Joli OS 1.2, которая все также построена на пакетной базе Ubuntu 10.04 Lucid Lynx.