Введение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Источник: http://www.xakep.ru/articles/common/tips.asp?page=7 1. Установка 2. Конфигурирование 3. Сборка ядра и окружения 4. Развертка портов и установка софта 5. Краткий обзор 6. Виртуальные консоли и терминалы 7. Права доступа 8. Структура каталогов 9. Монтирование и размонтирование файловых систем 10. Обзор X 11. Основы X 12. Установка XFree86 13. Конфигурация XFree86 14. Свои сценарии в FreeBSD З.Ы. Все эксперименты проводились на "голой" FreeBSD 5.2, т.е. была проведена только основная установка. + Все файлы конфигов моей системы можно посмотреть в архиве perenna.tgz. |
1. Установка
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
Итак, вы таки решили поставить Фрюху себе. Что ж, тогда читайте. Надеюсь, что Фря вам попалась на 4 дисках одним комплектом, а не так как мне. У меня тоже 4 диска, но первый - установочный 5.2, остальные содержали порты и дистфайлы и сырцы ядра. Ставится все достаточно просто. Диск должен быть бутовый, иначе вам придется сделать дискетки для бута, все это уже описано на русском еще под систему 4.4, но технология та же. Итак, вот подгрузилась графическая менюха. Тут мы выбираем дистрибутив, куда ставить оный и в какой комплекции. Советую ставить только основные компоненты и НЕ ставить сырцы ядра и порты. Ну и, естественно, НЕ ставить уже компильнутую софтину. С разделами все немного посложнее. В меню разбития диска советую нажать "A", т.е. дать системе самой сделать все, а затем переписать как оная все распределила и начать все заново. Я выделили системе что-то около 20 гигов, разделив так: / 300Mb /var 300Mb /tmp 300Mb swap 600Mb /usr 18980Mb По идее, своп должен быть в два раза больше оперативной памяти. Выбираем откуда будем ставить ОСь, т.е. в разделе "Media" выбираем CD (ставим-то с CD). Далее все просто, система ставиться, а мы пьем кофе (ну или пиво, но не советую =) |
2. Конфигурирование
1 2 3 4 5 6 7 8 9 10 |
Итак, система подгрузилась и показывает кучу каких-то надписей. Какой кошмар! Вот оно поле "login", набираем "root", если пасс был дан при установке, то набираем его, иначе уже в системе =) Теперь пишем "pwd" и узнаем где мы. Скорее всего мы в директории /root, пишем "ls -la" и видим файло с именем .profile и .cshrc - редактим оные под себя. Теперь монтируем CD командой "mount /cdrom", выгружаем оттуда порты в директорию /usr/ports/ и сырцы в /usr/src/ и затем "umount /cdrom". Что-то уже есть. Теперь будем пересобирать ядро под себя =) |
3. Сборка ядра и окружения
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
Поскольку система ставиться с учетом развертки на любой платформе, то было включено дофига лишнего. Будем все делать заново. Сначала правим файл /etc/make.conf там указываем: CPUTYPE?=i686 - здесь надо указать тип вашего процессора, т.е. вместо i686 может быть: Для AMD CPUs - athlon-mp athlon-xp athlon-4 athlon-tbird athlon k6-3 k6-2 k6 k5, для Intel CPUs - p4 p3 p2 i686 i586/mmx i586 i486 i386, для Alpha/AXP - ev67 ev6 pca56 ev56 ev5 ev45 ev4, для Intel ia64 - itanium KERNEL=PERENNA - здесь название вашего ядра. У меня по названию машины, т.е. PERENNA. Так же, надо раскомментировать строку: COMPAT4X= yes , т.е. удалить стоящий перед ней символ "#" и еще в конце файла дописать: CUPS_OVERWRITE_BASE = yes Итак, сохраняем, закрываем и идем дальше. Переходим в /usr/src/sys/ (cd /usr/src/sys/) там видим несколько разделов. У меня архитектура i386, так что если у вас такая же, то заходим в "i386/conf/" (cd /i386/conf/), делаем ls и видим несколько фалов. Там должен быть файл GENERIC - это пример ядра, в данный момент работающего на вашей машине. Советую не править его, а юзать только как пример. Файл NOTES покажет вам весь список оборудования. Его тоже юзаем как пример. Создаем новый файл, который прописали в make.conf (у меня PERENNA). Заюзаем с консоли "demesg" и видим все, что система у нас нашла. Правим файл нашего ядра. Итак, вы написали ядро =) Теперь его надо собрать. Однако надо так же собрать окружение, в котором ядро будет работать. Только ОБЯЗАТЕЛЬНО зайдите в директория /boot и сделайте копию всех фалов в /root/boot/ и, так же, скопируйте файлы из папки /boot/kernel в /boot/kernel.work Это избавит вас от нервотрепки. Делаем следующие команды: 1) cd /usr/src/ 2) make buildworld 3) make buildkernel KERNCONF=PERENNA (прим. здесь название вашего ядра) 4) make installkernel KERNCONF=PERENNA (прим. здесь название вашего ядра) 5) reboot Затем, если все получилось (что сомнительно =), при загрузке выберите режим Single User или введите boot -s при загрузке из строки. Далее делаем: 6) mergemaster -p 7) make installworld 8) mergemaster 9) reboot И если все правильно, то у нас новая система. =) Посмотреть можно командой "uname -a". ЕСЛИ что-то было сделано НЕ правильно и у вас проблемы, то всегда можете грузануть работающее ядро. Для этого в командной строке загрузки пишем "boot /boot/kernel.work" |
4. Развертка портов и установка софта
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Теперь будем ставить софт. Переходим в /usr/ports/ (cd /usr/ports/). Там большое количество директорий с огромным кол-вом поддиректорий. Заходим в /usr/ports/shell/bash2/ и делаем "make", а затем "make install". После чего у нас появляется более продвинутый шелл - bash (это действительно рулез =). Теперь делаем "chfn" (вроде так =) и меняем все что нам нужно. В частности "/bin/sh" на "/usr/local/bin/bash". Делаем "logout" или нажимаем CTRL-D и заходим вновь. Кстати, пока не забыл, в конфиге юзера есть поле "class"... Пропишите там "russian" и все будет путем =), тока не забудьте шрифты с портов поставить ;) Собственно так можно ставить всю софтину, через порты. Удобная система, при отсутствии исходного кода для сборки сама достает его из сети. Если же вы достали сырцы руками, то киньте архив в "/usr/ports/distfiles/". Думаю, если все было сделано правильно, то система будет работать достаточно устойчиво. В общем, удачи тебе, BSD-шник! |
5 Краткий обзор
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Работать во FreeBSD можно разными способами. Один из них - набор команд в текстовом терминале. Как написано в handbook: "Используйте этот способ, и вся гибкость и мощь систем UNIX будет в ваших руках." Если графическую систему Вы не настраивали на авто запуск, то можно увидеть нечто вроде: [..skip..] FreeBSD/i386 (perenna.localdomain) (ttyv0) login: Отсюда мы можем узнать, что это консоль FreeBSD, работающая на Intel или совместимом процессоре x86 архитектуры. Имя машины "perenna" и она входит в поддомен "localdomain". Еще становится ясно, что это консоль "ttyv0". Поскольку в системе могут работать несколько людей, вход во FreeBSD осуществляется при помощи цепочки имя-пароль. В поле "login" вы должны ввести свое имя пользователя, а затем в появившееся поле "password" свой пароль. Войдя, вы увидите сообщение дня (MOTD, или message of the day) за которым последует командная строка (с символом #, $, или %). |
6 Виртуальные консоли и терминалы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
FreeBSD многозадачная система, поэтому для удобства пользователя, в ней реализованы так называемые "виртуальные консоли". Из handbook по FreeBSD: "Вы можете переключаться с одной виртуальной консоли на другую, нажимая соответствующие сочетания клавиш на клавиатуре. У каждой консоли есть свой канал вывода и FreeBSD заботится о том, чтобы правильно перенаправить ввод с клавиатуры и вывод на монитор как только вы переключитесь с одной консоли на другую. Для переключения между консолями зарезервированы специальные комбинации клавиш. Вы можете использовать сочетания Alt-F1, Alt-F2, до Alt-F8 чтобы переключаться между различными виртуальными консолями в FreeBSD. При переключении от одной консоли к другой, FreeBSD заботится о сохранении и восстановлении вывода на экран. Результатом является "иллюзия" наличия множества "виртуальных" экранов и клавиатур, которые могут быть использованы для ввода и запуска команд FreeBSD. Программы, которые вы запускаете на одной виртуальной консоли, не прекращают выполнение когда консоль становится невидимой. Они продолжают выполняться, когда вы переключаетесь на другую виртуальную консоль." Чтобы настроить виртуальные консоли, достаточно отредактировать файл /etc/ttys. Давайте немного разберемся с данным файлом. Выглядит он примерно так: # name getty type status comments # ttyv0 "/usr/libexec/getty Pc" cons25 on secure # Virtual terminals ttyv1 "/usr/libexec/getty Pc" cons25 on secure ttyv2 "/usr/libexec/getty Pc" cons25 on secure ttyv3 "/usr/libexec/getty Pc" cons25 on secure ttyv4 "/usr/libexec/getty Pc" cons25 on secure ttyv5 "/usr/libexec/getty Pc" cons25 on secure ttyv6 "/usr/libexec/getty Pc" cons25 on secure ttyv7 "/usr/libexec/getty Pc" cons25 on secure ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure Возьмем первую не комментированную строку. "ttyv0 "/usr/libexec/getty Pc" cons25 on secure" Для русскоязычных юзверей поведаю такую штуку. Исправьте строку на: "ttyv0 "/usr/libexec/getty Pc" cons25r on secure" и консолька "русифицируется" =) О безопасности: если исправить " secure" на " insecure", то система будет спрашивать пароль на root даже при загрузке в одно пользовательском режиме. Но (!) не спешите исправлять, т.к. если Вы забыли пароль на root и переключились в single mode, то Вам может обломиться. |
7 Права доступа
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
Из handbook по FreeBSD: "FreeBSD является прямым потомком BSD UNIX и основывается на некоторых ключевых концепциях UNIX. В первую очередь это, конечно, тот факт, что FreeBSD - многопользовательская операционная система. Это означает, что несколько пользователей могут работать одновременно, решая различные задачи и совершенно не мешая друг другу. На системе лежит ответственность за правильное разделение и управление такими ресурсами как память, процессорное время, периферийные устройства и прочее. Многопользовательская среда предполагает наличие механизма регулирования прав доступа к любому ресурсу в системе. Существует три типа прав доступа: на чтение, запись и исполнение. Права сгруппированы три по три, соответственно чтение/запись/выполнение для владельца/группы/всех остальных. Численное представление: Значение | Права | Права 0 | Ничего не разрешено | --- 1 | Нельзя читать и писать, разрешено исполнять | --x 2 | Нельзя читать и исполнять, разрешено писать | -w- 3 | Нельзя читать, разрешено писать и исполнять | -wx 4 | Разрешено читать, нельзя писать и исполнятьr| -- 5 | Разрешено читать и исполнять, нельзя писать | r-x 6 | Разрешено читать и писать, нельзя исполнять | rw- 7 | Разрешено все | rwx Что бы посмотреть права на файл, можно к команде ls добавлять параметр -l, т.е. использовать "ls -l", для вывода полной информации юзайте "ls -a". Поскольку все устройства в данной системе представлены в виде файлов в директории /dir, то и права на их использование можно регулировать, как и с файлами. Директории так же представлены как файлы и имеют такие же права, однако использовать в данном случае будет ничто иное как вход в каталог (например, при помощи команды "cd"). Из handbook по FreeBSD: "Если же требуется получить список файлов в некотором каталоге, права доступа на него должные включать доступ на чтение. Для того, чтобы удалить из каталога какой-либо файл, имя которого известно, на этот каталог должны быть даны права на запись и на исполнение. Существуют и другие права доступа, но они как правило используются в особых случаях, например, setuid-бит на выполняемые файлы и sticky-бит на каталоги. За дополнительными сведениями по этому вопросу обращайтесь к chmod(1)." Так же, для удобства пользователя, могут быть использованы символические выражения. Из handbook по FreeBSD: "Символические обозначения, иногда называемые символическими выражениями, используют буквы вместо восьмеричных значений для назначения прав на файлы и каталоги. Символические выражения используют синтаксис (кто) (действие) (права), где существуют следующие значения: Опция | Буква| Значение (кто) | u | Пользователь (User) (кто) | g | Группа (Group) (кто) | o | Другие (Other) (кто) | a | Все (All, ``world'') (действие)| + | Добавление прав (действие)| - | Удаление прав (действие)| = | Явная установка прав (права) | r | Чтение (Read) (права) | w | Запись (Write) (права) | x | Выполнение (Execute) (права) | t |Sticky бит (права) | s | SUID или SGID Эти значения используются командой chmod так же как и раньше, но с буквами. Например, вы можете использовать следующую команду для запрета доступа других пользователей к FILE: % chmod go= FILE Для изменения более чем одного набора прав можно применить список, разделенный запятыми. Например, следующая команда удалит права группы и ``всех остальных'' на запись в FILE, а затем добавит права на выполнение для всех: % chmod go-w,a+x FILE " |
8 Структура каталогов
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
Опять же обращусь к handbook (без нее никуда =): "Файловая система FreeBSD является ключевым моментом в понимании устройства всей системы. Самым важным понятием является, несомненно, корневой каталог, обозначаемый символом "/". Корневой каталог монтируется самым первым на этапе загрузки и содержит все необходимое, чтобы подготовить систему к загрузке в многопользовательский режим. Корневой каталог также содержит точки монтирования всех других файловых систем. Точкой монтирования называется каталог, который будет соответствовать корню примонтированой файловой системы. Стандартные точки монтирования включают /usr, /var, /mnt и /cdrom. Эти каталоги обычно перечислены в файле /etc/fstab, в котором указаны файловые системы и их точки монтирования. Большинство файловых систем, описанных в /etc/fstab монтируются автоматически из скрипта rc, если только для них не указана опция noauto. Обратитесь к fstab за дополнительной информацией о формате файла /etc/fstab и различных опциях монтирования. Полное описание иерархии файловой системы есть в hier. Здесь же мы упомянем лишь наиболее важные каталоги. / Корневой каталог файловой системы. /bin/ Основные утилиты, необходимые для работы как в однопользовательском, так и в многопользовательском режимах. /boot/ Программы и конфигурационные файлы, необходимые для нормальной загрузки операционной системы. /boot/defaults/ Конфигурационные файлы с настройками по умолчанию, используемые в процессе загрузки операционной системы (см. loader.conf). /dev/ Файлы устройств (см. intro). /etc/ Основные конфигурационные файлы системы и скрипты. /etc/defaults/ Основные конфигурационные файлы системы с настройками по умолчанию (см. rc). /etc/mail/ Конфигурационные файлы для систем обработки почты (например, sendmail). /etc/namedb/ Конфигурационные файлы для утилиты named (см. named). /etc/periodic/ Файлы сценариев, выполняемые ежедневно, еженедельно и ежемесячно (см. cron и periodic). /etc/ppp/ Конфигурационные файлы для утилиты ppp (см. ppp). /mnt/ Пустой каталог, часто используемый системными администраторами как временная точка монтирования. /proc/ Виртуальная файловая система, отображающая текущие процессы (см. see procfs, mount_procfs). /root/ Домашний каталог пользователя root. /sbin/ Системные утилиты и утилиты администрирования, необходимые для работы как в однопользовательском, так и в многопользовательском режимах. /stand/ Программы, необходимые для работы в автономном режиме (например, при установке системы). /tmp/ Временный каталог (часто монтируется как mfs; обычно содержимое этого каталога теряется во время перезагрузки системы). /usr/ Большинство пользовательских утилит и приложений. /usr/bin/ Пользовательские утилиты и приложения общего назначения. /usr/include/ Стандартные заголовочные файлы для языка C. /usr/lib/ Файлы стандартных библиотек. /usr/libdata/ Файлы данных для различных утилит. /usr/libexec/ Системные даемоны и утилиты (выполняемые другими программами). /usr/local/ Локальные пользовательские приложения, библиотеки, и т.д. Также используется по умолчанию коллекцией портов. Внутри /usr/local иерархия каталогов должна следовать hier для /usr. Исключение составляют каталог man, который расположен непосредственно в /usr/local, а не в /usr/local/share, и документация портов, которая расположена в share/doc/port. /usr/obj/ Архитектурно-зависимые файлы и каталоги, образующиеся в процессе сборки системы из исходных текстов в /usr/src. /usr/ports/ Коллекция портов FreeBSD (опционально). /usr/sbin/ Системные утилиты и утилиты администрирования (исполняемые пользователем). /usr/share/ Архитектурно-независимые файлы. /usr/src/ Исходные тексты BSD и/или программ. /usr/X11R6/ Утилиты, приложения и библиотеки X11R6 (X Window System; необязательно). /var/ Файлы журналов общего назначения, временные, перемещаемые файлы и файлы очередей. /var/log/ Различные файлы системных журналов. /var/mail/ Почтовые ящики пользователей. /var/spool/ Файлы очередей печати, почты, и пр. /var/tmp/ Временные файлы, которые необходимо сохранять между перезагрузками операционной системы. /var/yp/ Карты (maps) NIS. " |
9 Монтирование и размонтирование файловых систем
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
Файловые системы, перечисленные в /etc/fstab, монтируются автоматически в процессе загрузки (если, конечно, для них не указана опция noauto). Формат файла такой: "устройство /точка-монтирования тип файловой системы опции частота дампов порядок проверки" Итак, тут: устройство - имя устройства точка монтирования - каталог (уже существующий), куда следует смонтировать файловую систему. тип файловой системы - тип файловой системы, который передается программе mount. FreeBSD юзает ufs. опции - например, rw для монтирования файловой системы в режиме ``чтение-запись'', ro для режима ``только чтение'', за которыми могут следовать и другие опции. Довольно часто используется опция noauto, чтобы не монтировать автоматически файловые системы в процессе загрузки. частота дампов - используется утилитой dump для определения файловых систем, с которых необходимо периодически снимать специальные архивные копии. порядок проверки - определяет порядок, в котором следует проверять файловые системы. Если файловую системы не нужно проверять, этот параметр должен быть установлен в ноль. Для корневой файловой системы установите его в 1. Для всех остальных - 2 или больше. Если две или более файловые системы имеют одинаковое значение passno, fsck попытается проверять их параллельно. Для монтирования используется команда "mount", для размонтирования "umount". Полные сведения и ключи этих команд можно узнать по: #man mount |
10 Обзор X
1 2 3 |
Xfree86 используется FreeBSD для обеспечения мощной графической среды. XFree86 является открытой реализацией X Window System. Официальный сайт Xfree86: http://www.xfree86.org/. |
11 Основы X
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
Из handbook по FreeBSD: "Первое знакомство с X может оказаться чем-то вроде шока для тех, кто работал с другими графическими системами, такими, как Microsoft Windows или Mac OS. Нет необходимости вникать во все детали различных компонентов X и их взаимодействия; однако некоторые базовые знания делают возможным использование сильных сторон X." Х не первая графическая система, до нее была W (Window), а по заявлениям разработчиков - X это следующая буква в алфавите =) Поскольку FreeBSD разрабатывается как сетевая ОС, т.е. для модели клиент-сервер, то и Иксы разрабатывались для такой же модели. Разделяются Х на два типа - клиент и сервер. Сервером является машина, у которой есть клавиатура, мышь и монитор, клиентом будут все приложения, которые пользователь запускает. Сервер отвечает за управление дисплеем, обработку ввода с клавиатуры, мыши и так далее. Если кому-то не понятно, то разруливаю. Клиент (программа) посылает серверу сигнал типа "нарисуй мне окно с координатами 15,56-25,87", а сервер посылает сообщения типа "пользователь кликнул на кнопке "Ok". Необходимо запомнить, что в Иксах модель клиент-сервер является обратной, чем это обычно представлено. Например, сервером может быть даже бездисковый терминал, т.е. слабая машинка, в которой нет жесткого диска, есть только монитор и клавиатура. А клиент будет запускать программы с какой-нить дорогой и навороченной машины, подключенной в сеть. Протокол общения сервера-клиента располагает к независимости от ОС, т.е. реально запускать, например, сервер под Windows, а клиент под FreeBSD. Из handbook по FreeBSD: "Философия построения X очень похожа на философию построения UNIX, "инструменты, не политика". Это значит, что X не пытаются диктовать то, как должна быть выполнена работа. Вместо этого пользователю предоставляются инструменты, а за пользователем остается принятие решения о том, как использовать эти инструменты. Этот подход расширен в X тем, что не задается, как окна должны выглядеть на экране, как их двигать мышью, какие комбинации клавиш должны использоваться для переключения между окнами (то есть Alt+Tab, в случае использования Microsoft Windows), как должны выглядеть заголовки окон, должны ли в них быть кнопки для закрытия, и прочее. Вместо этого X делегирует ответственность за это приложению, которое называется "Window Manager" (Менеджер Окон). Есть десятки оконных менеджеров для X: AfterStep, Blackbox, ctwm, Enlightenment, fvwm, Sawfish, twm, WindowMaker и другие. Каждый из этих оконных менеджеров предоставляет различные внешние виды и удобства; некоторые из них поддерживают "виртуальные рабочие столы"; некоторые из них позволяют изменять назначения комбинаций клавиш, используемых для управления рабочим столом; в некоторых есть кнопка "Start" или нечто подобное; некоторые поддерживают "темы", позволяя изменять внешний вид, поменяв тему. Эти оконные менеджеры, а также множество других, находятся в категории x11-wm коллекции Портов. Кроме того, оболочки KDE и GNOME обе имеют собственные оконные менеджеры, которые интегрированы с оболочкой. Каждый оконный менеджер также имеет собственный механизм настройки; некоторые предполагают наличие вручную созданного конфигурационного файла; некоторые предоставляют графические инструменты для выполнения большинства работ по настройке; по крайней мере один (sawfish) имеет конфигурационный файл, написанный на диалекте языка Lisp. Политика фокусирования: Другой особенностью, за которую отвечает оконный менеджер, является "политика фокусирования" мыши. Каждая оконная система должна иметь некоторый способ выбора окна для активации получения нажатий клавиш, а также визуальную индикацию того, какое окно активно. Широко известная политика фокусировки называется "click-to-focus". Эта модель используется в Microsoft Windows, когда окно становится активным после получения щелчка мыши. X не поддерживает никакой конкретной политики фокусирования. Вместо этого менеджер окон управляет тем, какое окно владеет фокусом в каждый конкретный момент времени. Различные оконные менеджеры поддерживают разные методы фокусирования. Все они поддерживают метод щелчка для фокусирования, и большинство из них поддерживают некоторые другие методы. Самыми популярными политики фокусирования являются: focus-follows-mouse (фокус следует за мышью) Фокусом владеет то окно, что находится под указателем мыши. Это не обязательно будет окно, которое находится поверх всех остальных. Фокус меняется при указании на другое окно, при этом также нет нужды щёлкать на нём. sloppy-focus (нечеткий фокус) С политикой focus-follows-mouse если мышь помещается поверх корневого окна (или заднего фона), то никакое окно фокус не получает, а нажатия клавиш просто пропадают. При использовании политики нечёткого фокуса он меняется только когда курсор попадает на новое окно, но не когда уходит с текущего окна. щелчок для выбора фокуса Активное окно выбирается щелчком мыши. Затем окно может быть "поднято" и появиться поверх всех других окон. Все нажатия клавиш теперь будут направляться в это окно, даже если курсор переместится к другому. Многие оконный менеджер поддерживают и другие политики, а также вариации перечисленных. Обязательно обращайтесь к документации по оконному менеджеру." |
12 Установка XFree86
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Перед тем, как ставить Xfree86 решите - какую ветку вы будите юзать. На данный момент приемлемыми являются 3 и 4 ветки. Главное отличие в том, что 3 ветка больше не поддерживается, является стабильной и работает на огромном количестве адаптеров. 4 ветка является разрабатываемой, немного не стабильна, работает на небольшом количестве адаптеров, но очень усилила свою мощь в плане графики. XFree86 4.X теперь является стандартно используемой во FreeBSD версией X Window System. Установка XFree86 из коллекции портов происходит примерно так: # cd /usr/ports/x11/XFree86 # make all install clean Если Вы хотите поставить Xfree86 из бинарных фалов, то нужно выполнить: # pkg_add -r XFree86 Это загрузит последнюю версию XFree86. Для установки XFree86 4.X вы можете также воспользоваться Коллекцией Портов, для чего вам нужно просто набрать следующие команды: # cd /usr/ports/x11/XFree86-4 # make install clean |
13.1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Перед настройкой XFree86 4.X необходима следующая информация о конфигурируемой системе: Характеристики монитора Набор микросхем, используемый в видеоадаптере Объём видеопамяти Характеристики монитора используются в XFree86 для определения рабочего разрешения и частоты. Эти характеристики обычно могут быть получены из документации, которая прилагается к монитору или с сайта производителя. Тут нужны два диапазона значений, для частоты горизонтальной развёртки и для частоты вертикальной синхронизации. Набор микросхем графического адаптера определяет, модуль какого драйвера использует XFree86 для работы с графическим оборудованием. Для большинства типов микросхем это может быть определено автоматически, но все же его полезно знать на тот случай, когда автоматическое определение не работает правильно. Объём видеопамяти графического адаптера определяет разрешение и глубину цвета, с которым может работать система. Это важно, чтобы пользователь знал ограничения системы. |
13.2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
Конфигурирование XFree86 4.X Процесс настройки XFree86 4.X является многошаговым. Первый шаг заключается в построении начального конфигурационного файла посредством запуска XFree86 с параметром -configure. Работая с правами суперпользователя, просто запустите: # XFree86 -configure При этом в каталоге /root будет создан скелет конфигурационного файла XFree86 под именем XF86Config.new (на самом деле в качестве каталога используется тот, что задан в переменной окружения $HOME, а она зависит от способа получения прав суперпользователя). Программа XFree86 сделает попытку распознать графическое оборудование системы и запишет конфигурационный файл, загружающий правильные драйверы для обнаруженного оборудования в системе. Следующим шагом является тестирование существующей конфигурации для проверки того, что XFree86 может работать с графическим оборудованием в настраиваемой системе. Для выполнения этой задачи пользователю нужно выполнить: # XFree86 -xf86config XF86Config.new Если появилась чёрно-белая сетка и курсор мыши в виде X, то настройка была выполнена успешно. Для завершения тестирования просто нажмите одновременно Ctrl+Alt+Backspace. Note: Если мышь не работает, удостоверьтесь, что соответствующее устройство было отконфигурировано. Теперь выполните тонкую настройку в файле XF86Config.new по своему вкусу. Откройте файл в текстовом редакторе, таком, как emacs или ee. Сначала задайте частоты для монитора. Они обычно обозначаются как частоты горизонтальной и вертикальной синхронизации. Эти значения добавляются в файл XF86Config.new в раздел "Monitor": Section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "Monitor Model" HorizSync 30-107 VertRefresh 48-120 EndSection Ключевых слов HorizSync и VertRefresh может и не оказаться в файле конфигурации. Если их нет, то они должны быть добавлены, с указанием корректных значений горизонтальной частоты синхронизации после ключевого слова HorizSync и вертикальной частоты синхронизации после ключевого слова VertRefresh. В примере выше были введены частоты монитора настраиваемой системы. X позволяет использовать возможности технологии DPMS (Energy Star) с поддерживающими её мониторами. Программа xset управляет временными задержками и может явно задавать режимы ожидания, останова и выключения. Если вы хотите включить использование возможностей DPMS вашего монитора, вы должны добавить следующую строку в раздел, описывающий монитор: Option "DPMS" Пока файл конфигурации XF86Config.new открыт в редакторе, выберите желаемые разрешение и глубину цвета, которые будут использоваться по умолчанию. Они задаются в секции "Screen": Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1024x768" EndSubSection EndSection Ключевое слово DefaultDepth описывает глубину цвета, с которой будет работа по умолчанию. Это значение может быть переопределено при помощи параметра командной строки -bpp для XFree86(1). Ключевое слово Modes описывает разрешение, с которым нужно работать при данной глубине цвета. Заметьте, что поддерживаются только те стандартные режимы VESA, что определены графическим оборудованием настраиваемой системы. В примере выше глубина цвета по умолчанию равна двадцати четырём битам на пиксель. При такой глубине цвета принимается разрешение в одну тысячу двадцать четыре на семьсот шестьдесят восемь точек. Наконец, запишите конфигурационный файл и протестируйте его при помощи тестового режима, описанного выше. Если все в порядке, то конфигурационный файл нужно установить в общедоступное место, где его сможет найти XFree86. Обычно это /etc/X11/XF86Config или /usr/X11R6/etc/X11/XF86Config. # cp XF86Config.new /etc/X11/XF86Config После того, как конфигурационный файл будет помещён в общедоступное место, настройка завершена. Для запуска XFree86 посредством startx установите порт x11/wrapper. XFree86 4.X можно также запустить через xdm. Note: Имеется также графический инструмент для настройки, xf86cfg, который включён в дистрибутив XFree86 4.X. Он позволяет выполнить настройку в интерактивном режиме посредством выбора соответствующих драйверов и настроек. Эту программу можно использовать и в консольном режиме, просто нужно запустить её как xf86cfg -textmode. Для получения более полной информации обратитесь к странице справочной системы xf86cfg. |
13.3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
Тонкие вопросы настройки Конфигурирование при работе с графическими чипсетами Intel(r) i810 Конфигурирование при работе с интегрированными наборами микросхем Intel i810 требует наличия agpgart, программного интерфейса AGP, посредством которого XFree86 будет управлять адаптером. Драйвер agp присутствует в ядре GENERIC с момента выпуска 4.8-RELEASE и 5.0-RELEASE. Для предшествующих релизов вам нужно добавлять такую строку: device agp в конфигурационный файл вашего ядра и перестраивать новое ядро. Однако вместо этого вы можете подгружать модуль ядра agp.ko автоматически во время загрузки системы при помощи loader. Для этого просто добавьте следующую строку в файл /boot/loader.conf: agp_load="YES" Затем, в случае использования FreeBSD 4.X или более ранних её версий, для программного интерфейса должен быть создан файл устройств. Для создания файла устройств для AGP запустите MAKEDEV(8) в каталоге /dev: # cd /dev # sh MAKEDEV agpgart Note: Во FreeBSD 5.X и более поздних версиях будет использоваться devfs для выделения файлов устройств в прозрачном режиме, поэтому шаг с MAKEDEV не нужен. Это позволит конфигурировать графическое оборудование точно так же, как и любой другой графический адаптер. Заметьте, что для систем, у которых драйвер agp в ядро не вкомпилирован, попытка погрузить модуль с помощью kldload окончится неудачно. Этот драйвер должен оказаться в ядре во время загрузки, либо вкомпилированным, либо подгруженным посредством /boot/loader.conf. Если вы используете XFree86 4.1.0 (или более позднюю версию), и выдаются сообщения о неразрешённых ссылках типа fbPictureInit, попробуйте добавить такую строчку после Driver "i810" в конфигурационном файле XFree86: Option "NoDDC" |
14 Свои сценарии в FreeBSD
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
Во FreeBSD (и в Линухе) можно создавать свои собственные команды (сценарии оболочки). С их помощью можно обустроить свою систему и сделать ее более удобной и индивидуальной. Причем команды без проблем могут быть на каком угодно языке, в том числе и на русском (если у тебя в системе настроена русская локаль). Вся фишка тут в том, что в *nix каждая команда это реально существующая программа или скрипт (сценарий оболочки). Я использую для этого язык оболочки bash. Вот самые простые примеры: Создаем в домашней директории директорию bin: $> mkdir ~/bin тут будут лежать скрипты, (которые ты потом сможешь копить, дарить друзьям, или выложить на своем хомяке). Для того чтобы система в эту диру заглядывала, и выполняла твои скрипты\команды, добавляем адрес диры в переменную окружения $PATH. Открываем в txt редакторе файл .bash_profile, лежащий в твоей домашней дире. Ищем в нем: export PATH=$HOME/sbin:/ usr/local/bin:/usr/bin:/ bin:/usr/X11R6/bin или что-то наподобие этого, но именно "export PATH=". Добавляем в эту строку: $HOME/bin. Заметь, что адреса в этой строке указаны через двоеточие! Сохраняем. Создаем в этой дире bin файл: $> touch часы Даем ему права на исполнение: $> chmod +x часы В любимом txt редакторе пишем в него примерно следующее: #!/bin/sh xdaliclock -transparent -cycle Сохраняем. Да, xdaliclock это часы для Xwindows. Если их нет у тебя в системе, то попробуй другие, например xclock. Теперь раскидываем пальцы и в командной строке: $>часы & С помощью скриптов в unix можно сделать почти все. Например, когда я пересел с линя на FreeBSD, то не нашел там любимой команды eject. Огорчившись, я написал скрипт eject: #!/bin/sh cdcontrol -f /dev/acd0c eject Более подробную инфу о командах языка оболочки bash смотри в man bash. |