воскресенье, 2 ноября 2008 г.

Устанавливаем разрешение 1024x600 во framebuffer-е linux для нетбука MSI Wind (или Asus eeePC)

Внимание, заметка устарела! Вам не нужно выполнять эти заумные штуки, описанные в заметке. В современных дистрибутивах все работает "из коробки". Можно разве что показывать внукам со словами: "Вот как оно было в 2008-м".

Стандартными методами, для фреймбуффера консоли linux, можно установить разрешение 800x600 (указать параметр ядра vga=788), но при этом на данном нетбуке консольные шрифты будут растянуты. Параметра vga=XXX для 1024x600 не существует.

Но существует хак, описанный в http://www.nathancoulson.com/proj_eee.shtml, который позволяет добиться нужного результата. По ссылке рассмотрен пример установки 800x480 для eeePC, но инструкция годится и для Wind-a (т.к. используется одинаковый чипсет 945GME). У меня это работает так (фото см. ниже).
Пара слов для вступления. Не стоит выполнять указанные тут команды без четкого представления что они делают. Приведенные команды не являются копипастом, в большинстве своем написаны по памяти и могут содержать ошибки. Все это приводится лишь для обще
75;о представления о необходимых шагах. Я не несу ответственности за негативные последствия Ваших действий.
Итак, сначала нужно применить патч grub-1.96-915resolution-0.5.2-3.patch к grub2. После этого в grub2 появится поддержка модуля 915resolution.
Я пользуюсь Debian, и оформлял для себя патченый grub в виде deb-пакета (люблю порядок), поэтому проделал ряд дополнительных необязательных действий, которые для упрощения здесь не привожу. В общем случае - качаем и распаковываем исходники grub2, переходим в полученный каталог и применяем патч

# patch -Np1 -i /path/to/grub-1.96-915resolution.patch

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

# grub-install /dev/sda

Далее, насколько я понял, нужно подменить один из vga-режимов. Создаем файл 01_915resolution следующего содержания (в конечном результате в /etc/grub/grub.cfg будут автоматически добавляться 2 строки):

# cat /etc/grub.d/01_915resolution
cat << EOF
insmod 915resolution
915resolution 5c 1024 600
EOF


Значение 5c взято из выхлопа команды 915resolution -l (о ней ниже). Это может быть любое неиспользуемое значение режима с нужной глубиной цвета.
Перегенерируем /boot/grub/grub.cfg

# update-grub2

В общем на этом этапе все готово. Пробуем перегрузиться, к параметрам ядра добавляем video=intelfb vga=604
Откуда взять vga=604 написано здесь http://wiki.debian.org/DebianEeePC/TipsAndTricks, раздел "Text Mode". В общем, данное значение зависит от того что мы написали в /etc/grub.d/01_915resolution (вычисляется как 0x200+0x05c=0x25с в десятичном представлении), это тот режим, который мы подменили.
Для того чтобы не писать каждый раз параметры загрузки ядра вручную, в файле /etc/default/grub можно указать следующую опцию:
GRUB_CMDLINE_LINUX=" video=intelfb vga=604 "
после чего не забываем update-grub2.

Об утилите 915resolution. Взять её можно здесь http://www.geocities.com/stomljen/. Но на текущий момент версия 0.5.3 не знает о чипсете 945GME (который установлен в eeePC и Wind-е). Опять же, существует патч, который может её этому научить. Все описано здесь: http://wiki.debian.org/DebianEeePC/HowTo/GetNativeConsoleResolution. В принципе эта утилита нужна только один раз, чтобы выбрать неиспользуемый режим.

Прежде чем выполнять все это самостоятельно, рекомендую еще раз ознакомиться с документами по следующим ссылкам:
http://www.nathancoulson.com/proj_eee.shtml
http://wiki.debian.org/DebianEeePC/HowTo/GetNativeConsoleResolution
http://wiki.debian.org/DebianEeePC/TipsAndTricks
http://www.geocities.com/stomljen/

Что получаем в итоге:

среда, 27 февраля 2008 г.

Ниже описывается настройка samba модуля full_audit, который позволяет увидеть кто и к какому файлу обращался, кто создал, удалил или переименовал конкретный файл или каталог.
В результате настройки необходимые данные будут записываться в лог-файл /var/log/samba/log.audit.
(Настройка производилась в дистрибутиве Debian Etch, версия Samba 3.0.24).

1. В секцию [global] добавляется строка

syslog = 0

Данный параметр устанавливает приоритет сообщений, которые будут направлены в syslog. Чем выше значение, тем большее количество сообщений будет выводиться. Указав значение 0 можно отключить запись сообщений в syslog.

2. Количество сообщений, записываемых в лог-файлы, для всех VFS модулей может быть задано следующим параметром в секции [global]

