Установка GNOME 2.6.0 под FreeBSD
Введение
Этот документ описывает полную последовательность подготовки рабочей
станции на базе GNOME 2.6.0 под FreeBSD. Меня не волнует, понравится
ли кому-либо такая конфигурация. Однако, лично я считаю ее наиболее
простой и удобной в использовании. Этот документ не дублирует
Handbook FreeBSD, поэтому здесь не расписывается процесс установки
портов и пэкэджей. Я подразумеваю, что пользователь это уже умеет.
Также, в этом документе не расписывается ничего из пользовательских
настроек, потому что с этим очень просто разобраться самостоятельно.
Здесь только то, что необходимо делать от рута/из консоли.
Итак, ты сисадмин, который решил перевести с Linux на FreeBSD
многопользовательскую рабочую станцию. Или ты просто реальный перец, и
тебе надоел Microsoft(TM). Тогда...
Что понадобится
* Дерево портов
* Набор пэкэджей или дистфайлов GNOME
* Дистфайл math/djbfft
* Дистфайл audio/lame
* Умение устанавливать порты/пэкеджи
* Немного свободного времени
Начальная установка софта
В процессе начальной установки софта была одна небольшая особенность,
причем она качается как варианта с портами, так и варианта с
пэкэджами. Эта особенность - порт math/djbfft, который в первом
случает не хочет правильно вытягиваться с зависимостями, во втором -
просто не может быть собран в пэкэдж (из-за особенностей лицензии).
Обойти эту проблему очень просто - установить math/djbfft из портов
вручную, причем до установки всего остального. ИМХО, так проще :)
Итак, для тех, кто не помнит:
# cd /usr/ports/math/djbfft
# make install clean
Еще одна новая тонкость - audio/lame. Его тоже придется собрать из
портов. Далее следует установить гномовский софт. В этом поможет...
Список софта для установки
* x11/gnome2
* x11/gnome2-fifth-toe
* x11/gnome2-power-tools
* devel/gnome2-hacker-tools
* editors/gnome2-office
* www/linuxpluginwrapper
* www/mplayer-plugin
* x11/XFree86-4
* x11-servers/XFree86-4-NestServer
* print/gnome-cups-manager
* print/cups
* java/jdk14
Для грамотной сборки с правильными опциями рекомендую следующий make.conf
(См. приложение).
Конфигурирование X
------------------
Мне кажется, что самый простой способ - конфигурировать X с помощью
встроенной утилиты xf86cfg. Она обладает полезной способностью
автодетектить видеокарту и достаточно удобным интерфейсом. В случае,
если утилита не запускается (зависает) может помочь команда
# xf86cfg -nomodules
Далее настоятельно рекомендую накопать TrueType шрифтов (проще всего
взять стандартных от маздайки) и скопировать их куда-нибудь в
/usr/X11R6/lib/X11/fonts (напр. в /usr/X11R6/lib/X11/fonts/TrueType).
Затем следует их закешировать командой
# fc-cache -f -v
Чтобы заработало колесико у мыши необходимо добавить в секцию ее
описания строку:
Option "ZAxisMapping" "4 5"
Красивый прозрачный курсор под X можно настроить, поменяв core на
whiteglass в /usr/X11R6/lib/X11/icons/default/index.theme.
Видеокарта nVidia
-----------------
Ставим порт x11/nvidia-driver. Желательно перед этим вкомпилить в ядро
(подгрузить подуль) AGP и ставить порт с флагом WITH_FREEBSD_AGP.
ИМХО, так все работает быстрее, однако вопрос спорный.
Внимание! Не следует забывать, что модуль nvidia следует подгружать
при загрузке машины! Например, так:
# echo kldload nvidia >> /etc/rc.local
Видеокарта ATI/Matrox G4??
--------------------------
Ставим graphics/drm-kmod. После установки не забыть:
# cd /usr/local/etc/rc.d
# ln -s drm.sh.sample drm.sh
# sh drm.sh
В секцию "Modules" XF86Config добавляем
Load "dri"
И в секцию "DRI":
Mode 0666
Печать (CUPS)
-------------
Проблема с печатью в GIMP
Поиск в Google быстро покажет, что для того, чтобы GIMP начал
нормально печатать следует раскомментировать строки, содержащие
'application/octet-stream' в /usr/local/etc/cups/mime.types и
/usr/local/etc/cups/mime.convs, и перезапустить CUPS.
Эта ситуация задокументирована в pkg-message.
Дальше настроить CUPS можно с помощью gnome-cups-manager.
Macromedia Flash в браузере
---------------------------
Один из самых удивительных портов - www/linuxpluginwrapper. В его
описании ясно сказано что он предназначен для Mozilla. Почему он не
копирует файлы туда, где Mozilla ожидает их найти - загадка. Так что
придется сделать это самостоятельно:
# cd /usr/X11R6/lib/browser_plugins
# ln -s /usr/local/lib/linux-flashplugin6/flashplayer.xpt
# ln -s /usr/local/lib/linux-flashplugin6/libflashplayer.so
Java1.4 в браузере
------------------
После установки java/jdk14 делаем следующее:
# cd /usr/X11R6/lib/browser_plugins
# ln -s /usr/local/jdk1.4.2/jre/plugin/i386/ns610/libjavaplugin_oji.so
Проблема с русскими именами файлов в Nautilus
Многие задают вопрос: почему, если назвать файл по русски в Nautilus,
он будет виден в абракадабре из консоли? Ответ прост - это не
абракадабра, а UTF-8 и виноват во всем GDM. А точнее, файл
/usr/X11R6/etc/gdm/locale.alias. Следует поменять в нем строчку
Russian ru_RU.UTF-8,ru_RU.ISO8859-5
на более FreeBSD'шный вариант:
Russian ru_RU.KOI8-R
После этого необходимо для каждого пользователя, который использует
русский язык вновь выбрать его из меню GDM (даже в случае, если он уже
был выбран до этого).
Проблема с русским языком в диалоге открытия файлов GTK
-------------------------------------------------------
В GTK до сих пор существует проблема с отображением русских имен
каталогов в стандартном диалоге выбора файла. GTK хочет видеть имена
файлов в UTF-8, причем не зависимо от локали. Ну да слава богу,
предусмотрен стандартный способ обойти проблему: экспортировать
переменную
G_BROKEN_FILENAMES=1
Настройка FAM (автообновление содержимого каталогов)
Для корректной работы FAM следует прописать в /etc/inetd.conf такую
строчку:
sgi_fam/1-2 stream rpc/tcp wait root /usr/local/bin/fam fam
И не забыть запустить rpcbind (для FreeBSD-5) или portmap (для
FreeBSD-4).
Дополнительные рекомендации (для FreeBSD-5.x)
---------------------------------------------
Монтирование дисков в Nautilus
Для того, чтобы по ссылке computer:/// отображались и правильно
монтировались съемные носители, следует включить sysctl sysctl
vfs.usermount=1 и создать в /etc/fstab записи для каждого пользователя
в его каталоге. Например, для пользователя asa:
/dev/fd0 /home/asa/mnt/floppy msdosfs rw,noauto,-Wkoi2dos,-Lru_RU.KOI8-R 0 0
/dev/cd0 /home/asa/mnt/cdrom cd9660 ro,noauto 0 0
/dev/da0s1 /home/asa/mnt/usb msdosfs rw,noauto,-Wkoi2dos,-Lru_RU.KOI8-R 0 0
Настройка libmap.conf
Для более быстрой и интерактивной работы Nautilus, рекомендую
прописать в /etc/libmap.conf следующее:
libc_r.so.5 libkse.so.1
libc_r.so libkse.so
Настройка ядра
Практика показывает, что при работе со средой GNOME установка
options HZ=1000
в конфигурационном файле ядра понижает время отклика интерфейса.
Ссылки по теме:
* FreeBSD Handbook - руководство по FreeBSD
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/
* Known Issues with GNOME 2.6 on FreeBSD - описание известных проблем с GNOME на FreeBSD
http://www.freebsd.org/gnome/docs/knownissues.html
* ftp://ftp.gascom.ru/pub/GNOME2/packages/CURRENT - собраные
пэкэджи для GNOME 2.6
© Sergey Akifyev
, 2003-2004
Приложение 1. make.conf
# Created by Akifyev Sergey
#
# $Id: gnome_make.conf,v 1.2 2004/04/28 11:09:32 asa Exp $
# aspell
ASPELL_RU=yes
ASPERL_EN=yes
# mplayer
WITH_GUI=yes
# Mozilla
WITHOUT_MAILNEWS=yes
WITHOUT_COMPOSER=yes
WITHOUT_CHATZILLA=yes
WITH_OPTIMIZED_CFLAGS=yes
WITH_MOZILLA=firefox
# gftp & xcdroast
WITH_GTK2=yes
# libgnomeprint
WITH_CUPS=yes
# gtk20
WITH_DROPSHADOW=yes
# cups
CUPS_OVERWRITE_BASE=yes
# gstreamer
WITH_CDPARANOIA=yes
WITH_FLAC=yes
WITH_LAME=yes
WITH_GNOMEVFS=yes
WITH_MAD=yes
WITH_AALIB=yes
WITH_ESOUND=yes
WITH_FREETYPE=yes
WITH_GDKPIXBUF=yes
WITH_JPEG=yes
WITH_LIBA52=yes
WITH_LIBAUDIOFILE=yes
WITH_LIBDV=yes
WITH_LIBDVDNAV=yes
WITH_LIBDVDREAD=yes
WITH_LIBFAME=yes
WITH_LIBMIKMOD=yes
WITH_LIBMPEG2=yes
WITH_LIBMUSICBRAINZ=yes
WITH_LIBSHOUT=yes
WITH_LIBSNDFILE=yes
WITH_OGG=yes
WITH_PANGO=yes
WITH_PNG=yes
WITH_SDL=yes
WITH_SWFDEC=yes
WITH_VORBIS=yes
WITH_VORBISIDEC=yes
WITH_XINE=yes
WITH_XVID=yes
# nautilus-cd-burner
WITH_DVD=yes
# vte widget (gnome-terminal)
WITH_GLX=yes
# gnomevfs2
WITH_FAM=yes
# djbfft
WITH_OPT_PPRO=yes
# gnome remote desktop
WITH_TIGHTVNC=yes
WITH_XNEST=yes
Выходные с чертёнком
WintiX
(wintix!at!bk.ru)
v.1.00, апрель 2003
_________________________________________________________________
Сисадминам просьба не волноваться, это не про них. Описан процесс
установки и настройки FreeBSD на сугубо домашнем компе, не первой
свежести пеньке-133 причём с дохлым моником. Последнее обстоятельство
ограничивает меня рассмотрением только текстового режима работы.
Подготовка
Итак мы собираемся произвести установку на домашний комп
дополнительной ОС. Первые два вопроса, с которыми необходимо
определиться (кроме Что делать? и Кто виноват?) это Откуда ставить? и
Куда ставить? С первым более-менее ясно -- нет ничего удобнее CD. Я
пользовался четырехдисковым набором для версии 4.7. Первый диск
загрузочно-инсталляционный + коллекция пакетов. На втором -- живая
система, которая может пригодиться в пожарной ситуации. Ну например
вам срочно понадобилось завалить сервант, к которому возможен
физический доступ. Впрочем, в этом случае будет проще просто спихнуть
его со стола. Третий и четвертый диски содержат дополнительные
коллекции пакетов.
Для решения второго вопроса вам придётся помедитировать над своим
железным другом самостоятельно. Если вы не очень знакомы с принципами
размещения осей на винтах для архитектуры PC, почитайте доки с
http://www.symon.da.ru - это лучшее из того, что мне удалось найти.
Остановимся на ключевых моментах: 1) На каждом из физических дисков
может быть создано только четыре основных раздела. 2) Один из четырёх
разделов (обычно второй) может быть обозначен как расширенный
(extended). Внутри него можно создавать дополнительные разделы. 3)
BIOS PC, как правило не видит дальше 8 Gb. Поэтому начало загрузочного
раздела должно находится внутри этой области. 4) Наиболее безопасно
устанавливать незнакомую систему на никому не нужный комп.
Из моего опыта следует, что все доступные для PC оси можно поделить на
три сорта. К третьему сорту относятся все разновидности DOS и Win9x --
эти системы грузятся только с первого раздела первого винта, т.е. с
диска C:. Ко второму сорту относятся ортодоксальные Unix'ы (FreeBSD,
NetBSD, QNX RTP). Они грузятся с любого раздела, но о расширенном
разделе не хотят ничего знать. Системы первого сорта наиболее
дружелюбны и работают откуда угодно. Выявлены следующие особи:
WinNT(2K,XP), BeOS, Linux (опробовано на Mandrake).
Третьим судьбоносным вопросом является: Как грузить? Ведь настоящая
хацкерская тачка должна быть многоосной. Можно воспользоваться
загрузчиком одной из систем или выбрать независимый загрузчик. Я
выбрал SyMon и не разочаровался.
Итак, будем считать, что вы определились с означенными тремя вопросами
и ...стоп. Надо ещё выделить время. То есть когда вы будете ставить
систему в десятый раз, времени вам понадобится гораздо меньше, но
поначалу надо действовать вдумчиво, с чувством, толком, расстановкой.
Поэтому выделяйте не менее одного выходного. Я потратил оба.
Итак CD закуплены, компутер томиться в ожидании, пыво остывает в
холодильнике - можно начинать...
Установка
Берём CD#1 и загружаемся. После загрузки появляются текстовые менюшки,
немного сумбурные и крысой не цепляются, но при некоторой сноровке
пользоваться можно. Прямо с порога вам будет предложено
переконфигурировать ядро, на провокации не поддаёмся, чего его
ковырять без особой надобности. Далее попадаем в менюху проги
/stand/sysinstall. Запомните это слово. Вы можете запускать эту прогу
всю оставшуюся жизнь, подкручивая, полируя или ломая новым способом
уже установленную систему.
А сейчас выбираем стандартную инсталляцию. Далее надо выбрать диск,
если их больше одного, после чего запустится fdisk. Повторюсь, FreeBSD
относится к системам второго сорта, поэтому не пытайтесь ставить её в
расширенный раздел или на один раздел с виндовс. Эта система юная но
гордая и требует себе отдельного первичного раздела. Если такой раздел
уже выделен, рекомендуется его удалить и создать заново. Тип раздела
по умолчанию определяется номером 165 и лучше его не менять. Всё, жмём
Q и уходим.
Теперь вам будет предложено установить бутменеджер и записать MBR. На
это надо твёрдо отвечать, что ничего нам не надо и со своим MBR мы
разберёмся сами.
Далее запускается ещё одно лихо - Disklabel Editor. Эта штука
напоминает fdisk и служит для нарезания первичного раздела на слайсы.
Тут я доверяюсь вкусу и чувству меры разработчиков и жму кнопку A, что
значить "автоматически". Смотрим, шта палучилась. Раздел в 2 гектара
был нарезан следующим образом: корень (/) = 128M, swap = 240M, /var =
256M, /tmp = 256M, /usr = 1111M. Если что-то не устраивает можно
поправить ручками. Здесь же удобно добавить дополнительные точки
монтирования для существующих посторонних разделов, но только в
пределах данного диска.
С диском покончено, пора выбирать чего ставить. Кроме собственно
системы доступно огромное количество пакетов и их можно выбирать
индивидуально. Однако из экономии времени я пользуюсь "комплексными
обедами", а именно выбираю девелоперскую дистрибуцию и дело с концом.
Если вы не уверены, можно поставить минимальную дистрибуцию и
доставлять порты/пакеты по мере возникновения необходимости. Кроме
того я ставлю дерево портов. Постинсталяционные исследования диска
командой df (disk free) показали, что корневой слайс заполнился на 34
метра, слайс /usr на 680 метров, а /var и /tmp практически не
пострадали.
Наконец предлагают выбрать откуда ставить (9 вариантов!), неужели не
ясно? CD/DVD!
Вам может показаться, что система уже почти поставлена и настроена -
это не так. Ещё не поздно всё отменить, о чём и сообщает очередная
менюшка. Но мы её игнорируем и жмём OK! Побежали буковки и циферки,
процесс установки пошёл и это нормально. Обращает на себя внимание
ровное гудение блиновода, система шарашит не задумываясь. В моём
случае установка закончилась через 6 минут.
Далее следуют новые проявления врождённого любопытства системы в виде
вопросов. Можно отвечать на них сейчас или оставить на потом. Отмечу
лишь пару моментов: второго пользователя пока не добавляем, а пароль
для рута устанавливаем.
Что было отмечено сразу после установки, так это высокая скорость
загрузки. Фря грузится быстрее виндов в три раза и приближается к DOS,
оставляя позади остальные системы. Это может оказаться полезным если
вы торопитесь и вдруг понадобилось проверить почту. Впрочем,
торопливость не лучший помощник в зтой жизни.
Настройка
"Веришь ли ты в настройку после установки?" - пела Шер, видать она
сидит под виндами. Под никсами ("у них") настройка системы
обязательна. Перво-наперво надо определиться с редактором - без него,
как без рук, хотя некоторые умудряются и без рук...
Редактор
Система к счастью уже содержит два редактора - vi и ee. Если вы не
ищете лёгких путей - изучайте vi, я же выбрал ee. Во-первых проверим,
что он действительно стоИт:
# ee
потом сделаем его редактором по умолчанию:
# set EDITOR=ee
(позднее надо будет не забыть добавить соответствующую строчку в
.profile в домашней директории.(export EDITOR=ee;)
Монтируем блины
В процессе установки пакетов нам потребуется часто менять диски в
приводе, поскольку дисков много а привод - один. Лично у меня тачка
живёт под столом и нажимать кнопку привода мне неудобно. Поэтому я
сразу втыкаю парочку фирменных скриптов: /usr/local/bin/cdm отвечает
за установку блина (в /dev/skovoroda), а /usr/local/bin/cdu - за его
вытаскивание.
#!/bin/sh
#cdm - CD mount
cdcontrol -f /dev/acd0c close
mount /cdrom
#!/bin/sh
#cdu - CD unmount
umount /cdrom
cdcontrol -f /dev/acd0c eject
Далее делаем им chmod 770, и скрипты готовы к использованию. Первая
неприятность состоит в том, что cdcontrol не будет выдвигать лоток
если он пуст. Исследование исходников показало, что баг кроется в
архитектуре ATAPI-CD драйвера. Всё организовано по аналогии с IDE
винчестером -- если диска нет, значит девайс не сконфигурирован, его
номер не возвращается и отдать команду мы ему не можем. В общем,
можете пожаловаться разработчикам...
Другая неприятность заключается в том, что система позволяет
монтировать файловые системы только администратору aka руту. Похоже,
что эта паранойя угнездилась глубоко в ядре, пусть знатоки меня
поправят. Изучайте команду su господа!
bash
Далее будем ставить любимый шелл - bash. По умолчанию Фря ставит csh,
что мотивируется POSIX-совместимостью. Воспользуемся нашими свежими
скриптами:
# cdu
# put disk#1 -by /dev/hands
# cdm
# /stand/sysinstal
, далее по пунктам меню:
Configure-Pakages-CD/DVD-shells-bash...Нажимаем на кнопку - получаем
результат. Переходим в домашний каталог и делаем резервную копию
конфигурации:
# cd ~
# cp .profile .profile_orig
# ee .profile
Здесь вставляем следующие строки:
export EDITOR=ee
export PS1="\u:\W!!"; #печатать в приглашении bash имя юзера и путь
export PS2="\t!!"; #в дополнительном приглашении печатать время
#для rootа я устанавливаю удобств по минимуму, чтоб не засиживаться
#позднее для пользователя устанавливаю более удобное
# export PS1="\u:\w>"; с указанием полного пути
alias ls='ls -aFG' #по команде ls: (-a) показывать все файлы,
# (-F) для директорий, ссылок и
# исполняемых файлов использовать спец. обозначения
# (-G) раскраска файлов
Далее необходимо сменить шелл для любимого админа. Набираем:
# chsh
и попадаем в ee, если все было сделано правильно. Меняем shell на
/usr/local/bin/bash. Теперь можно и перегрузиться (reboot), благо это
быстро. Проверяем как работает bash: стрелки вверх/вниз - прокрутка
истории команд, tab - автодополнение пути к файлам.
Русификация
Приступаем к русификации. Небольшое технологическое отступление.
Архитектура IBM PC предусматривает следующий способ отображения
информации в текстовом режиме. В специальную область видеопамяти
загружается таблица с начертаниями символов. Вывод информации
осуществляется указанием видеоадаптеру номеров соответствующих
символов. Большинство символов имеют по краю черную вертикальную
полоску шириной в один пиксель для предотвращения "слипания". Только
небольшой диапазон адресов, изначально предназначенный для хранения
символов псевдографики, не имеет этой особенности. Так вот, среди
наиболее известных русских кодировок, только альтернативная кодировка
ГОСТ (она же CP-866) сохраняет символы псевдографики на их родных
местах, позволяя наблюдать на экране гладенькие рамочки. Таким
образом, врач прописывает ставить шрифты в кодировке CP-866, но
использовать "родную" для Unix кодировку KOI8-R и соответствующую
перекодировочную таблицу для сопряжения этих двух. Что может быть
проделано как через /stand/sysinstall, так и руками. Опишем последнее.
Редактируем /etc/rc.conf
keymap="ru.koi8-r.shift"
#можно поставить просто ru.koi8-r, но тогда цифровые клавиши в
#русской раскладке переворачиваются, что мне было непривычно
scrnmap="koi8-r2cp866"
font8x16="cp866b-8x16"
font8x14="cp866-8x14"
font8x8="cp866-8x8"
Далее редактируем /etc/ttys
console none unknown off 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 on secure
ttyv3 "/usr/libexec/getty Pc" cons25r on secure
ttyv4 "/usr/libexec/getty Pc" cons25r on secure
ttyv5 "/usr/libexec/getty Pc" cons25r on secure
ttyv6 "/usr/libexec/getty Pc" cons25r on secure
ttyv7 "/usr/libexec/getty Pc" cons25r on secure
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
И снова редактируем .profile любимого шелла
export CHARSET=KOI8-R
export MM_CHARSET=KOI8-R
export LANG=ru_RU.KOI8-R
Ну вот мы и русифицированы (слыхал, что можно перезапускать консоль
без перезагрузки. Не помню как и посему тупо перегружаюсь). Русская
клавиатура включается клавишей CapsLock и заявляет о себе свечением
соответствующего светодиода, что в принципе удобно. При переключении
между несколькими консолями (Alt+F1, F2..) состояние клавиатуры для
каждой из них сохраняется и диод CapsLocka загорается и гаснет
соответственно. Функции CapsLockа берёт на себя комбинация
Shift+CapsLock и Ctrl+CapsLock. Удерживая Alt, также можно печатать в
иной раскладке.
Midnight Commander
Bash bashем, но иногда хочется побродить по директориям в свободном,
так сказать, полёте. Будем ставить Midnight Commander. Обратите
внимание, что ставим мы всё из пакетов. Как было правильно подмечено
кем то из классиков, пакеты (packages) подобны готовым блюдам, в то
время как порты (ports) это полуфабрикаты. Установка софта из портов
требует дополнительного труда по скачиванию исходного кода, компиляции
и инсталляции, зато вы можете выковырять из пиццы лишний, по вашему
мнению, лук. Итак вставляем диск #4 и набираем знакомое
/stand/sysinstall, далее по знакомой дорожке:
Configure-Pakages-CD/DVD-misc-mc. OK, mc поставлен. Кстати если ваш mc
норовит стартовать в черно-белом настроении - добавьте в ~./profile
строку:
export COLORTERM=1
и он моментально посинеет.
Добавляем юзеров
Теперь, пожалуй пора и юзеров добавить. Для начала залезем в каталог
/usr/share/skel/ и покопаемся в тамошних dot-файлах. Особое внимание
следует уделить dot.profile. Это прототип для .profile, который будет
копироваться в домашний каталог для каждого нового юзера. Для
упрощения жизни можно скопировать сюда уже настроенный /root/.profile.
Далее набираем
root:skel!!adduser
Эта полезная утила предполагает, что вы будете создавать много юзеров
по одному шаблону. Поэтому сначала она будет задавать вопросы по
поводу параметров по умолчанию, будьте внимательны. Когда дойдёт дело
до создания вашего аккаунта, кроме логина/пароля необходимо задать
группу wheel. Только пользователям этой группы разрешено выполнять по
совместительству обязанности админа, т.е. команду su. Вы имеете
возможность пригласить себя и в другие группы, я записываюсь в
operator и network. Если понадобиться что-то поменять, можно
отредактировать /etc/group.
Dial-Up
Какой домашний компутер без интернету. Интернет способен удовлетворить
любые ваши фантазии, однако, прежде чем переходить к частностям, надо
бы установить ppp соединение с провом. Надеюсь у вас есть модем и
атрибуты провайдера для подключения. Для начала проверяем наличие
последовательных портов:
wintix:/dev>dmesg | fgrep sio
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
Видим, что в нашем распоряжении есть два порта поддерживающие
UART16550A, т.е. FIFO буферизацию, и это хорошо. А вот так я проверяю
работоспособность модема. Модем внешний, прицеплен на COM2. Работаем
из-под rootа, в данном примере юзерский ввод выделен жирным (набрано
жирными руками rootа).
root:/etc!!cu -l /dev/cuaa1
Connected.
atz
OK
ati
33600
OK
atdp #здесь раздался гудок и я выключил мопед
..cu: Got hangup signal
Disconnected.
root:/etc!!
OK. Мопед работает. Переходим к редактированию /etc/ppp/ppp.conf. Этот
файл содержит секцию default:, в которой прописывается порт и
параметры соединения. Ставим свой порт, выставляем время ожидания до
разрыва соединения и способ набора номера (ATDT меняем на ATDP).
Преходим к секции papchap:. Внутри неё может быть несколько
подразделов для разных провайдеров, например:
prov1:
set phone 1234567
set authname MyLogin
set authkey MyPassw0rd
set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
add default HISADDR # Add a (sticky) default route
Редактируем поля для телефона, логина и пароля, и можно звонить.
Никаких первичных/вторичных DNS или доменов вводить не надо! За это
отвечает строчка enable dns. Сразу после установления соединения
адреса DNS-срверов появляются в /etc/resolv.conf сами-собой. ppp может
быть запущен многими способами, я пускаю его в режиме демона:
wintix:~>ppp -auto prov1
В этом режиме он создаёт псевдо-девайс tun0, который ожидает запроса
на выход в сеть. При поступлении запроса происходит дозвон и
соединение. Если в течение timeoutа запросов не будет - соединение
разрывается. Если вам понадобиться прихлопнуть этого демона,
используйте команду:
wintix:~>kill `cat /var/run/tun0.pid`
Будьте внимательны, обе кавычки - левые.
Итак, дозвон свершился. Запускаем полуночного командира, пусть
потрудится FTP клиентом. Теперь у нас наконец появилась возможность
ставить софт не из пакетов а из портов. Для этого необходимо
установить дерево портов. Если вы не сделали этого при инсталляции -
то /stand/sysinstall-Configure-Distribution-ports.
Далее гуляем в /usr/ports и видим кучу директорий - это типа темы,
например тема www. Заходим в тему - видим ещё кучу директорий, это
типа приложения. От приложений там оставлены мейкфайлы и ещё кое-какая
дребедень. Файлы небольшие, но их много. Команда du (disk usage)
показала что деревце занимает 173 метра из 680, которые были залиты на
слайс /usr.
Lynx
Был недавно в зоопарке, обнаружил данную надпись на клетке с рысью и
никаких упоминаний о лицензии GNU. Посмотрел в словаре, и
действительно lynx это рысь. Рысь поставим для разнообразия из портов.
Итак,
root:/etc!!cd /usr/ports/www/lynx-current
root:/lynx-current!!make
>> lynx2.8.5dev.8.tar.bz2 doesn't seem to exist in
/usr/ports/distfiles/.
>> Attempting to fetch from http://lynx.isc.org/current/.
Receiving lynx2.8.5dev.8.tar.bz2 (2047916 bytes): 5%
. . .
root:/lynx-current!!make install
То есть всё скачивается автоматически и далее происходит компиляция и
сборка. Все зависимости естественно проверяются и удовлетворяются
посредством той же сети и без вашего участия. По окончании процесса вы
имеете установленную программу и все исходники, что может оказаться
полезным, если понадобится перекомпиляция с другими опциями или
какими-нибудь изменениями.
WWW сёрфинг в текстовом режиме вещь специфическая, но и к этому можно
привыкнуть. Зато быстро, поскольку вся графика вырезается в принципе.
Для просмотра порносайтов не очень удобно, зато ничего не отвлекает.
Ненастроенная рысь отображает русский текст латиницей, настраивается
это нажатием буквы o(ptions), кодировка отображения koi8-r и не забыть
записать настройки в файл. В домашней директории появится .lynxrc -
пожалуй первый, из встреченных мной, конфиг на русском.
Что там ещё из насущного? Почта. Это очень длинная история, может на
следующих выходных...
Пользуясь случаем спешу выразить признательность Андрею Лаврентьеву за
"Наброски по установке и настройке FreeBSD-4.x"
(http://www.opennet.ru/docs/BSD/FreeBSD_RELENG_4/index.html) и Virusу за
"Поднимаем FreeBSD" (http://www.xakep.ru/post/14829/default.asp).
Здравствуй, читатель. Меня всегда интересовала и прельщала альтернатива во всем, как в реальной жизни, так и в "виртуальной". Я перепробовал тучу ОСей на своем компе (помимо всяческих виндов у меня побывали: Linux (Mandrake, Red Hat, Corel), QNX, BeOS), но сейчас я решил остановиться и рассказать тебе о самой интересной операционке на данный момент для меня, о freeBSD.
Она стоит в качестве сервера на Hotmail (да-да! а ты что думал там стоит? Винда? Нет! МелкоМягкие купили готовое решение именно для фрюхи),Yahoo.com, и еще на многих-многих машинах. Это и неудивительно - она нетребовательна к ресурсам, возможностей хоть отбавляй,а главное - бесплатная. После внеочередного глюка линукса, я решился на весьма рисковый шаг - поставить бздю, ибо по разговорам старших товарищей, она несомненно лучше и удобней, а главное располагает к чтению (как оказалось к чтению мануалов и в достаточном количестве). Для начала, я запасся всяческими мануалами-факами по ее установке и настройке (чего советую и тебе сделать). Что же, начнем, рассказывать буду все поэтапно и со своими впечатлениями =)
Начало конца
Блин! Мне надоел линукс! Я хочу действительно СЕРВЕРНУЮ ОСь! Да и, вообще, я привык к альтернативе во всем. Решено - сейчас же ставлю!
Так... В биосе прописал загрузку с сидирума, вставляю первый диск... Перезагружаюсь... Мда... Меню установки не балует своим графическим интерфейсом (графика на уровне середины 80х, т.е ASCII), но факт есть факт - хелпами установка начинена, обязательно почитай их, они содержат исчерпывающую информацию о каждом процессе установки (менюшка Usage).
Я как честный начинающий пользователь БЗД, последовал советам многочисленных хелпов и нажал на метод установки - Standart (естественно предварительно настроив в пункте Options - Media Device, то место, откуда будет происходить установка системы). Итак, после нажатия на кнопку Standart, я попал в окно программы FDISK (это не досовский fdisk, а бздевый менеджер разделов. Вот тут сделаем лирическое отступление... Я хотел ставить БЗДю в отдельный специально созданный для нее раздел (безжалостно отрезанный partition magic'ом =)) НО я круто обломался, когда увидел, что система мой раздел и вовсе не признает в своем FDISKE :((( Как позже я понял: если будешь ставить бздю, то при помощи партишн мэджика создай пустой раздел (unnalocated) и перемести его за границу extented partition - лучше в начало диска (все nix'ы это любят -)). После того как ты это сделаешь, операционка этот пустой раздел увидит.
После чего выбирай этот пустой раздел и нажимай кнопку "C", указывай размер будущего раздела и точку монтирования (для того чтобы указать размер раздела в мегабайтах добавь после цифры букву M). Бздя позволяет создавать слайсы под отдельные фрагменты файловой структуры, например, папку /home можно разместить в отдельном физическом разделе, если это потребуется. Лично мне ничего этого не нужно было, я создал раздел и прописал точку монтирования "/".
Процесс пошел!
После того, как ты указал какие разделы форматировать и прописал точку монтирования для установки будущей системы (выбери также Boot Mgr - бут менеджер, если помимо бзди что-то ставишь), ты увидишь меню Choose Distributions, в котором сможешь выбрать список устанавливаемых компонентов. Весьма удобная штука между прочим. В линуксе убивало то, что нельзя было нормально выбрать те пакеты, которые тебе нужны (возможно, мне попадались какие-то битые дистрибутивы или еще что, но факт есть факт - у меня всегда появлялось по 10 калькуляторов, 5 текстовых редакторов и проч и проч). После того как выберешь то что тебе действительно требуется, тебя спросят откуда ставить FreeBSD, ранее указано было что с cd, подтверди это. После чего бздя отформатирует выбранный ранее раздел под себя и начнет устанавливать коллекцию портов. Меня поразило то, насколько все это быстро проинсталлировалось (линуксу требовалось больше времени, а о винде я вообще не говорю). После установки пакетов, бздя запросит у тебя еще кое-какую информацию: конфигурирование сети, пароль рута, создание пользователей... После завершения установки, мы опять попадем в меню программы sysinstall. Для того чтобы уже окончательно отконфигурить систему нажми "Do-PostInstall". Зайдя в этот раздел, ты увидишь следующие пункты:
Distributions - здесь можно выбрать установленные пакеты или же установить то, чего не было выбрано при инсталляции.
Packages - список группированных пакетов, содержит структурированную коллекцию прог.
Root Password - смена пароля рута -)
FDISK,Label - проги для совершения резательно-форматирующе-назывательных действий над жестаком =)
User Management - отсюда можно добавить юзеров если это не было сделано раньше (весьма разумно, ибо это довольно опасно работать под root'ом, т.к. можно что-то испортить, могут что-то испортить вам молодые хакеры (совет актуален ввиду их невероятного количества в последнее время =))
Console - здесь можно произвести настройки консоли. Везде пропиши использование русских шрифтов.
Time Zone - настройка текущего времени
Mouse - настройка мыши
Далее нужно прописать стартовые сервисы, выбирай то, что тебе действительно нужно (по каждому компоненту опять же можно прочитать страницу помощи). Настройка ttys, уровня безопасности, все это шняга, можно будет настроить и потом ручками.
Главное, чтобы работать в гуевом режиме (от слова GUI (Graphical User Interfase), а не от того что ты подумал) произведи настройку X-window, выбери визуальный режим конфигурации. Отконфигури согласно твоему железу и твоим требованиям (сначала x-window у меня грузиться никак не хотел :(( только после изменения параметров вертикальной развертки 55-70, а не 55-90 как было раньше), после чего иксы начали грузиться, не давая никаких сбоев и сообщений об ошибке.
Так вот ты какой, чертик FreeBSD!
Перезагрузись, ты увидишь бут-менеджер, нажимай кнопку для загрузки фрюхи (F*). Затем жмакай Enter, чтобы не выжидать паузу в 10 секунд, перед загрузкой ядра -) Вот ты и в фрюхе -) . Если в программе sysinstall ты прописал то, что будешь работать с иксами (указав с чем именно, в моем случае это kde), то после того, как ты залогинишься (желательно под рутом, ибо фрюху еще надо настраивать), пиши "startx".
Пойдет загрузка иксов и оконного менеджера. Вот она, чистая ось. Если ты что-то не успел доконфигурить в sysinstall не волнуйся. Запускай консоль и пиши следующее:
cd /stand
./sysinstall
Загрузится программа sysinstall =)
Чтобы добиться оптимальной производительности тебе потребуется переконфигурить ядро. В этом я тебе помогу -)
Топай в /usr/src/sys/i386/conf, видишь файлы GENERIC и LINT? Первый конфиг-файл дефолтового ядра (т.е. то, которое установилось при инсталляции системы). Второй файл представляет собой более подробное описание всех элементов ядра (самым оптимальным вариантом настройки нового ядра является файл LINT, но для начала нам хватит GENERIC).
Возьмем за основу нашего нового ядра файл GENERIC, скопируем его посредством команды cp GENERIC NEWKERNEL. Теперь отредактируй файл NEWKERNEL посредством любого текстового редактора. Имхо, проблем с конфиг-файлом возникнуть не должно, ибо каждая опция содержит комментарий. Но все же, базовые советы я тебе дам.
machine i386 - твой процессор, имеется ввиду не его тип, а сама железяка, т.е. в данном случае процессор совместимый с Intel 386.
cpu "I586_CPU" - тип твоего процессора, в файле даны комментарии по выбору проца, выбери свое =)
ident NEWKERNEL - идентификация нового ядра
Дальше идут обширные комментарии -) Единственное, что хочу тебе посоветовать - пропиши в новом ядре наличие у тебя звуковухи:
device pcm (если у тебя встроенная в мамку звуковуха, добавь опцию options PNPBIOS)
В принципе, конфиг-файл моего ядра лежит на http://www.hacknow.org/stuff/NEWKERN - можешь взять его за основу =)
После того как ты указал, что тебе нужно в конфиг-файле, скопируй его в папку /usr/src. Далее вводи в консоли следующие команды (для компиляции и установки нового ядра):
cd /usr/src/sys/i386/conf
config NEWKERNEL
cd /usr/src
make buildkernel KERNCONF=NEWKERNEL
make installkernel KERNCONF=NEWKERNEL
Если произойдет какая-либо ошибка на одном из этапов компиляции ядра (это происходит из-за ошибок в конфиг-файле ядра), зайди в каталог /usr/src/sys/i386/conf исправь ошибку (если ошибка в синтаксе, то make выдаст тебе номер неверной строки в конфиг-файле), после чего скопируй конфиг-файл в /usr/src и удали в /usr/src/sys/compile папку NEWKERNEL. После чего повтори процедуру установки ядра.
Если все пройдет гладко, дай в консоль команду "reboot". Система перезагрузится и пойдет загрузка уже твоего нового ядра =) Если же новое ядро не грузится, не волнуйся, просто напиши в появившейся строке:
unload
boot kernel.old
Таким образом ты загрузишь предыдущую версию системы. Исправь ошибки и повтори процесс установки нового ядра. Обычно со второго раза все получается =) Если же нет то загрузи GENERIC-ядро (вместо boot kernel.old, напиши boot kernel.GENERIC). Но ты особо не огорчайся, если оно не хочет компилится/работать/etc, мне пришлось перестраивать ядро 6 раз, чтобы добиться конфигурации "под себя" и "как мне удобно и нужно" =)
Если новое ядро загрузилось - то все чудно =) Пора производить базовую настройку системы:
Настройка звука - зайди в папку /dev (cd /dev) и введи команду sh MAKEDEV snd0. Таким образом ты обретешь возможность слышать звук в своей фрюхе =)
Поднятие интернета
Что же, скорее всего ты захочешь потестить инет во фрюхе. Не вопрос. Лезь в папку /etc/ppp. Замечу, что для поднятия диалапа, ядро надо компилировать с параметрами
pseudo-device sl
pseudo-device ppp
pseudo-device tun (нужно будет потом сделать следующее cd /dev и sh MAKEDEV tun*, это нужно для работы модема)
Далее введи команду man ppp - и получишь хелп по настройке диалапа. В принципе, весь процесс поднятия инета сводится к одному - создание конфиг-файла будущего соединения, и файла-скрипта, для осуществления соединения с провайдером.
Для user-ppp мой конфиг-файл выглядит следующим образом:
default:
set log Phase Chat LCP IPCP CCP tun command
ident user-ppp VERSION (built COMPILATIONDATE)
install:
set speed 56700
set device /dev/tun2
set ifaddr 0 NO 255.255.255.0 0.0.0.0
add! default HISADDR
set timeout 0
enable dns
set log local phase
set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDP\\T TIMEOUT 40 CONNECT"
set login
set authname XXXXXX
set authkey XXXXXXXXXX
set phone 911
Для того чтобы звонить посредством user-ppp введи команду "ppp --ddial название_соединения (в моем случае default)
А для использования pppd:
lock
asyncmap 0
crtscts
modem
defaultroute
user XXXXXXXX
/dev/tun2 115200
connect '/usr/bin/chat -t 60 -f /etc/ppp/chatscript'
Файлы chatscript и login.chat.script , содержат инфу о логине/пароле/номере телефона для дозвона.
Русификация
Теперь надо прорусифицировать систему. Сделать это можно таким образом: в файле /etc/login.conf пропиши следующее:
russian:Russian Users Accounts:\
:charset=KOI8-R:\
:lang=ru_RU.KOI8-R:\
:tc=default:
в /etc/passwd в 5-ом поле файла пропиши russian всем юзерам -)
Альтернатива этому методу:
В /etc/profile напиши
LANG=ru_RU.KOI8-R; export LANG
MM_CHARSET=KOI8-R; export MM_CHARSET
А в /etc/csh.login:
setenv LANG ru_RU.KOI8-R
setenv MM_CHARSET KOI8-R
Таким образом мы поставим русскую локаль -)
Теперь надо прорусифицировать Иксы =) Лезем в файл /etc/XF86Config (лучше сохрани его копию, под названием, скажем XF86Config.working, чтобы при возникновении какого-либо геморроя, иксы можно было восстановить, всего лишь удалением неработающей версии конфиг-файла и переименованием предыдущей версии в XF86Config).
Добавь строчки в XF86Config:
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/misc"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi"
В этих папках содержаться русские шрифты. Затем далее в секции Keyboard пропиши:
XkbRules"xfree86"
XkbModel"pc101"
XkbLayout"ru"
XkbOptions"ctrl:nocaps,grp:ctrl_shift_toggle"
Всё, иксы прорусифицированы, раскладка будет переключаться нажатием кнопок Ctrl-Shiht. Если хочешь видеть визуально то, какая раскладка используется в данный момент, запусти прогу xrus (просто набрав в консоли xrus). Осталась консоль. Делаем следующее:
В файле /etc/rc.conf пишем:
keymap=ru.koi8-r
keychange="61 ^[[K"
scrnmap=koi8-r2cp866
font8x16=cp866b-8x16
font8x14=cp866-8x14
font8x8=cp866-8x8
В файле /etc/ttys нужно в строке тип консоли, заменить cons25 на cons25r. Все, теперь вся система русская =))
Монтирование
Для того чтобы работать с другими винтами и сидюком тебе нужно все это дело подмаунтить. Во фрюхе есть некоторые отличия в процессе монтирования. Винты здесь обозначаются не как hda1/hdb2 etc, а как ad0s1/ad0s1a и т.д.
Для того, чтобы подмаунтить, скажем, C: диск (обозначаемый так в винде) дадим команду (предварительно создав папку "c" в mnt для удобства ;))
moun -t msdos /dev/ad0s1 /mnt/c
Сидюк монтируется следующим образом
mount /cdrom
Если же у тебя на жестком диске наличествуют отличные от fat'a файловые системы, вводи команду man mount. После всех вышеперечисленных манипуляций, ты получишь отлично работающую систему, которая распознает русский язык и располагает к продолжительному чтению доков =)
Ура, господа, теперь вас действительно можно назвать Юниксоидами -) "Не так страшен черт, как его трезубец" =))
ЗЫ В написании статьи использовался материал из /usr/share/doc/handbook и личный опыт :/
Наброски по установке и настройке FreeBSD-4.x
Автор: Андрей Лаврентьев (lavr@unix1.jinr.ru), http://unix1.jinr.ru/~lavr/
Полагаю что ответы на большинство вопросов могут быть найдены на следующих
ссылках:
- http://www.freebsd.org.ru/
- http://www.freebsd.org/
или http://www.freebsd.org/mail/ - далее либо search, либо чтение mail
- http://www.freebsddiary.org/
- http://www.freebsdhelp.org/
- http://www.deja.com/bg.xp?level=comp.unix.bsd.freebsd
или фидо группа
http://www.deja.com/bg.xp?level=fido7.ru.unix.bsd
Набор моих личных настроек НИЖЕОПИСАННОГО, будет находится пока в:
протокол://unix1.jinr.ru/path/lavr_set.tgz [готовится... на базе unix1]
Быстрый обзор ЖЕЛЕЗЯК для FreeBSD 4.-STABLE
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ram - память, как минимум 32, НО для работы >= 128MB [видимо 64MB не очень...]
CPU - 386/.../686 [Pentium/PentiumPro/Pentium-II/III]
ide/ata [+mfm/rll/esdi]
cdrom: scsi & atapi [смысла указывать _раритетные_-старинные cdrom нет]
scsi: указывать массу железяк нет смысла, поддерживается дофига.
raid: вот это интересно,
- scsi-2-scsi: Mylex DAC960, Infotrend, CMD - понятно что external.
^^^^^^^^^^^- данная технология выгодна своей тс независимость, ну типа
внешний и внешний, сами raid-массивы будут выглядеть для OS как один
большой диск, хошь Бсдя, хошь Люниксъ
- pci-2-scsi: Mylex DAC960/1164 (AccelRAID 250 и Extreme 1000)
^^^^^^^^^^^^^- лажа ^^^^^^^^- пока
очень путно работает, но еще нет нагрузки от users, посмотрим
что будет после впукивания тудысь ~1000 users и как буит
работать NFS'ня, хотя это и сете-железячно зависимая весчь
имеется ввиду NFS, если лишь унутри свитча, то наверное
без особых фичек. Люниксъ и NFS-3 судя по свистопляске "vvm"
пока что жуткая жопа. Ох ужо это Люниксъ.
DPT SmartCACHE Plus, SmartCACHE III, SmartRAID III, (старье)
SmartCACHE IV и SmartRAID IV SCSI/RAID (более менее)
AMI MegaRAID 1300/1400/1500 (более менее)
3ware, Compaq, ICP-Vortex уже в разработке, а некоторые BETA!
Довольно много уже появилось драйверов для различных RAID.
FreeBSD and current RAID support
Serial[COM] Ports: во FreeBSD довольно много поддерживается различных
многопортовок, для того чтобы задействовать в ядре номинальные COM1/COM2,
достаточно прописать:
device sio0 at isa? port "IO_COM1" flags 0x10 tty irq 4 vector siointr
device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr
device sio2 at isa? disable port "IO_COM3" tty irq 4 vector siointr
device sio3 at isa? disable port "IO_COM4" tty irq 3 vector siointr
и при необходимости создать соответствующие устройства:
cd /dev; ./MAKEDEV cua0 cua1; ./MAKEDEV ttyd0 ttyd1
где /dev/cuaa0 - COM1
/dev/cuaa1 - COM2
проверить работоспособность порта можно например, повесив мышь на COM1
и выполнив команду:
cat < /dev/cuaa0 ( повозим мышь и увидим результат )
или повесив модем на /dev/cuaa1 и выполнив:
cu -p /dev/cuaa1 -s 38400
...
~~. - выход.
сконфигурировать мышь через /stand/sysinstall или `man moused`
запустить от рута `moused -i all -p /dev/mouse` [соответствующий вашему порту]
после того как определили работоспособные параметры вашей мыши, пускаете
демон moused [-t ...] -p /dev/psm0[cuaa0]
для автоматического старта при последующих перезагрузок добавить строки на вкус
в /etc/rc.conf:
moused_port="/dev/cuaa0" - ваш порт psm0 или cuaa0, или ...
moused_type="mouseman" - если нужно указать протокол
moused_enable="YES" - если пускать демон автоматом
после чего можно использовать мышку для cut/paste в Midnight Commander'е
sound: pci - ensoniq1370/71, neomagic, aureal-8820, trident 4Dwave.
ньюансы: масса creative pci 64/128 выполнены на чипах ensoniq.
Aureal Vortex - по мне так ш-и-к-а-р-н-а-я и дешевая карта, важно отслеживать
изменения в драйверах если вы катите систему через cvs/ctm:
http://www.cis.ohio-state.edu/~matey/au88x0/ - драйвера для:
Vortex Advantage(au8810)/ Vortex 1(au8820)/2(au8830)
Maestro 1/2 в ядре - см. /sys/dev/sound/pci
http://access.cent.saitama-u.ac.jp/~taku/freebsd/maestro/newpcm/readme.html
Maestro 3xxx - http://people.freebsd.org/~scottl/maestro3/
SBLive поддержка в ядре или см.
http://www.defcon1.org/html/Hardware_Articles/PnP_Sound/PnP_Modem/SB-Live5/sb-live4.html
Для PCI звуковых карт достаточно включить в ядре строку:
device pcm
- не забыв про поддержку устройств pci, затем пересобрать ядро, перегрузиться
и посмотреть распознало ли _новое_ядро_ вашу звуковую карту:
`dmesg | grep pcm` или `cat < /dev/sndstat`
- если все ok, запустить mixer и посмотреть параметры, или скомпилить mixer
на вкус их портов: aumix/xmix/xmixer/xmmix/...
- если получили в ответ "no such device" - просто создайте их:
cd /dev; ./MAKEDEV snd0 (0,1,... - в зависимости от количества карт)
Примечание: к счастью у меня неразрешимых проблем со звуковыми картами
не было: PNP16(ISA), AWE32/64, Ensoniq 1371, Aureal 8820.
Тем у кого ЕСТЬ проблемы с картами поддерживаемыми во FreeBSD сооветую
изучить уже указанные ссылки и те что ниже:
http://www.defcon1.org/html/Hardware_Articles/PnP_Sound/pnp_sound.html
http://www.defcon1.org/html/ssh/vpn-howto/pnp-soundcard.html
http://www.defcon1.org/html/Hardware_Articles/OpenSSH/Hardware/File-Systems/sb16-40.html
http://www.defcon1.org/%7Echrisw/FreeBSD/sb128pci.html
net/ware-less/atm... - пока не интересует.
Установка и настройка системы FreeBSD 4.-STABLE:
Установка:
----------
Для установки необходимо либо иметь ISO-IMAGE FreeBSD 4.0-RELEASE,
либо доступ к Internet чтобы установить систему любым из возможных
способов по сети: by FTP - предпочтительнее, если делается зеркало
FreeBSD, by NFS. ^^^^^^^^^^^^^^^^- подразумевается что
при установке по NFS, будут недоступны линки на packages/xfree86,
поскольку они выходят за пределы "mount-point" by NFS.
- выбрать тип установки MEDIA: CD-ROM/NET: FTP;NFS
- выбрать вид установки:
- я всегда выбираю "CUSTOM" - далее помечаю все необходимые компоненты,
отказываясь в "crypto" от Kerberos
- указываю включить "весь sources" для дальнейшей настройки-подготовки
процедуры автоматического upgrade системы - cvsup
- обязательно дерево портов [не считаю что /usr/ports - 8MB.tgz
накладное бремя, наоборот
- выбираю XFree86, включая sources, как минимум VGA+SVGA
(server+fonts+fs)
все - запускаем установку.
После установки ЗАКАЗАННЫХ компонент, можно войти в режим PostInstall
и указать некоторый набор доп.сервисов, советую минимальный набор:
- Midnight Comander и/или deco
- less
- lynx или замену text-oriented www-browser [после установки сделать chmod
или wrapper для запуска
buffer-owerflow однако]
- shells: bash/tcsh [то что первоначально удобно мне]
почему такой минимальный набор? Да потому что сама установка займет меньше
времени и все равно, уважающий себя администратор, затем установит и настроит
все сам или из портов.
Достаточно указать набор стартуемых сервисов и задать пароль для пользователя
"root".
Все - установка завершена.
Перезагружаемся и приступаем к настройкам:
1. Советую сразу же пересобрать KERNEL - ядро, по себя, чтобы затем полностью
"отдаться" настройкам:
- `cd /sys/i386/conf`
- `cp GENRIC MYKERNEL`
- `редактор MYKERNEL` | параллельно `less[редактор] LINT`
+-----------------------------------------------------+
изучаем LINT и вставлям куски из него в свое рабочее ядро, предлагаю делать
избыточные вставки с прицелом на будущее, дабы не ПЕРЕЧИТЫВАТЬ сто-раз LINT,
а уже оперировать со своим РАБОЧИМ ядром и комментариями в нем для себя,
естесственно, подразумевается что многое - взятое из LINT, останется не
задействованным до поры, до времени, НО уже с личными комментариями на будущее.
2. Итак, имеем готовое к сборке - собственное ядро: '/sys/i386/conf/MYKERNEL'
3. Но, прежде чем его сгенерить, советую сбросить файл '/etc/fstab' на дискету.
(и в дальнейшем иметь этот файл на носителе или другой машине, для страховки,
как впрочем и создание и/или использование дискетки 'fixit'
4. Запуск генерации нового ядра - KERNEL.
- `cd /sys/i386/conf`
- `/usr/sbin/config MYKERNEL`
- `cd ../../compile/MYKERNEL`
- `make depend`
- `make`
- `make install`
5. Не торопитесь перегружаться, сделайте копию того ядра, с которого у вас
успешно загрузилась система или прошла инсталляция, как минимум:
cp /kernel.GENERIC /kernel.old
пАчему? Да потому что предыдущее ядро будет переименовано в kernel.old, а
оно совсем не обязательно УДАЧНОЕ, например, если вы уже пересобирали ядро.
6. Перезагрузились.
- проблемы? не грузитесь - "кнопка reset"
теперь, когда пошел отсчет до загрузки... - нажмите, например "shift-?"
- першли в командный режим загрузчика "loader", набираем:
`unload kernel`
`load kernel.old` - или точнее грузим удачное ядро, так сказать откатываемся,
загрузились - разбираемся, что не так...
- проблем нет, новое ядро работает так как хотели:
- если в ядре был включен IPFIREWALL, то посмотрите как это было сделано,
например: `ipfw l` - получите текущий набор правил.
если все порты запрещены, то в зависимости от того как планируется
использовать данную систему, опять же в '/etc/rc.conf' - задаете
соответствующие параметры для ipfw, первоначально советую:
firewall_enable="YES" # Set to YES to enable firewall functionality
firewall_script="/etc/rc.firewall" # Which script to run to set up the firewall
firewall_type="open" # Firewall type (see /etc/rc.firewall)
firewall_quiet="NO" # Set to YES to suppress rule display
firewall_flags="" #
бегло просмотрите файл /etc/rc.firewall - для того чтобы открыть порты
в темпе вальса, для дальнейшего ускорения настройки системы, выполните
необходимые команды `ipfw ...` или после внесения изменений в /etc/rc.conf
- sh /etc/rc.firewall, затем снова команду `ipfw l`, должны быть открыты порты:
[mp3]~ > ipfw l
00100 allow ip from any to any via lo0
00200 deny ip from any to 127.0.0.0/8
65000 allow ip from any to any
65535 deny ip from any to any
[mp3]~ >
Комментарий: начиная с 4.2 в rc.firewall добавлены первоначальные настройки
и для IPFILTER.
Необходимо осознавать что теперь в ЯДРО FreeBSD включены две "Стенки" :)
- IPFIREWALL
- IPFILTER
можете использовать ХОТЬ ОБЕ. Строки для IPFILTER в ЯДРЕ:
#options IPFILTER #ipfilter support
#options IPFILTER_LOG #ipfilter logging
остальное по вкусу и потребностям, зависит от того ЧТО ХОТИТЕ и БУДЕТЕ
использовать.
- теперь советую докрутить и настроить-запустить, если это не было сделано
SSH.
для этого достаточно вставить в /etc/rc.conf строку:
sshd_enable="YES"
и после это запустить sshd руками или через /etc/rc.network.
Отметим, что OpenSSH, начиная с 4.0 является частью системы и в нем
отсутствует алгоритм криптования IDEA, по причинам лицензии. Сразу отмечу
с чем столкнулся я и что сразу изменил под себя, по умолчанию запрещено
RSA, форвардирование X11, шаги:
- вставить строку 'RSAREF=YES' в /etc/make.conf
- `cd `whereis rsaref | awk '{ print $2}'``
- make
- make install
- правим конфигурацию '/etc/ssh/sshd_config' под себя
Теперь можем использовать RSA-аутентикацию.
Примечание: в отношении RSA и IDEA, верхнее устарело, RSA включено в OpenSSL,
а для использования IDEA необходимо добавить в /etc/make.conf
MAKE_IDEA= YES # IDEA (128 bit symmetric encryption)
и пересобрать /usr/src/secure или систему, на ваш выбор.
Осталось внести соответствующие изменения в конфигурацию /etc/ssh/sshd_config,
выдать сигнал SIGHUP демону sshd и теперь можно удаленно настраивать сервисы
в НОВОЙ системе из-под пользователя 'toor', которому я обычно определяю в
качестве 'shell==bash'.
Примечание: некоторые опции коммандной строки в OpenSSH отличаются от тех
что в SSH-1.2.x, например:
было SSH:
ssh -f -q -o BatchMode=yes unix1.jinr.ru xterm -sb -title "Unix1" -fn 8x13 -geometry 80x40
стало:
ssh -f -q -o "BatchMode yes" unix1.jinr.ru xterm -sb -title "Unix1" -fn 8x13 -geometry 80x40
ну и масса незначительных мелочей...
пример sshd_config:
------------------------------- /etc/ssh/sshd_config -------------------------
# This is ssh server systemwide configuration file.
#
# $FreeBSD: src/crypto/openssh/sshd_config,v 1.4.4.1 2000/06/09 07:32:32 kris Ex
p $
# по каким портам отвечать SSHD демону
Port 22
Port 2022
Protocol 2,1
ListenAddress 0.0.0.0
#ListenAddress ::
HostKey /etc/ssh/ssh_host_key
HostDsaKey /etc/ssh/ssh_host_dsa_key
ServerKeyBits 768
LoginGraceTime 60
KeyRegenerationInterval 3600
#--lavr default RootLogin=no
PermitRootLogin yes
# Rate-limit sshd connections to 5 connections per 10 seconds
ConnectionsPerPeriod 5/10
# Don't read ~/.rhosts and ~/.shosts files
#--lavr ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- default "yes", for rsh-compat "no"
#IgnoreRhosts yes
IgnoreRhosts yes
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes
StrictModes yes
#--lavr default NO x11forward
#X11Forwarding no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd yes
KeepAlive yes
# Logging
SyslogFacility AUTH
LogLevel INFO
#obsoletes QuietMode and FascistLogging
#RhostsAuthentication no
#^^^^^^^^^^^^^^^^^^^^^^^- for rsh-compat "yes"
#RhostsAuthentication no
RhostsAuthentication no
#
# For this to work you will also need host keys in /etc/ssh_known_hosts
#--lavr: I have /etc/ssh_known_hosts
RhostsRSAAuthentication yes
#
RSAAuthentication yes
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
PermitEmptyPasswords no
# Uncomment to disable s/key passwords
#SkeyAuthentication no
# To change Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#AFSTokenPassing no
#KerberosTicketCleanup no
# Kerberos TGT Passing does only work with the AFS kaserver
#KerberosTgtPassing yes
CheckMail no
#CheckMail yes
UseLogin no
------------------------------------------------------------------------------
Пользовательский $HOME/.ssh/config
------------------------------ $HOME/.ssh/config -----------------------------
# This is ssh client systemwide configuration file. This file provides
# defaults for users, and the values can be changed in per-user configuration
# files or on the command line.
#
# $FreeBSD: src/crypto/openssh/ssh_config,v 1.2 2000/02/24 15:29:41 markm Exp $
# Configuration data is parsed as follows:
# 1. command line options
# 2. user-specific file
# 3. system-wide file
# Any configuration value is only changed the first time it is set.
# Thus, host-specific definitions should be at the beginning of the
# configuration file, and defaults at the end.
# Site-wide defaults for various options
Host alone.dubna.ru
# BatchMode yes
CheckHostIP yes
PasswordAuthentication yes
# на каком порту висит SSHD
Port XXXX
Host spleen.demos.su
# BatchMode yes
CheckHostIP yes
PasswordAuthentication yes
# на каком порту висит SSHD
Port XXXX
Host *
ForwardAgent yes
ForwardX11 yes
RhostsAuthentication yes
RhostsRSAAuthentication yes
RSAAuthentication yes
PasswordAuthentication yes
FallBackToRsh no
UseRsh no
# BatchMode yes
CheckHostIP yes
StrictHostKeyChecking no
IdentityFile ~/.ssh/identity
Port 22
Cipher blowfish
EscapeChar ~
------------------------------------------------------------------------------
лично мне удобно на всех своих серверах создать в $HOME/.ssh
-rw------- 1 lavr dug 681 24 июл 13:03 authorized_keys
в который внести строку с публичным ключом из моего identity.pub на моей
рабочей машине, чтобы затем запустив X11 через SSH заходить на удаленные
сервера/машины через RSA-авторизацию, очень удобно, впрочем как и пускать
удаленные x-apps без установки удаленной переменной DISPLAY.
Последнее: проверка наличия всех имеющихся и недостающих устройств в
'/dev':
`cd /dev` | на другом виртуальном-экране `less /sys/i386/conf/MYKERNEL` |
на третьем вирт-экране `man интересующее_устройство` |
на четвертом `less MAKEDEV` - чтобы не ошибиться что искать в '/dev' и
как создаются _недостающие_устройства_ и их related в MAKEDEV!!!
Что иногда следует избыточно создать в '/dev':
cd /dev
MAKEDEV - ad0 ad1 ad2 ad3 ... - default=0,...,3 остальное+slices руками
MAKEDEV ptyN - псевдо-терминалы, default==32
MAKEDEV vtyN - виртуальные терминалы через syscons, defaul==12
MAKEDEV iic - создание устройств для I2C
MAKEDEV smb - создание устройств для SMBus шины
MAKEDEV snd - создание устройст для SoundBlaster
Примечание: для того чтобы выполнить `cd /dev/; ./MAKEDEV all` - много
ума не надо, НУЖНО лишь хорошо подумать КОГДА и ЗАЧЕМ нужно сделать
изменения или добавления необходимых устройств, например физическое подключение
нового устройства в систему, ядро и его пересборка - могут потребовать
отработки MAKEDEV, или изменения драйверов - добавление и пересборка ядра c
дальнейшим их созданием.
7. Теперь быстро настраиваем ENVIRONMENT для sh/csh[tcsh/bash - ВСЕ,
после выполнения этого пункта - приступаем к настройке X11R6.
Настройка СРЕДЫ и локализация.
------------------------------
1. При установке 4-Release/Stable необходимо:
- выбрать в качестве клавиатурного мапирования: 'keymap="ru.koi8-r"'
- выбрать фонты, тут два варианта: koi8r или cp866, следует заметить
что фонты "cp866" гораздо удачнее, по крайней мере, для моего зрения:
1) если выбираем фонты KOI8-R - отпадает необходимость screen-maping, те
более ничего задавать для Руссификации НЕ НАДО.
2) если выбираем фонты CP866, то необходимо задать screen-mapping:
scrnmap="koi8-r2cp866"
В этом варианте, при работе в текстовом режиме на Console, мы можем
переключаться используя "Caps Lock" в кодировку KOI8-R и удерживая
"Left Alt" набирать текст в кодировке CP866[Russian Alternative/MSDOS]
Если же мы не выбрали клавиатурный мапинг и фонты при установке системы
- Install, то ничто не мешает нам сделать эти настройки после:
Для этого вносим поправки или изменения в файл /etc/rc.conf - для ознакомления
со остальными всевозможными параметрами настройки, см. /etc/defaults/rc.conf
-------------------------- врезка в /etc/rc.conf --------------------------
keymap="ru.koi8-r"
keychange="61 ^[[K"
scrnmap="koi8-r2cp866"
font8x16="cp866b-8x16"
font8x14="cp866-8x14"
font8x8="cp866-8x8"
---------------------------- окончание врезки -----------------------------
- однако этого будет недостаточно для моментальной работы с русской раскладкой
для того чтобы консоль с виртуальными-терминалами имели нормальный вид,
необходимо внести соответствующие изменения в файл '/etc/ttys':
---------------------------- врезка в /etc/ttys ---------------------------
# when going to single-user mode.
console none unknown off secure
#
ttyv0 "/usr/libexec/getty Pc" cons25r on secure
^^^^^^^- что соответствует
определению терминала из /etc/termcap - KOI8-R FreeBSD console support
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" cons25r on secure
ttyv2 "/usr/libexec/getty Pc" cons25r on secure
ttyv3 "/usr/libexec/getty Pc" cons25r on secure
ttyv4 "/usr/libexec/getty Pc" cons25r on secure
ttyv5 "/usr/libexec/getty Pc" cons25r on secure
ttyv6 "/usr/libexec/getty Pc" cons25r on secure
ttyv7 "/usr/libexec/getty Pc" cons25r on secure
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
---------------------------- окончание врезки -----------------------------
После внесения изменений в '/etc/ttys' - необходимо послать сигнал SUGHUP
номеру процесса соответствующему демону 'init', например:
kill -HUP `ps -ax | grep init | grep -v grep | awk '{ print $1 }'`
или
init q
Все - теперь в самой СИСТЕМЕ, все готово для работы с KOI8-R, НО осталось
настроить "окружающую среду" - ENVIRONMENT, приведу примеры для наиболее
популлярных в нашем "местечке" SHELL'ов: bash/tcsh:
Bash:
-----
создать в домашнем каталоге файл '.inputrc':
-------------------------- $HOME/.inputrc ---------------------------------
set convert-meta off
set input-meta on
set output-meta on
----------------------------- end of cut ----------------------------------
------------------------ $HOME/.bashrc[.bash_profile ----------------------
export CHARSET=KOI8-R
export MM_CHARSET=KOI8-R
export LANG=ru_RU.KOI8-R
---------------------------------------------------------------------------
Tcsh[Csh]
------------------------------ $HOME/.login -------------------------------
setenv CHARSET KOI8-R
setenv MM_CHARSET KOI8-R
setenv LANG ru_RU.KOI8-R
---------------------------------------------------------------------------
Все - теперь можем реально пользоваться трудами А.Чернова - ache, за что
ему огромная благодарность от сообщества.
Примечание: Следуя рекомендации FreeBSD-HandBook, в ядро системы KERNEL,
советуют определить-добавить строку:
------------------------------ врезка в KERNEL ----------------------------
options SC_MOUSE_CHAR=0x03
---------------------------------------------------------------------------
и пересобрать ядро.
2. Для облегчения жизни в системном администрировании, удобно использовать
некоторые настройки среды в системном файле '/etc/login.conf' - определив
и настроив соответствующий login-class, например 'russian':
russian:Russian Users Accounts:\
:charset=KOI8-R:\
:lang=ru_RU.KOI8-R:\
:tc=default:
Примечание: вышеуказанный пример, уже имеется в /etc/login.conf, НО
класс 'default' - практически не имеет ограничений, посмотри примеры
в том же файле и создайте несколько _планируемых_ классов пользователей
по задачам-ресурсам-секьюрити и тд и тп.
3. По завершении настройки среды, создайте конфигурацию для зхаведения
новых пользователей и программу для генерации _случайных_ паролей:
- для этого, прежде всего, просмотрите файл /etc/shells - в нем должны
быть перечислены ВСЕ разрешенные командные-интерпретаторы - shell, для
пользователей
- просмотрите и при необходимости внесите изменения в файл /etc/group,
те создайте нужные вам группы отредактировав этот файл и внеся продуманные
вами группы.
- можете создать файл /etc/adduser.message - для отсылки необходимого
сообщения НОВОМУ - заводимому пользователю.
- можете создать один или несколько фалов /etc/adduser.conf - для дальнейшего
написания своего автомата или front-end, для заведения пользователей различного
назначения, например:
/etc/adduser.conf - для интерактивных пользователей, а
/usr/local/etc/adduser.conf - для PPP and etc...
болванку /etc/adduser.conf можно создать либо вручную, либо интерактивно:
`adduser -config_create` - по этой команде, получите болванки-заготовки, файлов
/etc/adduser.message ,/etc/adduser.conf - здесь будет определен лог-файл
регистрации новых пользователей, директория с болванками-заготовками:
dot.shells - где находятся файлы с настройками СРЕДЫ пользователя и прочая
административная политика.
- лично я использую в болванках /path/skel - dot.shells/logon вызовы собственно-
ручно настроенных файлов[например .profile/.bashrc/.chsrc/.login/.logout
в заведомо-стандартно размещенных местах: /etc или /usr/local/etc - последнее
в случае использования nis/nis+ [diskless and etc]
Сделано это специально с УЧЕТОМ собственных изменений параметров - как
минимум ПУТЕЙ - откуда и в какой ПОСЛЕДОВАТЕЛЬНОСТИ 'login' будет отрабатывать
login-shells!!!
(Не забудьте пересобрать НУЖНЫЕ вам SHELLs с ВАШИМИ правками)
4. Среда готова, МОЖНО быстро настроить CVSUP для копирования НЕОБХОДИМОГО
минимума исходников - это недолго:
- для запуска и настройки cvsup, необходимо ЛИБО собрать cvsupit из
портов (это может оказаться долгим занятием, поскольку cvsupit - всего
лишь менюшный front-end к cvsup-bin - который и надо собственно собрать!),
ЛИБО установить cvsupit из packages, он потянет за собой cvs-bin и запустит
меню настройки CVSUP-IT.
- в настройках CVSup-it укажите все что вам необходимо, НО лучше не запускайте
а отложите на потом, наверняка ВЫ что-либо измените...
В двух словах об cvsup:
эта утилита - синхронизации дерева текущей системы, или той части дерева,
которую вы укажите.
По умолчанию будут созданы два настречных файла для sources системы и
отдельно для crypto, естественно после установки и настройки cvsupit:
[mp3]~ > ls -la /etc/cvs*
-rw-r--r-- 1 root wheel 340 13 июн 21:58 /etc/cvsupfile
-rw-r--r-- 1 root wheel 184 13 июн 21:58 /etc/cvsupfile.intl
[mp3]~ >
И предложено выполнить соответствующие изменения в /etc/periodic/daily
для запуска апгрейда через cron.
Важные моменты cvsup:
- директива 'host=задает fqdn-имя машины откуда будем брать sources'
для RUSSIAN удобно:
host=cvsup.ru.FreeBSD.org
host=cvsup2.ru.FreeBSD.org
host=cvsup3.ru.FreeBSD.org
- директива 'base=base' - задает базовую директорию для записи статистики
отработки собственно cvsup, default=/usr/local/etc/cvsup - сама директория
создается вручную, cvsup НЕ СОЗДАЕТ ее автоматически. Мне удобно:
base=/var/log/cvsup или base=/var/cvsup
- директория 'prefix=prefix' - задается базовая директория для размещения
собственно выкачиваемых sources, если сразу натягивать на свою системуб то
prefix=/usr
Минимальный пускач cvsup: `/usr/local/bin/cvsup -g -L 2 /etc/cvsupfile`
Опять же, решайте сами где держать файл 'cvsupfile', что выбрать в
качестве базовой директории 'base', где будет создаваться lock-file запуска
`cvsup` и куда будут записываться логи - `base=base/sup`
Не забывайте что после запуска cvsup проверяет наличие lock'а и при его
наличии МОЛЧА завершает работу.
Я бы изобразил для собственного удобства, нечто следующее:
--------------------------- /etc/cvsupfile --------------------------
*default host=cvsup.ru.FreeBSD.org
#--lavr it's comfortable for COMMON log-file or
#*default base=/var/log/cvsup - but don't forget about subdir `sup` inside
*default base=/var/log
*default prefix=/usr
#--lavr line for RELENG_4
*default release=cvs tag=RELENG_4
*default delete use-rel-suffix
# If your network link is a T1 or faster, comment out the following line.
*default compress
## Main Source Tree.
#
# The easiest way to get the main source tree is to use the "src-all"
# mega-collection. It includes all of the individual "src-*" collections,
# except the export-restricted collections.
src-all
## Export-restricted collections.
#
# Only people in the USA and Canada may fetch these collections. If
# you are not in the USA or Canada, please use the collections in the
# "secure-stable-supfile" instead.
#
# The easiest way to get the export-restricted code is to use the
# "cvs-crypto" mega-collection.
cvs-crypto
---------------------------- end of cvsupfile -------------------------
А запуск cvsup, как:
/usr/local/bin/cvsup -g -L 1 -z -l /var/spool/lock/cvsup /etc/cvsupfile
-g - не использовать графмческую оболочку при запуске
-L n - уровень статистической информации,
где n=0;1;2 , 0 - нуль :)
1 - default
2 - много дряни
-z - разрешить compression
-l /path/filename - место расположения lock-файла
/path/filename - собственно конфигурационный cvsupfile.
Кроме размещения верхней строки в /etc/periodic/daily - я бы навернул
на это хозяйство небольшой скрипт для СОБСТВЕННОГО удобства.
Примечание: просто маленькое отступление по /etc/periodic/...
[mp3]~ > ls -la /etc/periodic/
total 6
drwxr-xr-x 5 root wheel 512 5 июн 22:33 .
drwxr-xr-x 15 root wheel 2048 15 июн 20:18 ..
drwxr-xr-x 2 root wheel 1024 5 июн 22:33 daily
drwxr-xr-x 2 root wheel 512 5 июн 22:33 monthly
drwxr-xr-x 2 root wheel 512 5 июн 22:33 weekly
[mp3]~ >
Утилита /usr/sbin/periodic - используется для запуска через cron - содержимого
верхних директорий.
Важное: daily/monthly/weekly - директории должны содержать исполняемые файлы,
в ином случае 'periodic' не запустит _нужную_ процедуру из указанных директорий
- и это удобно, чтобы держать свою свалку, что нужно execute-bit, что не нужно
non-execute-bit.
Midnight Commander - взятый из package, угребище - собран с ncurses,
раз уж разговор идет о BSD - termcap + slang, или slang-with_own_terminfo
- rulezz.
итак:
[mp3]~ > cd /usr/ports/misc/mc/
[mp3]/usr/ports/misc/mc > export WITH_SLANG=yes
[mp3]/usr/ports/misc/mc > make
[mp3]/usr/ports/misc/mc > make install
Имеем: установленную библиотеку Slang+terminfo, mc+slang+subshell - все для
собственного удобства.
Комментарий: хоть новый Midnight Commander и дрянь, но вполне рабочий,
для трудоспособности необходимо лишь собрать без gettext изменив
в /usr/ports/misc/mc/Makefile строку относящуюся к поддержке со SLANG:
.if defined(WITH_SLANG)
CONFIGURE_ARGS= --with-slang --without-gnome --with-edit --with-ncurses --without-gettext
после чего нормальная работа CTRL-O (в xterm) и mcedit обеспечена.
Примечание: новый MIDC - просто жутчайшее гОвно, нужно попробовать:
- ftp://esp-team.scene.hu/esp-team/linux/ - на базе 4.1.35-10 с кучей
различных внесенных поправок
- ftp://ftp.cocos.ru/pub/unix/Midnight.Commander - 4.1.27 midc потрогать
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~- верхние
две реализации актуальны для старых версий FreeBSD, начиная с 4.x необходимы
дополнительные правки(что видимо себе дороже, горбатого - могила исправит).
Остается лишь вариант использования MIDC из портов, не забывайте что
название установленного binary файла - midc (/usr/local/bin/midc), чтобы
не мучаться, можно поправить Makefile, добавив туда создание линка после
установки и удаление его при deinstall - скрипт pkg-deinstall:
----------------------------- Makefile -----------------------------------
...
...
post-install:
@${LN} -s ${PREFIX}/bin/midc ${PREFIX}/bin/mc
.include
--------------------------- end of Makefile ------------------------------
---------------------------- pkg-deinstall -------------------------------
#!/bin/sh
/bin/rm -f /usr/local/bin/mc
--------------------------- end of deinstall -----------------------------
или использовать alias в среде для mc, примеры которых, кстати, находятся
в /usr/local/share/mc
- ftp://skuns.redcenter.ru/pub/mc - правленый под Solaris, посмотреть
5. Настраиваем X11R6.
У вас есть возможность выбрать один из трех вариантов:
- XF86Setup , графическая конфигурационная утилита для XFree86
(требует наличия установленного VGA Server'а при установке)
- xf86config , конфигурационная утилита для XFree86 в текстовом режиме
- /stand/sysinstall - включает ВСЕ вышеперечисленное в одной упаковке на выбор
с добавлением конфигурации Desktop (предварительно должен быть установлен/ы
интересующие вас window-managers - не забудьте)
- если был произведен upgrade или установка на тоже железо которое
использовалось и в предыдущих версия, можно использовать реконфигуратор
reconfig < Xconfig > XF86Config
Для более тонкой настройки Видео-режимов можно воспользоваться утилитой:
xvidtune
Кроме того не забудьте установить из портов russian для X11R6 необходимые
пакеты и фонты, перезапустите XServer и проверьте на предмет Russian.
Теперь чуть подробнее об XF86Setup
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- запускаем XF86Setup с командной строки или из /stand/sysinstall
Имеем:
------------------------------------------------------------
Mouse | Keyboard | Card | Monitor | Modeselection | Other
------------------------------------------------------------
Начинаем настраивать по-порядку:
Mouse: Нам предлагаются поддерживаемые протоколы: 'Microsoft', 'MouseMan'
и тд и тп, выбирайте тот в соответствии с которым работает ваша мышь.
Ньюансы:
- используйте '/dev/sysmouse' - в случае если у вас загружен демон
для поддержки работы мыши в текстовом режиме.
- протокол 'Logitech' работает со старыми моделями мышек Logitech
новые модели обычно поддерживают протоколы 'Microsoft' и/или 'MouseMan'
- если после запуска XF86Setup и перехода в режим VGA, ваша мышь не работает,
используйте в качестве альтернативной работы с меню и настройки мыши -
спец.клавиши:
Клавиши Выполняемая Функция
-------------------------------------------
a - применить указанные изменения
b - выбрать следующую скорость работы мыши baud-rate
(при проблемах во время настроек, baud-rate "1200"
должна работать железно)
c - назначить режим эмуляции ChordMiddle
d - выбрать режим сброса - ClearDTR
e - назначить режим емуляции 3-х кнопочной мыши
l - выбрать следующее разрешение [high/mediaum/low]
n - выбрать имя устройства [/dev/mouse]
p - выбрать поддерживаемый вашей мышью протокол
[если ваша мышь не работает, то данная опция в сочетании
с выбором-установкой скорости в 1200, должны ее оживить]
r - выбрать режим сброса - ClearRTS
s - уменьшить скорость
t - уменьшить время timeout для режима эмуляции 3'х кнопочной
мыши
3[4[5]] - соответственно в 3[4[5]]
Tab/Shift-Tab - позволяют перемещаться по элементам меню.
Keyboard: Достаточно выбрать модель клавиатуры - соответствующую вашей
и Layout, можете оставить English, остальные изменения сделаете
уже в конфигурационном файле.
Card: если у вас AGP карта, то скорее всего достаточно будет выбрать SVGA, в
ином случае ищите вашу модель или GENRIC.
После выбора модели из списка, можете войти в 'Detail setup' и указать
размер памяти, Chipset/Ramdac/ClockChip - если исследовали свою карту и
определили ВСЕ составляющие компоненты, ЛИБО оставьте все на апробацию:
'Probe'
Monitor: смотрите характиристики монитора и указываете частоты развертки,
например - Horizontal: 30-96 Vertical: 50-160
(не забудьте, это всего лишь пример, указывайте свои)
Modeselection: выбираете те в которых вы будете работать, например:
640x480 + 800x600 ...
режим по умолчанию, один из тех который вас устраивает и поддерживает XFree86
для вашей карты, см. README: 8bpp/16bpp/24bpp или 32bpp [один из них]
Other: тут обычно default вполне устраивает.
ВСЕ - Done, далее запуск сервера и xvidtune для корректировки режимов.
Запускаем `xvidtune`:
С настройками режимов все просто: переходим в "AUTO", теперь используя
режимы: "Left"/"Right" - влево-вправо, "Width"/"Narrow" - шире-уже и
"Up"/"Down" - вверх-вниз, и вытянуть-сжать - начинаем выправлять
рабочее окно, не забудьте "Save" - сохранить нужные настройки в каждом режиме.
"quit" - выходим и наши новые параметры сохранены в '/etc/XF86Config'
/etc/XF86Config - это конфигурация XFree86 для нашей машины, теперь нам лишь
осталось подправить ее на предмет "Cyrillic", но сперва советую установить
Примечание:
- XFree86 3.3.x, xvidtune сохраняет параметры разверток Modes в файле
конфигурации
- XFree86 4.x.x, xvidtune НЕ сохраняет параметры разверток, вы можете их
записать и добавить самостоятельно в файл конфигурации
Многих смущает размер рабочей области Desktop'а в режимах 640x480, 800x600 и
тд и тп, используйете Virtual опцию в xf86config или других конфигураторах
для нужных вам режимов, не забудьте что для некоторых карт этот режим не
поддерживается: `man XF86Config` and see Virtual, ViewPort.
Если при установке XFree86 вы выбираете сервер для конкретной карты, те
отличный от Generic, то вы автоматически используете некоторый известный набор
видео-режимов, изменить который можно вручную в файле конфигурации,
предварительно определив нужные параметры с помощью xvidtune или других утилит.
Кроме этого вы можете изменять порядок следования видеорежимов, например,
XFree86 3.3.x:
----------------------------- XF86Config -----------------------------------
...
Section "Monitor"
Identifier "Primary Monitor"
VendorName "Samsung"
ModelName "SyncMaster 700ift"
HorizSync 30-96
VertRefresh 50-160
#--lavr, below my modes for Samsun-700IFT and 3400/TNT/AGP/16MB
Modeline "1280x1024" 157.50 1280 1372 1532 1692 1024 1025 1028 1072 +hsync +vsync
Modeline "1152x864" 137.65 1152 1248 1376 1540 864 866 885 902 -hsync -vsync
Modeline "1024x768" 115.50 1024 1116 1308 1364 768 771 781 802 -hsync -vsync
Modeline "800x600" 69.65 800 868 932 1060 600 604 610 640 -hsync -vsync
EndSection
...
Section "Screen"
Driver "Accel"
Device "Primary Card"
Monitor "Primary Monitor"
#--lavr, use bpp32 as default when startx
DefaultColorDepth 32
SubSection "Display"
Depth 8
Modes "1280x1024" "1152x864" "1024x768" "800x600"
EndSubSection
SubSection "Display"
Depth 15
Modes "1280x1024" "1152x864" "1024x768" "800x600"
EndSubSection
SubSection "Display"
Depth 16
Modes "1280x1024" "1152x864" "1024x768" "800x600"
EndSubSection
SubSection "Display"
Depth 24
Modes "1280x1024" "1152x864" "1024x768" "800x600"
EndSubSection
SubSection "Display"
Depth 32
Modes "1280x1024" "1152x864" "1024x768" "800x600"
EndSubSection
EndSection
--------------------------- end of XF86Config ------------------------------
XFree86 4.x.x:
----------------------------- XF86Config -----------------------------------
...
Section "Device"
Identifier "Riva TNT2/Ultra Vanta"
Driver "nv"
VideoRam 16384
Option "ShadowFB" "on"
#VideoRam 8092
# Insert Clocks lines here if appropriate
EndSection
...
Section "Screen"
Identifier "Screen 1"
Device "Riva TNT2/Ultra Vanta"
Monitor "CTX"
DefaultDepth 16
Subsection "Display"
Depth 8
# Modes "640x480" "800x600" "1024x768" "1280x1024"
Modes "1280x1024" "1152x864" "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 16
# Modes "640x480" "800x600" "1024x768" "1280x1024"
Modes "1280x1024" "1152x864" "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 24
# Modes "640x480" "800x600" "1024x768" "1280x1024"
Modes "1280x1024" "1152x864" "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
EndSection
...
--------------------------- end of XF86Config ------------------------------
При конфигурации X11, были выбраны режимы:
- 8bpp
- 15bpp (XFree86 3.3.x)
- 16bpp
- 24bpp
- 32bpp (XFree86 3.3.x)
В первом установлено использовать при запуске глубину цвета bpp32, во-втором
- bpp16.
По-умолчанию (запуск startx без параметров) - XServer будет запускатьс с
глубиной цвета определенной параметром DefaultColorDepth, а порядок
следования разрешений в параметрах Modes, для каждой глубины цвета:
Modes "1280x1024" "1152x864" "1024x768" "800x600"
может быть переопределен:
Modes "1152x864" "800x600" "1024x768" "1280x1024"
переключать разрешения в загруженных X11 можно комбинацией клавиш:
Ctrl-Alt-"+"["-"] (и гулять в разрешениях по кольцу):
Ctrl-Alt-"+" - перешли в другой режим, Ctrl-Alt-"-" - вернулись из него в
предыдущий и тд.
Запускать X11 с разной глубиной цвета, можно:
- XFree86 3.3.x: startx -bpp 16 или startx -bpp 24
- XFree86 4.x.x: startx -depth 16 или startx -depth 24
Документацию по поддерживаемым видео картам, чипсетам и остальные тонкости,
можно найти в директории /usr/X11R6/lib/X11/doc, если вы установили X11 вместе
с документацией.
Оконные менеджеры, я попробовал все из:
- kde
- afterstep
- gnome+enlightenment
- WindowMaker
- fvwm/fvwm95
Первоначально, советую установить их из "packages" и после разборок полетов
с каждым из них или после первого запуска, остановиться на одном-двух, которые
прикрутить под себя - желательно собрать из портов со своими личными
предпочтениями.
Прежде чем изучать window-managers их естесственно нужно оценить - посмотреть,
это делается просто, X-Window запускается всего лишь двумя способами:
- через xinit, для этого необходимо с командной строки выполнить:
[mp3]~ > startx
- через xdm [если вы занимаетесь первичными настройками, отложите запуск X11
этим методом до окончательной настройки Window-Managers]
Итак, команда startx - это обычный пускач, скрипт и вы можете его посмотреть
- изучить, поправить под собственные нужды, если вы были внимательны, то
заметели, что там идет вызов 'xinit' с аргументами - в качестве которых
выступает либо пользовательский файл '.xinitrc' из домашней директории, либо
системный.
Итак, для того чтобы в темпе вальса - "на первый взгляд" оценить все
установленные оконные менеджеры, достаточно создать в домашней директории
файл '.xinitrc', напримет:
----------------------------- .xinitrc -------------------------------
#--my comments
#
#--lavr add's one xterm, because some problems may exist with WM
xterm &
exec fvwm
#exec afterstep
#exec wmaker
#exec gnome-wm
#exec kde
-----------------------------------------------------------------------
Теперь мы раскомментариваем нужный менеджер и выполняем `startx` - наслаждаемся
Заметим что для запуска wmaker'а нужно предварительно запустить процедуру
инициализации - `wmaker.inst`.
По-скольку я привык к набору fvwm1.24/fvwm2/fvwm95 - я их установлю и
настрою под свои нужды из портов, а вот из остальных, по принципу "первого
взгляда" - мне сходу понравились: wmaker/afterstep/kde.
Изменения в /etc/XF86Config - для локализации системы на предмет поддержки
KOI8-R, должно соответствовать:
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/misc"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/local"
FontPath "/usr/X11R6/lib/X11/fonts/misc:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
EndSection
Порядок расположения 75dpi и 100dpi можете изменить если используете
высокое разрешение. Сами фонты, вам необходимо установить из портов или
пакетов, либо вы должны были выбрать их при инсталляции:
[mp3]~ > ls -la /usr/ports/russian/
total 21
drwxr-xr-x 17 root wheel 512 5 июн 22:44 .
drwxr-xr-x 51 root wheel 1024 5 июн 22:45 ..
-rw-r--r-- 1 root wheel 438 29 янв 08:41 Makefile
-rw-r--r-- 1 root wheel 100 11 апр 10:59 Makefile.inc
-rw-r--r-- 1 root wheel 1828 28 май 12:29 README.html
drwxr-xr-x 4 root wheel 512 5 июн 22:44 X.language
drwxr-xr-x 5 root wheel 512 5 июн 22:44 apache13
drwxr-xr-x 5 root wheel 512 5 июн 22:44 cyrproxy
drwxr-xr-x 4 root wheel 512 5 июн 22:44 d1489
drwxr-xr-x 3 root wheel 512 5 июн 22:44 elm.language
drwxr-xr-x 5 root wheel 512 5 июн 22:44 gd
drwxr-xr-x 4 root wheel 512 5 июн 22:44 koi8r-ps
drwxr-xr-x 4 root wheel 512 5 июн 22:44 netscape3.language
drwxr-xr-x 4 root wheel 512 5 июн 22:44 pgp.language
drwxr-xr-x 4 root wheel 512 5 июн 22:44 pine.language
drwxr-xr-x 2 root wheel 512 5 июн 22:44 pkg
drwxr-xr-x 5 root wheel 512 5 июн 22:44 rispell
drwxr-xr-x 5 root wheel 512 5 июн 22:44 wmcyrx
drwxr-xr-x 5 root wheel 512 5 июн 22:44 xcode
drwxr-xr-x 4 root wheel 512 5 июн 22:44 xruskb
[mp3]~ >
Это содержимое портов, как видно - потребуется практически все:
X.language - фонты для X11 (если не установлены при инсталляции)
xruskb - переключатель kb для xfree86
d1489 - конвертер dos <-> koi8
elm.language - добавка установок к Elm MUA
pine.language - тоже к Pine
pgp - русские сообщения к pgp
rispell - спел-чекер
wmcyrx - wmaker по-русски
Теперь проверяем как у нас описана клавиатура в разделе Keyboard/XF86Config,
должно соответствовать:
Примечание: если у вас в сети масса старых XServers и вы планируете
пускать удаленные x-овые приложения - остановитесь на старом методе -
Вариант 2 с использованием Xmodmap, иначе в удаленных xterm'ах русские
буквы вам не ввести, придется доставлять еще софто для перключения и держать
этот switcher на экране или панели.
Вариант 1. Использование достижений Xkb (вы должны осознавать что при
работе с клиентами от старых версий X11 у вас не будет работать
keyboard-switcher на основе Xkb)
Section "Keyboard"
Protocol "Standard"
XkbRules "xfree86"
XkbModel "pc105"
XkbLayout "ru"
XkbOptions "grp:caps_toggle"
# XkbLayout "us"
EndSection
XkbOptions "grp:caps_toggle" - переключатель "Caps/Lock"
Примечание: чтобы этот метод работал всегда - установите дополнительный
переключатель xrus. (Сам по себе метод хорош, но при наличии
в сети большого количества старых X11, получаем "масло-маслянное": Xkb+xrus)
Вариант 2. Использование Xmodmap - старый, проверенный способ, работает
как грабли.
Все что нужно сделать - вставить в секцию "Keyboard" опцию XkbDisable,
и настроить системный xmodmap:
пример:
---------------------------- /etc/XF86Config ----------------------------
...
Section "Keyboard"
Protocol "Standard"
AutoRepeat 500 30
LeftAlt Meta
RightAlt Meta
ScrollLock Compose
RightCtl Control
XkbDisable
^^^^^^^^^^- при наличии данной опции, все остальные Xkb* игнорируются
и необходимо использовать Xmodmap или $HOME/.Xmodmap
XkbRules "xfree86"
XkbModel "pc101"
XkbLayout "ru"
XkbOptions "grp:ctrl_shift_toggle"
EndSection
...
-------------------------------------------------------------------------
----------------------------- Xmodmap -----------------------------------
! Cyrillic keyboard mapping table for XFree86-3.1.2 server of X11R6.
! Copyright (C) 1995 Cronyx Ltd., info@cronyx.ru
! Changes Copyright (C) 1995-1996 by Andrey A. Chernov, Moscow, Russia.
!
! This product is free Software, you can use it free of charge
! without restriction (e.g. use, copy, modify, merge, publish,
! distribute, sublicense, and/or sell), provided that
! the above copyright notice and this permission notice is retained.
!
! Code Table: KOI8-R
! Switcher: CapsLock
!
! WARNING: Control keys DON'T WORK when Russian mode is active due
! to an X11 bug (control handling when modeswitch is on),
! if you know, how to fix it, I am all ears.
!
!
clear shift
clear control
clear mod1
clear mod2
clear mod3
clear mod4
! Key Base Shift Caps ShiftCaps
!------------------------------------------------------------------------
keycode 9 = Escape NoSymbol Escape
keycode 10 = 1 exclam exclam 1
keycode 11 = 2 at quotedbl 2
keycode 12 = 3 numbersign grave 3
keycode 13 = 4 dollar asterisk 4
keycode 14 = 5 percent colon 5
keycode 15 = 6 asciicircum comma 6
keycode 16 = 7 ampersand period 7
keycode 17 = 8 asterisk semicolon 8
keycode 18 = 9 parenleft parenleft 9
keycode 19 = 0 parenright parenright 0
keycode 20 = minus underscore minus underscore
keycode 21 = equal plus equal plus
keycode 22 = BackSpace NoSymbol BackSpace
keycode 23 = Tab NoSymbol Tab
keycode 24 = q Q 0xca 0xea
keycode 25 = w W 0xc3 0xe3
keycode 26 = e E 0xd5 0xf5
keycode 27 = r R 0xcb 0xeb
keycode 28 = t T 0xc5 0xe5
keycode 29 = y Y 0xce 0xee
keycode 30 = u U 0xc7 0xe7
keycode 31 = i I 0xdb 0xfb
keycode 32 = o O 0xdd 0xfd
keycode 33 = p P 0xda 0xfa
keycode 34 = bracketleft braceleft 0xc8 0xe8
keycode 35 = bracketright braceright 0xdf 0xff
keycode 36 = Return NoSymbol Return
keycode 38 = a A 0xc6 0xe6
keycode 39 = s S 0xd9 0xf9
keycode 40 = d D 0xd7 0xf7
keycode 41 = f F 0xc1 0xe1
keycode 42 = g G 0xd0 0xf0
keycode 43 = h H 0xd2 0xf2
keycode 44 = j J 0xcf 0xef
keycode 45 = k K 0xcc 0xec
keycode 46 = l L 0xc4 0xe4
keycode 47 = semicolon colon 0xd6 0xf6
keycode 48 = apostrophe quotedbl 0xdc 0xfc
keycode 49 = grave asciitilde 0xa3 0xb3
keycode 51 = backslash bar backslash bar
keycode 52 = z Z 0xd1 0xf1
keycode 53 = x X 0xde 0xfe
keycode 54 = c C 0xd3 0xf3
keycode 55 = v V 0xcd 0xed
keycode 56 = b B 0xc9 0xe9
keycode 57 = n N 0xd4 0xf4
keycode 58 = m M 0xd8 0xf8
keycode 59 = comma less 0xc2 0xe2
keycode 60 = period greater 0xc0 0xe0
keycode 61 = slash question slash question
keycode 64 = Alt_L
keycode 65 = space NoSymbol space
keycode 66 = Caps_Lock XF86ModeLock
keycode 67 = F1
keycode 68 = F2
keycode 69 = F3
keycode 78 = Mode_switch
keycode 109 = Control_R
keycode 113 = Alt_R
add shift = Shift_L Shift_R
add control = Control_L Control_R
add mod1 = Alt_L Alt_R
add mod2 = Num_Lock
! Use CapsLock as rus/lat switch key.
clear lock
clear mod5
add mod5 = Caps_Lock Mode_switch
--------------------------------------------------------------------------
переключатель - "Caps/Lock".
имеете право изменить mapping по своему усмотрению, достаточное количество
примеров см. http://ftp.kiae.su/pub/cyrillic/x11
либо http://www.filesearch.ru/ и найти по запросу "xmodmap.ru"
строки из системного xinitrc или startx:
------------------------------ cut here ----------------------------------
...
usermodmap=$HOME/.Xmodmap
sysmodmap=/usr/X11R6/lib/X11/xinit/Xmodmap
...
if [ -f $sysmodmap ]; then
xmodmap $sysmodmap
fi
if [ -f $usermodmap ]; then
xmodmap $usermodmap
fi
...
---------------------------- end of cut ---------------------------------
[unix1]~ > ls -la /usr/X11R6/lib/X11/xinit/Xmodmap
-r--r--r-- 1 root wheel 4621 21 авг 13:06 /usr/X11R6/lib/X11/xinit/Xmodmap
[unix1]~ >
Моменты из FAQ, удалить-закомментарить XkbDisable, и если у вас клавиатура
a-la Windows и некоторые клавиши неверно мапируются, попробуйте задать флаг:
XkbVariant "winkeys"
Locale: изменили с ru_SU.KOI8-R на -> ru_RU.KOI8-R
------- ^------------------^--------> будьте внимательны,
а то после 2.2.x и xmodmap, нароете себе таких же проблем, как я на свою
безпамятную голову, описание ниже:
Важное: для тех кто исторически привык к LANG=ru_SU.KOI8-R - подчеркиваю:
"ru_RU", а не "ru_SU"!!! Будьте внимательны с настройкой среды, ибо
~~~~~~~ для X-locale просматривается `echo LC_CTYPE` и если она
!= ru_RU.KOI8-R - Xlib будет выдавать сообщение о том что установленное
локале не найдено и откатилось на "C" - соответственно у вас сразу возникнут
проблемы с вводом в `xterm` русских символов!!!
Изменения в локализации: старое ru_SU.KOI8-R заменили на ru_RU.KOI8-R !!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Это я к тому что поправьте свои "старые" настроечные файлы СРЕДЫ или
добавьте строку в файл '/usr/X11R6/lib/X11/locale/locale.dir' [можно alias]
------------------ /usr/X11R6/lib/X11/locale/locale.dir -------------
koi8-r/XLC_LOCALE ru_RU.KOI8-R
koi8-r/XLC_LOCALE ru_SU.KOI8-R
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- у меня плохая память, ну никак не
мог высечь - что за фигня!!! :(((
---------------------------------------------------------------------
После добавления строки с ru_SU.KOI8-R, или изменения везде и всюду:
"ru_SU.KOI8-R" -> на "ru_RU.KOI8-R" ВСЕ встанет на свои места!
^--------------------^
Примечание: выше в "Важное: для тех кто исторически привык к LANG=ru_SU.KOI8-R"
и далее по тексту, была опечатка, исправлено, если я кого запутал, ПРАВИЛЬНО:
использовать "ru_RU.KOI8-R", а не "ru_SU.KOI8-R"!!!
Я еще не пробовал XFree86 4.0 - как только попробую, добавлю описание
возможных проблем.
Нет никаких проблем, иногда лишь вылазят грабли с неверно собранным xterm
- видимо это историческая проблема. :(((
Если вы уверены что у вас правильно настроена локализация и переключение
на кириллицу в X'ах, попробуйте проверить переключение в rxvt или
реакцию xkeycaps после переключения в кириллицу.
Примечание: xkb - это конечно хорошо, но как только начнем пускать старые
xterm со старых систем и/или некоторые x11-apps - получим по _голове_
- вывод: xmodmap - надежнее.
Итог:
X11 Windows - можно запускать двумя способами:
- через запуск xdm, удобно тем что X11 всегда работает с Xauthority,
те с X'овой авторизацией, удобно для работы на X-Terminal'ах, и на мой
взгляд неудобно при возможности работы за локальным монитором.
- через xinit, достаточно выполнить команду `startx`
в обоих случаях пользователь может самостоятельно создать файлы:
.xinitrc - настройка environment, запуск x-clients, и того оконного менеджера
который дополнительно установлен в системе и отличен от default'ного.
.xserverrc - задать как будет запускаться Xserver:
- через Xwrapper, используя или нет X-авторизацию, и тд и тп.
Итак, ситемное расположение фалов xinitrc и xserverrc:
sysclientrc=/usr/X11R6/lib/X11/xinit/xinitrc
sysserverrc=/usr/X11R6/lib/X11/xinit/xserverrc
- если не указаны в файле /usr/X11R6/bin/startx - задайте сами:
-------------------------- startx ------------------------------------------
...
sysclientrc=/usr/X11R6/lib/X11/xinit/xinitrc
sysserverrc=/usr/X11R6/lib/X11/xinit/xserverrc
...
if [ -f $userclientrc ]; then
clientargs=$userclientrc
else if [ -f $sysclientrc ]; then
clientargs=$sysclientrc
fi
fi
...
if [ -f $userserverrc ]; then
serverargs=$userserverrc
else if [ -f $sysserverrc ]; then
serverargs=$sysserverrc
fi
fi
...
xinit $clientargs -- $serverargs
^^^^^^^^^^^----^^^^^^^^^^^- вот с ними и запускаем.
----------------------------------------------------------------------------
Пользовательское месторасположение .xinitrc и .xserverrc - как всегда в
HOME-DIR.
Примеры xinitrc[.xinitrc] и xserverrc[.xserverrc]
---------------------------- xinitrc ---------------------------------------
#!/bin/sh
# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap
# merge in defaults and keymaps
if [ -f $sysresources ]; then
xrdb -merge $sysresources
fi
if [ -f $sysmodmap ]; then
xmodmap $sysmodmap
fi
if [ -f $userresources ]; then
xrdb -merge $userresources
fi
if [ -f $usermodmap ]; then
xmodmap $usermodmap
fi
# start some nice programs
twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name login
-----------------------------------------------------------------------------
еще один xinitrc
----------------------------- xinitrc ---------------------------------------
#!/bin/sh
# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/usr/X11R6/lib/X11/xinit/Xresources
sysmodmap=/usr/X11R6/lib/X11/xinit/Xmodmap
# merge in defaults and keymaps
if [ -f $sysresources ]; then
xrdb -merge $sysresources
fi
if [ -f $sysmodmap ]; then
xmodmap $sysmodmap
fi
if [ -f $userresources ]; then
xrdb -merge $userresources
fi
if [ -f $usermodmap ]; then
xmodmap $usermodmap
fi
# setup environment to window manager and all off localy
# running applications (clients)
#--lavr bacause sometimes there are problems with environment implements
LANG=ru_RU.KOI8-R
LC_ALL=ru_RU.KOI8-R
MM_CHARSET=ru_RU.KOI8-R
TERM=xterm
TERMCAP=/etc/termcap
TERMINFO=/usr/lib/terminfo
PATH=/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin
PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin
MANPATH=/usr/local/man:/usr/share/man:/usr/X11R6/man
INFOPATH=/usr/local/info:/usr/share/info:/usr/X11R6/info
MAIL=/var/mail/$USER
BLOCKSIZE=K
TZ=:/etc/localtime
TMPDIR=/var/tmp
PAGER=/usr/local/bin/less
LESS="-ceMX"
LESSBINFMT="*u[%x]"
LESSCHARSET="koi8-r"
LESSKEY="/usr/local/etc/lesskey.bin"
VISUAL=vi
EDITOR=vi
WWW_HOME=http://www.jinr.ru
NNTPSERVER=news.jinr.ru
XNLSPATH=/usr/X11R6/lib/X11/nls
XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB
XAPPLRESDIR=/usr/X11R6/lib/X11/app-defaults
ENRUS_DICT=/usr/local/share/enrus
export LANG LC_ALL MM_CHARSET TERM TERMCAP TERMINFO PATH MANPATH MAIL
export INFOPATH INFODIR BLOCKSIZE TZ TMPDIR PAGER WWW_HOME NNTPSERVER
export LESS LESSBINFMT LESSCHARSET LESSKEY VISUAL EDITOR
export XNLSPATH XKEYSYMDB XAPPLRESDIR ENRUS_DICT
# start some nice programs
xconsole -geometry 580x130-0+0 -daemon -notify -verbose -fn fixed -exitOnFail &
sleep 1
xterm -geometry 80x40+0+0 -name login -ls -sb &
sleep 1
exec fvwm2
-----------------------------------------------------------------------------
Теперь варианты xserverrc:
-------------------------------- xserverrc ----------------------------------
/usr/X11R6/bin/X :0 -auth $HOME/.Xauthority -fn 8x13
-----------------------------------------------------------------------------
- запускаем Xserver с авторизацией, сие не требуется при запуске X11 через
XDM потому что он всегда запускает с авторизацией.
-------------------------------- xserverrc ----------------------------------
/usr/X11R6/bin/Xwrapper :0 -auth $HOME/.Xauthority -fn 8x13 -bs
-----------------------------------------------------------------------------
- запускаем с авторизацией и через wrapper, доп.-security.
6. Совсем чуть-чуть про Кириллицу и Печать.
Не могу утвержать создается by default '/usr/libexec/lpr/ru' или после
выбора поддержки KOI8-R в PostInstall, но по-крайней мере пример там
должен помочь.
Однако, с тех пор как многие изготовители выпускают принтеры с железно
вшитой кодовой страницей CP866, возможно потребуется использовать фильтр
- см. '/usr/libexec/lpr/ru/koi2alt', тогда '/etc/printcap' должен иметь
вид:
---------------------------- /etc/printcap -----------------------------
lp|Russian local line printer:\
:sh:of=/usr/libexec/lpr/ru/koi2alt:\
:lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:
------------------------------------------------------------------------
Собственно, кому-то нравятся свои или иные выходные фильтры,
для печати text-plain:
- todos, recode и тд и тп.
для печати Postsript:
- a2ps, koi2ps
Ниже пример /etc/printcap с выходным фильтром на локальный принтер - text-mode
и фильтром для печати koi8 на sun-postscript принтере с фильтром koi8-text
в ps:
---------------------------- /etc/printcap -----------------------------
lp|local line printer with koi8-r to alt translation:\
:lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:\
:of=/usr/local/bin/todos:\
:sb:sh:
lpraw|local line printer:\
:lp=/dev/lpt0:sd=/var/spool/output/lprawd:lf=/var/log/lpd-errs:\
:sb:sh:
Slp|remote postscript printer on sunct0:\
:lp=:rm=sunct0.jinr.dubna.su:rp=lp:sd=/var/spool/output/Slpd:\
:lf=/var/log/lpd-errs:
Slplkoi|remote postscript printer on sunct0 w/ koi8 to PS translation (local):\
:lp=/dev/null:sd=/var/spool/output/Slpld:\
:of=/usr/local/bin/koi2ps:\
:lf=/var/log/lpd-errs:\
:sb:sh:
Slprkoi|remote postscript printer on sunct0 w/ koi8 to PS translation (on Sun):\
:lp=:rm=sunct0.jinr.dubna.su:rp=koips:sd=/var/spool/output/Slprd:\
:lf=/var/log/lpd-errs:
------------------------------------------------------------------------
7. FreeBSD > 3.x и "имена русских файлов" от систем фирмы Microsoft.
Если на жестком диске имеются разделы FS: MSDOS/Windows9x/2000/NT[hpfs]
с локализацией в Windows[CP1251], и мы собираемся их или другие носители,
такие как дискеты или zip, монтировать в OS Unix=FreeBSD, то можете
изменить /etc/fstab или задать опции при ручном монтировании, как указано
ниже:
------------------------------ /etc/fstab ------------------------------
/dev/ad0s2 /dos/c msdos rw,-W=koi2dos,-L=ru_RU.KOI8-R 0 0
------------------------------------------------------------------------
Для более полной информации см. `man mount_msdos` и опции "-W" и "-L"
Примечание: FS=NTFS, пока разрешается монтировать ТОЛЬКО на чтение (4.STABLE),
будьте осторожны и см. `man mount_ntfs`.
8. Секьюрити и root.
Для начала будем рассматривать локальную машину с системой FreeBSD,
и основные концепции SECURITY следующие:
1. Защита сервисов от DDOS атак - "denial of service attack" обычно имеют
целью лишить систему необходимых ресурсов, как например используя возможные
ошибки _сетевого_стека_ - просто разрушить его или _умерщвить_ вашу машину
[ресурсы] посылкой плохого пакета.
2. Компроментация пользовательских аккаунтов: основана на прозрачности
стека TCP/IP и использовании некриптованных сетевых сервисов, таких как:
telnetd[telnet]/ftpd[ftp]/rshd[rsh]/rlogind[rlogin] и других которые могут
быть просто подслушаны в сети с помощью так называемых сетевых-прослушек:
- sniffer's
после чего, получив реальные пароли локальных пользователей вашей системы,
взломщики вторгаются в вашу систему и используя различные методы взлома
локальной системы - "Компроментация аккаунта супер-пользователя "root" через
пользовательские аккаунты" получают возможность работать в вашей системе как
"супер-пользователь" со всеми вытекающими отсюда последствиями.
3. Компроментация аккаунта супер-пользователя "root" через пользовательские
аккаунты - при наличии пользовательского доступа, взломщики используя
различные методы - чаще всего это ошибки и/или несовершенство системы и/или
неопытность, а мб нежелание администратора или службы security следить за
безопасность системы, получают права доступа супер-пользователя к системе с
вытекающими последствиями.
4. Установка так называемых "Backdoor" - я бы выразился "Лазеек", позволяет
оставлять в системе "дыры" для доступа ИЗВНЕ путем подмены существующих в
системе сервисов или программных средств на такие же, НО с внесенными
изменениями - лазейками для безконтрольного и несанкционированного доступа
в систему.
--- продолжение быстро следует ---
:) прим.[lavr]: затрахал меня уже этот PAM - нужно FAQ по-нему, хрен запомнишь
и разберешь эти мудацкие модули и что из software под этот сраный? pam
заточено - глюки в proftpd уже подмечены [уточним это в proftpd]
9. BIND-8[9]
прим.[lavr] - скроить конфигурацию , вылизать на предмет
доступа к снятию зон и другой интересной информации в плане НОМЕРА
ВЕРСИИ и остальной секьюрити.
10. Разборки с MTA + MUA + avp-scanner
- popper [qualcomm - дырявый]
- popa3d [от Solar'а] - кайф, масенький и простой, только не забывать про
security в отношении root/toor, а то полез сразу же проверять из под
toor: telnet localhost 110 :((( и потом перековырял все, включая pam.conf :)
- imapd+cyrus
- ldap
- sendmail [mc + antispam + avp-scanner]
- postfix
- qmail - уссаться, эта хрень работает по принципу белое - должно быть белым,
а черное - черным, те это угребище не лезет по MX, если основной - с меньшим
весом выдает ошибку 4xx!!! - по мне это дичь, кому-то наоборот нравится,
вкусы разныя - факт.
- procmail
11. Ставим и настраиваем: родной ftpd/wuftpd[2.6 - гавно, уж лучше 2.4.2-betaXX]
proftpd[anonftpd - увы пока тока под linux]
[virtual-hosts]
ftpd[родной] - не могу сравнивать с тем что было в FreeBSD 3.x, но родной от
2.2.x - близко не валялся с тем что в 4.STABLE.
настроечные файлы:
/etc/ftpchroot - список локальных пользователей для которых должна быть
выполнена процедура "chroot".
/etc/ftphosts - конфигурационный файл ВИРТУАЛЬНЫХ хостов.
/etc/ftpwelcome - Файл содержащий "приветствие" и примечание, отображается
ДО входа в систему.
/etc/ftpmotd - Файл содержащий "приветствие" и примечание, отображается
ПОСЛЕ входа в систему.
security:
/etc/ftpusers - список пользователей которым ЗАПРЕЩЕН доступ по ftp.
/var/run/nologin - если существует этот файл, то доступ пользователям в
систему запрещен, при этом отображается содержание
данного файла.
куда заносятся логи:
/var/log/ftpd - файл статистики куда заносится трафик от anonymous.
12. Ставим и настраиваем Apache httpd - родной, затем попробуем apache-rus.
[virtual-hosts]
прим.: расписать примеры с комментариями.
13. FireWall - ipfw, ipfw+natd[нужна вторая карта и настройка роутера для
псевдо сетки "D"]
14. Приоритет порядкового номера еще не ясен, НО???
15. NIS и STABLE (какие такие тут могут быть проблемы? NIS себе и НИС :)
(nis конечно же неплохо, но геморр и гулюк - по-правильному нужно
на чтой-то другое переходить - ldap? [сделаем faq по ldap])
16. LDAP (с последующим FAQ)
17. Подготовить набор _поделиц_ и завернуть по-возможности в один "ПУСКАЧ"
типа:
- minimal install: RELEASE or STABLE
- "ПУСКАЧ" [вызовы разных Makefile - с проверками и настройками]
все - хошь наблюдай, хошь плюй в потолок, хошь флиртуй, пей водяру и тд и тп.
18. Создаем софтверный рутер на базе xxxBSD:
- дисковый;
- бездисковый;
Прим.: наполнение и поступление пунктов, по мере занятости и выполнения работ
возможно пересекающихся на фирме.
Sendmail8.11.x/Bind8[9]/Proftpd - все готово, осталось засеть и расписать,
в Новогодние Праздники как-то лень... :( Ой, NIS же еще. :)
Apache - ну разве что как использовать virtual-hosts - варианты.
Увы, времени нет совсем. :(((
Установка Gnome 2.10 на FreeBSD
Я любитель лёгких wm. Но недавно передо мной встала задача - настроить рабочую станцию, на которой будут работать неподготовленные люди. И тут я вспомнил про Gnome и KDE...
Я довольно давно не работал с интегрированными средами, так что мне было в известной мере любопытно - что же там наработали?
В портах обнаружился свежепоявившийся там Gnome 2.10 и выбор был сделан.
Итак, для начала, я прочитал статью Sergey Akifyev (не уверен, как правильно прочитать фамилию - так что оставляю как есть) Установка GNOME 2.6.0 под FreeBSD, затем сходил на www.freebsd.org/gnome/ и задумчиво прочитал инструкцию по установке (всё, как обычно - если с нуля - то всё просто, если апгрейд - то предлагают нарочитый скрипт, либо снести предыдущую версию. portupgrade -a не прокатывает)... Напоследок заглянув в known issues (список известных ошибок), я отправился прямиком в /usr/ports/x11/gnome2
Тут я сделал небольшую паузу и внес некоторые изменения в /etc/make.conf. В качестве основы (99%), я взял рекомендованный Сергеем в вышеупомянутой статье об установке Gnome 2.6 make.conf. Изменения, которые я внес, коснулись FAM (собираем с поддержкой SMB - позволяет с комфортом гулять по windows-сети), и отсутствия на данной машине DVD. Также я добавил флаги сборки для mplayer'а.
Далее всё просто - make install clean и через некоторое время - всё в шляпе.
Теперь о выявленных багах - у меня напрочь отказался устанавливаться libexif, мотивируя тем, что он broken. Отступать было некуда и, убедившись в том, что это далеко не критичный сервис, я просто-напросто сделал pkg_add -r libexif и pkgdb -F. После этого сборка была продолжена и завершилась успехом.
Затем были установлены:
/usr/ports/x11/gnome2-fifth-toe
/usr/ports/x11/gnome2-power-tools
/usr/ports/editors/gnome2-office
Проблемы вызвал только liferea из комплекта gnome2-fifth-toe, которому для сборки позарез требовалась Mozilla. На опцию WITH_MOZILLA с параметрами no и firefox он клал с прибором. За что и был сначала установлен через pkg_add -r, а затем, когда после установки отказался работать, снесен (но прежде был доустановлен комплект fifth-toe)
Выводы:
Гном вполне симпатичная среда.
Внешний вид после установки темы clearlook радует глаз. Хорошая интеграция SMB-сети также не может не радовать.
Что не удалось сделать:
Пытался разрешить монтировать дискеты и компакты рядовым пользователям. Удалось частично. Т.е. если не прописывать в /etc/fstab флаги перекодировки (чтобы видеть имена файлов, набранные кириллицей), то всё работает. Если же флаги прописать - требует libiconv. По совету TIM'а вкомпилировал в ядро следующие строки:
options LIBICONV
options MSDOSFS_ICONV
options CD9660_ICONV
и установил порт /usr/ports/converters/libiconv
не помогло - теперь пишет operation not permitted - буду искать пути решения...
Как говорится - stay tuned
#make.conf создан Sergey Akifyev, дополнен Eugene Chaikin
FETCH_CMD= axel -n 8 -a
X_WINDOW_SYSTEM=xorg
# aspell
ASPELL_RU=yes
ASPERL_EN=yes
# mplayer
WITH_GUI=yes
WITH_OPTIMIZED_CFLAGS=yes
WITHOUT_RUNTIME_CPUDETECTION=yes
WITH_NVIDIA=yes
WITH_GTK2=yes
WITHOUT_3DNOW=yes
WITHOUT_DSP=yes
WITH_CDROM_DEVICE=/dev/cd0
WITH_SDL=yes
WITH_ESOUND=yes
WITH_VORBIS=yes
WITH_REALPLAYER=yes
WITH_LIVEMEDIA=yes
WITH_MATROSKA=yes
WITH_XVID=yes
WITH_LANG=ru
# Mozilla
WITHOUT_MAILNEWS=yes
WITHOUT_COMPOSER=yes
WITHOUT_CHATZILLA=yes
WITH_OPTIMIZED_CFLAGS=yes
WITH_CAIRO_RENDER=yes
WITH_MOZILLA=firefox
# gftp & xcdroast
WITH_GTK2=yes
# libgnomeprint
WITH_CUPS=yes
# gtk20
WITH_DROPSHADOW=yes
# cups
CUPS_OVERWRITE_BASE=yes
# gstreamer
WITH_CDPARANOIA=yes
WITH_FLAC=yes
WITH_LAME=yes
WITH_GNOMEVFS=yes
WITH_MAD=yes
WITH_AALIB=yes
WITH_ESOUND=yes
WITH_FREETYPE=yes
WITH_GDKPIXBUF=yes
WITH_JPEG=yes
WITH_LIBA52=yes
WITH_LIBAUDIOFILE=yes
WITH_LIBDV=no
WITH_LIBDVDNAV=no
WITH_LIBDVDREAD=no
WITH_LIBFAME=yes
WITH_LIBMIKMOD=yes
WITH_LIBMPEG2=yes
WITH_LIBMUSICBRAINZ=yes
WITH_LIBSHOUT=yes
WITH_LIBSNDFILE=yes
WITH_OGG=yes
WITH_PANGO=yes
WITH_PNG=yes
WITH_SDL=yes
WITH_SWFDEC=yes
WITH_VORBIS=yes
WITH_VORBISIDEC=yes
WITH_XINE=yes
WITH_XVID=yes
# nautilus-cd-burner
WITH_DVD=no
# vte widget (gnome-terminal)
WITH_GLX=yes
# gnomevfs2
WITH_FAM=yes
WITH_SAMBA=yes
# djbfft
WITH_OPT_PPRO=yes
# gnome remote desktop
WITH_TIGHTVNC=yes
WITH_XNEST=yes
P.S. А сейчас у меня всё из тех же портов ставится KDE 3.4 - надо же сравнить... ;)
P.P.S. Посмотрел часть установившегося KDE-шного софта. Когда настроил шрифты - всё стало симпатичным. Только вот Gnome переведен практически полностью (процентов так на 80), а KDE - нет. С английским у меня всё в порядке, но как я писал в начале - компьютер будет использоваться неподготовленными людьми... ;)