Десктоп на FreeBSD

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

  • /(корень) - 1-го гига вполне хватит;
  •  swap - не жалейте место под этот раздел, особенно если у вас мало оперативной памяти, поэтому не менее 4 гигов это нормально;
  •  /var - под этот раздел хватит 2-4 гига;
  • /tmp - сюда можно выделить побольше места, потому что для временных файлов большинство программ использует именно этот раздел, поэтому 4 гига, отданные под него, роскошью считаться не будут. Либо можно сделать символическую ссылку на раздел /usr;
  • /usr - сюда выделяйте все оставшееся пространство. 

Так же, не помешало бы провести первоначальную настройку системы, о которой можно прочитать здесь. Все действия я буду проводить на FreeBSD 8.2. Итак, приступим...

В первую очередь обновляем порты. Далее устанавливаем Xorg. Все предлагаемые параметры при сборке пакетов можно оставить по умолчанию  - этого вполне достаточно, но некоторые можно и отключить (например, при сборке мета-порта xorg-drivers можно отключить не нужные драйверы устройств).

# cd /usr/ports/x11/xorg
# make install clean

Следом, после установки иксов, ставим KDE. Я выбрал третью версию, так как ее возможностей для меня хватает, а все эффекты, которые есть в четвертой версии мне ни к чему,  да и памяти она меньше лопает. Опции, которые будут доступны при сборке мета-порта kde3:

  • KDEACCESS - приложения для людей с ограниченными возможностями
  • KDEADMIN - приложения для администрирования системы
  • KDEARTWORK - дополнительные темы, звуки, картинки, стили
  • KDEDEVELOP - мощная IDE для разработки приложений на Qt
  • KDEEDU - коллекция образовательных приложений
  • KDEGAMES - игрушки (сапер, карты и еще куча всего)
  • KDEGRAPHICS - приложения для работы с графикой
  • KDEMULTIMEDIA - программы для работы со звуком
  • KDENETWORK - проги для работы с сетью
  • KOFFICE - мощный текстовый редактор
  • KDEPIM - почта, новости, календарь
  • KDESDK - в помощь разработчику под KDE
  • KDETOYS - дополнительные приложения
  • KDEUTILS - утилиты (kedit, kark, kcal  и др.)
  • KDEWEBDEV - проги для разработки сайтов

Опции, которые выбрал я - подчеркнуты.

# cd /usr/ports/x11/kde3
# make install clean

Поставим русский язык для кед, а так же шрифты, чтобы русские буквы отображались в более красивом виде:

# cd /usr/ports/russian/kde3-i18n
# make install clean
# cd /usr/ports/x11-fonts/webfonts
# make install clean

Если у вас видеокарта от nvidia, то рекомендую установить драйвера от производителя (в зависимости от установленной видеокарты, выберите нужную версию):

/usr/ports/x11/nvidia-driver
/usr/ports/x11/nvidia-driver-173
/usr/ports/x11/nvidia-driver-96
/usr/ports/x11/nvidia-driver-71

Итак, теперь когда необходимый минимум установлен, переходим к настройке... Добавляем сервисы, необходимые для работы X - сервера в автозагрузку и запускаем их:

# echo 'dbus_enable="YES"' >> /etc/rc.conf
# echo 'hald_enable="YES"' >> /etc/rc.conf
# service dbus start
# service hald start

Настраиваем Xorg - от рута выполняем команду Xorg -configure, после чего в домашнем каталоге появится файл xorg.conf.new. Его нужно подправить под ваши нужды и поместить в /etc/X11 под именем xorg.conf. Протестить конфигурационный файл можно запустив сервер и указав сам файл командой - Xorg -config xorg.conf.new -retro (если на экране появится серый фон с указателем мыши в виде крестика, значит конфиг рабочий, иначе смотрите лог файл - /var/log/Xorg.0.log), чтобы закрыть сервер, нужно нажать комбинацию клавиш Ctrl+Alt+Backspace. У меня конфиг выглядит так:

