Uniвсячина

понемножку о Linux и программировании

Тормоза в Ubuntu 8.10 (Intrepid)

Многие жалуются, что Ubuntu 8.10 тормозит гораздо сильнее чем 8.04. Причину тормозов зовут powernowd. По умолчанию, в intrepid включен этот демон, призванный уменьшать энергопотребление. Работает на дефолтных настройках он весьма криво, так как не успевает отслеживать моменты повышения нагрузки. Поэтому, если вы работаете на десктопе, то можете смело удалять данный пакет (или выключить через sudo update-rc.d -f powernowd remove).

Если вы на ноутбуке и энергию беречь таки надо, то измените в /etc/default/powernowd значение OPTIONS на "-q -p 100". Это заставит powernowd проверять нагрузку на процессор каждые 100 миллисекунд. По умолчанию он это делает раз в секунду. После изменения OPTIONS, естественно надо перезагрузить powernowd:

sudo invoke-rc.d powernowd restart

Препроцессор для Iptables

Я вполне хорошо знаю и умею пользоваться iptables, но не могу сказать, что написание сложных правил доставляет мне удовольствие, в отличие от того же pf. GUI для iptables меня обычно либо вводят в шок (например, fwbuilder просто вынес мне мозг, предоставив писать правила для iptables, как обычно, только мышкой), либо не дают всех нужных возможностей, которые есть в iptables.

На днях, наткнулся на совершенно замечательный препроцессор для iptables, который позволяет описывать правила на более высоком уровне. Что абсолютно радует, это человекочитаемость полученного конфига. В общем, я влюбился в эту программу. Зовется она ferm, подробно о ней можно почитать на домашней страничке проекта. Проект активно развивается, последняя версия выходила в этом месяце.

Чтобы вы сразу прониклись, красотой этой программы, кидаю свой конфиг /etc/ferm/ferm.conf с моего десктопного компа:

Gnome-апплет для мониторинга ADSL-модема

В инет я выхожу через телефонную линию отвратительного качества. Исходящая скорость на ADSL-порте скачет от 400кбит/c (это бывает крайне редко) до 32кбит/c (тоже нечасто, но очень неприятно). Чтобы не гадать из-за чего у меня тормозит интернет, накропал gnome-апплет, который мониторит скорость порта через веб-интерфейс модема.

Настройки прошиты жестко в коде, ибо делать по другому было лень. Поддерживается только мой модем – DLink-2500U. Пакета нет, установка на Ubuntu вручную:

sudo apt-get install ruby-gnome2 
rake libgail-gnome-module
git clone git://github.com/antage/adsl-watcher-applet.git
cd adsl-watcher-applet
sudo rake install

Если не понравилось, можно сделать:

sudo rake uninstall

Исходный код тут.

В процессе написания апплета, узнал для себя пару особенностей:

  1. Без иконки ваш апллет не появится в меню “Add to panel”.
  2. После установки апллета, лучше перелогиниться, иначе опять есть шанс не увидеть свой апплет в меню “Add to panel”.

UPDATED: я удалил репозитарий на github в виду неактуальности проекта.

Vim: узелки на память

Какие команды на какой кнопке: vi/vim graphical cheet sheet

Работа с буфером X-ов:

  1. Вставка из буфера иксов, выделение: "*p
  2. Вставка из буфера иксов, скопированное: "+p
  3. Копирование в буфер иксов: "+y

Взято из комментариев к этому посту.

Книжки про Vim:

  1. Vim Book, Steve Oualline
  2. A Byte of Vim, Swaroop C.H.

Драйвер для Atheros WiFi-чипсетов через DKMS

У меня на ноутбуке (Samsung R25) стоит wifi-карточка на чипсете “Atheros AR242x”. Сия карточка успешно работает под линуксом на драйвере mad-wifi. Но вот незадача, после каждого обновления ядра (а в убунте они случаются часто) приходиться перекомпилировать и переинсталлировать данный драйвер. Прочитав намедне статью про DKMS, вдохновился на повторение описанного опыта.

Ставим DKMS:

