Установка Xfce на FreeBSD. Быстрый desktop

Задача — относительно быстрый десктоп на правильной ОС FreeBSD, для выполнения повседневных задач. В качестве среды рабочего стола опробовал Gnome — показался медленноватым, про KDE 4 я вообще молчу. Решено было установить Xfce и, как оказалось, не зря.
Конфигурация ПК, на который будет производиться установка:
• CPU: Intel P4 2400MHz
• ОЗУ: 1024 Мб
• VIDEO: AGP NVidia Geforce FX5600
• LAN: D-link 528T
• IDE DVD-RW
• IDE HDD 80 Gb
• 2 монитора
Будем думать что ОС FreeBSD уже установлена, если нет то идём сюда, устанавливаем и обновляем порты.
Поддержка IPV6 нам не надо, поэтому в /etc/make.conf пишем строку:
WITHOUT_IPV6=YES

Установка Xfce4.

Устанавливаем xfce4 без вопросов:
make BATCH=yes -C/usr/ports/x11-wm/xfce4 install clean

Установка и настройка Xorg.

Устанавливаем Xorg:
make BATCH=yes -C/usr/ports/x11/xorg install clean
rehash

Если у вас стандартный шелл FreeBSD, то без rehash или перезагрузки «Xorg -configure» работать не будет.

Под пользователем, который будет работать на пк, выполняем (файлы хранятся в домашней директории пользователя):
echo "/usr/local/bin/startxfce4" > ~/.xinitrc
echo "#!/bin/sh" > ~/.xsession
echo "/usr/local/bin/startxfce4" >> ~/.xsession
chmod +x ~/.xsession

делаем уже из под root’а:
Xorg -configure

копирую в нужное место сгенерированный командой «Xorg -configure» конфиг:
cp /root/xorg.conf.new /etc/X11/xorg.conf
Добавляю данные о соответствии IP — имя_пк в файл /etc/hosts:
echo 'IP_вашего_ПК полное_имя_ПК_из_/etc/rc.conf' >> /etc/hosts

здесь
IP_вашего_ПК –можно посмотреть в /etc/rc.conf или командой ifconfig
полное_имя_ПК_из_/etc/rc.conf –полное имя вашего ПК, которое можно посмотреть в /etc/rc.conf или командой “uname –ra” после слова FreeBSD, но перед версией её релиза.
без добавления ругалось:
"Could not look up internet address for {hostname}.This will prevent Xfce from operating correctly. It may be possible to correct the problem by adding {hostname} to the file /etc/hosts on your system."

Корректируем /etc/rc.conf командами (hald и dbus нужны нам будут для нормального завершения работы ОС с кнопочек в графическом интерфейсе, а не через консоль от имени root’a):
echo 'hald_enable="YES"' >> /etc/rc.conf
echo 'dbus_enable="YES"' >> /etc/rc.conf

Редактируем /etc/X11/xorg.conf до следующего состояния:
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection

Section "Files"
FontPath "/usr/local/lib/X11/fonts/misc/:unscaled"
FontPath "/usr/local/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/local/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/local/lib/X11/fonts/misc/"
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/cyrillic/"
FontPath "/usr/local/lib/X11/fonts/TTF/"
EndSection

Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/sysmouse"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "keyboard"
EndSection

Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 28.0 - 33.0
VertRefresh 43.0 - 72.0
Option "DPMS"
EndSection

Section "Device"
Identifier "Device0"
Driver "vesa"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection

Перезагружаемся (команада reboot), залогиниваемся под пользователем, запускаем xfce4 командой от обычного пользователя:
startxfce4

xfce4 запускается, но с убогим разрешением, так как используется драйвер «vesa», а не nvidia. Картинка на 2-ух мониторах одинаковая, а надо растянуть её на 2-а монитора. Решаем эти проблемы.

Установка драйверов NVidia и допиливание Xorg.

Подгружаем модуль linprocfs ядро(работаем под root’ом)
kldload linprocfs

