воскресенье

 

COPEAC R.I.P.

28 Jan 2012
Effective immediately Copeac.com has ceased all operations.
Помянем добрым словом и отправим в последний путь очередную партнерку.

Ярлыки:


суббота

 

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:


  • OpenSuSe 11.4 и старый матричный принтер

  • OpenSuSe 11.4 и встроенные видеокарты Intel

  • Переход на OpenSuSe 11.4
  • Ярлыки: , ,


    четверг

     

    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");
    ?>
    

    Несмотря на то, что пользователь уже перенаправлен в другое место, скрипт будет работать еще минуту и в логи запишет все, что надо.

    Ярлыки: ,