Десктоп на FreeBSD

Опубликовано nekit - пт, 17/06/2011 - 14:31

Вот решил накатать статейку о том, как можно из серверной ОС сделать вполне удобный десктоп. Установку операционки здесь я описывать не буду, потому что в хэндбуке этой теме посвящен целый раздел. Могу только сказать пару слов по поводу разбивки разделов на жестком диске, для десктопа: /(корень) - 1-го гига вполне хватит; swap - не жалейте место под этот раздел, особенно если у вас мало оперативной памяти, поэтому 2-4 гига это нормально; /var - под этот раздел хватит 1-2 гигов, /tmp - сюда можно выделить побольше места, потому что для временных файлов большинство программ использует именно этот раздел, поэтому 4 гига, отданные под него, роскошью считаться не будут; /usr - сюда тупо выделяйте все оставшееся пространство. Так же, не помешало бы провести первоначальную настройку системы, о которой можно прочитать здесь.
Все действия я буду проводить на FreeBSD 8.2. Итак, приступим...

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

  1. # cd /usr/ports/x11/xorg
  2. # 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 - проги для разработки сайтов

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

  1. # cd /usr/ports/x11/kde3
  2. make install clean

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

  1. # cd /usr/ports/russian/kde3-i18n
  2. # make install clean
  3. # cd /usr/ports/x11-fonts/webfonts
  4. # make install clean

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

  1. /usr/ports/x11/nvidia-driver
  2. /usr/ports/x11/nvidia-driver-173
  3. /usr/ports/x11/nvidia-driver-96
  4. /usr/ports/x11/nvidia-driver-71

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

  1. # echo 'dbus_enable="YES"' >> /etc/rc.conf
  2. # echo 'hald_enable="YES"' >> /etc/rc.conf
  3. # service dbus start
  4. # 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. У меня конфиг выглядит так:

  1. Section "ServerLayout"
  2.         Option         "AllowEmptyInput" "On"       # когда включена, сервер игнорирует секции устройств ввода
  3.         Option         "AutoAddDevices" "On"       # автоматически добавлять новые устройства (работает, если сервер собран с поддержкой HAL)
  4.         Identifier     "X.org Configured"
  5.         Screen      0  "Screen0" 0 0
  6.         InputDevice    "Mouse0" "CorePointer"
  7.         InputDevice    "Keyboard0" "CoreKeyboard"
  8. EndSection
  9.  
  10. Section "Files"
  11.         ModulePath   "/usr/local/lib/xorg/modules"
  12.         FontPath     "/usr/local/lib/X11/fonts/misc/"
  13.         FontPath     "/usr/local/lib/X11/fonts/TTF/"
  14.         FontPath     "/usr/local/lib/X11/fonts/OTF"
  15.         FontPath     "/usr/local/lib/X11/fonts/Type1/"
  16.         FontPath     "/usr/local/lib/X11/fonts/100dpi/"
  17.         FontPath     "/usr/local/lib/X11/fonts/75dpi/"
  18.         FontPath     "/usr/local/lib/X11/fonts/webfonts/"          # этот путь добавьте обязательно, если установите порт webfonts
  19.         FontPath     "/usr/local/share/apps/konsole/fonts/"   # шрифты, установленные с кедами
  20. EndSection
  21.  
  22. Section "Module"
  23.         Load  "extmod"
  24.         Load  "record"
  25.         Load  "dbe"
  26.         Load  "glx"
  27.         Load  "dri2"
  28.         Load  "type1"
  29.         Load  "freetype"
  30. EndSection
  31.  
  32. Section "InputDevice"
  33.         # эта секция проигнорируется, если включено автоматическое добавление устройств
  34.         Identifier  "Keyboard0"
  35.         Driver      "kbd"
  36.         Option      "XkbModel" "pc105"
  37.         Option      "XkbLayout" "us,ru"
  38.         Option      "XkbOptions" "grp:ctrl_shift_toggle"
  39.         Option      "XkbRules" "xorg"
  40.         Option      "XkbVariant" "basic,winkeys"
  41. EndSection
  42.  
  43. Section "InputDevice"
  44.         # эта секция проигнорируется, если включено автоматическое добавление устройств
  45.         Identifier  "Mouse0"
  46.         Driver      "mouse"
  47.         Option      "Protocol" "auto"
  48.         Option      "Device" "/dev/ums0"
  49.         Option      "ZAxisMapping" "4 5 6 7"
  50. EndSection
  51.  
  52. Section "Monitor"
  53.         Option       "DPMS"
  54.         Identifier   "Monitor0"
  55.         VendorName   "Monitor Vendor"
  56.         ModelName    "Monitor Model"
  57.         # по поводу Modeline, получить его можно с помощью программы gtf:
  58.         # например, gtf 1280 1024 85
  59.         Modeline     "1280x1024_85.00"  159.36  1280 1376 1512 1744  1024 1025 1028 1075  -HSync +Vsync
  60. EndSection
  61.  
  62. Section "Device"
  63.         # тут все настройки взяты из руководства поставляемом вместе с драйверами nvidia
  64.         # найти его можно тут - /usr/local/share/doc/NVIDIA_GLX-1.0
  65.         Option      "AddARGBGLXVisuals" "On"
  66.         Option      "UseEdidDpi" "False"
  67.         Option      "DPI" "96 x 96"
  68.         Identifier  "Card0"
  69.         Driver      "nvidia"
  70.         VendorName  "nVidia Corporation"
  71.         BoardName   "G84 [GeForce 8600GT]"
  72.         BusID       "PCI:2:0:0"
  73. EndSection
  74.  
  75. Section "Screen"
  76.         # ну собственно секция настройки экрана (разрешение, глубина цвета...)
  77.         Identifier "Screen0"
  78.         Device     "Card0"
  79.         Monitor    "Monitor0"
  80.         DefaultDepth 24
  81.         SubSection "Display"
  82.                 Viewport   0 0
  83.                 Depth     24
  84.                 Modes     "1280x1024_85.00"
  85.         EndSubSection
  86. EndSection

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

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

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

  1. <?xml version="1.0" encoding="UTF-8"?> <!-- -*- XML -*- -->
  2.  
  3. <!DOCTYPE pkconfig PUBLIC "-//freedesktop//DTD PolicyKit Configuration 1.0//EN"
  4. "http://hal.freedesktop.org/releases/PolicyKit/1.0/config.dtd">
  5.  
  6. <!-- See the manual page PolicyKit.conf(5) for file format -->
  7.  
  8. <config version="0.1">
  9.     <match user="root">
  10.         <return result="yes"/>
  11.     </match>
  12.     <define_admin_auth group="wheel"/>
  13.     <match user="$USER">
  14.       <match action="org.freedesktop.hal.storage.*">
  15.         <return result="yes"/>
  16.       </match>
  17.       <match action="hal-storage-mount-fixed-extra-options">
  18.         <!-- for internal devices mounted with extra options like a wished mount point -->
  19.         <return result="yes" />
  20.       </match>
  21.       <match action="hal-storage-mount-removable-extra-options">
  22.       <!-- for external devices mounted with extra options like a wished mount point -->
  23.         <return result="yes" />
  24.       </match>
  25.     </match>
  26. </config>

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

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

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

  1. # kldload snd_driver
  2. # cat /dev/sndstat
  3. FreeBSD Audio Driver (newpcm: 64bit 2009061500/amd64)
  4. Installed devices:
  5. pcm0: <HDA Realtek ALC887 PCM #0 Analog> (play/rec) default
  6. pcm1: <HDA Realtek ALC887 PCM #1 Analog> (play/rec)
  7. pcm2: <HDA Realtek ALC887 PCM #2 Digital> (play/rec)