надо поставить поддержку линукса, ищем последнюю версию в портах:
cd /usr/ports
make search name=linux_base-f

поиск выдал много вариантов, один из которых:
...
Port: linux_base-f10-10_2
Path: /usr/ports/emulators/linux_base-f10
Info: Base set of packages needed in Linux mode for i386/amd64 (Linux Fedora 10)
Maint: emulation@FreeBSD.org
B-deps:
R-deps:
WWW:
.....

Последняя версия на данный момент linux_base-f10-10_2, устанавливаю из портов:
make BATCH=yes -C/usr/ports/emulators/linux_base-f10 install clean
Далее в /etc/rc.conf добавляем linux_enable=»YES» командой:
echo 'linux_enable="YES"' >> /etc/rc.conf

и дополняем файл /etc/fstab командой:
echo 'linprocfs /compat/linux/proc linprocfs rw 0 0' >> /etc/fstab

монтируем fs:
mount /compat/linux/proc

перезагрузимся, чтобы перечитать rc.conf:
shutdown -r now

Теперь ставим драйвера от NVidia.
Ставлю nvidia-driver-173 , а не последнюю версию, так как нужно на мою видео карту именно версия 173
Установив последнюю версию драйверов(на тот момент nvidia-driver 195.36.15), иксы не запускались, благо выдавало в лог (/var/log/Xorg.0.log) подсказку:
...
(WW) May 02 21:07:48 NVIDIA(0): The NVIDIA GeForce FX 5600XT GPU installed in this system is
(WW) May 02 21:07:48 NVIDIA(0): supported through the NVIDIA 173.14.xx Legacy drivers.
(WW) May 02 21:07:48 NVIDIA(0): Please visit http://www.nvidia.com/object/unix.html for
(WW) May 02 21:07:48 NVIDIA(0): more information. The 195.36.15 NVIDIA driver will ignore
(WW) May 02 21:07:48 NVIDIA(0): this GPU. Continuing probe...
(EE) No devices detected.

Fatal server error:
no screens found

Где чётко сказано, что для установленной видео карточки GeForce FX 5600XT необходимо использовать драйвера NVIDIA 173.14.xx За подробностями советуют посетить http://www.nvidia.com/object/unix.html

Итак вернёмся к установке драйверов nvidia на FreeBSD. Ставим версию 173.14.xx:
make -C /usr/ports/x11/nvidia-driver-173 install clean
rehash

Options for nvidia-driver 173.14.25
[X] FREEBSD_AGP Use FreeBSD AGP GART driver
[ ] ACPI_PM Enable support for ACPI Power Management
[X] LINUX Build with support for Linux compatibility

После того как установилось, надо подгрузить модуль nvidia в ядро, поэтому делаем:
kldload nvidia

Чтобы модуль подгружался автоматически при загрузке ОС делаем:
echo 'nvidia_load="YES"' >> /boot/loader.conf

Снова пробуем запустить xfce4 от пользователя:
startxfce4

запускается, но работает только один монитор с нормальным разрешением благодаря драйверам нвидиа, а надо, чтобы на 2-а монитора, поэтому правим /etc/X11/xorg.conf
ee /etc/X11/xorg.conf

до следующего состояния:
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection

Section "Files"
FontPath "/usr/local/lib/X11/fonts/misc/:unscaled"
FontPath "/usr/local/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/local/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/local/lib/X11/fonts/misc/"
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/cyrillic/"
FontPath "/usr/local/lib/X11/fonts/TTF/"
EndSection

Section "Module"
Load "extmod"
Load "dri"
Load "glx"
Load "dbe"
Load "record"
Load "xtrap"
Load "type1"
Load "freetype"
EndSection

Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/sysmouse"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "keyboard"
EndSection

Section "Monitor"
Identifier "Monitor0"
VendorName "benq"
ModelName "fp767"
HorizSync 28.0 - 33.0
VertRefresh 43.0 - 72.0
Option "DPMS"
EndSection