Section "ServerLayout"
       Option         "AllowEmptyInput" "On"       # когда включена, сервер игнорирует секции устройств ввода
       Option         "AutoAddDevices" "On"       # автоматически добавлять новые устройства (работает, если сервер собран с поддержкой HAL)
       Identifier     "X.org Configured"
       Screen      0  "Screen0" 0 0
       InputDevice    "Mouse0" "CorePointer"
       InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
       ModulePath   "/usr/local/lib/xorg/modules"
       FontPath     "/usr/local/lib/X11/fonts/misc/"
       FontPath     "/usr/local/lib/X11/fonts/TTF/"
       FontPath     "/usr/local/lib/X11/fonts/OTF"
       FontPath     "/usr/local/lib/X11/fonts/Type1/"
       FontPath     "/usr/local/lib/X11/fonts/100dpi/"
       FontPath     "/usr/local/lib/X11/fonts/75dpi/"
       FontPath     "/usr/local/lib/X11/fonts/webfonts/"          # этот путь добавьте обязательно, если установите порт webfonts
       FontPath     "/usr/local/share/apps/konsole/fonts/"   # шрифты, установленные с кедами
EndSection

Section "Module"
       Load  "extmod"
       Load  "record"
       Load  "dbe"
       Load  "glx"
       Load  "dri2"
       Load  "type1"
       Load  "freetype"
EndSection

Section "InputDevice"
       # эта секция проигнорируется, если включено автоматическое добавление устройств
       Identifier  "Keyboard0"
       Driver      "kbd"
       Option      "XkbModel" "pc105"
       Option      "XkbLayout" "us,ru"
       Option      "XkbOptions" "grp:ctrl_shift_toggle"
       Option      "XkbRules" "xorg"
       Option      "XkbVariant" "basic,winkeys"
EndSection

Section "InputDevice"
       # эта секция проигнорируется, если включено автоматическое добавление устройств
       Identifier  "Mouse0"
       Driver      "mouse"
       Option      "Protocol" "auto"
       Option      "Device" "/dev/ums0"
       Option      "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
       Option       "DPMS"
       Identifier   "Monitor0"
       VendorName   "Monitor Vendor"
       ModelName    "Monitor Model"
       # по поводу Modeline, получить его можно с помощью программы gtf:
       # например, gtf 1280 1024 85
       Modeline     "1280x1024_85.00"  159.36  1280 1376 1512 1744  1024 1025 1028 1075  -HSync +Vsync
EndSection

Section "Device"
       # тут все настройки взяты из руководства поставляемом вместе с драйверами nvidia
       # найти его можно тут - /usr/local/share/doc/NVIDIA_GLX-1.0
       Option      "AddARGBGLXVisuals" "On"
       Option      "UseEdidDpi" "False"
       Option      "DPI" "96 x 96"
       Identifier  "Card0"
       Driver      "nvidia"
       VendorName  "nVidia Corporation"
       BoardName   "G84 [GeForce 8600GT]"
       BusID       "PCI:2:0:0"
EndSection

Section "Screen"
       # ну собственно секция настройки экрана (разрешение, глубина цвета...)
       Identifier "Screen0"
       Device     "Card0"
       Monitor    "Monitor0"
       DefaultDepth 24
       SubSection "Display"
               Viewport   0 0
               Depth     24
               Modes     "1280x1024_85.00"
       EndSubSection
EndSection

