Глава 4. Работа в графической оболочке.

Вот, собственно говоря, мы и подошли к самому интересному для нас - запуску графической оболочки, которая позволит нам использовать компьютер для работы. Все дальнейшие действия лучше выполнять от имени обычного пользователя, а не root (графическая оболочка имеет очень сложную структуру и множество различных компонентов, поэтому может стать объектом атаки по сети).

Самый простой способ запустить графическую оболочку - выполнить команду startkde (для KDE) или gnome-session (для Gnome) после запуска команды startx, однако в этом случае мы получаем довольно "кривое" отображение. Лучшим способом будет указать X-серверу загружать нужную нам графическую оболочку при запуске. Сделать это можно создав файл .xinitrc в нашем домашнем каталоге и указать в нём какие команды необходимо выполнять при запуске xorg:

$ cd ~
$ touch .xinitrc
$ ee .xinitrc

В открывшемся окне редактора пишем следующее:

gnome-session

После этого выходим из редактора с сохранением. Теперь можем вновь дать команду startx. После её запуска на экране должна появиться заставка Gnome. На этом установку системы можно считать законченной :-) Теперь нужно только установить необходимые программы и уже можно работать.

4.1. Включаем звук.

Первое, что вы могли заметить при запуске - табличку с сообщением о невозможности запустить звуковую систему (или просто отсутствие каких-либо звуков). А какой современный компьютер без музыки скажете вы. Поэтому мы сейчас займёмся запуском звука. Собственно звук не привязан к графической оболочке, скорее графическая оболочка использует звуковую систему для уведобления пользователя о событиях..

Благодаря стараниям разработчиков системы мы имеем огромные набор драйверов для звуковых плат. Осталось разобраться какой драйвер нам нужен. Самый простой способ задействовать вашу звуковую карту - подключить модуль ядра, умеющий работать с вашей звуковой платой. Найти его несложно. Перед началом настройки выгрузим графическую оболочку. Модули ядра расположены в папке /boot/kernel. Файлы звуковых драйверов имеют название, начинающееся с snd_

# cd /boot/kernel
# la snd_*

Таким образом мы получили список имеющихся драйверов. Самым простой способ найти какой же необходим нам - загрузить все модули. Делается это загрукой модуля snd_sound.ko:

# kldload snd_driver

После этого действия на первой текстовой консоли должны появиться сообщения о найденных устройствах. Если этого не произошло, сожалею, поддержки вашей звуковой платы в системе нет. Нужно искать сторонние драйвера. Однако мне ещё не встречались такие случаи.

Итак, драйвера загружены, а какой же из них наш. Выполняем команду:

# cat /dev/sndstat

В ответ нам выдаётся сообщение о задействованных звуковых модулях. Внимательно его изучаем и находим нужного нам модуля. После этого выполняем перезагрузку и пробуем загрузить этот модуль с помощью команды

# kldload snd_hda

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

Для того, чтобы нужный нам модуль загружался автоматически, необходимо отредактировать файл /boot/loader.conf

# ee /boot/loader.conf

Добавляем туда строчку следующего содержания:

snd_hda_load="YES"

где snd_hda заменяем названием нужного вам модуля. После этого перезагружаемся:

# reboot

и внимательно изучаем сообщения при загрузке системы. В них мы должны найти сообщения об успешной активации вашей звуковой карты.

Ещё одним способом является включение необходимого модуля непосредственно в ядро системы. Однако это требует пересборки ядра, чем мы займёмся немного позднее.

Если всё загружено успешно, заходим в систему под непривилегированным пользователем и запускаем графичекую оболочку:

# startx

Система должна нас приветствовать радостной мелодией!

4.2. Установка кириллических шрифтов.

В составе системы имеются различные шрифты, то при отображении сайтов, которые разрабатывались в Windows мы теряем внешний вид. Раньше я предпочитал устанавливать набор ttf шрифтов из Windows, поэтому сначала рассмотрим этот вариант. Первым делом нужно скопировать шрифты *.ttf из папки Windows/Fonts в папку, например, /usr/X11R6/lib/X11/fonts/win-ttf. Далее необходимо проделать несколько действий:

# cd /usr/X11R6/lib/X11/fonts/win-ttf
# mkfontscale
# mkfontdir

после этих действий в папке должны появиться два файла font.dir и font.scale

Последнее действие:

# fc-cache /usr/X11R6/lib/X11/fonts/win-ttf

Запускаем графическую оболочку и пользуемся шрифтами.

Кроме этого, наборы шрифтов можно найти в портах /usr/ports/x11-fonts. Сейчас я использую порт /usr/ports/x11-fonts/webfonts.

4.3. Слушаем музыку.

Для прослушивания музыки существует масса проигрыватель. Раньше я был любителем Winamp, поэтому на первых порах выбрал проигрыватель XMMS. Найти проигрыватель можно в портах:

/usr/ports/multimedia/xmms

Однако данный порт не совсем корректно работает с кириллицей. Решить некоторое количество проблем с кодировками можно установив XMMS посредством порта

/usr/ports/russian/xmms

В этом случае мы получаем тот же самый проигрыватель, но с поддержкой перекодировки тегов и имён файлов. Хотя мне так и не удалось заставить XMMS корректно сортировать песни в плейлисте.

В настоящее время я использую связку musicpd (демон, работащий в фоне и проигрывающий музыку) и gmpc (графическая оболочка для управления демоном).

4.4. Записываем диски CD/DVD.

