shocker: (Default)
[personal profile] shocker
Вместо введения
 
Последние лет 10 на рабочем десктопе использую исключительно операционные системы семейства Linux.
Был RHL, Слака, Debian, Gentoo, пробовал SuSE, даже собирал свой дистрибутив с нуля из исходников, тягая исходники гнушного софта откуда только можно. В итоге пришел конечно же к Ubuntu - минимум головной боли, все из коробки, поставил и забыл.
Сидя на Ubuntu постепенно начал забывать корни, а за эти годы они ушли от корней настолько далеко, что руками уже и не принято ничего делать, монолитные ядра чужды идеологии современных дистрибутивов, все работает как-то само, а если не работает то не работает.
От дистрибутива к дистрибутиву постоянно меняется софт... то syslogd, то syslog-ng, то rsyslog. Unity, Gnome-shell — вроде работает, а вроде и нет. До последнего держался за Gnome Classic, но с этим все сложнее.
Последней каплей стало понимание того, что 64-х битную убунту походу никто и не тестит... банально может не работать драйвер видюхи или какая-нибудь галочка в настройках терминала. 32-х битная — все ОК.
 
И решился я на эксперимент по полной смене ориентации, точнее захотелось примкнуть к армии бздунов и лично убедиться есть ли жизнь на той стороне?
 
Для экспериментов взял FreeBSD 10.1 и NetBSD 6.1.5.
 
Начну с NetBSD... судя по истории развития BSD систем, она наиболее породистая (чего нельзя сказать о Linux который без корней и истории).
В NetBSD все стройно, красиво и минималистично. Рабочая система без иксов — 300 метров, с иксами 600, а с портами и исходниками ядра порядка 1.5 гигов.
Простой загрузчик, rc.local, ядро прям в корне и т. п. В ядре масса твиков под разные ноуты и древнюю экзотику, но конфигурить его новичку на порядок сложнее чем в той же фре.
Пакетный менеджер и pkgsrc не могут не порадовать. Но минимум софта (банально просто так не поставишь chromium и slim, не говоря о драйверах nvidia), проблемы с документацией и гемор с нарезкой дисков руками отбили всю охоту продолжать эксперименты. NetBSD безусловно достойна внимания, но она осталась на уровне FreeBSD 2001-го года.
 