Теперь самое время настроить HAL и PolicyKit. Если в конфиге X сервера вы отключили автоматическое добавление устройств, то HAL настраивать не требуется. Так же если вы установили четвертую версию кед, то ни HAL, ни PolicyKit вам настраивать не нужно, там работает все из коробки :) В другом случае HAL надо настроить для того, чтобы при добавлении нового устройства передать необходимые параметры X серверу. Чтобы настроить устройства ввода, нужно отредактировать файл - /usr/local/etc/hal/fdi/policy/x11-input.fdi. Вот содержимое моего файла (настраивается раскладка клавиатуры, комбинация клавиш переключения раскладки):

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
 <device>
   <match key="info.capabilities" contains="input.keyboard">
     <merge key="input.x11_options.XkbModel" type="string">pc105</merge>
     <merge key="input.x11_options.XkbLayout" type="string">us,ru</merge>
     <merge key="input.x11_options.XkbOptions" type="string">grp:ctrl_shift_toggle</merge>
     <merge key="input.x11_options.XkbRules" type="string">xorg</merge>
     <merge key="input.x11_options.XkbVariant" type="string">basic,winkeys</merge>
   </match>
 </device>
</deviceinfo>

PolicyKit необходимо настроить, чтобы обычные пользователи в кедах могли монтировать устройства. Редактируем файл /usr/local/etc/PolicyKit/PolicyKit.conf ($USER - надо заменить на реального пользователя в системе):

<?xml version="1.0" encoding="UTF-8"?> <!-- -*- XML -*- -->

<!DOCTYPE pkconfig PUBLIC "-//freedesktop//DTD PolicyKit Configuration 1.0//EN"
"http://hal.freedesktop.org/releases/PolicyKit/1.0/config.dtd">

<!-- See the manual page PolicyKit.conf(5) for file format -->

<config version="0.1">
   <match user="root">
       <return result="yes"/>
   </match>
   <define_admin_auth group="wheel"/>
   <match user="$USER">
     <match action="org.freedesktop.hal.storage.*">
       <return result="yes"/>
     </match>
     <match action="hal-storage-mount-fixed-extra-options">
       <!-- for internal devices mounted with extra options like a wished mount point -->
       <return result="yes" />
     </match>
     <match action="hal-storage-mount-removable-extra-options">
     <!-- for external devices mounted with extra options like a wished mount point -->
       <return result="yes" />
     </match>
   </match>
</config>

Так же необходимо убрать или закомментировать в /etc/fstab строку, связанную с приводом, чтобы дать возможность обычным пользователям монтировать диски (иначе кеды попытаются смонтировать диск по указанному пути в /etc/fstab, и если к той папке у него не будет доступа - получит отказ):

/dev/cd0         /cdrom      cd9660          ro,noauto  0      0

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

# kldload snd_driver
# cat /dev/sndstat
FreeBSD Audio Driver (newpcm: 64bit 2009061500/amd64)
Installed devices:
pcm0: <HDA Realtek ALC887 PCM #0 Analog> (play/rec) default
pcm1: <HDA Realtek ALC887 PCM #1 Analog> (play/rec)
pcm2: <HDA Realtek ALC887 PCM #2 Digital> (play/rec)

P.S. Вообще при загрузке модулей в ядро, стоит для начала изучить конфиг ядра, потому что модуль, который вы хотите загрузить, может уже быть вкомпилирован в ядро. Вот, например, в 9.0-RELEASE в ядро GENERIC включили некоторые драйверы для звуковых карт.

Из этого следует вывод, что у меня звуковуха - High Definition Audio, драйвер для нее называется так - snd_hda. Добавляю его в автозагрузку:

# echo 'snd_hda_load="YES"' >> /boot/loader.conf

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

sysctl dev.pcm.0.play.vchans=8

И наконец-то настал тот момент, когда можно запускать кеды. Запустить их можно несколькими способами. Первый способ: вы размещаете в домашнем каталоге в файле - ".(точка в начале)xinitrc" такую строку - "exec startkde" и запускаете сервер самостоятельно командой startx.
Второй способ: это включить еще один терминал, на котором будет висеть менеджер kdm, при запуске системы терминал будет автоматически активироваться. Для этого в файле /etc/ttys правим следующую строку:

ttyv8   "/usr/local/bin/xdm -nodaemon"  xterm   off  secure

на