log level = 0 vfs:2


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

max log size = 0

Размер лог-файла задается в килобайтах. При достижении указанного значения файл будет переименован, путем добавления к имени файла расширения .old. Значение 0 отключает проверку размера (в данном случае необходимо самостоятельно позаботиться о размере лог-файла, к примеру, настроив соответсвующим образом logrotate).

4. Для активации модуля аудита, в секции, которая описывает расшаренный ресурс, добавляется строка

vfs objects = full_audit

В результате данные о доступе к файлам будут записываться в syslog, либо в лог-файл по умолчанию (log.smbd). Здесь же, через пробел, могут быть заданы другие VFS модули.

5. Можно указать дополнительные параметры модулю full_audit.
Префикс, сообщений в лог-файле:

full_audit:prefix = %u|%I

(каждая строка будет начинаться с user|ip_adress)
Какие ошибки должны отображаться в лог-файле:

full_audit:failure = none

(не протоколируем ошибки)
Действия пользователей, которые записываются в лог-файл:

full_audit:success = connect disconnect opendir mkdir rmdir closedir open close read pread write pwrite sendfile rename unlink chmod fchmod chown fchown chdir ftruncate lock symlink readlink link mknod realpath

Параметры, позволяющие управлять записью в журналы демоном syslogd:

full_audit:facility = local5
full_audit:priority = notice

Данные два параметра описывают селектор, он обозначает программу ("средство" в терминологии системы syslog), которая посылает регистрационное сообщения и уровень серьезности этого сообщения.
Прим. Несмотря на опцию syslog = 0, samba направляет сообщения в syslog. Возможно в других версиях samba такое поведение будет изменено. Последние два параметра модуля full_audit позволят в дальнейшем исключить попадание нежелательных сообщений в журанал syslog.

Собрав все вместе получим примерно следующее:

[global]
...
log level = 0 vfs:2
max log size = 0
syslog = 0
...
[incomig]
comment = Samba server's incoming directory
writable = yes
locking = no
path = /home/samba/incoming
public = yes
browseable = yes
only guest = yes
vfs objects = full_audit
full_audit:prefix = %u|%I
full_audit:failure = none
full_audit:success = connect disconnect opendir mkdir rmdir closedir open close read pread write pwrite sendfile rename unlink chmod fchmod chown fchown chdir ftruncate lock symlink readlink link mknod realpath
full_audit:facility = local5
full_audit:priority = notice

После перечитывания конфигурации сервисами, строки лог-файла будут выглядеть примерно следующим образом:

...
Feb 23 18:13:31 kirill smbd_audit: nobody|192.168.4.2|connect|ok|incoming
Feb 23 18:13:32 kirill smbd_audit: nobody|192.168.4.2|chdir|ok|chdir|/home/samba/incoming
Feb 23 18:13:35 kirill smbd_audit: nobody|192.168.4.2|opendir|ok|.
Feb 23 18:13:35 kirill smbd_audit: nobody|192.168.4.2|closedir|ok|
Feb 23 18:13:35 kirill smbd_audit: nobody|192.168.4.2|opendir|ok|./
Feb 23 18:13:48 kirill smbd_audit: nobody|192.168.4.2|opendir|ok|New Folder
Feb 23 18:13:48 kirill smbd_audit: nobody|192.168.4.2|closedir|ok|
Feb 23 18:13:48 kirill smbd_audit: nobody|192.168.4.2|rmdir|ok|New Folder
Feb 24 11:45:10 kirill smbd_audit: root|192.168.4.2|disconnect|ok|incoming
Feb 24 11:45:10 kirill smbd_audit: root|192.168.4.2|chdir|ok|chdir|/
...


7. Дополнительные настройки
Далее может понадобиться дополнительная настройка демонов syslogd и logrotate.
(Прим. В данном примере используются sysklogd 1.4.1 и logrotate 3.7.1)
7.1 В стандартном файле конфигурации syslog.conf демона syslogd имеется строка

*.*;auth,authpriv.none -/var/log/syslog

для того чтобы сообщения модуля full_audit не попадали в syslog, нужно изменить эту строку следующим образом:

*.*;local5,auth,authpriv.none -/var/log/syslog

Чтобы сообщения записывались в заданный файл, нужно добавить в syslog.conf такую строку:

local5.notice -/var/log/samba/log.audit

7.2 Для того чтобы лог-файл не разрастался, в каталоге /etc/logrotate.d можно изменить соответсвующую секцию конфигурационного файла samba, чтобы она выглядела примерно так:

/var/log/samba/log.smbd /var/log/samba/log.audit {
weekly
missingok
rotate 7
postrotate
invoke-rc.d --quiet samba reload > /dev/null
endscript
compress
notifempty
}