Редкий современный компьютер обходится без пишущего привода. Поскольку мы делаем рабочую станцию, то хотелось бы научиться также писать CD и DVD диски.

Наверняка вы слышали о таких программах, как burncd и cdrecord - консольные утилиты для записи CD. Не будем недооценивать их мощи, но наверняка вам хотелось бы иметь более удобный инструмент для записи. Таким инструментом по праву может стать программа k3b или brasero в составе Gnome:

/usr/ports/sysutils/k3b

Собственно говоря эта программы сами не умеет писать диски, а просто управляет утилитами для записи. Отсюда вытекает необходимость в настройке этой утилиты. Кроме того, если вы собираетесь записывать DVD диски, то необходимо установить дополнительные утилиты для работы с DVD. О том, что нужно добавить, вам расскажет сам k3b.

Как известно, утилита умеет работать только со SCSI устройствами, поэтому первое что мы должны сделать - подгрузить модуль ядра atapicam для обеспечения эмуляции SCSI устройства для нашего CD/DVD привода. Выполняем команду:

# kldload atapicam

Первая консоль должна отреагировать положительно и объявить о появлении нового устройства cd0, также должен появиться файл устройства /dev/cd0. Первый подводный камень с которым мне пришлось встретиться - зависание системы после загрузки модуля ядра. Как выяснилось позже виновником был SATA контроллер на материнской плате. Поскольку у меня на компьютере нет SATA жёстких дисков, я попросту его отключил. Если у вас возникла аналогичная проблема и вам нужен SATA контроллер, можно попробовать поиграться с порядком контроллеров в системе. После этого, к сожалению, придётся заново настраивать файл /etc/fstab, а чтобы его отредактировать, научиться пользоваться утилитой fixit с дистрибутивного диска FreeBSD.

Если загрузка atapicam прошла успешно, не забываем поместить его в автозагрузку:

# ee /boot/loader.conf

Добавляем в него строку

atapicam_load="YES"

Не возбраняется также добавить atapicam непосредственно в ядро системы при пересборке ядра, тогда загружать его через locader.conf не нужно.

Далее нам необходимо проверить, нашла ли утилита cdrecord наш привод/приводы. Выполняем команду:

# cdrecord -scanbus

В ответ мы должны получить примерно следующее:

Cdrecord-Clone 2.01 (i386-unknown-freebsd6.1) Copyright (C) 1995-2004 JЖrg Schilling
Using libscg version 'schily-0.8'.
scsibus1:
        1,0,0   100) '_NEC    ' 'DVD_RW ND-4571A ' '1-02' Removable CD-ROM
        1,1,0   101) *
        1,2,0   102) *
        1,3,0   103) *
        1,4,0   104) *
        1,5,0   105) *
        1,6,0   106) *
        1,7,0   107) *

Т.е. в моём случае cdrecord нашла привод NEC ND-4571A.

На радостях запускаем k3b, но обнаруживаем, что она отказывается видеть наш привод. Почему? Просто все предыдущие команды мы выполняли от пользователя root, а k3b мы запускаем от имени обычного пользователя. Можете попробовать запустить k3b от имени root и убедиться, что программа определяет привод, но нам было бы удобнее и безопаснее работать от имени обычного пользователя. Решением этой проблемы сейчас и займёмся. Самый простой способ выполнить следующую последовательность команд:

# cd /dev
# chmod 0666 acd0 cd0 xpt0 pass0

Устройства xpt0 и pass0 также необходимы для выполнения записи на диск. После выполнения команд можно запустить k3b и убедиться, что привод определяется. Однако после перезагрузки необходимо будет заново выполнять эту последовательность команд. Чтобы избавиться от этого, воспользуемся файлом /etc/devfs.conf. Через этот файл можно задавать владельца и права доступа на файлы устройств при загрузке системы.

Начиная работать с правами сделаем также так, чтобы права на запись диском имели только строго определённые пользователи. Как вы могли заметить, все используемые устройства принадлежат к группе operator. Для разрешения записи мы просто добавим нужного пользователя к этой группе при помощи команды:

# pw usermod USERNAME -G operator,wheel

Обратите внимание, что мы в данном случае также присвоили пользователю группу wheel, благодаря чему дали ему возможность выполнять команду su root, если этого не нужно, то группу wheel можно не указывать. Также обратите внимание на регистр буквы G перед списком групп. Ни в коем случае не используйте g, т.к. она предназначена для задания основной группы пользователя (а её название как правило совпадает с именем пользователя и эта группа может быть только единственной группой).

Итак, зададим необходимые права доступа на файлы:

# ee /etc/devfs.conf

добавим в него следующие строки

perm    acd0    0660
perm    cd0     0660
perm    xpt0    0660
perm    pass0   0660

Таким образом мы разрешим доступ к устройствам для root и группы operator. Можно также добавить следующие строки

own     acd0    root:operator
own     cd0     root:operator
own     xpt0    root:operator
own     pass0    root:operator

Однако во FreeBSD 6.1 данные файлы и так имеют вышеуказанных владельца и группу. Однако кто знает что будет в следующих версиях, поэтому эти строки лишними не будут.

На этом можно заканчивать. Теперь достаточно перезагрузить систему и проверить, что вы можете успешно записывать CD и DVD диски.

Замечание

После нескольких экспериментов с системой я вдруг обнаружил, что k3b потерял мой DVD привод. Решение оказалось допольно простым, просто у меня появилось ещё одно устройство pass1, которое и нужно было для нормальной работы DVD привода.