ttyv8   "/usr/local/bin/kdm -nodaemon"  xterm   on  secure

и заново инициализируем терминалы командой

# kill -1 1

После проведенных действий должна запуститься графическая среда с окном для ввода пользователя и его пароля. Кстати, этот самый менеджер с настройками по умолчанию под рутом зайти не даст (да и ни к чему это), так что перед его запуском создайте простого пользователя и заходите уже под ним.
В третьих кедах есть небольшой глюк с раскладкой клавиатуры, проявляется он в том, что при включении в центре управления "Включить переключение раскладок клавиатуры" раскладка перестает переключаться при нажатии настроенной комбинации клавиш. Лечится это просто: 

  • Заходите в "Центр управления" - "Региональные и специальные возможности" - "Раскладка клавиатуры". Ставите галочку напротив "Включить переключение раскладок клавиатуры", добавляете нужные языки в "Используемые раскладки". Далее жмете на раскладку "Russia", ставите вариант раскладки в winkeys и ставите галочку напротив "Включить латинскую раскладку". Потом переходите во вкладку "Параметры XCB", там ставите галочку напротив "Использовать переключатели XCB", выбираете нужную комбинацию клавиш и нажимаете применить.
  • Заходите в "Центр управления" - "Региональные и специальные возможности" - "Комбинации клавиш", ищете там пункт "Переключиться на следующую раскладку клавиатуры". Пробуете установить нужную вам раскладку, ага, косяк, вместо нужной получаем - "Ctrl+ISO_Prev_Group". Жмете применить и в удобном для вас редакторе  открываете файл - ~/.kde/share/config/kdeglobals. Ищете строку "Switch to Next Keyboard Layout" и пишете нужную вам комбинацию клавиш (я использую ctrl+shift, поэтому у меня эта строчка имеет такой вид - Switch to Next Keyboard Layout=Ctrl+Shift_L).
  • Снова заходите в "Центр управления" - "Региональные и специальные возможности" - "Раскладка клавиатуры", убираете галочку с "Включить переключение раскладок клавиатуры", жмете применить, а потом снова ее включаете.

Теперь расскажу - как можно подружить konqueror с форматом djvu. Вначале нужно установить соответствующую библиотеку.

# cd /usr/ports/graphics/djvulibre
# make install clean

После завершения установки, лезем в настройки konqueror,а: "Настройка" - "Настроить Konqueror" - "Модули". Далее в список папок, которые сканируются на предмет плагинов, вбиваете такой путь - /usr/local/lib/djvulibre/plugins. Жмете кнопку "Искать новые модули" и после этого во вкладке "Модули" должен появиться нужный нам модуль - "nsdejavu.so". Вот и все, теперь Konqueror сможет читать формат djvu.
Пару слов про внешний вид GTK приложений в KDE - если ничего не настраивать, то внешний вид таких приложений хуже оформления 98 винды. Так вот, чтобы порадовать глаз внешним видом GTK приложений, делаем следующее:

1. Ставим порт qtcurve-gtk2:

# cd /usr/ports/x11-themes/qtcurve-gtk2
# make install clean

2. Далее в корне домашней папки пользователя, под которым вы работаете в кедах, создаем файл ".(точка вначале)gtkrc-2.0 " такого содержания:

include "/usr/local/share/themes/QtCurve/gtk-2.0/gtkrc"

style "user-font" {
 font_name = "Verdana 10"
}
widget_class "*" style "user-font"
gtk-font-name="Verdana 10"
gtk-theme-name  = "qtcurve"
gtk-icon-theme-name = "Tango"

И после этих не сложных действий получаем приятные на внешний вид GTK приложения.

После подгона кед под себя можно приступить к установке дополнительного софта... Мне нужна программа для записи дисков, самая лучшая из всех (а знаю я только одну :)) это k3b. Такс значит ставим.

# cd /usr/ports/sysutils/k3b
# make install clean
# cd /usr/ports/misc/k3b-i18n
# make install clean