P.S. Вообще при загрузке модулей в ядро, стоит для начала изучить конфиг ядра, потому что модуль, который вы хотите загрузить, может уже быть вкомпилирован в ядро. Вот, например, в 9.0-RELEASE в ядро GENERIC включили некоторые драйверы для звуковых карт. Из этого следует вывод, что у меня звуковуха - High Definition Audio, драйвер для нее называется так - snd_hda. Добавляю его в автозагрузку:
  1. # echo 'snd_hda_load="YES"' >> /boot/loader.conf
Еще нужно увеличить количество виртуальных каналов для устройсва вывода звука, чтобы несколько приложений могли одновременно проигрывать звук:
  1. sysctl dev.pcm.0.play.vchans=8
И наконец-то настал тот момент, когда можно запускать кеды. Запустить их можно несколькими способами. Первый способ: вы размещаете в домашнем каталоге в файле - ".(точка в начале)xinitrc" такую строку - "exec startkde" и запускаете сервер самостоятельно командой startx. Второй способ: это включить еще один терминал, на котором будет висеть менеджер kdm, при запуске системы терминал будет автоматически активироваться. Для этого в файле /etc/ttys правим следующую строку
  1. ttyv8   "/usr/local/bin/xdm -nodaemon"  xterm   off  secure
на
  1. ttyv8   "/usr/local/bin/kdm -nodaemon"  xterm   on  secure
и заного инициализируем терминалы командой
  1. # 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. Вначале нужно установить соответствующую библиотеку.
  1. # cd /usr/ports/graphics/djvulibre
  2. # make install clean
