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

Сборка ядра

Сборка ядра в debian очень простое занятие.
Шаг1 - подготорка
Для начала нужно установить следующие пакеты:
kernel-package,libncurses5-dev, fakeroot, wget, bzip2, build-essential и сами исходники ядра.
Пакеты устанавливаем так: apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential.
Скачиваем исходники, распковываем в /usr/src. Делаем ссылку linux на исходники.
tar xjf linux-2.6.21.3.tar.bz2
ln -s linux-2.6.21.3 linux
cd /usr/src/linux

Если у нас есть патчи то устанавливаем так:
bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run
bzip2 -dc /usr/src/patch.bz2 | patch -p1

Первая команда нужна для теста, 2-ая для установки. Никогда не вводите 2-ую если у вас успешно не выполнилась 1-ая.
Далее копируем наш теперешний конфиг в /usr/src/linux и пишем
make clean && make mrproper
cp /boot/config-`uname -r` /usr/src/linux/.config

Далее запускам конфигуратор:
make menuconfig

Шаг 2 - сборка и установка
После конфигурирования ядра - проинсталлируем его:
make-kpkg clean fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers

Где вместо -custom поставим нужную нам версию(или префикс). Например, -my-build
После выполнения команды в каталоге с исходниками вы найдете 2 файла с раширением *.deb. Нужно всего лишь установить их, например так:
dpkg -i linux-image-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.deb
dpkg -i linux-headers-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.deb


А Grub автоматом подхватит все необходимые настройки. Теперь можно перезагрузится с новым ядром, если при конфигурировании вы подключили все что надо ;)

Контроль за входом на сервер через SMS

Сегодня я хочу предложить такой способ котроля за входами на сервер как SMS.
Итак, что нам нужно: нам надо, чтобы при заходе определенного пользователя нам приходило смс сообщение во сколько и кто приконнектился.
Для чего это надо: очень часто доступ к серверам имеет только 1 человек - сисадмин. Поэтому если произошол несанкционированный коннект на сервер вы 1-ый об этом узнаете.
Решение. Для начала напишем простой скрипт на php для посылки почты. Назовем его alarm.php и поместим в любой удобный на нас каталог.
Код скрипта банально прост(в данном примере оператор beeline, у которого надо подключить соответствующую услугу для получения смс-кой всего что приходит на ваш Билайновский ящик):
#!/usr/bin/php
итак, открываем у того домашний каталог пользователя под которым вы коннетитесь на ssh сервер(надеюсь это не root ;)). Открываем файл ".bash_profile". И вписываем туда такие строки:
if [ 'tail -n 1 /var/log/secure | awk "{print substr(1,1,length)}"' != "192.168.1.13" ] ; then
/usr/local/bin/alarm.php;
fi;
Этими строками мы говорим: если произошел коннект на сервак с ip отличного от 192.168.1.13, то отослать предупреждающее sms. Сделано это для того чтобы не пугать себя лишний раз.

четверг, 25 октября 2007 г.

Что делать если в приложении кракозябры?

Можно попробовать и скорее всего это сработает запустить его например так:
debian:/# LANG=ru_RU.KOI8-R xmms

Как включить русский язык в Wine, WineX, Cedega?

Для Wine находим в домашней папке каталог .wine, для WineX каталог .trangaming.

В них открываем файл config.

И смотрим раздел [fonts] и [FontPatterns] (если последнее есть).

Пишем нечто вроде такого:

;; default TrueType fonts with russian koi8-r encoding
"Default" = "-monotype-arial-*-*-*--*-*-*-*-*-*-koi8-r"
"DefaultFixed" = "-monotype-courier new-*-*-*--*-*-*-*-*-*-koi8-r"
"DefaultSerif" = "-monotype-times new roman-*-*-*--*-*-*-*-*-*-koi8-r"
"DefaultSansSerif" = "-monotype-arial-*-*-*--*-*-*-*-*-*-koi8-r"
В новых версиях wine все настройки перенесены в реестр. Если файла config нет в каталоге ~/.wine - то с помощью regedit в ветви реестра HKCU\Software\Wine\X11 Driver\Fonts нужно создать ключи
"Default"="-monotype-arial-*-*-*--*-*-*-*-*-*-koi8-r"
"DefaultFixed"="-monotype-courier new-*-*-*--*-*-*-*-*-*-koi8-r"
"DefaultSansSerif"="-monotype-arial-*-*-*--*-*-*-*-*-*-koi8-r"
"DefaultSerif"="-monotype-times new roman-*-*-*--*-*-*-*-*-*-koi8-r"
Если ttf-шрифты не установлены, то скорее всего у вас есть шрифты cronyx, тогда русификация будет выглядеть так:
"Default" = "-cronyx-helvetica-"
"DefaultFixed" = "fixed"
"DefaultSerif" = "-cronyx-times-"
"DefaultSansSerif" = "-cronyx-helvetica-"
Как вариант, для WineX у меня работает такая настройка:
[fonts]
;Read documentation/fonts before adding aliases
"Resolution" = "96"
"Default" = "-cronix-times-"

