Грозный гиббон
или Kubuntu 7.10 на Asus A3L

Введение

Asus A3500L, он же A3L - самый дешевый ноутбук из серии A3. Чипсет i852 со встроенным видео, звуком и прочим всем, чем можно. Экран 1024x768 15''. Винт на 40 Гб.

Kubuntu 7.10, он же Kubuntu Gutsy Gibbon (переведем как Грозный Гиббон), он же основанный на KDE дистрибутив Ubuntu - вышел в октябре 2007 года.

Здесь будут описаны проблемы, возникшие в результате установки этой операционной системы на этот ноутбук. Некоторые из них относятся к настройке Ubuntu для работе с ноутбуками вообще, некоторые - вообще к настройке и использованию этой операционной системы, некоторые могут иметь отношение к улучшению работы какого-либо ПО.

Про работу предыдушей версии Kubuntu (Feisy Fawn) на этом ноутбуке, можно прочитать в предыдущей статье. Про Debian также была статья.

Обновление

Kubuntu был обновлен с предыдущей версии. Понадобился Интернет через выделенную линию с "анлимитным" тарифом. Скорости в 64 кбит/с оказалось достаточно, чтобы выкачать около полутора гигабайт обновлений, хотя процесс и занял весьма продолжительное время.

"Стандартный" способ обновления, описанный на официальном сайте, не сработал. sources.list обновился, пакеты скачались, но при установке произошла ошибка. Пришлось запускать apt-get upgrade вручную. В этом случае процесс выглядит гораздо более подробным, и если какой-нибудь скрипт требует взаимодействия, это взаимодействие можно осуществить.

Ядро стало 2.6.22.

Видео

Наткнулся на странный и трудновоспроизводимый баг, выражающийся в падении X сервера при возпроизведении в Kaffeine некоторых видео-файлов. (А падение X сервера, оказывается, отвратительная штука: прощай сессия и несохраненные изменения :( )

Оказывается, я пользовался устаревшим (для Gutsy) драйвером видео-карты. Вместо драйвера "i810" следует использовать драйвер "intel", и секция файла /etc/X11/xorg.conf должна выглядеть так:

Section "Device"
        Identifier      "Intel Corporation 82852/855GM Integrated Graphics Device"
#       Driver          "i810"
        Driver          "intel"
        BusID           "PCI:0:2:0"
EndSection

Баг вроде не повторяется...

***

И все-таки повторился, немного по другому, и уже с драйвером "intel". Будем ждать исправления.

Wi-Fi

Чудом (спасибо Iri) приобрел мини-PCI Wi-Fi карточку Intel 2200BG. Работает "из коробки". Используется модуль ядра ipw2200, беспроводный сетевой адаптер видится как eth1 (eth0 - это "проводной" Ethernet). Сочетание клавиш Fn+F2, которое включает и выключает Wi-Fi, успешно работает. С точки зрения Линукса это выглядит как выдергивание кабеля из обычного Ethernet: интерфейс поднят, а линк - то есть, то нет.

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

Осталось включить шифрование.

WEP

Устаревший и небезопасный вариант шифрования, тем не менее, в некоторых старых точках доступа имеется только он. Ключом шифрования выступает 64 или 128 битное число, известное точке доступа и клиенту. Можно указать HEX код или ASCII строку.

Все, что связано с WEP, содержится в пакете wireless-tools. Утилита iwconfig показывает много интересных и полезных параметров, а также позволяет произвести найстройку интерфейса (собственно, указать SSID и ключ шифрования). Но мне было проще и удобнее отредактировать файл /etc/network/interfaces, получилось так:

auto eth1
iface eth1 inet static
address 192.168.0.2
netmask 255.255.255.252
gateway 192.168.0.1
wireless-essid my-ssid
# 26 HEX цифр или ASCII пароль (префикс "s:" в пароль не входит)
wireless-key 01234567890123456789012345
#wireless-key s:mypassword
wireless-keymode restricted

Подробности читайте в файле /usr/share/doc/wireless-tools/README.Debian.

WPA

Гораздо более правильный вариант шифрования. На самом деле тут есть целая куча вариантов, но мы остановимся на том, что в точке доступа называется "WPA-PSK/WPA2-PSK". Ключ шифрования здесь тоже задается в виде HEX кода (64 разряда) или ASCII пароля (32 символа) в точке доступа и на клиенте.

Для работы с WPA имеется пакет wpasupplicant. Тем не менее, утилита iwconfig остается полезной, ибо показывает MAC-адрес точки доступа и уровень сигнала. Есть еще и пакет kwlan, который представляет собой frontend для wpasupplicant, но я им не пользовался.

Вообще-то wpa_supplicant - это демон, который умеет искать доступные Wi-Fi сети и настраивать сетевые адаптеры. Но в Debian, все весьма удобно встроено в стандартные скрипты сетевых настроек. Так что /etc/network/interfaces теперь выглядит так:

auto eth1
iface eth1 inet static
address 192.168.0.2
netmask 255.255.255.252
gateway 192.168.0.1
# внимание! ssid, а не essid, как в предыдущем случае
wpa-ssid my-ssid
# здесь можно указать MAC-адрес точки доступа
#wpa-bssid aa:bb:cc:dd:ee:ff
# 64 HEX цифры или ASCII пароль (нет префиксов)
wpa-psk 0123456789012345678901234567890123456789012345678901234567890123
# следующие два параметра нужны, если наш SSID скрыт
#wpa-ap-scan 2
#wpa-scan-ssid 1

В процессе "подбора" настроек наткнулся на проблему подключения к точке доступа со скрытым SSID. А наша точка доступа таковой и является. В документации сказано, что необходимо установить параметры wpa-ap-scan и wpa-scan-ssid, и что сканирование может занять много времени. Мне это не помогло (может, не дождался окончания сканирования), установить соединение получалось только различными манипуляциями через клиент wpa_cli (запускать от root). "Открыл" SSID и проблема исчезла. Ну что ж, пусть будет открытым.

Подробности читайте в файле /usr/share/doc/wpasupplicant/README.modes.gz.

Есть еще баг, выражающийся в том, что wpa_supplicant не запускается при первом старте системы, и, соответственно, соединение не устанавливается. Лечится правкой /etc/udev/rules.d/85-ifupdown.rules и /etc/init.d/networking. Оригинальный патч у меня не применился, мой же получился такой:

--- /etc/init.d/networking
+++ /etc/init.d/networking  2008-01-11 20:45:18.000000000 +0600
@@ -10,10 +10,18 @@

 PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"

+INIT_FLAG=/var/run/network/initialized
+
 [ -x /sbin/ifup ] || exit 0

 . /lib/lsb/init-functions

+net_flag_up () {
+   touch $INIT_FLAG > /dev/null 2>/dev/null || true
+}
+net_flag_down () {
+   rm -f $INIT_FLAG > /dev/null 2>/dev/null || true
+}

 case "$1" in
 start)
