суббота
OpenSuSe 11.4 и некорректное размонтирование дисков при выключении
Не так давно заметил багу. При включении OpenSuSe 11.4 замечал, что иногда диски определялись как некорректно выключенные (Transaction replayed ...). И подумал, а что за хрень, почему это происходит?
Оказалось, что при выключении компьютера скрипты выполняются параллельно, и иногда выключение происходит до того, как раздел диска был корректно размонтирован. Эта бага лечится очень просто, надо лишь отключить параллельный запуск скриптов, т.е. в файле /etc/sysconfig/boot прописать RUN_PARALLEL="no" (у меня этот параметр был установлен в "yes").
С тех пор диски размонтируются корректно при выключении
Старый ноутбук и KDE4
Есть у меня древний ноутбук (Dell Latitude L110 с 512Mb RAM), на который я установил OpenSuSe 11.4. В качестве оконного менеджера я с дуру поставил KDE4, о чем в последствии сильно пожалел. KDE4 штука красивая, но жутко требовательная к ресурсам - сам оконный менеджер стартует секунд 30, и съедает практически всю доступную память, и все приложения начинают дико тормозить
Оптимизировать KDE до определенных пределов можно, но все же это полумеры. Наиболее радикальным решением была бы смена оконного менеджера на что-нибудь более легковесное. И я решил попробовать icewm lite вместо KDE.
В OpenSuSe 11.4 сменить оконный менеджер очень легко, сначала через Yast надо его установить (там буквально 2-3 пакета), и далее редактором /etc/sysconfig в секции Desktop => Window manager => DEFAULT_WM заменить на icewm.
Запускаю иксы и удивляюсь - оконный менеджер загрузился моментально. Выглядит он, мягко говоря, по-спартански (в стиле Windows 95), эффектов графических нет, и благодаря этому примерно 256 мегабайт памяти было свободно. Ура, казалось бы, долгожданный эффект достигнут.
Однако две вещи меня не устроили. По умолчанию язык у меня был английский, и возможности переключения на русский не было. На привычные мне сочетания клавиш (Ctrl+Shift) оконный менеджер никак не реагировал.
Эта проблема решилась очень просто. Я создал конфигурационный файл /etc/X11/xorg.conf.d/90-keytable.conf следующего содержания:
Section "InputClass"
Identifier "LocalKeyboard"
MatchIsKeyboard "on"
Option "XkbLayout" "us,ru"
Option "XkbVariant" ",winkeys"
Option "XkbOptions" "grp:ctrl_shift_toggle"
EndSectionИ со следующего запуска иксов у меня стала нормально работать русская раскладка клавиатуры с переключением между языками по нажатию Ctrl+Shift.
Вторая проблема - отсутствие звука. В KDE у меня звук регулировался приложением kmix, и я его решил добавить в автозагрузку icewm, чтобы привычными горячими клавишами его включать, выключать и регулировать громкость.
Для этого я создал файл /etc/icewm/startup со следующим содержимым:
#!/bin/sh kmix &
На файл добавил права на исполнение:
# chmod a+x /etc/icewm/startup
И все. После запуска звук легко регулируется горячими клавишами (правда, в трее его не видно - но это уже мелочь).
Еще статьи об OpenSuSe 11.4:
Ярлыки: Linux, Интересное, Полезное
четверг
OpenSuSe 11.4 и старый матричный принтер
Так случилось, что есть у меня чудо буржуйской техники - древний, но все еще вполне рабочий принтер Epson LX 300+, который служит мне верой и правдой уже много лет. Решил я его подружить с OpenSuSe 11.4 - и тут обнаружил, что во-первых, принтер не определяется системой; и во-вторых, драйверов под него нет.
Выяснилось, что для автоматического определения принтера на порту LPT, необходимо, чтобы были загружены следующие модули ядра:
- parport
- parport_pc
- lp
Почему-то модуль lp по умолчанию не загружается в OpenSuSe 11.4, так что этот модуль надо поставить в автозагрузку (например, можно через Yast: Редактор /etc/sysconfig => System => Kernel => MODULES_LOADED_ON_BOOT или любым другим удобным способом).
С драйверами хуже, родных драйверов именно для этого принтера в OpenSuSe нет. Но вместо них прекрасно подходит Epson Dot Matrix driver (OpenPrintingPPD/ghostscript/Epson-Dot_Matrix.epsonc.ppd.gz), который доступен через кнопку "Пакеты драйверов".
пятница
Управление ответом в php скрипте
Однажды мне понадобилось отправлять ответ пользователю в браузер до завершения работы php-скрипта. Известно, что даже такой простой скрипт не отпустит посетителя со страницы в течение 20 секунд:
<?php
header("Location: http://www.bloged.org",TRUE,301);
sleep(20);
?>
Т.е. пока скрипт не завершит свою работу, по умолчанию результат не уйдет в браузер и редиректа не случится. Однако, это ограничение можно обойти, например так:
<?php
set_time_limit(80);
header("Location: http://www.bloged.org",TRUE,301);
header("Content-Length: 0");
header("Connection: close");
flush();
error_log("Это пишется сразу в лог\n", 3, "/ramdisk/log.txt");
sleep(60);
error_log("А это через минуту\n", 3, "/ramdisk/log.txt");
?>
Несмотря на то, что пользователь уже перенаправлен в другое место, скрипт будет работать еще минуту и в логи запишет все, что надо.
Ярлыки: Полезное, Программирование
понедельник
OpenSuSe 11.4 и встроенные видеокарты Intel
После перехода на OpenSuSe 11.4 я заметил, что видеокарта Radeon HD 5570 с пропиетарными драйверами ATI работает без нареканий; однако две других машины с интегрированными видеокартами Intel работали из рук вон плохо.
Во-первых, меня очень разочаровал мой ноутбук Dell Latitude L110 c видеокартой на чипсете Intel 915GM. Но не потому, что он плохой; а потому, что железо уже морально устарело (буку стукнуло 5 лет, которые он отслужил верой и правдой в боевых условиях), и поддержка некоторых фич прекращена с 1 квартала 2011 года. Это значит, что в следующих релизах операционных систем семейства Linux заставить карту работать будет все сложнее, и в конце концов случится то же, что и произошло с картой ATI Radeon X 1650, т.е. на оборудовании можно будет ставить крест.
Но на сегодняшний день эта карточка у меня завелась (хотя и со скрипом). Оживить ее можно так.
1. Обновляем до последних версий пакеты
xorg-x11-driver-video
xorg-x11-driver-intel-legacy
2. Сохраняем старый xorg.conf (на всякий случай):
# mv /etc/X11/xorg.conf /etc/X11/xorg.conf.old
В runlevel 3 (без иксов) запускаем конфигурилку X:
# X -configure
Он там подумает, и родит файл /root/xorg.conf.new. В нем надо внести некоторые исправления:
а) если драйвер определился как "intel", меняем его на "intellegacy":
Driver "intellegacy"
б) включаем DRI (у меня он был выключен после автоматического конфигурирования, и mplayer показывал видео только в маленьком окошке без возможности развернуть его на весь экран):
Option "DRI" "on"
в) Отключаем фичу, которая больше не поддерживается:
Option "XvMC" "off"
Потом копируем его в xorg.conf и запускаем иксы:
# cp /root/xorg.conf.new /etc/X11/xorg.conf
# startx
У меня после этого все заработало на ноутбуке. После этого проверил 3D ускорение:
$ glxinfo | grep direct
direct rendering: Yes
На второй машине у меня была другая видеокарта, но тоже интеловская (Intel Corporation 82865G Integrated Graphics Controller).
Сконфигурировал там xorg.conf аналогичным образом, и в результате X запустились, glxinfo показал direct rendering: Yes, a mplayer перестал работать.
Лечится исправлением видеодрайвера для mplayer:
# cat /etc/mplayer/mplayer.conf | grep gl2
vo=gl2,x11
Теперь и mplayer заработал на ура.
Ярлыки: Linux, Интересное, Полезное