P.S. Новая версия проги здесь - cd /usr/ports/sysutils/k3b-kde4. 
Написана под KDE4 на Qt4, если вы пользуетесь KDE4, то она для вас.
Хотя ни что не мешает поставить ее и на 3 версию кед :).

Для того, чтобы программа могла работать с приводом, нужно немного настроить систему. Так как прога работает только со SCSI устройствами, то нужно загрузить модуль atapicam (а можно вшить в ядро, если есть желание), чтобы привод, подключенный через интерфейс IDE, был виден k3b. Этот модуль предоставляет интерфейс работы с такими приводами (ну и др. устройствами) через SCSI.

# kldload atapicam

А так же, чтобы модуль подгружался при запуске системы, сделаем вот что

# echo 'atapicam_load="YES"' >> /boot/loader.conf

И после того как загрузили модуль просканируем все шины:

# camcontrol rescan all

Теперь нужно дать права на чтение и запись на все, что связано с приводом пользователям, которым это необходимо или всем пользователям... Для этого редактируем файл /etc/devfs.rules, в нем должны быть такие строки:

[system=10]
add path 'cd*' mode 666
add path 'pass*' mode 666
add path 'xpt0' mode 666
или (если хотите дать права определенной группе)
[system=10]
add path 'cd*' mode 660 group operator
add path 'pass*' mode 660 group operator
add path 'xpt0' mode 660 group operator

Потом в /etc/rc.conf нужно добавить следующую строку:

devfs_system_ruleset="system"

И применить новые правила следующей командой:

# service devfs restart

Теперь k3b готов к использованию. С остальными приложениями проблем возникнуть не должно. Вот небольшой список программ, которые помогут вам немного освоиться в новой системе:

  • Офисные приложения:
    • KOffice - офисный пакет от разработчиков KDE (/usr/ports/editors/koffice-kde3)
    • OpenOffice - аналог MIcrosoft Office (/usr/ports/editors/openoffice.org-3)
  • Клиенты для популярных протоколов общения:
    • Pidgin - поддерживает кучу протоколов: icq, jabber,msn... (/usr/ports/net-im/pidgin)
    • licq - клиент ICQ (/usr/ports/net-im/licq)
    • gajim - джаббер клиент (/usr/ports/net-im/gajim)
  • Мультимедийные приложения:
    • Audacious - хороший плеер, интерфейс как у winamp, в добавок поддерживает скины от того же winamp,а (/usr/ports/multimedia/audacious)
    • Amarok - этот плеер имеет большой функционал для каталогизации музыки (/usr/ports/audio/amarok)
  • Видео проигрыватели:
    • VLC - хороший медиаплеер, поддерживает кучу различных видео форматов. Можно использовать в качестве сервера для трансляции потока аудио/видео по сети (/usr/ports/multimedia/vlc)
    • Kaffeine - хорошая морда для библиотеки xine-lib. Сама же библиотека держит тучу видео форматов (/usr/ports/multimedia/kaffeine)
  • Программы для работы с изображениями:
    • GIMP - мощный редактор, имеет много возможностей обработки изображений (/usr/ports/graphics/gimp)
  • Виртуализация:
    • VirtualBox - виртуальная машина от Oracle, есть GUI, поддерживает большинство современных ОС, умеет пользоваться аппаратными механизмами виртуализации (/usr/ports/emulators/virtualbox-ose)
    • qemu - программа с открытым исходным кодом для эмуляции аппаратного обеспечения различных платформ (/usr/ports/emulators/qemu)
  • Браузеры:
    • Opera - бесплатный браузер от Opera Software, шустрый, безопасный и не лопает много ресурсов (/usr/ports/www/opera)
    • Firefox - бесплатный браузер с открытым исходным кодом (/usr/ports/www/firefox-36)
  • Почта:
    • Thunderbird - бесплатная, кроссплатформенная, свободно распространяемая программа для работы с электронной почтой и группами новостей. Имеет богатый функционал для работы с почтой (/usr/ports/mail/thunderbird3)