Теперь FreeBSD... однозначно с 2001 года фря сильно прогрессировала, там тебе и модули ядра и драйвера для железа и безумное количество софта в портах.
Процесс установки хоть и не такой красивый как в убунте, зато минимум вопросов, очень быстро, а главное на выходе получаем те же 300-600 метров без портов и исходников.
Что радует во фре:
- Русскоязычная документация начиная с handbook (https://www.freebsd.org/doc/ru/books/handbook/), заканчивая man где описан каждый модуль ядра, как его вкомпилить в ядро и как настраивать (man 4) — это реально круто.
- Исходники ядра с базовой системой и менеджером пакетов это один тарбол из одного места от одних разработчиков. Этого достаточно что бы собрать работающую базу с ядром вместо использования  бинарных снепшотов (об этом ниже), все остальное можно получить извне так же из исходников, используя систему портов (тоже один тарбол с сайта).
- Наличие полноценного менеджера пакетов pkg который позволяет ставить бинарные сборки софта вообще не имея на машине портов. При чем порты и pkg можно миксовать, а pkg отлично справляется, например, с удалением пакетов собранных из портов как со своими собственными.
- Минималистичность конфигов — все буквально в нескольких файлах: /boot/loader.conf, /etc/rc.conf (сердце вообще всего), /etc/sysctl.conf и make.conf — не надо лазить по всей файловой системе, все в одном месте которое легко перенести на другую систему.
- Умный загрузчик который находит корень читая прямо /etc/fstab, а модули грузит прямо из файловой системы еще до загрузки ядра (пользователи Linux поймут от чего я так рад).
- Система отлично живет без модулей ядра, а ядро можно уменьшить до 6-ти метров без потери функциональности.
- От devfs никуда не уйти, но, например, procfs фре больше не нужен (все через sysctl), clang вместо gcc, запуск демонов через service, старый добрый syslogd и inetd.
- Все конфиги для человека и нигде не написано — генерится само, не трогать.
- Никто тебя не ограничивает в выборе путей и ничего не навязывает. Можно сделать просто - поставить gnome или KDE, а можно копнуть глубже и ничего за это не будет.
 
Продолжать можно долго, но фря это идеальный компромисс между функционалом Линуксов и Unix традициями с уникальной лаконичностью, ясностью и прозрачностью системы — понятно как все работает и откуда все берется, хэндбук в помощь и не нужны никакие форумы. Все включается одной строчкой в rc.conf, а сборка ядра это 3 минуты на старом Core 2 Duo. Фря идет своим путем не пытаясь угодить всем вокруг, занимаются развитием одни люди которые делают и ядро и окружение, от версии к версии не меняют все и везде, а нововведения строго дозированы — всего в меру и по необходимости.
Как следствие - не надо каждый день ловить обновление ядра, как это любят в Убунте (ее и это не спасает).
 
Из-за этого от фри складывается очень положительное впечатление — это действительно самодостаточная, полноценная операционная система с идеологией и корнями, а не гнушный зоопарк, подрывающий веру в Open source.
 
Теперь попытаюсь расписать как раскатать FreeBSD 10.1 с нуля  и без инсталлятора.
Это полезно знать что бы понимать как оно работает т. к. в итоге имеем массу рецептов на разные случаи жизни.
На изучение и эксперименты ушло порядка недели, до этого никакого опыта с BSD, только Linux.
 
Подготовка носителя
 
Основа любой ОС это носитель на котором она располагается и загрузчик который вдыхает жизнь в компьютер при каждом включении питания.
 
Соответственно сначала необходимо узнать как подготовить диск для новой системы и установить загрузчик.
Бздя использует свою систему разделов, отличную от Linux и Windows и разделов этих может быть много. Она умеет использовать диск в монопольном режиме, но тогда диск будет полностью испорчен для других систем т. к. там не будет ни одной BIOS партиции (которых 4 штуки). Поэтому обычно FreeBSD партиции помещают в одну специально созданную BIOS партицию с типом 165 aka 0xa5 (FreeBSD/NetBSD/386BSD). BIOS партиции в терминах FreeBSD — слайс (что б не было путаницы).
Это накладывает отпечаток и на принцип именования файлов устройств, например: /dev/ada0s1a - это физическое устройство ada0, слайс 1 (т. е. Первая BIOS партиция), раздел 'a' (т. е. первая FreeBSD партиция).
 
Инструментарий для работы с разделами в FreeBSD тоже свой. Например, fdisk, который работает с BIOS партициями совсем другой и не такой простой в освоении как в DOS и Linux. Он умеет бить диск и устанавливать стандартный MBR в нулевой сектор, который сможет загрузить не только FreeBSD, но и другие ОС.
Если захочется установить MBR родной для FreeBSD, то для этого есть команда boot0cfg, но это не лучшая идея.
Для работы с FreeBSD разделами (монопольно или внутри BIOS слайса) используется bsdlabel.
 
Теперь к практике...
 
Данный этап предполагает наличие работающей FreeBSD на машине. Если ее нет или нет желания возиться самому смело пропускаем этот этап и ставим систему инсталлятором из ISO образа с сайта freebsd.org.
 
Для примера я буду использовать memory disk но в реале вместо md0 будет, например, ada0.
 
Подготовка md0 на 4 гига (этот шаг только для демонстрации и не требуется):
dd if=/dev/zero of=disk.img bs=1M count=4000
mdconfig -f disk.img
 
После этого появится /dev/md0 который для системы является физическим диском, но реально находится в файле disk.img.
 
Создаем слайс для FreeBSD на весь диск (подробности в мануале: https://www.freebsd.org/doc/ru/books/handbook/boot-blocks.html):
fdisk -I md0
 
Записываем на диск стандартный MBR (для установки родного MBR, как я уже писал, можно использовать boot0cfg):
fdisk -B md0
 
Создаем на только что созданном первом и единственном слайсе дефолтную разметку FreeBSD:
bsdlabel -w md0s1
 
Устанавливаем в первый слайс загрузчик FreeBSD (т. к. слайс активный MBR с легкостью найдет его и передаст управление загрузчику FreeBSD):
bsdlabel -B md0s1
 
Теперь разбиваем слайс в интерактивном режиме на один или несколько разделов FreeBSD:
bsdlabel -e md0s1
 
Запустится текстовый редактор (скорее всего VI). Размер указывается в секторах по 512 байт,
соответственно прежде чем менять цифры желаемую длину делим на 512 и получаем количество секторов для bsdlabel.
Тип раздела для корня должен иметь тип 4.2BSD, для свопа: swap.
Вместо длины и/или смещения можно использовать '*' - значит на всю длину после последнего раздела (bsdlabel сам вычислит нужные значения).
 
Вот пример файла:
# /dev/md0s1:
8 partitions:
#          size     offset    fstype       [fsize bsize bps/cpg]
  a:    7177006         16    4.2BSD        0     0
  b:    *                         *      swap
  c:    8177022          0      unused        0     0     # "raw" part, don't edit
 
После сохранения и выхода из редактора bsdlabel сделает все что мы заказывали. Теперь форматируем и монтируем корень (вместо mkfs используется newfs):
newfs md0s1a
mount /dev/md0s1a /mnt/
 
Настало время раскатать базовую систему, ядро и порты с исходниками. Взять необходимое можно из дистрибутива на диске (ISO образа) или скачать с сайта.
 
Необходимые файлы (бинаные снепшоты) для 10.1 под amd64 находятся тут:
ftp.freebsd.org/pub/FreeBSD/snapshots/amd64/10.1-STABLE/
 
На диске с дистрибутивом искать тут:
/usr/freebsd-dist/
 
Так же можно скомпилировать всю базовую систему с ядром прямо из исходных текстов (src.txz).
Для справки делается это так - в /usr/src/ делаем:
make buildkernel
make buildworld
make installworld DESTDIR=/mnt/
make installkernel DESTDIR=/mnt/
 
Предположим что решили использовать дистрибутив, для этого монтируем диск в /mnt_dist/ и раскатываем базовую систему:
tar -C /mnt/ -zxf /mnt_dist/usr/freebsd-dist/base.txz
 
Распаковываем стандартное ядро в /boot/kernel либо копируем наше с модулями или без из существующей системы:
tar -C /mnt/ -zxf /mnt_dist/usr/freebsd-dist/kernel.txz
либо:
cp -r /boot/kernel/* /mnt/boot/kernel/
 
По желанию распаковываем исходники системы для сборки ядра:
tar -C /mnt/ -zxf /mnt_dist/usr/freebsd-dist/src.txz
 
Порты можно взять из дистрибутива:
tar -C /mnt/ -zxf /mnt_dist/usr/freebsd-dist/ports.txz
либо скачать актуальный снепшот с ftp.freebsd.org (например, http://ftp.freebsd.org/pub/FreeBSD/ports/ports/ports.tar.gz).
 
Перед chroot монтируем devfs в новую систему (procfs хоть и есть но больше не требуется):
mount -t devfs devfs /mnt/dev/
 
Теперь можно делать chroot в новую систему для начальной настройки:
chroot /mnt /bin/sh
 
Внутри ставим утилиты первой необходимости (нужна сеть, поэтому если есть прокси, то придется установить переменные окружения HTTP_PROXY и HTTPS_PROXY):
pkg install bash mc vim wget sudo (тут все по желанию).
 
Устанавливаем пароль суперпользователя и по желанию меняем шелл:
passwd root
chsh -s /usr/local/bin/bash root
 
Устанавливаем часовой пояс:
tzsetup
 
Создаем /etc/fstab для монтирования корня и подкачки следующего содержания:
/dev/md0s1a    /                    ufs     rw,noatime      1       1
/dev/md0s1b    none            swap    sw                 0       0
# это для Linux
#linproc            /compat/linux/proc linprocfs rw    0       0
#/dev/ada0s2  /u01               ext2fs  ro                    1       2
 
Создаем /etc/host.conf следующего содержания:
hosts
dns
 
На случай последующей сборки монолитного ядра можно сразу создать /etc/make.conf с дефолтными настройками:
KERNCONF=MYKERNEL
NO_MODULES=TRUE
 
Создаем /etc/rc.conf с:
hostname="mynewhost"            # имя хоста
keymap="ru.win"
ifconfig_em0="DHCP"                # настройка сетевого интерфейса, где em0 его имя (ищем подходящий командой ifconfig)
sshd_enable="YES"                   # включаем sshd
dumpdev="AUTO"
hald_enable="YES"                    # нужно для xorg
dbus_enable="YES"                   # нужно для xorg
#linux_enable="YES"                  # для совместимости с Linux
slim_enable="YES"                    # для запуска менеджера дисплея slim
#wlans_urtwn0="wlan0"            # пример для WiFi с USB донглом
#ifconfig_wlan0="WPA DHCP"      # пример для WiFi, потребуется создать 
                                                        # /etc/wpa_supplicant.conf командой wpa_passphrase
sendmail_enable="NO"             # отключаем sendmail
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
cron_enable="NO"                      # отключаем cron
 
Создаем /etc/resolv.conf с:
search mydomain.com              # имя нашего домена
nameserver 192.168.1.1           # адрес DNS сервера
 
В /etc/sysctl.conf добавляем:
kern.ipc.shm_allow_removed=1    # для chrome
#compat.linux.osrelease=2.6.18    # если будут проблемы с эмуляцией Linux
 
В /boot/loader.conf по желанию добавляем:
nvidia_load="YES"               # загрузка драйвера nvidia который установим позже
kern.vty=vt                              # переключаем консоль на VT драйвер с поддержкой UTF-8 и графики
                                                # (должна быть поддержка в ядре)
#ext2fs_load="YES"            # для Linux и если ядро не монолит
#linux_load="YES"              # для Linux и если ядро не монолит
 
В /root/.profile можно указать адрес прокси и локаль:
export HTTP_PROXY=http://login:password@192.168.1.1:8080
export HTTPS_PROXY=http://login:password@192.168.1.1:8080
export LANG=ru_RU.UTF-8
 
Добавляем не root пользователей командой:
adduser
 
По желанию меняем им шелл на bash:
chsh -s /usr/local/bin/bash ИМЯ_ПОЛЬЗОВАТЕЛЯ
 
Что бы работал su добавляем нашего не root пользователя в группу wheel (руками правим /etc/group или прям при добавлении приглашаем его в группу).
 
Если ставим sudo, то в /usr/local/etc/sudoers (лучше командой visudo) раскомментируем строку:
%wheel ALL=(ALL) ALL
 
В домашней директории пользователей в .profile тоже можно указать локаль и прокси (см. выше).
 
Если нужен tsocks ставим его из портов или через pkg, а в /usr/local/etc/tsocks.conf указываем адрес socks прокси:
server = 192.168.1.1
server_type = 5
server_port = 1080
 
Все, если я нигде не ошибся базовая система готова, делаем:
umount /mnt/dev
umount /mnt/
и можно попробовать перегрузиться, выбрав для загрузки наш новый диск.
 
При желании перед этим можно пересобрать ядро. Если кратко:
1) В /usr/src/sys/amd64/conf создаем копию GENERIC и называем ее MYKERNEL (имя платформы в пути не обязательно amd64).
2) Правим MYKERNEL как нам хочется: добавляем то, что упоминается в dmesg и kldstat и выключаем все что не надо, мое ядро в итоге 5.9 мегов.
3) Поднимаемся в /usr/src/ и делаем 'make buildkernel KERNCONF= MYKERNEL'
4) Если все ОК то делаем 'make installkernel' - в /boot/kernel новое ядро, в /boot/kernel.old старое.
 
Т.к. в /etc/make.conf мы указали дефолтное имя ядра, в make его указывать не обязательно, а модулей на выходе не будет за счет NO_MODULES.
 
Если все верно, то после логина под root мы попадаем в новую чистую систему и имеем консоль на русском языке, рабочую сеть и vim с mc.
 
Настраиваем иксы
 
Устанавливаем xorg, hal, dbus и slim, а из портов /usr/ports/x11-fonts/webfonts и для nvidia /usr/ports/x11/nvidia-driver.
При сборке драйверов nvidia отключаем совместимость с Linux.
 
В /etc/rc.conf мы уже включили  hald и dbus ранее, поэтому теперь только запускаем руками:
service hald start
service dbus start
 
Загружаем руками драйвер nvidia (после перезагрузки подцепится сам благодаря /boot/loader.conf):
kldload nvidia
 
Запускаем Xorg с ключом -configure и получаем в /root/xorg.conf.new дефолтный конфиг иксов.
Переносим его в /etc/X11/xorg.conf и правим.
 
В секции "Module" нужны 'Load "glx"' и 'Load "freetype"'.
 
В "Files" если нет добавляем FontPath для:
/usr/local/lib/X11/fonts/TTF/
/usr/local/lib/X11/fonts/Type1/
/usr/local/lib/X11/fonts/cyrillic/
/usr/local/lib/X11/fonts/dejavu/
/usr/local/lib/X11/fonts/LinLibertineG/
/usr/local/lib/X11/fonts/Liberation/
/usr/local/lib/X11/fonts/GentiumBasic/
/usr/local/lib/X11/fonts/Carlito/
/usr/local/lib/X11/fonts/Caladea/
/usr/local/lib/X11/fonts/bitstream-vera/
/usr/local/lib/X11/fonts/webfonts/
 
Для nvidia в "Device" прописываем:
Driver "nvidia"
Option "RenderAccel" "true"
Option "AllowGLXWithComposite" "true"
 
И не забываем добавить:
Section "Extensions"
  Option "Composite" "Enable"
  Option "RENDER" "Enable"
EndSection
 
Конфиг slim в /usr/local/etc/slim.conf
Можно поискать для него темы в Инете и положить распакованные директории с ними в:
/usr/local/share/slim/themes/
 
После этого в slim.conf в current_theme указываем имя темы. Больше ничего трогать не требуется.
 
Иксы готовы.
 
Переходим к оконному менеджеру и оформлению
 
Рассмотрим вариант с openbox, но не менее интересны awesome и evilwm.
 
Ставим (pkg install или /usr/ports/): openbox, openbox-themes, obconf, obmenu, xrandr, xbindkeys, feh, xcompmgr, trayer и alltray.
 
По желанию: pcmanfm, lxpanel, gnome-ssh-askpass2, rox, xscreensaver или xlockmore, gkrellm, transset, tint2 и conky.
 
Скорее всего понадобится: thunderbird, pidgin, chromium, putty и libreoffice с пакетом локализации ru-libreoffice и ru-hunspell, vlc, gqview, mupdf или xpdf.
 
В домашней директории не root пользователя создаем .xinitrc:
 
Там можно указать адрес прокси как в .profile и прописываем локаль:
export LANG=ru_RU.UTF-8
export LC_ALL=ru_RU.UTF-8
 
Если хотим что б пароль от ssh ключей спрашивался не в консоли:
export SSH_ASKPASS=/usr/local/bin/gnome-ssh-askpass2
 
Опять же для ssh лучше запустить это:
killall ssh-agent
eval `ssh-agent`
 
Если мониторов несколько, то можно указать кто где и установить основной (в примере основной DVI-I-1 и он слева):
xrandr --output DVI-I-1 --primary --left-of VGA-0
 
Выключаем бип в терминале если напрягает писк:
xset b 0
 
Раскладка клавиатуры и форма указателя мыши:
setxkbmap -layout "us,ru" -option "grp:ctrl_shift_toggle,grp_led:scroll"
xsetroot -cursor_name left_ptr
 
Устанавливаем фон рабочего стола:
feh --bg-center $HOME/Pictures/background.png
 
Либо стартуем pcmanfm для отображения иконок на столе, там же настраивается фон. К сожалению пропадает меню openbox по правой кнопке (для evilwm не страшно):
pcmanfm --desktop &
 
Если нужна панелька:
lxpanel &
 
Горячие клавиши из .xbindkeysrc:
xbindkeys &
 
Плавное затухание окошек и тени (теней у меня не появилось):
xcompmgr -cfCF -D 3 &
 
Лоток с уведомлениями в правом нижнем углу:
trayer --expand true --edge bottom --align right --widthtype request --transparent true --tint black --SetDockType true --alpha 256 &
 
Хранитель экрана если не хотим обычный xlock (xlock'а достаточно и он быстрее):
xscreensaver -no-splash &
 
Монитор при желании (для evilwm делаем позднее):
gkrellm &
 
Загрузка ssh ключей при старте:
ssh-add < /dev/null &
 
Важные приложения в трее:
alltray thunderbird &
pidgin &
 
И в финале:
exec openbox
либо:
exec awesome
 
Если evilwm то немного не так:
evilwm -snap 10 -bw 2 -fg red -app gkrellm/Gkrellm -dock -app Pidgin/Pidgin -dock -app Mail/Thunderbird -dock &
exec gkrellm (либо exec xterm)
 
В .Xdefaults делаем красивым xterm:
XTerm*foreground: green
XTerm*cursorColor: green
XTerm*background: black
XTerm*SaveLines: 1000
XTerm*faceName: xft:Terminus:pixelsize=20:antialias=true
XTerm*utf8: 1
 
В .xbindkeysrc вешаем горячие клавиши на блокировку экрана и запуск терминала:
"xlock"
  Control+Alt + Delete
 
"xlock"
  Control+Alt + l
 
"xterm"
  Control+Alt + Return
 
"putty"
  Control+Alt + p
 
 
Вместо xlock можно указать "xscreensaver-command -lock", но тогда в .xinitrc не забываем про xscreensaver.
 
Меню openbox меняем в .config/openbox/menu.xml (за основу можно взять дефолтное из /usr/local/etc/xdg/openbox/). Редактировать можно руками или командой obmenu.
 
Рестрат, логин и мы в иксах с красотой.
 
Последний штрих - в obconf можно выбрать оформление окон и поведение openbox.
У меня тема: spiffe.
 
Ну вот и все, дольше писал :)
 
Фрю моно взять тут:
https://www.freebsd.org/where.html
 
Мануал на русском тут:
https://www.freebsd.org/doc/ru/books/handbook/
 
Не забываем про man.

Хорошие ссылки по теме:
www.oldnix.org/openbox-tint-archlinux/
Ниже примеры моих конфигов.
 
Примеры конфигов

 /etc/X11/xorg.conf
===
 
Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0
        Screen      1  "Screen1" RightOf "Screen0"
#       Screen      2  "Screen2" RightOf "Screen1"
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
        Option          "AllowEmptyInput" "off"
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/Droid/"
        FontPath     "/usr/local/lib/X11/fonts/cyrillic/"
        FontPath     "/usr/local/lib/X11/fonts/dejavu/"
        FontPath     "/usr/local/lib/X11/fonts/encodings/"
        FontPath     "/usr/local/lib/X11/fonts/util/"
        FontPath     "/usr/local/lib/X11/fonts/LinLibertineG/"
        FontPath     "/usr/local/lib/X11/fonts/Liberation/"
        FontPath     "/usr/local/lib/X11/fonts/GentiumBasic/"
        FontPath     "/usr/local/lib/X11/fonts/Carlito/"
        FontPath     "/usr/local/lib/X11/fonts/Caladea/"
        FontPath     "/usr/local/lib/X11/fonts/bitstream-vera/"
        FontPath     "/usr/local/lib/X11/fonts/webfonts/"
EndSection
 
Section "Module"
        Load  "glx"
        Load  "freetype"
EndSection
Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
EndSection
 
Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/sysmouse"
        Option      "ZAxisMapping" "4 5 6 7"
EndSection
 
Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
EndSection
 
Section "Monitor"
        Identifier   "Monitor1"
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
EndSection
 
Section "Monitor"
        Identifier   "Monitor2"
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
EndSection
 
Section "Device"
        Identifier  "Card0"
        Driver      "nvidia"
        BusID       "PCI:1:0:0"
        Option      "RenderAccel" "true"
        Option      "AllowGLXWithComposite" "true"
EndSection
 
Section "Device"
        Identifier  "Card1"
        Driver      "nvidia"
        BusID       "PCI:1:0:0"
        Option      "RenderAccel" "true"
        Option      "AllowGLXWithComposite" "true"
EndSection
 
Section "Device"
        Identifier  "Card2"
        Driver      "vesa"
        BusID       "PCI:1:0:0"
EndSection
Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        SubSection "Display"
                Viewport   0 0
                Depth     1
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     4
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     8
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     15
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     16
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     24
        EndSubSection
EndSection
 
Section "Screen"
        Identifier "Screen1"
        Device     "Card1"
        Monitor    "Monitor1"
        SubSection "Display"
                Viewport   0 0
                Depth     1
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     4
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     8
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     15
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     16
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     24
        EndSubSection
EndSection
Section "Screen"
        Identifier "Screen2"
        Device     "Card2"
        Monitor    "Monitor2"
        SubSection "Display"
                Viewport   0 0
                Depth     1
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     4
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     8
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     15
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     16
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     24
        EndSubSection
EndSection
 
Section "Extensions"
        Option "Composite" "Enable"
        Option "RENDER" "Enable"
EndSection
 
$HOME/.xinitrc
===
#!/usr/local/bin/bash
 
#session=$1
session="openbox"
 
export HTTP_PROXY=http://192.168.1.1:8080
export HTTPS_PROXY=http://192.168.1.1:8080
 
export LANG=ru_RU.UTF-8
export LC_ALL=ru_RU.UTF-8
 
export SSH_ASKPASS=/usr/local/bin/gnome-ssh-askpass2
 
killall ssh-agent
 
eval `ssh-agent`
 
xrandr --output DVI-I-1 --primary --left-of VGA-0
 
xset b 0
 
setxkbmap -layout "us,ru" -option "grp:ctrl_shift_toggle,grp_led:scroll"
 
xsetroot -cursor_name left_ptr
 
feh --bg-center $HOME/Pictures/background.png
 
#pcmanfm --desktop &
 
xbindkeys &
 
xcompmgr -cfCF -D 3 &
 
trayer --expand true --edge bottom --align right --widthtype request --transparent true --tint black --SetDockType true --alpha 256 &
 
#xscreensaver -no-splash &
 
ssh-add < /dev/null &
 
if [ "$session" != "evilwm" ]
    then gkrellm &
fi
 
alltray thunderbird &
pidgin &
 
case "$session" in
 
    openbox)
        exec openbox
        ;;
 
    awesome)
        exec awesome
        ;;
 
    evilwm)
        evilwm -snap 10 -bw 2 -fg red -app gkrellm/Gkrellm -dock -app Pidgin/Pidgin -dock -app Mail/Thunderbird -dock &
        exec gkrellm
        ;;
 
    *)
        exec openbox
        ;;
esac
 
MYKERNEL
===
cpu             HAMMER
ident           MYKERNEL
options         SCHED_ULE               # ULE scheduler
options         PREEMPTION              # Enable kernel thread preemption
options         INET                    # InterNETworking
options         TCP_OFFLOAD             # TCP offload
options         FFS                     # Berkeley Fast Filesystem
options         SOFTUPDATES             # Enable FFS soft updates support
options         UFS_DIRHASH             # Improve performance on big directories
options         UFS_GJOURNAL            # Enable gjournal-based UFS journaling
options         MSDOSFS                 # MSDOS Filesystem
options         CD9660                  # ISO 9660 Filesystem
options         SCSI_DELAY=5000         # Delay (in ms) before probing SCSI
options         SYSVSHM                 # SYSV-style shared memory
options         SYSVMSG                 # SYSV-style message queues
options         SYSVSEM                 # SYSV-style semaphores
options         _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options         PRINTF_BUFR_SIZE=128    # Prevent printf output being interspersed.
options         KBD_INSTALL_CDEV        # install a CDEV entry in /dev
options         SMP                     # Symmetric MultiProcessor Kernel
device          cpufreq
device          acpi
options         ACPI_DMAR
device          pci
device          ahci                    # AHCI-compatible SATA controllers
device          scbus                   # SCSI bus (required for ATA/SCSI)
device          da                      # Direct Access (disks)
device          cd                      # CD
device          pass                    # Passthrough device (direct ATA/SCSI access)
device          vt
device          vt_vga
device          em                      # Intel PRO/1000 Gigabit Ethernet Family
device          re                      # RealTek 8139C+/8169/8169S/8110S
device          loop                    # Network loopback
device          random                  # Entropy device
device          ether                   # Ethernet support
device          md                      # Memory "disks"
device          bpf                     # Berkeley packet filter
device          uhci                    # UHCI PCI->USB interface
device          ehci                    # EHCI PCI->USB interface (USB 2.0)
device          usb                     # USB Bus (required)
device          uhid                    # USB generic HID support
device          ukbd                    # Keyboard
device          ums                     # Mouse
device          umass                   # Disks/Mass storage - Requires scbus and da
device          sound                   # Generic sound driver (required)
device          snd_hda                 # Intel High Definition Audio
 

From:
Anonymous( )Anonymous This account has disabled anonymous posting.
OpenID( )OpenID You can comment on this post while signed in with an account from many other sites, once you have confirmed your email address. Sign in using OpenID.
User
Account name:
Password:
If you don't have an account you can create one now.
Subject:
HTML doesn't work in the subject.

Message:

 
Notice: This account is set to log the IP addresses of everyone who comments.
Links will be displayed as unclickable URLs to help prevent spam.

Profile

shocker: (Default)
shocker

October 2016

S M T W T F S
      1
2345678
9101112131415
16171819 202122
23242526272829
3031     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated 23 Sep 2017 03:49
Powered by Dreamwidth Studios