Section "Monitor"
Identifier "Monitor1"
VendorName "belinea"
ModelName "model"
Option "DPMS"
EndSection

Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
Option "TwinView" "true"
Option "MetaModes" "1280x1024, 1280x1024; 1280x1024, 1280x1024;"
#расположение 2-ого монитора относительно главного
Option "TwinViewOrientation" "RightOf"
Option "Xinerama" "true"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection

сохраняем, закрываем.
пробуем опять стартовать xfce4 под обычным пользователем:
startxfce4

и работает 2-а монитора единой картинкой растянутой по горизонтали.

Выключение и перезагрузка FreeBSD обычным пользователем в Xfce и монтирование флешки в файловом менеджере.

Xfce4 уже работает, но вот перезагрузить ОС под обычным пользователем не получается, так же нужно, чтобы обычный пользователь мог открывать в файловом менеджере флэшки.
для этого надо в /usr/local/etc/PolicyKit/PolicyKit.conf между тегами “config” добавить строки, расположенные в этом файле.

Настройка звука во FreeBSD.

О том как настроить звук на FreeBSD уже было рассмотрено.

Автологин и автозапуск Xfce.

Теперь сделаем автологин пользователя под которым иксы будут запускаться и собственно сам автозапуск xfce4.
Для автоматического старта xfce4 после залогинивания надо в конце файла ~/.profile в профиле пользователя добавить строчку:
startxfce4
и теперь, когда пользователь залогинется, оболочка запустится автоматом.

автологин юзера делаем так:
в файл /etc/gettytab вписываем строки для пользователя «administrator» (вместо «administrator» подставьте название вашей учётной записи, для которой всё настраиваем):
---------------------------------------------------
#
# autologin - automatically log in as Terminal user
#
administratorlogin|tu.9600:\
:al=administrator:tc=std.9600:

далее редактируем /etc/ttys, чтобы пользователь administrator заходил на ttyv0:
ttyv0 "/usr/libexec/getty administratorlogin" cons25r on secure
#ttyv0 "/usr/libexec/getty Pc " cons25r on secure
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" cons25r on secure
ttyv2 "/usr/libexec/getty Pc" cons25r off secure
ttyv3 "/usr/libexec/getty Pc" cons25r off secure
ttyv4 "/usr/libexec/getty Pc" cons25r off secure
ttyv5 "/usr/libexec/getty Pc" cons25r off secure
ttyv6 "/usr/libexec/getty Pc" cons25r off secure
ttyv7 "/usr/libexec/getty Pc" cons25r off secure
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
---------------------------------------------------

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

UTF-8 во FreeBSD для пользователя.

Сделаем UFT8 для пользователя во FreeBSD, в примере ниже utf8 делаем для пользователя administrator, которого создали после установки ОС.

Редактируем /etc/login.conf
ee /etc/login.conf

пишем вместо
russian|Russian Users Accounts:\
:charset=KOI8-R:\
:lang=ru_RU.KOI8-R:\
:tc=default:

следующие строчки
russian|Russian Users Accounts:\
:charset=UTF-8:\
:lang=ru_RU.UTF-8:\
:tc=default:

делаее выполняем:
cap_mkdb /etc/login.conf
pw usermod -n administrator -L russian

здесь вместо “administrator” вам надо вписывать название вашей учётной записи, в описываемом примере учётная запись названа administrator.

Переключение языковой раскладки и монтирование флэшки во FreeBSD.

Теперь нужно как то организовать возможность переключаться между англ. и рус. раскладками.
Для переключения раскладки Рус\Лат (я привык переключаться через Shift+Alt) нужно, чтобы в /etc/rc.conf были строки(их мы уже добавляли выше, убедитесь в этом cat /etc/rc.conf):
hald_enable="YES"
dbus_enable="YES"

и ещё надо создать файлик /usr/local/etc/hal/fdi/policy/x11-input.fdi :
ee /usr/local/etc/hal/fdi/policy/x11-input.fdi

