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

Wine 1.5.16 для Debian Squeeze/Wheezy

Сегодня залил в репозиторий Wine 1.5.16. Список изменений можно увидеть тут. Собраны бинарные пакеты для Debian Squeeze и Wheezy (только i386).

Меньше часа без электричества в XXI веке - размышления

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

Любопытно, что отключение совпало с началом просмотра сериала Revolution/Революция в котором описывается мир после глобального отключения электричества. Если переложить сюжет на мой случай, то оказывается не все так плохо при краткосрочном отключении.

Газоснабжение позволяет приготовить/разогреть ужин. Внушительный запас батареек и несколько фанариков позволят не сидеть в полной темноте. Где-то есть запас свечей и спичек, но не искали по причине наличия фонариков. Вчера выпал первый снег и если немного побыть в темноте, то вполне хватает отраженного уличного света.

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

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

Из неприятного было замечена смерть аккумулятора в ИБП - комп и пискнуть не успел как ИБП отключил нагрузку. Вроде такие аккумуляторы можно исправить, если просто долить в них дистилированной воды, но нет желания вскрывать необслуживаемую батарею и мучиться с доливкой. Я уже заказал новую, но сборку свежей версии Wine придется перезапускать руками. Уже после включения электричества (спасибо электрику, который живет где-то рядом и быстро устранил проблему) я решил почистить /var/cache/pbuilder/build и вместо
$ sudo pbuilder --clean 
сковбойничал и выполнил
$ sudo rm -fr --one-filesystem /var/cache/pbuilder
(почему-то отвлекся и не добавил /build/*). Остаток вечера ушел на восстановление работоспособности midnight commander buildbot. А случилось это из-за того, что на сервере который хранит все бэкапы, нет бэкапа этого же сервера - позор мне!

Еще один вывод, который напросился после отключения - вся квартира подключена на одну фазу а значит у меня есть возможность попробовать Powerline если мне станет нехватать 300Mbit по wi-fi.

пятница, 26 октября 2012 г.

среда, 17 октября 2012 г.

Ошибка обновления vzctl на RHEL/CentOS 5.x - решение

После выхода vzctl-4.0 появилась проблема с обновлением vzctl на RHEL/CentOS 5.x. Ошибка выглядит примерно так

# yum upgrade vzctl
Loaded plugins: dellsysid, fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.fdcservers.net
 * centosplus: mirror.beyondhosting.net
 * extras: mirror.sanctuaryhost.com
 * openvz-kernel-rhel5: mirror.fdcservers.net
 * openvz-utils: mirror.fdcservers.net
 * updates: mirror.wiredtree.com
Setting up Upgrade Process
Resolving Dependencies
--> Running transaction check
---> Package vzctl.x86_64 0:4.0-1 set to be updated
--> Processing Dependency: vzctl-core = 4.0-1 for package: vzctl
--> Processing Dependency: vzquota >= 3.1 for package: vzctl
--> Processing Dependency: libcgroup.so.1()(64bit) for package: vzctl
--> Processing Dependency: libvzctl-4.0.so()(64bit) for package: vzctl
--> Running transaction check
---> Package libcgroup.x86_64 0:0.38-1 set to be updated
---> Package vzctl-core.x86_64 0:4.0-1 set to be updated
---> Package vzquota.x86_64 0:3.1-1 set to be updated
--> Processing Conflict: vzctl conflicts ploop-lib < 1.5-1
--> Restarting Dependency Resolution with new changes.
--> Running transaction check
--> Processing Dependency: ploop-lib = 1.4 for package: ploop
---> Package ploop-lib.x86_64 0:1.5-1 set to be updated
--> Running transaction check
---> Package ploop.x86_64 0:1.5-1 set to be updated
--> Processing Conflict: ploop-lib conflicts vzkernel < 2.6.32-042stab061.1
--> Finished Dependency Resolution
ploop-lib-1.5-1.x86_64 from openvz-utils has depsolving problems
  --> ploop-lib conflicts with ovzkernel
Error: ploop-lib conflicts with ovzkernel
 You could try using --skip-broken to work around the problem
 You could try running: package-cleanup --problems
                        package-cleanup --dupes
                        rpm -Va --nofiles --nodigest

Вчера в блоге OpenVZ нашлось решение этой проблемы. Если кратко то решение выглядит так:

# yum shell
> remove ploop ploop-lib
> update vzctl
> run

Поскольку поддержка ploop есть только в ядрах для RHEL/CentOS 6.x, то ploop можно смело удалить в RHEL/CentOS 5.x.

понедельник, 15 октября 2012 г.

Собрал Wine 1.5.15 для Debian

Собрал свежий релиз Wine 1.5.15 для Debian Squeeze и Debian Wheezy (только i386). Список изменений для новой версии. Установить можно из моего репозитария.

Проблемы с ipv6

Сегодня не удалось обновить систему из-за ошибки

E: Не удалось получить http://ftp.debian.org/debian/pool/main/e/eglibc/libc-bin_2.11.3-4_i386.deb: Невозможно инициализировать соединение с ftp.debian.org:80 (2001:610:1908:b000::148:12). - connect (101: Сеть недоступна) [IP: 2001:610:1908:b000::148:12 80]
E: Не удалось скорректировать недоступность пакетов

Раньше такой проблемы не было. Поскольку ipv6 у меня не настроен (есть только локальный адрес), то нужно либо отключить ipv6 целиком (требует перезагрузки, если я правильно помню) или покрутить ручки в резолвере. Для себя я выбрал последний вариант.

Для того, чтобы резолвер предпочитал ipv4 нужно в /etc/gai.conf раскомментировать строку

precedence ::ffff:0:0/96  100

После этого все работает как положено.

воскресенье, 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"

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

пятница, 5 октября 2012 г.

Свежие версии Wine для Debian

Какое-то время я пользовался Visio, запуская его в стареньком Windows XP на виртуальной машине. Позже мне надоело заниматься этим мазохизмом ради одного приложения и я собрал свежий Wine.

Поскольку сейчас на большинстве своих компьютеров я использую Debian Squeeze, то последняя дистрибутивная версия wine, котороя доступна для этого выпуска - 1.0.1. По меркам развития Wine это очень старая версия.

Для Debian есть неофициальная сборка от Kai Wasserbäch, но версия все равно старовата (сейчас там 1.5.5). Чтобы не слишком морочиться с пакетированием, я взял за основу его сборку и пересобрал ее со свежими исходниками.

Сейчас в моем репозитарии доступна версия 1.5.14 для Debian Squeeze и Wheezy (только i386). Для Squeeze есть более старые версии, но я сомневаюсь что они пригодятся кому-нибудь.