sudo apt-get install dkms

Качаем и распаковываем исходники драйвера:

cd
wget http://snapshots.madwifi-project.org/madwifi-hal-0.10.5.6/madwifi-hal-0.10.5.6-r3875-20081105.tar.gz
sudo tar xzf madwifi-hal-0.10.5.6-r3875-20081105.tar.gz -C /usr/src/

Создаем конфиг модуля в файле /usr/src/madwifi-hal-0.10.5.6-r3875-20081105/dkms.conf:

PACKAGE_NAME="madwifi-hal"
PACKAGE_VERSION="0.10.5.6-r3875-20081105"

AUTOINSTALL="yes"

BUILT_MODULE_NAME[0]="ath_pci"
BUILT_MODULE_LOCATION[0]="ath/"
DEST_MODULE_LOCATION[0]="/kernel/net/"

BUILT_MODULE_NAME[1]="ath_hal"
BUILT_MODULE_LOCATION[1]="ath_hal/"
DEST_MODULE_LOCATION[1]="/kernel/net/"

BUILT_MODULE_NAME[2]="ath_rate_sample"
BUILT_MODULE_LOCATION[2]="ath_rate/sample/"
DEST_MODULE_LOCATION[2]="/kernel/net/"

BUILT_MODULE_NAME[3]="ath_rate_minstrel"
BUILT_MODULE_LOCATION[3]="ath_rate/minstrel/"
DEST_MODULE_LOCATION[3]="/kernel/net/"

BUILT_MODULE_NAME[4]="ath_rate_amrr"
BUILT_MODULE_LOCATION[4]="ath_rate/amrr/"
DEST_MODULE_LOCATION[4]="/kernel/net/"

BUILT_MODULE_NAME[5]="ath_rate_onoe"
BUILT_MODULE_LOCATION[5]="ath_rate/onoe/"
DEST_MODULE_LOCATION[5]="/kernel/net/"

BUILT_MODULE_NAME[6]="wlan"
BUILT_MODULE_LOCATION[6]="net80211/"
DEST_MODULE_LOCATION[6]="/kernel/net/"

BUILT_MODULE_NAME[7]="wlan_scan_ap"
BUILT_MODULE_LOCATION[7]="net80211/"
DEST_MODULE_LOCATION[7]="/kernel/net/"

BUILT_MODULE_NAME[8]="wlan_scan_sta"
BUILT_MODULE_LOCATION[8]="net80211/"
DEST_MODULE_LOCATION[8]="/kernel/net/"

BUILT_MODULE_NAME[9]="wlan_tkip"
BUILT_MODULE_LOCATION[9]="net80211/"
DEST_MODULE_LOCATION[9]="/kernel/net/"

BUILT_MODULE_NAME[10]="wlan_xauth"
BUILT_MODULE_LOCATION[10]="net80211/"
DEST_MODULE_LOCATION[10]="/kernel/net/"

BUILT_MODULE_NAME[11]="wlan_wep"
BUILT_MODULE_LOCATION[11]="net80211/"
DEST_MODULE_LOCATION[11]="/kernel/net/"

BUILT_MODULE_NAME[12]="wlan_ccmp"
BUILT_MODULE_LOCATION[12]="net80211/"
DEST_MODULE_LOCATION[12]="/kernel/net/"

BUILT_MODULE_NAME[13]="wlan_acl"
BUILT_MODULE_LOCATION[13]="net80211/"
DEST_MODULE_LOCATION[13]="/kernel/net/"

Добавлем драйвер в DKMS:

sudo dkms add -m madwifi-hal -v 0.10.5.6-r3875-20081105

Собираем и инсталлируем:

sudo dkms build -m madwifi-hal -v 0.10.5.6-r3875-20081105
sudo dkms install -m madwifi-hal -v 0.10.5.6-r3875-20081105

Готово!

Мне удачно подвернулся апдейт ядра с 2.6.27-7 на 2.6.27-8 для проверки. Проверка показала полную работоспособность DKMS. При установке нового пакета с ядром, драйвер был перекомпилирован и переустановлен автоматически.