воскресенье, 7 октября 2012 г.

Пара моментов с которыми мне пришлось столкнуться при апгрейде ноутбука на Debian Wheezy

В этом посте я хочу поделиться парой моментов, с которыми мне пришлось столкнуться в процессе апгрейда моего ноутбука на Debian Wheezy.

Для начала я перешел на использование LVM2. Я уже упоминал об этом в предыдущем посте, но вкратце повторюсь. После миграции на LVM2 раздел подкачки переехал на лочический том и прошлая схема работы suspend2disk перестала работать. Для починки достаточно прописать в /etc/initramfs-tools/conf.d/resume правильный путь к логическому тому. У меня это /dev/laptop/swap, а значит добавляем нужную запись и обновляем initramfs.

$ echo RESUME=/dev/mapper/laptop-swap | sudo tee /etc/initramfs-tools/conf.d/resume
$ sudo update-initramfs -u

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

$ sudo hdparm -B /dev/sda

/dev/sda:
 APM_level    = 127

Если полученное значение равно 127, то его желательно сменить на 254. Однако проблема не в том, что установлена неверная политика, а в том, то не применились мои настройки hdparm, которые замечательно работали в squeeze. В /etc/hdparm.conf у меня жесткий диск был описан секцией

/dev/disk/by-id/ata-ST9160310AS_5SV0J5PE {
        apm = 254
        spindown_time = 60
}

Немного покопавшись в потрохах hdparm была найдена новая опция apm_battery которую я также добавил в конфиг. Передернув зарядное я так и не увидел изменение в поведении. В качестве последней догадки я попробовал сменить /dev/disk/by-id/ata-ST9160310AS_5SV0J5PE на /dev/sda. Вот тогда и заработало применение параметров. Скорее всего причина кроется в обработке события от UDEV, который вызывает /etc/init.d/hdparm hotplug.

Следующим шагом была наладка ACPI. В squeeze я пользовался eeepc-acpi-scripts для работы ACPI кнопок (звук, яркость, переключение экранов, etc), но после апгрейда на wheezy работа этих скриптов стала не очень. Часть функций перестало работать, а часть теперь возложено на acpi-support.

Разбираться в причинах поломки было лениво и тем более я решил попробовать xfce4 в качестве замены своему самопальному десктопу на базе openbox, tint2 и прочих мелочей. Удалив acpi-support, eeepc-acpi-scripts и все, что притянулось вместе с ними, я поставил xfce4-power-manager и не пожалел об этом.

Следующим моментом, с которым я столкнулся, был неработающий тачпад. В качестве быстрого фикса я переименовал /etc/X11/xorg.conf и перезапустил иксы. Тачпад заработал, но не работали "левый", "средний" и "правый" клики. Чтобы настроить поведение тачпада был добавлен /etc/X11/xorg.conf.d/10-synaptics.conf

Section "InputClass"
       Identifier "touchpad catchall"
       Driver "synaptics"
       MatchIsTouchpad "on"
       MatchDevicePath "/dev/input/event*"
           Option "TapButton1" "1"
           Option "TapButton2" "2"
           Option "TapButton3" "3"
EndSection

Дальше больше, стало очевидным, что интерфейс многих программ до апгрейда был значительно отзывчивее. Немного покурив /var/log/Xorg.0.log  я заметил, что сейчас используется акселерация UXA (а раньше была EXA) и вернуть прежнее поведение уже не получится (новый драйвер не поддерживает старую архитектуру). В интернете нагуглилось, что на смену UXA идет архитектура акселерации SNA (но она сейчас еще считается экспериментальной). Терять мне особо нечего, поэтому добавил /etc/X11/xorg.conf.d/20-video.conf

Section "Device"
 Identifier "Video0"
 Driver "intel"
 Option "AccelMethod" "sna"
EndSection

и перезагрузил иксы. После этой модификации скорость работы интерфейса значительно возросла. Правда за неделю работы я пару раз видел артефакты. Чтобы попробовать решить  этой проблему я обновил xserver-xorg-video-intel до версии, которая была в experimental и пока глюков не замечал (хотя вполне возможно, что прошло мало времени).


Последней проблемой стала неверная отрисовка виджета QSpinButton в Qt4. Я спрашивал помощи в рассылке debian-russian, где меня натолкнули на мысль что отрисовка виджетов зависит от движка используемой темы. Поскольку у меня стоит среда XFCE, то Qt4 использует движок GTK+. Чтобы проверить эту догадку, я поставил gtk2-engines-oxygen, gtk3-engines-oxygen и kde-style-oxygen. После выбора нужной темы в настройках интерфейс пришел в норму. Для единообразия внешнего вида я доустановил libreoffice-style-oxygen и oxygencursors. Теперь внешний вид большинства приложений выглядит одинаково.

Пожалуй будет нелишним указать, где меняется настройка оформления приложений KDE, когда не стоит сам KDE. Для этого нужно запустить

$ kcmshell4 icons

Возможно еще нужно выполнить после этого

$ kbuildsycoca4 --noinremental

чтобы обновить конфигурацию KDE.

Последним штрихом стала оптимизация энергопотребления ноутбука. Свежий билд powertop выдал значительное количество оптимизаций, которые можно сделать для моего ноута.

Навскидку было сделано:
  • включение энергосбережения в snd-hda-intel (пропало после удаления eeepc-acpi-scripts);
  • отключение WOL для сетевой карт (добавлен параметр "ethernet-wol d" в /etc/network/interfaces);
  • включение управления питанием шины PCI-E.

Включение автоматического управления питанием делается через правило UDEV
$ cat /etc/udev/rules.d/10-runtime-pm.rules 
SUBSYSTEM!="pci", GOTO="power_runtime_rules_end"
ACTION!="add", GOTO="power_runtime_rules_end"

KERNEL=="????:??:??.?"
PROGRAM="/bin/sleep 0.1"

ATTR{power/control}=="*", ATTR{power/control}="auto"

LABEL="power_runtime_rules_end"

Кажется на этом и заканчивается все, что пришлось сделать в процессе апгрейда.

Комментариев нет:

Отправить комментарий