наполнить его надо таким содержимым.

Ставим панель для отображения раскладки:
make BATCH=yes -C/usr/ports/deskutils/xfce4-xkb-plugin install clean
rehash

Наводим курсор на панель снизу в Xfce4, правой кнопкой мыши и выбираем «Add New Items…»или если по-русски, то «Добавить новый элемент…», Выбираем элемент — Раскладки клавиатуры, нажимаем «добавить»

всё, можно переключаться на русский сочетанием Shift+Alt и когда переключимся на рус, загорится диод Scroll Lock на клавиатуре.

Приятные мелочи.

Для ускорения загрузки делаем 3 секунды показа меню выбора того, что загружать при запуске FreeBSD(по умолчанию это 10 сек):
В файл /boot/loader.conf добавляем строку
autoboot_delay="3"

Можно так же изменить картинку, которая будет показываться справа от этого меню, нужно лишь в /boot/loader.conf дописываем один из вариантов указанных ниже.
1) для отображения цветного демонёнка вписываем:
loader_logo="beastie"
2) для отображения черно-белого демонёнка вписываем:
loader_logo="beastiebw"
3) Для отображения надписи FreeBSD(значение по умолчанию) вписываем:
loader_logo="fbsdbw"
4) Если картинка рядом с меню не нужна, вписываем:
loader_logo="none"
5) Чтобы вообще отключить меню выбора, вписываем (минимизирует вывод сообщений на экран при загрузке):
beastie_disable="YES"
Ещё можно убрать сообщения ядра при загрузке, добавив в /boot.config строку с -nmq (дефис тоже нужен). Добавить можно командой:
echo "-nmq" > /boot.config

Ну и для пущей красивости, оставшиеся сообщения при загрузке спрячем под картинкой. Для этого нужна собственно 256-цветная картинка в формате BMP(для наглядности картинку можете скачать тут). Назовём её freebsd2.bmp и покладём её, например, сюда /boot/freebsd2.bmp любым удобным вам способом. Можно и так:
cd /boot
fetch http://mediaunix.com/wp-fls/2013/freebsd2.bmp

Далее нужно проверить, присутствует ли в конфигурации ядра строка:
device splash
В стандартном конфиге ядра(стандртное имя ядра-GENERIC), расположенном в /usr/src/sys/i386/conf/ она имеется.

Подгружаем модуль vesa:
kldload vesa

Нужно, чтобы этот модуль подгружался автоматически при загрузке ОС, поэтому в /boot/loader.conf добавим строчку:
vesa_load="YES"

Туда же в /boot/loader.conf дописываем:
bitmap_load="YES"
splash_bmp_load="YES"
bitmap_name="/boot/freebsd2.bmp"

тем самым указав, что в качестве splash мы будем использовать bmp картинку, расположенную в /boot/freebsd2.bmp

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

На этом необходимый минимум настройки закончен. Мы установили Xfce, Xorg, драйвера от nvidia, настроили Xorg на вывод изображения с нормальным разрешением на 2 монитора, настроили звук, сделали автозапуск и автологин пользователя при загрузке ОС FreeBSD, пользователю установили UTF8 — локаль по умолчанию. Настроили переключение раскладок с русского на англ. и обратно в Xfce с отображением текущей раскладки в панели. А так же сделали возможным открывать в Thunar’е флэшки. Установили картинку для отображения её при загрузке ОС FreeBSD. Установка необходимого набора ПО будет рассмотрена в следующих заметках.

Установка Xfce на FreeBSD. Быстрый desktop: 4 комментария

  1. Уведомление: Установка Chromium на FreeBSD | Media UniX

  2. Уведомление: vagalume — лёгкий клиент для Last.fm | Media UniX

  3. Уведомление: Flash в Opera и Firefox на FreeBSD | Media UniX

  4. Уведомление: Установка Skype во FreeBSD | Media UniX

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