[FontPatterns]
"Pattern0" = "-cronix-times*"
"Pattern1" = "-cronix-helvetica*"
"Pattern2" = "-cronix-courier*"
"Pattern3" = "-monotype-Arial-*-*-*--*-*-*-*-*-*-koi8-r"
С Cedega ситуация несколько изменилась. Если шрифты и локаль верно настроены, то с выводом русских символов не возникнет проблем. Как видно, изменения лишь в том, что теперь я (jackill) использую ttf-шрифты:
[fonts]
;Read documentation/fonts before adding aliases
"Resolution" = "96"
"Default" = "-monotype-arial-"
; Use new improved fonts (uses FreeType and XRender libraries) at user request.
; Defaults to "Y".
;"FreeType" = "N"

[FontPatterns]
"Pattern0" = "-monotype-times*"
"Pattern1" = "-monotype-arial*"
"Pattern2" = "-monotype-courier*"
"Pattern3" = "-monotype-andale*"

[FontDirs]
;"0"="/path/to/extra/fonts"

[FontAlias]
;; Add font aliases here. On the left put the name of the windows font family
;; that you want to fake, on the right put the a similar font family that you
;; have installed. These will override the fontconfig and the WineX builtin fallbacks,
;; but may look better (if you choose them correctly).
;; Alias' may refer to other alias' that have been defined above them.
;; These alias' are the first that WineX loads.
;;
;; Serif Fonts
;"Times New Roman"="Times"
"MS Serif"="Times New Roman"
;;
;; Sans Serif Fonts
;"Arial"="Helvetica"
"Helv"="Arial"
"MS Sans Serif"="Arial"
"System"="Arial"
"Tahoma"="Arial"
;;
;; Mono Space Fonts
;"Courier New"="Courier"
;"FixedSys"="Courier"
Здесь указаны семейства стандартных ttf-шрифтов от MS (см. вопрос о настройке шрифтов) и разрешено использовать FreeType.

И не забудьте настроить локаль! Для UTF-8 убедитесь в отсутствии необходимости вводить это:
$ export LC_ALL=ru_RU.UTF-8
иначе будете получать следующие строки и русский работать не будет:
Warning: Language ’’ was not recognized, defaulting to English.
Иногда, русские шрифты всё же не включаются - в этом случае можно указать в конфиге следующие строки:
[x11drv]
"ClientSideWithRender" = "N"
"ClientSideWithCore" = "N"
"ClientSideAntiAliasWithRender" = "N"
"ClientSideAntiAliasWithCore" = "N"
"X11FontPattern" = "*-cp1251"
CrossOver Office иногда глючит с русскими именами в файловой системе. Для UTF-8 локали укажите
[x11drv]
"Codepage" = "65001"
для KOI8-R
[x11drv]
"Codepage" = "20866"

Чтение-запись NTFS с использованием драйвера ntfs-3g в Debian.

обавляем backports в список доступных репозиториев:
$ sudo vi /etc/apt/source.list
и вставляем
deb http://www.backports.org/debian sarge-backports main
Загружаем и добавляем ключи:
$sudo wget -O - http://backports.org/debian/archive.key | sudo apt-key add -
Обновляем список репозиториев и устанавливаем NTFS-3g:
$ sudo apt-get update
$ sudo apt-get install ntfs-3g
Монтируем:
$ sudo mount -t ntfs-3g /dev/sda1 /mnt/win -o umask=0
Убедившись в том, что все работает правильно, запись можно добавить в файл /etc/fstab:
$sudo vi /etc/fstab
добавляем:
/dev/sda1 /mnt/win ntfs-3g umask=0,nls=ваша_локаль 0 0