После завершения установки, лезем в настройки konqueror,а: "Настройка" - "Настроить Konqueror" - "Модули". Далее в список папок, которые сканируются на предмет плагинов, вбиваете такой путь - /usr/local/lib/djvulibre/plugins. Жмете кнопку "Искать новые модули" и после этого во вкладке "Модули" должен появиться нужный нам модуль - "nsdejavu.so". Вот и все, теперь Konqueror сможет читать формат djvu. Пару слов про внешний вид GTK приложений в KDE - если ничего не настраивать, то внешний вид таких приложений хуже оформления 98 винды. Так вот, чтобы порадовать глаз внешним видом GTK приложений, делаем следующее:
  • Ставим порт qtcurve-gtk2:
    1. # cd /usr/ports/x11-themes/qtcurve-gtk2
    2. # make install clean
  • Далее в корне домашней папки пользователя, под которым вы работаете в кедах, создаем файл ".(точка вначале)gtkrc-2.0 " такого содержания:
    1. include "/usr/local/share/themes/QtCurve/gtk-2.0/gtkrc"
    2.  
    3. style "user-font" {
    4.   font_name = "Verdana 10"
    5. }
    6. widget_class "*" style "user-font"
    7. gtk-font-name="Verdana 10"
    8. gtk-theme-name  = "qtcurve"
    9. gtk-icon-theme-name = "Tango"
И после этих не сложных действий получаем приятные на внешний вид GTK приложения. После подгона кед под себя можно приступить к установке дополнительного софта... Мне нужна программа для записи дисков, самая лучшая из всех (а знаю я только одну :)) это k3b. Такс значит ставим.
  1. # cd /usr/ports/sysutils/k3b
  2. # make install clean
  3. # cd /usr/ports/misc/k3b-i18n
  4. # make install clean
P.S. Новая версия проги здесь - cd /usr/ports/sysutils/k3b-kde4. Написана под KDE4 на Qt4, если вы пользуетесь KDE4, то она для вас. Хотя ни что не мешает поставить ее и на 3 версию кед :). Для того, чтобы программа могла работать с приводом, нужно немного настроить систему. Так как прога работает только со SCSI устройствами, то нужно загрузить модуль atapicam (а можно вшить в ядро, если есть желание), чтобы привод, подключенный через интерфейс IDE, был виден k3b. Этот модуль предоставляет интерфейс работы с такими приводами (ну и др. устройствами) через SCSI.
  1. # kldload atapicam
А так же, чтобы модуль подгружался при запуске системы, сделаем вот что
  1. # echo 'atapicam_load="YES"' >> /boot/loader.conf
И после того как загрузили модуль просканируем все шины:
  1. # camcontrol rescan all
Теперь нужно дать права на чтение и запись на все, что связано с приводом пользователям, которым это необходимо или всем пользователям... Для этого редактируем файл /etc/devfs.rules, в нем должны быть такие строки:
  1. [system=10]
  2. add path 'cd*' mode 666
  3. add path 'pass*' mode 666
  4. add path 'xpt0' mode 666
  5. или (если хотите дать права определенной группе)
  6. [system=10]
  7. add path 'cd*' mode 660 group operator
  8. add path 'pass*' mode 660 group operator
  9. add path 'xpt0' mode 660 group operator
Потом в /etc/rc.conf нужно добавить следующую строку:
  1. devfs_system_ruleset="system"
И применить новые правила следующей командой:
  1. # 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.
  1. //tmp_user@srv-home.local/distrib /mnt/distrib smbfs ro,late 0 0
  2. //tmp_user@srv-home.local/video /mnt/video smbfs ro,late 0 0
  3. //tmp_user@srv-home.local/music /mnt/music smbfs ro,late 0 0
  4. //tmp_user@srv-home.local/wallpapers /mnt/wallpapers smbfs ro,late 0 0
Если все оставить в таком виде, то каждый раз при загрузке система будет спрашивать пароль для пользователя, для автоматизации этого процесса есть файл - /etc/nsmb.conf. Это конфигурационный файл для SMB протокола, программы на вроде mount_smbfs используют его при подключении удаленных ресурсов.
  1. [default]
  2. workgroup=HOME
  3.  
  4. [SRV-HOME.LOCAL]
  5. charsets=utf-8:cp866
  6. addr=192.168.7.250
  7.  
  8. [SRV-HOME.LOCAL:TMP_USER]
  9. password=1234
Ну вот настройка системы в роли десктопа завершена, далее затачивайте ее под себя. Да, еще забыл сказать, что есть такая прога под названием wine, она позволяет запускать виндовые приложения в nix системах (офисные приложения, игры и т.д.), очень полезная. Ниже я привел ссылку на базу данных запускавшихся приложений под wine.

вс, 15/01/2012 - 16:39

вс, 15/01/2012 - 17:14

пн, 03/12/2012 - 20:41

чт, 26/04/2018 - 21:37

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

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