@@ -33,6 +41,7 @@
        fi
    fi
         type usplash_write >/dev/null 2>/dev/null && usplash_write "TIMEOUT 15" || true
+   net_flag_up
    ;;

 stop)
@@ -56,12 +65,15 @@
        log_action_end_msg $?
        fi
    fi
+   net_flag_down
    ;;

 force-reload|restart)
    log_action_begin_msg "Reconfiguring network interfaces"
    ifdown -a --exclude=lo || true
+   net_flag_down
    if ifup -a --exclude=lo; then
+       net_flag_up
        log_action_end_msg $?
    else
        log_action_end_msg $?
--- /etc/udev/rules.d/85-ifupdown.rules
+++ /etc/udev/rules.d/85-ifupdown.rules 2008-01-11 20:41:41.000000000 +0600
@@ -3,7 +3,7 @@
 # removable.
 # See udev(7) for syntax.

-SUBSYSTEM=="net", DRIVERS=="?*", GOTO="net_start"
+SUBSYSTEM=="net", TEST=="/var/run/network/initialized", GOTO="net_start"
 GOTO="net_end"

 LABEL="net_start"

Фотоаппарат как USB Mass Storage Device

Есть фотоаппарат Panasonic DMC-LZ5. Этот фотоаппарат может работать с компьютером в двух режимах: "PictBridge(PTP)" и "PC".

В первом случае аппарат определяется как "USB Imaging Interface" и digiKam успешно скачивает фотографии. А вот видео нет.

gelin@asus:/$ lsusb
...
Bus 001 Device 002: ID 04da:2374 Panasonic (Matsushita)
...

Во втором случае фотоаппарат определяется нашим KDE дважды:

gelin@asus:/$ lsusb
...
Bus 001 Device 003: ID 04da:2372 Panasonic (Matsushita) Lumix DMC-FZ10 Camera
...

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

Предполагаю, что такое плохое поведение в режиме "PC" вызвано именно неправильным определением USB устройства. Ковыряюсь в конфигурации udev, hal и libgphoto2. Проблема не решена.

Красивости

Почтовая лампочка для KMail

Если вот такой скрипт:

#!/bin/sh

DCOP="/usr/bin/dcop"
FOLDER="/inbox"
KMAIL="kmail KMailIface"
MLED="/proc/acpi/asus/mled"

echo 1 > $MLED

UNREAD=1
while [ $UNREAD -gt 0 ]
do
    sleep 5
    UNREAD=$($DCOP $($DCOP $KMAIL getFolder $FOLDER) unreadRecursiveMessages)
done

echo 0 > $MLED
запускать в обработчике события на получение новых писем, то красивая синяя лампочка будет загораться, когда придут новые письма, и будет гаснуть, когда письма будут прочитаны. Подробности расписаны в отдельной статье.

Denis Nelubin, Jan 2008
Creative Commons License This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License.