На заметку - у меня есть несколько шар на файловом сервере, и чтобы каждый раз не подключать их вручную я добавил их в /etc/fstab.

//tmp_user@srv-home.local/distrib /mnt/distrib smbfs ro,late 0 0
//tmp_user@srv-home.local/video /mnt/video smbfs ro,late 0 0
//tmp_user@srv-home.local/music /mnt/music smbfs ro,late 0 0
//tmp_user@srv-home.local/wallpapers /mnt/wallpapers smbfs ro,late 0 0

Если все оставить в таком виде, то каждый раз при загрузке система будет спрашивать пароль для пользователя, для автоматизации этого процесса есть файл - /etc/nsmb.conf. Это конфигурационный файл для SMB протокола, программы на вроде mount_smbfs используют его при подключении удаленных ресурсов.

[default]
workgroup=HOME

[SRV-HOME.LOCAL]
charsets=utf-8:cp866
addr=192.168.7.250

[SRV-HOME.LOCAL:TMP_USER]
password=1234

Ну вот настройка системы в роли десктопа завершена, далее затачивайте ее под себя. Да, еще забыл сказать, что есть такая прога под названием wine, она позволяет запускать виндовые приложения в nix системах (офисные приложения, игры и т.д.), очень полезная. Ниже я привел ссылку на базу данных запускавшихся приложений под wine.

sys_dev

Если честно меня уже бесят такое большое количество ресурсов как поднять мускул на фрихе или PostgresSQL. Но почему-то ни одного толкого ресурса посвященного исключительно настройке десктопа на FreeBSD. Лично мне хочется очень удобный и красивый интерфейс. Однако я новичок во фрихе и только только делаю первые шаги. О чем это я? О том что было бы круто если бы появился проект направленный исключительно на настройку десктопа!!!

По статье:
1) Нету ни одной ссылки
2) Не приведена ни одна книга
Т.е. если чел получит траблы, то где ему искать помощь?

nekit

Я вот не представляю о чем еще можно написать по поводу настройки фри в роли десктопа. Рабочее окружение поднял, набор программ установил и вот он десктоп. Есть идеи? 

1) Нету ни одной ссылки

На счет ссылок подумаю, чтоб дальше расти можно было. Хотя на первых порах главное поднять систему и поставить необходимые программы (список таковых, я кстати, привел). А в остальном лучше методом проб и ошибок, иначе понимания никак не добиться.

2) Не приведена ни одна книга

Все книги, что я видел - старые, поэтому не во всех аспектах актуальные. Думаю самая лучшая книга это хэндбук и маны, по ним все можно осилить.

Т.е. если чел получит траблы, то где ему искать помощь?

Для этого я сделал форум)))

aldous (не проверено)

Как сделать из фри десктоп? Поставить PC-BSD, как это сделал я=). Установка в три клика, не сложнее федоры.

Гость (не проверено)

Использую FreeBSD как десктопную ОС, лично доволен, чем теми же линуксами. На линукс даже нету желания возвращатся. Удобно тем, что это одна система, а не просто ядро, еще тем, что *BSD усовершенствуется и добавляются новые функции, а не как в линуксе - установил дистрибутив, работает принтер, пришли обновления, и принтер перестал работать, так же я перешел на использование pkgng, супер  сделали, лучше чем pkg_*, порты в чём-то тоже полезные.

Да были проблемные ситуации, но они решались

trefas (не проверено)

6-ой час ставлю иксы из порта. устал(((((((((((((((((((

Ооо, когда дело до KDE дойдет будет еще веселее... Хотя 6 часов для иксов реально долго... Железо старое?
Кстати, если ОЗУ полно, то классно на виртуальном диске тяжелые порты собирать (man md), ускоряет процесс компиляции в разы!

Добавить комментарий

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Яндекс.Метрика