В большинстве случаев
установка XFree не представляет
проблем. Однако, если вы желаете
использовать видеокарту для
которой драйвер находится в
процессе разработки или добиться
лучших разрешения или
производительности от карты с
графическим акселератором, то вам
потребуется определенное время для
настройки XFree.
В этой главе мы опишем
как создать и отредактировать XF86Config
файл, который настраивает XFree86
сервер.
В большинстве случаев
лучше всего начать с ``основной''
XFree86 конфигурации, которая
использует низкое разрешение ,
например 640x480, поддерживаемого
всеми видеокартами и мониторами.
Однажды настроив XFree на стандартное
разрешение, вы можете затем
подстроить файл конфигурации для
для того, чтобы использовать все
возможности, предоставляемые вашей
аппаратурой.
В дополнение к
информации приведенной здесь, вам
следует ознакомиться со следующей
документацией:
Основным файлом
настройки XFree86 является файл /usr/X11R6/lib/X11/XF86Config
.
Этот файл содержит информацию о
вашей мыши, параметрах видеокарты и
т п. В качестве примера дистрибутив
XFree86 содержит файл XF86Config.eg
.
Скопируйте его в файл XF86Config
и отредактируйте.
XF86Config
man page
подробно объясняет формат этого
файла. Прочитайте данный документ ,
если вы еще это не сделали. Далее мы
собираемся просмотреть файл XF86Config
участок за участком. Этот файл
может выглядеть не совсем так, как
файл в вашем дистрибутиве XFree86, но
структура их совпадает.
!Заметьте, что
формат файла XF86Config
может
изменяться с каждой версией XFree86;
эта информация может быть верной
только для XFree86 версии 3.1.
!Имейте также в виду,
что не следует просто копировать
конфигурационный файл, приведенный
здесь и пытаться использовать его.
Попытка использовать
конфигурационный файл, не
соответствующий вашему
оборудованию, может заставить ваш
монитор работать со слишком
высокой для него частотой; были
сообщения о выходе из строя
мониторов (особенно мониторов с
фиксированной частотой) при
использовании неверных XF86Config
файлов.
Каждая секция файла XF86Config
определяется парой строк Section "<section-name>"
... EndSection
. Первая секция файла
называется Files
, и выглядит
следующим образом:
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
EndSection
Строка RgbPath
указывает местоположение базы
данных цветов, а каждая строка FontPath
определяет каталог, содержащий
фонты. Как правило, вам не следует
изменять эти строки, вам следует
только убедиться, что все каталоги
фонтов присутствуют.
Следующая секция имеет
имя ServerFlags
и определяет
несколько глобальных параметров
для сервера. Как правило эта секция
пуста.
Section "ServerFlags"
# Uncomment this to cause a core dump at the spot where a signal is
# received. This may leave the console in an unusable state, but may
# provide a better stack trace in the core dump to aid in debugging
# NoTrapSignals
# ncomment this to disable the <Crtl><Alt><BS> server abort sequence
# DontZap
EndSection
Все строки данной
секции закомментированы.
Следуюшая секция Keyboard
.
Она определяет работу клавиатуры.
Section "Keyboard"
Protocol "Standard"
AutoRepeat 500 5
ServerNumLock
EndSection
Доступны также и другие
режимы. Описанные выше опции
работают на большинстве клавиатур.
Следующая секция - Pointer
определяет параметры мыши.
Section "Pointer"
Protocol "MouseSystems"
Device "/dev/mouse"
# Baudrate and SampleRate are only for some Logitech mice
# BaudRate 9600
# SampleRate 150
# Emulate3Buttons is an option for 2-button Microsoft mice
# Emulate3Buttons
# ChordMiddle is an option for some 3-button Logitech mice
# ChordMiddle
EndSection
Единственными опциями,
на которые стоит обратить внимание
являются Protocol
и Device
. Protocol
определяет протокол, который
использует ваша мышь. Возможными
типами (для Linux - есть другие опции,
доступными для других ОС) являются:
Для Logitech busmouse следует
использовать протокол BusMouse.
Заметьте, что для старых мышей Logitech
необходимо использовать протокол Logitech
,
а для новых или Microsoft
, или Mouseman
протокол.
Строка Device
определяет устройство к которому
подключена мышь. На большинстве
систем Linux это /dev/mouse
. /dev/mouse
обычно связано с соответствующим
серийным портом (например /dev/cua0
- COM1 или /dev/cua1
- COM2) или с
портом busmouse
. В любом случае
убедитесь, что указанное
устройство есть в каталоге /dev
и работоспособно.
Следующая секция - Monitor
,
определяет характеристики вашего
монитора. Файл XF86Config
может
содержать не одну, а несколько
секций Monitor
(это справедливо
и для других секций). Это полезно в
том случае, когда вы подключили к
системе несколько мониторов или
используете один и тот же XF86Config
файл для различных конфигураций.
Section "Monitor"
Identifier "CTX 5468 NI"
# These values are for a CTX 5468NI only! Don't attempt to use
# them with your monitor (unless you have this model)
Bandwidth 60
HorizSync 30-38,47-50
VertRefresh 50-90
# Modes: Name dotclock horiz vert
ModeLine "640x480" 25 640 664 760 800 480 491 493 525
ModeLine "800x600" 36 800 824 896 1024 600 601 603 625
ModeLine "1024x768" 65 1024 1088 1200 1328 768 783 789 818
EndSection
Строка Identifier
используется для именования
текущего описания монитора. Это
может быть любая строка, на которую
вы в дальнейшем ссылаться в файле XF86Config
.
HorizSync
определяет
возможные скорости горизонтальной
развертки для вашего монитора в
Килогерцах. Если у вас
многочастотный (multisync) монитор, вы
можете указать интервал значений
(или несколько интервалов,
разделенных запятой), как показано
выше. Если у вас монитор с
фиксированной частотой, то вам надо
указать список фиксированных
значений. Например:
HorizSync 31.5, 35.2, 37.9, 35.5, 48.95
В руководстве на ваш
монитор эти значения должны быть
описаны. Если вы не имеете этой
информации, вам следует связаться с
производителем или продавцом
вашего монитора.
Строка VertRefresh
описывает возможные значения
частоты вертикальной развертки для
вашего монитора в герцах. Как и для HorizSync
вы можете указать интервал или
список дискретных значений. Ваше
руководство на монитор должно
содержать эту информацию.
Сервер использует
значения HorizSync
и VertRefresh
только для того, чтобы убедиться
что вы верно определили разрешение
монитора. Это исключает
возможность разрушения монитора
при попытке работы с ним на частоте
превышающей максимально
допустимую.
Строка ModeLine
определяет один из режимов
разрешения вашего монитора. Ее
формат:
ModeLine <name> <clock> <horiz-values> <vert-values>
<name>
- строка,
которую вы можете использовать в
этом файле в дальнейшем для
указания разрешения. <dot-clock>
определяет частоту задающего
генератора адаптера для этого
разрешения. Обычно частота
указывается в мегагерцах. Она
определяет скорость с которой
видеокарта должна посылать
значения точек экрана на монитор
при указанном разрешении. <horiz-values>
и <vert-values>
состоят из 4-х
цифр каждая. Эти значения
определяют, когда электронная
пушка монитора во время развертки
должна включиться и когда должны
проходить импульсы горизонтальной
и вертикальной синхронизации во
время развертки луча.
Как описать строку ModeLine
для вашего монитора? Файл VideoModes.doc
,
включенный в дистрибутив XFree86,
детально описывает как определить
эти значения для каждого
разрешения, которое поддерживает
ваш монитор. Значение clock
должно соответствовать частотам,
которые поддерживает ваша
видеокарта. Далее в файле XF86Config
вы определите эти значения.
Существует два файла modeDB.txt
и Monitors
в дистрибутиве XFree,
которые могут содержать данные ModeLine
для вашего монитора. Эти файлы
располагаются в каталоге /usr/X11R6/lib/X11/doc
.
Вы можете начать со
значений ModeLine
для мониторов
стандарта VESA. Этот режим
поддерживается большинством
мониторов. Файл modeDB.txt
включает описания синхронизации
для стандартного разрешения VESA. В
этом файле вы найдете такие строки:
# 640x480@60Hz Non-Interlaced mode
# Horizontal Sync = 31.5kHz
# Timing: H=(0.95us, 3.81us, 1.59us), V=(0.35ms, 0.064ms, 1.02ms)
#
# name clock horizontal timing vertical timing flags
"640x480" 25.175 640 664 760 800 480 491 493 525
Это стандартная строка
синхронизации для разрешения 640x480
точек. Она устанавливает частоту
25.175 Mhz, которая должна
поддерживаться большинством
мониторов (более подробно об этом
позже). В вашем файле эта строка
должна выглядеть так:
ModeLine "640x480" 25.175 640 664 760 800 480 491 493 525
Заметим, что аргумент name
в строке ModeLine
(в нашем случае
"640x480") может быть любой
строкой, которая описывает для вас
разрешение монитора.
Для каждой строки ModeLine
сервер проверяет, попадают ли
указанные значения в интервал
указанных значений Bandwidth
, HorizSync
и VertRefresh
. Если нет, то сервер
выдаст предупреждение при начале
работы.
Если стандартные
значения синхронизации VESA не
работают у вас, то просмотрите
другие значения в файлах modeDB.txt
и Monitors
для других типов
мониторов. Заметим, что многие 14 и 15
дюймовые мониторы не могут
поддерживать разрешений 1024x768 точек
из-за низкого значения Bandwidth
.
То есть, если вы не нашли описание
режима высокого разрешения для
вашего монитора, то не исключено,
что ваш монитор не поддерживает
такое разрешение.
Если вы потерпели
неудачу с подбором строки ModeLine,
изучите инструкцию описанную в
файле VideoModes.doc
вашего
дистрибутива. По этой инструкции вы
сможете описать строку ModeLine
по спецификациям, описанным в вашем
руководстве на монитор.
В конце концов, если вы
не можете подобрать правильные
значения строки ModeLine
, то вы
можете просто слегка изменить эти
значения для достижения требуемого
результата. Например, если
изображение на экране слегка
уходит влево или вверх, вы можете по
инструкции из файла VideoModes.doc
настроить значения синхронизации.
Проверьте также наличие
управляющих клавиш на вашем
мониторе! Частенько бывает
достаточным изменить
горизонтальный и вертикальный
размер изображения во время работы
XFree чтобы добиться желаемой
центровки и размера изображения.
Наличие этих клавиш на монитора
значительно упрощает жизнь.
Следующая секция Device
описывает параметры вашей
видеокарты. Например:
Section "Device"
Identifier "#9 GXE 64"
# Nothing yet; we fill in these values later.
EndSection
Эта секция описывает
возможности вашей карты. Identifier
определяет имя этого описания для
ссылки на него в дальнейшем.
Первоначально вам не
стоит заполнять эту секцию, за
исключением поля Identifier
.
X-сервер можно использовать в
режиме определения параметров
установленной видеокарты. После
определения этих параметров вы
занесете их в эту секцию. X-сервер
способен определить тип микросхемы
видеокарты, поддерживаемый
интервал частот, наличие RAMDAC и
размер установленной памяти на
видеоадаптере.
Прежде чем мы это
сделаем, нам следует закончить
описание файла XF86Config
.
Следующая секция - Screen
описывает возможные режимы работы
X-сервера с видеокартой и монитором.
Section "Screen"
Driver "Accel"
Device "#9 GXE 64"
Monitor "CTX 5468 NI"
Subsection "Display"
Depth 16
Modes "1024x768" "800x600" "640x480"
ViewPort 0 0
Virtual 1024 768
EndSubsection
EndSection
Строка Driver
определяет тип сервера, который вы
будете использовать. Вы можете
использовать следующие сервера:
- Accel:
- Для XF86_S3, XF86_Mach32,
XF86_Mach8, XF86_8514, XF86_P9000, XF86_AGX, and XF86_W32
серверов;
- SVGA:
- Для XF86_SVGA сервера;
- VGA16
- : Для XF86_VGA16 сервера;
- VGA2
- : Для XF86_Mono сервера;
- Mono
- : Для non-VGA
монохромного драйвера в XF86_Mono и
XF86_VGA16 серверах.
Убедитесь, что файл /usr/X11R6/bin/X
является символьной ссылкой на
используемый вами сервер.
Строка Device определяет
идентификатор секции Device
,
описывающей установленную
видеокарту. Выше мы описали секцию Device
с идентификатором:
Identifier "#9 GXE 64"
Следовательно, здесь мы
используем "#9 GXE 64
" в
строке Device
.
Точно так же строка Monitor
определяет имя секции Monitor
для данного сервера, в данном
примере "CTX 5468 NI
".
Подсекция Display
определяет режим работы сервера
при выводе информации на экран.
Файл XF86Config
детально
описывает эти режимы. Режимы,
которые вам необходимо знать:
Depth
. Опеделяет
число битов на точку. Обычно Depth
принимает значение 8 (256 цветов).
Для сервера VGA16 вам следует
установить значение Depth
4 и для монохромного сервера - 1.
Если вы используете видеокарту
с ускорителем и имеете
достаточно памяти для
поддержки большего числа бит
на точку, Вы можете установить Depth
16 , 24 или 32. Если с этими
значения появились проблемы
вернитесь к значению 8 и
попытайтесь решить проблему
позже.
Modes
. Указывает
список видеорежимов, описанных
в секции ModeLines. Выше мы описали
режимы Modelines названные "1024x768
",
"800x600
" и "640x480
".
Следовательно строка Modes будет
выглядеть:
Modes "1024x768" "800x600" "640x480"
Первый режим,
перечисленный в этой строке
устанавливается по умолчанию
после начала работы сервера.
Далее вы можете переключать
режимы разрешения изображения,
использую клавиши ctrl-alt-numeric + и ctrl-alt-numeric
-.
Лучше всего при
начальном конфигурации XFree86
использовать минимальное
разрешение, например 640x480,
которое работает на
большинстве систем. И после
настройки этого режима
настроить XF86Config
на
работу с большими
разрешениями.
Virtual
.
Устанавливает виртуальный
размер экрана. XFree86 имеет
возможность использовать
дополнительную память на вашей
видеокарте для расширения
вашего рабочего поля. Когда
указатель мыши доходит до края
экрана, ваше рабочее поле
сдвигается показывая новые
части вашего рабочего поля.
Следовательно, даже если вы
работаете на мониторе с низким
разрешением (например 800x600
точек), вы можете установить
размер виртуального экрана
насколько вам позволяет память
видеоплаты (1 Мегабайтная плата
может хранить рабочее поле
1024x768 с 256 цветами, 2-х
Мегабайтная плата - 1280x1024 с 256
цветами или 1024x768 с 16384 цветами и
т д). Конечно, вы не сможете
увидеть сразу все поле на вашем
мониторе, но вы можете легко
просмотреть любую его часть. Virtual
предоставляет вам прекрасную
возможность использовать всю
память вашего адаптера, но она
довольно ограничена. Если вы
желаете еще расширить
возможности работы с экраном,
вам следует использовать fvwm
,
openwin
или другой подобный
менеджер окон. fvwm
и openwin
позволяет вам иметь намного
больший виртуальный экран
(используя механизм спрятанных
окон, вместо сохранения всего
экрана в видеопамяти). Ваше
виртуальное рабочее поле может
состоять из 16x16 реальных
экранов и более. Обратитесь к
руководству по указанным
командам. Большинство
дистрибутивов XFree используют
по умолчанию менеджер окон fvwm
.
ViewPort
. Если вы
использовали опцию Virtual
,
описанную выше, ViewPort
устанавливает координаты
левого верхнего угла
виртуального экрана после
начала работы сервера. Часто
используют значение Virtual 0 0
.
Если вы не установили этого
значения сервер центрирует
виртуальный экран на мониторе
(что может быть не всегда
желательно).
Существуют и другие
опции для данной секции (см.
руководство для файла XF86Config
).
На практике же другие опции не
обязательны для начальной
установки сервера.
Теперь ваш файл XF86Config
готов к использованию.
Единственное, что мы не сделали - не
заполнили информацию о видеокарте.
Сейчас нам следует запустить X
сервер в режиме определения
видеокарты и дооформить XF86Config
файл.
Эту информацию вы
можете найти и в файлах modeDB.txt
,
AccelCards
и Devices
(все эти
файлы находятся в каталоге /usr/X11R6/lib/X11/doc
).
Кроме этого существуют различные
файлы README
для конкретных
микросхем. Вам следует просмотреть
эти файлы и используя эту
информацию (частоты, тип микросхем
и другие режимы) доопределить файл XF86Config
.
Если какой то информации не
хватает, вы можете определить ее
путем описанным ниже.
В этом примере мы опишем
настройку видеокарты #9 GXE 64
,
использующую микросхему S3. Эта
карта одна из тех, с которыми
работает автор, но все описанное
ниже справедливо и для другой
видеокарты.
Перво-наперво вам надо
определить тип микросхемы,
используемой видеокартой. Команда SuperProbe
(располагающаяся в каталоге
/usr/X11R6/bin) сообщит вам эту
информацию, но вам необходимо знать
под каким именем известна данная
микросхема X серверу.
Чтобы определить это
запустите команду:
X -showconfig
Сервер сообщит вам
имена микросхем, с которыми он
работает (руководство на X сервер
также содержит эту информацию).
Например, сервер XF86_S3 сообщит:
XFree86 Version 3.1 / X Window System
(protocol Version 11, revision 0, vendor release 6000)
Operating System: Linux
Configured drivers:
S3: accelerated server for S3 graphics adaptors (Patchlevel 0)
mmio_928, s3_generic
То есть сервер работает
с микросхемами mmio_928
и s3_generic
.
Руководство на сервер XF86_S3
описывает эти микросхемы и
видеокарты, использующие их. В
нашем случае видеокарта #9 GXE 64
использует микросхему mmio_928
.
Если вы не знаете какая
микросхема стоит на видеокарте, X
сервер может это определить.
Запустите:
X -probeonly > /tmp/x.out 2>&1
если вы работаете в
оболочке shell. Если вы используете csh
запустите:
X -probeonly &> /tmp/x.out
Эту команду следует
запускать при низкой загрузке
компьютера. Эта команда определяет
также частоту видеоадаптера и
большая загрузка системы может
исказить эти данные.
Выходная информация в
файле /tmp/x.out
будет содержать
следующие строки:
XFree86 Version 3.1 / X Window System
(protocol Version 11, revision 0, vendor release 6000)
Operating System: Linux
Configured drivers:
S3: accelerated server for S3 graphics adaptors (Patch level 0)
mmio_928, s3_generic
Several lines deleted...
(--) S3: card type: 386/486 localbus
(--) S3: chipset: 864 rev. 0
(--) S3: chipset driver: mmio_928
Мы видим, что сервер
(XF86_S3) может работать с микросхемами
mmio_928
и s3_generic
. Сервер
протестировал видеокарту и опознал
микросхему mmio_928
.
Следовательно, в секцию Device вам
следует добавить строку,
содержащую имя микросхемы,
найденное сервером.
Section "Device"
# We already had Identifier here...
Identifier "#9 GXE 64"
# Add this line:
Chipset "mmio_928"
EndSection
Теперь нам требуется
определить частоты, поддерживаемые
видеокартой. Как мы уже видели,
каждый режим разрешения на
мониторе требует определенной
передачи точек от видеокарты. Нам
необходимо определить какие
частоты может обеспечить
видеокарта.
Сначала следует
просмотреть справочные файлы (modeDB.txt
,
и т п) описанные выше и определить,
нет ли там описания частот вашей
карты. Частоты, как правило
представлены списком из 8 или 16-ти
значений частот в Мегагерцах.
Например в файле modeDB.txt
можно
найти строку описания видеокарты
Cardinal ET4000:
chip ram virtual clocks default-mode flags
ET4000 1024 1024 768 25 28 38 36 40 45 32 0 "1024x768"
Как вы видите, данная
карта поддерживает частоты: 25, 28, 38,
36, 40, 45, 32, and 0 MHz.
В секции Device
файла XF86Config
, вам следует
добавить строку Clocks
со
списком частот. В нашем случае мы
добавляем строку:
Clocks 25 28 38 36 40 45 32 0
к секции Device
,
после описания Chipset
.
Заметьте, что порядок частот важен!
Вам не следует дублировать или
изменять порядок частот.
Если вы не можете найти
список частот для вашей карты, X
сервер может также определить и эти
значения. После вызова команды X
-probeonly
, описанного выше, вы
увидите строку :
(--
) S3: clocks: 25.18 28.32 38.02 36.15 40.33 45.32 32.00 00.00
Теперь вам осталось
лишь добавить строку Clocks
,
перечислив указанные значения. Так
как часто список содержит 8 и более
значений и не помещается в одной
строке, вы можете продолжить список
в следующих строках, только не
забывайте сохранять порядок
указанных значений.
Перед запуском X
-probeonly
, убедитесь что в секции Devices
нет строк описания Clocks
или
они закомментированы. Если эти
значения уже есть, X сервер не будет
проверять поддерживаемые платой
частоты, а возьмет указанные в
строке Clocks
.
Заметьте, что некоторые
видеокарты с акселератором
используют микросхему с
программируемой частотой (Смотрите
руководство XF86_Accel; это в основном
относится к картам S3, AGX и XGA-2 boards.)
Эти микросхемы позволяют X-серверу
сообщать карте какую использовать
частоту. В этом случае мы вполне
вероятно не сможем найти в
вышеперечисленных файлах список
частот для карты. Или список частот,
выдаваемых командой X -probeonly
будет содержать одно два значения с
остальными дублированными или
нулевыми значениями.
Для видеоплат,
использующих микросхему
программирования частоты, вам
вместо строки Clocks
следует
использовать строку ClockChip
.
Эта строка задает имя микросхемы
программирования частоты,
установленной на карте.
Руководства для каждого сервера
описывает их имена. Например, в
файле README.S3
мы определили,
что несколько S3-864 видеокарт
используют микросхему ``ICD2061A
''.
Следовательно, нам следует
использовать строку:
ClockChip "icd2061a"
вместо строки Clocks
.
Так же как и строка Clocks
,
строка ClockChip
должна быть в
секции Devices
после строки Chipset
.
Некоторые карты с
акселератором требуют определения
в файле XF86Config
строки Ramdac
,
описывающей тип используемой
микросхемы RAMDAC. Руководство на
сервер XF86_Accel
описывает
подробно опции этой строки. Как
правило, X сервер верно определяет
тип используемой микросхемы RAMDAC.
Некоторые видеокарты
требуют определения нескольких
дополнительных опций в секции Devices
.
Эти опции описаны как в
руководствах на ваш X сервер, так и в
справочных файлах (например README.cirrus
или README.S3
). Эти опции
устанавливаются строкой Options
.
Например, видеокарта #9 GXE 64
требует установку двух опций:
Option "number_nine"
Option "dac_8_bit"
Обычно X сервер работает
и без этих опций, но с ними X сервер
обеспечивает большую
производительность. Существует
слишком много всевозможных опций,
чтобы из все здесь перечислить. Эти
опции зависят от типа
установленной видеокарты. Если вы
вынуждены использовать эти опции -
не волнуйтесь, руководства на X
сервера и справочные файлы в
каталоге /usr/X11R6/lib/X11/doc/
об'яснят вам что они значат.
Итак, когда вы
закончите, не забудьте завершить
строкой EndSection
секцию Device
,
которая будет выглядеть следующим
образом:
Section "Device"
# Device section for the #9 GXE 64 only !
Identifier "#9 GXE 64"
Chipset "mmio_928"
ClockChip "icd2061a"
Option "number_nine"
Option "dac_8_bit"
EndSection
Как уже сказано выше,
большинство видеокарт требуют
строку Clocks
вместо строки ClockChip
.
Вышеприведенный пример применим
только к конкретной видеокарте #9
GXE 64
.
Как только вы закончите
описание файла XF86Config
, вы
готовы запустить X сервер и начать
работу. Сначала убедитесь, что
каталог /usr/X11R6/bin
включен в
ваш путь (переменную PATH
).
Для запуска X Window
наберите команду:
startx
Это "оболочка" для
команды xinit
(если вы
использовали xinit
в других
UNIX-системах).
Эта команда запускает X
сервер и выполняет команды,
найденные в файле .xinitrc
в
вашем домашнем каталоге. Если
данного файла не существует,
используется системный файл /usr/X11R6/lib/X11/xinit/xinitrc
.
Стандартный xinitrc
файл выглядит подобным образом:
#!/bin/sh
xterm -fn 7x13bold -geometry 80x32+10+50 &
xterm -fn 9x15bold -geometry 80x34+30-10 &
oclock -geometry 70x70-7+7 &
xsetroot -solid midnightblue &
exec twm
Этот расчет запускает
два клиента xterm
(эмулятор
терминала), oclock
(часы) и
устанавливает темно-синий цвет
экрана. Затем он запускает twm
- оконный менеджер. Заметьте, что twm
запускается через оператор exec.
Оболочка /bin/sh, выполняющая этот
расчет замещается командой twm
и при окончании работы процесса twm
,
X-сервер также завершает свою
работу. Вы можете выйти из twm
,
используя основное меню. Нажмите
левую кнопку мыши, находясь на
свободном месте экрана. На экране
появится меню, которое позволит вам
за выйти из twm
, выбрав пункт Exit
Twm
.
Убедитесь, что
последняя команда в файле .xinitrc
запускается через exec и не
запускается в фоне (нет символа &
в конце строки). Иначе X сервер
завершит свою работу, как только он
запустит клиента из файла .xinitrc
.
Кроме этого, вы можете
выйти из X-а, нажав клавиши ctrl-alt-backspace
одновременно.
Описанная выше
конфигурация файла .xinitrc
является очень простой. Если вы с
ним немного поработаете вы можете
получить множество отличных
программ и конфигураций окон на
экране. Например, оконный менеджер
fvwm поддерживает виртуальные
экраны, вы можете подобрать
различные фонты, цвета, размеры
окон, их позиции и так далее, все что
вы пожелаете. Хотя система X Window
может на первый взгляд показаться
простой, она чрезвычайно мощна и
богата различными возможностями.
Если вы новичок в среде X
Window, мы настоятельно рекомендуем
вам приобрести книгу типа The X Window
System: A User's Guide. Использование и
настройка X-а довольно большая
задача для того, чтобы описать ее в
этой книге. В качестве дальнейших
шагов посмотрите руководства для
команд xterm, oclock, twm и т п.
Частенько случается,
что у вас что-то не получается. Как
правило, это связано с ошибками
описания вашего файла XF86Config
.
Обычно, неверно указывают
временные интервалы синхронизации
монитора или частоты видеоплаты.
Если у вас изображение на экране
сдвинуто или его границы размыты,
это точный показатель, что эти
значения установлены неверно.
Проверьте также, верно ли
определили тип микросхемы
видеокарты и другие опции в секции
Device файла XF86Config
. Убедитесь
также, что вы используете
необходимый X сервер и что файл /usr/X11R6/bin/X
является символьной ссылкой на
этот сервер.
Если это не поможет,
попробуйте запустить X напрямую,
используя команду:
X > /tmp/x.out 2>&1
Затем остановите X
сервер (нажав одновременно клавиши ctrl-alt-backspace)
и проверьте содержимое файла /tmp/x.out
.
X сервер сообщит все предупреждения
и ошибки, например о том, что ваша
видеокарта на поддерживает
необходимую для вашего монитора
частоту.
Файл VideoModes.doc
,
включенный в дистрибутив XFree,
содержит много советов по
настройке вашего файла XF86Config
.
Не забудьте, что вы
можете использовать комбинации
клавиш ctrl-alt-numeric + и ctrl-alt-numeric - для
переключения режимов разрешения
монитора, перечисленных в секции
Screen файла XF86Config
. Если режим с
высоким разрешением не работает,
попытайтесь установить на меньшее
разрешение. Это, по крайней мере,
поможет определить вам ошибочные и
правильные настройки вашего
конфигурационного файла.
Попытайтесь также
аппаратно подстроить ваш монитор,
используя клавиши управления на
мониторе.
Для обсуждения вопросов
по XFree86 предназначены группа comp.windows.x.i386unix
USENET. Неплохая идея - подписаться на
эту конференцию и описать
интересующие вас проблемы - может
быть кто-то имеет такие же проблемы.
Если, по какой-нибудь
необъяснимой прихоти, вам
необходимо обеспечить доступ к
файлам MS-DOS, вы можете это легко
сделать.
Обычно для получения
доступа к файлам MSDOS, вам достаточно
примонтировать MS-DOS раздел или
дискету и обращаться к фалам через
файловую систему Linux. Например, если
вы вставите дискету MS-DOS в
устройство /dev/fd0
(A: в нотации
MS/DOS), команда
# mount -t msdos /dev/fd0 /mnt
примонтирует эту дискету
к каталогу /mnt
. Просмотрите
секцию 4.6.2 для получения
дополнительной информации о
монтировании флоппи-дисков.
Точно также, вы можете
примонтировать MS-DOS раздел на вашем
винчестере. Если вы, например,
имеете MS-DOS раздел на /dev/hda1
,
команда
# mount -t msdos /dev/hda1 /mnt
примонтирует ее. Не
забудьте размонтировать DOS-раздел
после окончания работы с ней. Вы
можете монтировать раздел MS-DOS
автоматически во время загрузки
системы, если добавите строку в
файл /etc/fstab
(см. секцию 4.8).
Например, следующая строка в файле /etc/fstab
монтирует DOS раздел /dev/hda1
на
каталог /dos
.
/dev/hda1 /dos msdos defaults
Вы можете также получить
доступ к файлам MS-DOS, используя
пакет Mtools. Команды mcd
, mdir
и mcopy
этого пакеты работают
точно также как команды MS-DOS cd
,
dir
, copy
. Если вы
установили пакет Mtools, то он должен
содержать и руководства на эти
команды.
Доступ к файлам MS-DOS и
выполнение программ MS-DOS - это две
большие разницы. В настоящее время
в процессе разработки находится
эмулятор программ MS-DOS. Он широко
распространен и даже входит в
состав дистрибутива SLS. Доступен он
также и по FTP с многих серверов (см.
приложение C). Эмулятор MS-DOS
достаточно полон для выполнения
большинства DOS программ, включая
Wordperfect. Однако Linux и MS-DOS совершенно
разные операционные системы и
полнота любого MS-DOS эмулятора в
любой UNIX-системе всегда ограничена.
Кроме этого, в настоящее
время разрабатывается в среде X Window
эмулятор Microsoft Windows. Для получения
дополнительной информации
обратитесь к соответствующим
группам новостей и FTP серверам.
Linux поддерживает полный
набор сетевых протоколов TCP/IP (Transport
Control Protocol/Internet Protocol). TCP/IP стал
наиболее успешно используемым
механизмом работы в компьютерных
сетях всего мира. С помощью Linux и
карт Ethernet вы можете связать в
локальную сеть ваши машины или (при
соответствующем подключении) к
Internet - всемирной сети TCP/IP.
Сцепить несколько
UNIX-машин в небольшую локальную сеть
(LAN) просто. Для этого требуется
контроллер Ethernet в каждой машине,
соответствующие кабели и еще
некоторое сопутствующее
оборудование. Или, если ваша фирма
или университет имеют выход в Internet,
вы можете просто к этой сети
подцепиться со своей Linux-машиной.
Текущая реализация TCP/IP и
соответствующие протоколы для Linux
называются ``NET-2''. Это не имеет
отношения к так называемому релизу
NET-2 для BSD UNIX. В данном контексте
``NET-2'' означает вторую реализацию
TCP/IP для Linux.
Linux NET-2 также
поддерживает протокол SLIP (Serial Line
Internet Protocol). SLIP позволяет вам
получить вход в Internet с помощью
модема. Если ваша фирма или
университет имеет выход по SLIP, вы
можете выйти на SLIP-сервер и войти со
своей машины в Internet по телефонной
линии. И наоборот, если ваша
Linux-машина имеет подключение по
Ethernet к Internet, ваш Linux может исполнять
функции SLIP-сервера.
Для получения более
полной информации по установке TCP/IP
под Linux, мы настоятельно советуем
прочитать Linux NET-2 HOWTO, которое
можно получить через FTP с sunsite.unc.edu
.
NET-2 HOWTO - это полное руководство
по конфигурированию TCP/IP, включая
связи по Ethernet и SLIP под Linux. The Linux
Ethernet HOWTO
описывает
конфигурирование (настройку)
различных драйверов карт Ethernet для
Linux. Можно также воспользоваться The
Linux Network Administrator's Guide
из проекта
по документированию Linux - LDP (Linux
Documentation Project). Более подробно про эти
документы смотрите в Приложении A.
Интересна также книга:
Craig Hunt TCP
IP Network Administration/. Она
содержит исчерпывающую информацию
по использованию и настройке TCP/IP
для систем UNIX.
Вы можете использовать
в Linux TCP/IP без какого-то
дополнительного оборудования
режим ``loopback'', позволяющий
разговаривать с самим собой. Это
необходимо для ряда приложений и
игр, использующих механизм ``loopback''.
Но если вы хотите
использовать Linux с сетевой работой
через Ethernet по TCP/IP , вы должны иметь
одну из следующих карт Ethernet: 3com 3c503,
3c503/16; Novell NE1000, NE2000; Western Digital WD8003, WD8013;
Hewlett Packard HP27245, HP27247, HP27250.
Имеется информация, что
и следующие клоны работают: WD-80x3
clones: LANNET LEC-45; NE2000 clones: Alta Combo, Artisoft
LANtastic AE-2, Asante Etherpak 2001/2003, D-Link Ethernet II,
LTC E-NET/16 P/N 8300-200-002, Network Solutions HE-203, SVEC 4
Dimension Ethernet, 4-Dimension FD0490 EtherBoard 16, and D-Link
DE-600, SMC Elite 16.
Дополнительную
информацию по совместимости
аппаратуры Ethernet в Linux можно найти в
"Linux Ethernet HOWTO".
Linux также поддерживает
SLIP, который позволяет использовать
модем для выхода в Internet по
телефонной линии. В этом случае вам
нужен модем, совместимый с вашим
SLIP-сервером - большинство серверов
требует модемы на 14.4bps, V.32bis. (прим.
переводчика: прогресс в модемах
быстрее, чем в компьютерах, поэтому
данные стареют еще быстрее; сейчас
чаще можно услышать про 28.8bps и V.34,
что тоже быстро устаревает).
В этом разделе мы
обсудим, как настраивать связь Ethernet
- TCP/IP на вашей системе. Имейте в
виду, что описываемый метод
(предполагается, что) работает на
многих системах, но, разумеется, не
на всех. Этого обсуждения должно
быть достаточно, чтобы указать вам
правильный путь в настройке
параметров сети на вашей машине. Но
существует множество знаковых и
милых деталей, которые мы здесь
даже не упоминаем. Мы, все-таки
ориентируем вас на Linux Network
Administrators' Guide и NET-2-HOWTO.
Прежде всего, мы
предполагаем, что у вас есть Linux с
инсталлированным TCP/IP. Это включает
основных клиентов, таких как telnet
и ftp
, команды системного
администратора, такие как ifconfig
и route
(обычно находящиеся в /etc
),
и сетевые настроечные файлы (такие
как /etc/hosts
). Другие,
относящиеся к Linux сетевые
документы, указанные выше,
рассказывают, как инсталлировать
сетевые программы Linux, если это еще
не было сделано.
Мы также предполагаем,
что ваше ядро было настроено и
скомпилировано с поддержкой TCP/IP.
Смотрите Раздел 4.7. по поводу
компиляции ядра.
Когда это сделано, вы
должны модифицировать ряд
настроечных файлов, используемых
NET-2. Для большинства это простая
процедура. К сожалению, существует
большое различие между
дистрибутивами Linux относительно
того, где должны размещаться
различные конфигурационные файлы
TCP/IP и поддерживающие программы.
Чаще они могут быть обнаружены в /etc
,
но в других случаях их можно
отыскать в /usr/etc
, /usr/etc/inet
,
/sbin
или в других неожиданных
местах.
В худшем случае вы
будете вынуждены использовать
команду find
для определения
их местоположения в вашей системе.
Имейте также в виду, что не все
дистрибутивы хранят программы и
файлы описания для NET-2 в одном месте
- они могут быть разнесены по
нескольким каталогам.
Следующая информация
относится в первую очередь к связи
по Ethernet. Если вы планируете
использовать SLIP, прочитайте этот
раздел, чтобы понять концепции, а
затем обратитесь к специфическим
для SLIP рекомендациям из
последующего раздел.
Прежде, чем вы сможете
описать (настроить) TCP/IP, вам
необходимо определиться со
следующей информацией
относительно установки сети.
- IP адрес. Это
уникальный адрес машины в
точечно-десятичном формате.
Например, 128.253.153.54. Ваши сетевые
администраторы снабдят вас
таким номером.
Если
вы настраиваете только режим
loopback (т.е. без SLIP, без карт Ethernet,
только связь по TCP/IP внутри
вашей машины) то ваш IP адрес
будет 127.0.0.1.
- Маска вашей сети
(``netmask''). Это
"точкосодержащий"
квартет, похожий на IP адрес,
определяющий, какая часть IP
адреса относится к подсети, а
какая относится к host (главной
машине) этой подсети. (Если вас
шокирует эта сетевая TCP/IP
терминология - советуем
почитать материалы по
управлению сетями).
Сетевая маска есть
набор бит, который, будучи
наложенным на адрес вашей сети,
сообщит, к какой подсети
относится этот адрес. Это очень
важно для маршрутизации (routing),
и если вы обнаружите, например,
что вы можете свободно
общаться с людьми за пределами
вашей сети, но не со своими
соратниками внутри
собственной сети, высока
вероятность того, что вы
неправильно задали маску.
Администраторы
вашей сети должны выбрать
сетевую маску при
проектировании сети, поэтому
они могут сообщить вам
правильную маску. Большинство
сетей принадлежит классу C
подсетей, которые используют
сетевую маску 255.255.255.0. Другой
класс сетей - B использует
255.255.0.0. Программы NET-2
автоматически выберут маску,
которая предполагает
отсутствие подсетей по
умолчанию, поскольку иное вы не
указали явно.
Это применимо
также к порту loopback. Поскольку
адрес порта loopback всегда 127.0.0.1,
сетевая маска для этого порта
всегда 255.0.0.0. Вы можете
задавать это явно или
полагаться на умолчание.
- Адрес вашей сети.
Это ваш IP адрес с наложенной
побитовой сетевой маской.
Например, если ваша сетевая
маска 255.255.255.0, а ваш IP адрес -
128.253.154.32, то адрес вашей сети -
128.253.154.0. А с сетевой маской
255.255.0.0 адрес вашей сети будет
128.253.0.0.
Если вы
используете только loopback, у вас
нет адреса сети.
- Ваш бродкаст (broadcast -
широковещательный) адрес.
Бродкаст адрес используется
для раздачи бродкаст пакетов
на все машины вашей подсети.
Поэтому, если хост-номера
машинам вашей подсети даны по
последним байтам IP-адресов
(сетевая маска 255.255.255.0), ваш
бродкаст адрес будет получен
из вашего сетевого адреса
наложением 0.0.0.255. Например,
если ваш IP адрес 128.253.154.32 и ваша
сетевая маска 255.255.255.0, то ваш
бродкаст адрес 128.253.154.255.
Чисто исторически
сложилось, что некоторые сети
настроены на использование
сетевых адресов как бродкаст
адресов. Если у вас возникнут
сомнения, пообщайтесь с вашим
сетевым администратором. (Во
многих случаях бывает
достаточно продублировать
сетевую настройку других машин
в вашей подсети, заменяя,
разумеется IP адреса).
Если только вы
используете loopback, у вас не
будет бродкаст адреса.
- Ваш шлюзовой (gateway)
адрес. Это адрес машины,
которая для вас является
"шлюзом" во внешний мир
(т.е. к машинам не вашей
подсети). Во многих случаях
шлюзовая машина имеет IP адрес,
идентичный вашему, но с ``.1'' в
качестве хост-адреса; т.е., если
ваш IP адрес 128.253.154.32, ваш шлюз
может быть 128.253.154.1. Ваш
системный администратор даст
вам IP адрес вашего шлюза.
На самом деле, вы
можете иметь несколько шлюзов. Шлюз
- это просто машина, которая
живет одновременно в двух
различных сетях (имеет IP адреса
различных подсетей) и
маршрутизирует пакеты между
ними. Многие сети имеют по
одному шлюзу "во внешний
мир" (к сети, непосредственно
с вашей состыкованной), но в
некоторых случаях у вас может
быть несколько шлюзов в
смежные сети.
Если только вы
пользуетесь loopback, у вас нет
шлюзового адреса. То же самое
имеет место, если у вас
изолированная сеть.
- Адрес вашего
сервера имен (nameserver).
Большинство машин в сети имеют
серверы имен, которые
переводят имена хостов в IP
адреса. Администратор вашей
сети скажет адрес вашего
сервера имен. Вы можете держать
сервер на своей машине,
используя
named
, в этом
случае адрес сервера имен
будет 127.0.0.1. Заводить сервер
имен следует, только если у вас
нет выбора, иначе выберите
кого-то другого в сети, кто
может это обеспечить.
Настройка named
это совсем
другая песня; нам кажется, что
вам на этом этапе лучше
пообщаться с сетью. С именами
вы можете разобраться позже. Если вы единственный
имеете loopback, у вас нет адреса
сервера имен.
Пользователи SLIP:
Вышеприведенная информация может
вам потребоваться, а может и не
потребоваться. Разве что адрес
сервера имен. При использовании SLIP,
ваш IP адрес обычно определяется
одним из двух способов: (a) У вас
"статический" IP адрес, который
не меняется в любое время выхода в
сеть; (b) У вас "динамический"
адрес, который берется из пула
доступных адресов, когда вы
связываетесь с сервером. В
следующем разделе, посвященном
настройке SLIP, это рассматривается
более детально.
NET-2 поддерживает
полную маршрутизацию,
множественность маршрутов,
обслуживание подсети (на этом этапе
только в пределах байта). Выше
описывались основные настройки
TCP/IP. Ваши могут быть совсем другими:
если есть сомнения,
проконсультируйтесь у местных гуру
из соседних сетей и посмотрите
страницы Руководства про route и ifconfig.
Настройка TCP/IP выходит далеко за
рамки этой книги; вышенаписанного
может быть достаточно большинству
людей для начала.
rc
-файлы широко
используемые в системе сценарии,
выполняемые во время загрузки
программой by init
, которая
запускает всех основных системных
демонов (таких как sendmail
, cron
,
и т.п.) и настраивает такие вещи, как
сетевые параметры, системное
хост-имя и т.п. rc-файлы обычно
находятся в каталоге /etc/rc.d
,
но в других системах они могут быть
в /etc
.
Здесь мы собираемся
описать rc-файлы, используемые при
настройке TCP/IP. Файлов два: rc.inet1
и rc.inet2
. rc.inet1
используется для настройки базовых
сетевых параметров (таких как IP
адреса и маршрутизация) и rc.inet2
запускает TCP/IP демонов (telnetd
, tftpd
и т.д.).
Многие системы
объединяют оба этих файла в один,
обычно называемый rc.inet
или rc.net
.
Имена, данные вашим rc-файлам роли не
играют, лишь бы они выполняли
нужные функции и выполнялись во
время загрузки программой init
.
Чтобы это обеспечить, возможно вам
потребуется подредактировать /etc/inittab
, чтобы выполнить
соответствующие rc-файлы. В худшем
случае вам придется создать rc.inet1
и rc.inet2
файлы заново и
добавить информацию из /etc/inittab
.
Как мы говорили, rc.inet1
настраивает базовый сетевой
интерфейс. Это включает ваше IP,
сетевой адрес и таблицу
маршрутизации (routing table) для вашей
сети. Таблицы маршрутизации
используются для маршрутизации
входящих и исходящих сетевых
дейтаграм (datagrams) на другие машины.
Во многих простых настройках вы
имеете три маршрута: один - для
посылки пакетов своей собственной
машине, другой - для посылки пакетов
на другие машины вашей сети, третий
- для посылки пакетов на машины,
находящиеся за пределами вашей
сети (через шлюзовую машину). Есть
две программы для настройки этих
параметров: ifconfig
и route
.
Обе обычно находятся в /etc
или /sbin
.
ifconfig
используется для настройки
интерфейса устройств сети с
необходимыми для функций
параметрами, такими как IP адрес,
маска сети, бродкаст адрес и т п. route
используется для создания и
модификации таблицы маршрутизации.
Для многих случаев
файл rc.inet1
подойдет в том
виде, в каком он здесь приведен. Вы,
разумеется, должны будете
отредактировать его под свою
систему. Не используйте без
изменения IP и сетевой адреса,
приведенные здесь в качестве
примера, они соответствуют
действительной машине в Internet.
#!/bin/sh
# This is /etc/rc.d/rc.inet1 -- Configure the TCP/IP interfaces
# First, configure the loopback device
HOSTNAME=`hostname`
/etc/ifconfig lo 127.0.0.1 # uses default netmask 255.0.0.0
/etc/route add 127.0.0.1 # a route to point to the loopback device
# Next, configure the ethernet device. If you're only using
# loopback or SLIP, comment out the rest of these lines.
# Edit for your setup.
IPADDR="128.253.154.32" # REPLACE with YOUR IP address
NETMASK="255.255.255.0" # REPLACE with YOUR netmask
NETWORK="128.253.154.0" # REPLACE with YOUR network address
BROADCAST="128.253.154.255" # REPLACE with YOUR broadcast address,
# if you have one. If not, leave blank
# and edit below.
GATEWAY="128.253.154.1" # REPLACE with YOUR gateway address!
/etc/ifconfig eth0 ${IPADDR} netmask ${NETMASK} broadcast ${BROADCAST}
# If you don't have a broadcast address, change the above line to:
# /etc/ifconfig eth0 ${IPADDR} netmask ${NETMASK}
/etc/route add ${NETWORK}
# The following is only necessary if you have a gateway; that is,
# your network is connected to the outside world.
/etc/route add default gw ${GATEWAY} metric 1
# End of Ethernet Configuration
Может вам придется
немного поковырять этот файл, чтобы
заставить работать. Этот сценарий
должен подходить для настройки
большинства простых сетей, но,
разумеется, не для всех.
rc.inet2
запускает
различные сервера, используемые
TCP/IP. Наиболее важный среди них - inetd
.
inetd
сидит в фоне и
присматривает за различными
сетевыми портами. Когда машина
пытается связаться с конкретным
портом (например, со входным портом
telnet), inetd
создает новую копию
соответствующего демона для этого
порта (в случае порта telnet inetd
запускает in.telnetd
). Это проще,
чем выполнять много независимых
демонов (т.е. индивидуальных копий telnetd
,
ftpd
и т.п.) - inetd
запускает демонов только при
возникновении необходимости.
syslogd
- это
системный демон входа - он
аккумулирует сообщения о входе от
различных источников и помещает их
в log-файлы, зависящие от настройки /etc/syslogd.conf
.
routed
- это сервер
используемый для сопровождения
динамической информации по
маршрутизации. Когда ваша система
пытается послать пакет в другую
сеть, это может потребовать
дополнительных записей в таблицу
маршрутизации, чтобы это выполнить.
routed
заботится о
сопровождении таблицы
маршрутизации без необходимости
вмешательства человека.
Приведенный ниже
пример rc.inet2
запускает лишь
самый минимум серверов. Есть и
другие серверы - многие из которых
обслуживают настройки NFS. Пытаясь
установить TCP/IP на вашей системе,
обычно лучше всего начать с
минимальной конфигурации и
добавлять более сложные куски,
(такие, как NFS), когда у вас уже что-то
работает.
Обратите внимание, что
в нижеприведенном файле мы
предполагаем, что все сетевые
демоны находятся в /etc
. Ну и
как обычно отредактируйте этот
файл под свою конфигурацию.
#! /bin/sh
# Sample /etc/rc.d/rc.inet2
# Start syslogd
if [ -f /etc/syslogd ]
then
/etc/syslogd
fi
# Start inetd
if [ -f /etc/inetd ]
then
/etc/inetd
fi
# Start routed
if [ -f /etc/routed ]
then
/etc/routed -q
fi
# Done!
Среди многих
дополнительных серверов, которые
вы можете запустить в rc.inet2
- named
.
named
- это сервер имен. Он
отвечает за перевод (локальных) IP
адресов в имена и наоборот. Если у
вас где-нибудь в сети нет сервера
имен или вы сами хотите снабжать
локальными именами машин другие
машины вашего домена,
использование named необходимо. (Но
для большинства случаев в этом нет
необходимости). Настройка named
достаточно сложна и требует
предварительного планирования. Мы
отсылаем заинтересованных
читателей к хорошим книгам по TCP/IP.
/etc/hosts
содержит
перечень IP адресов и имен хостов,
которым они соответствуют. В общем, /etc/hosts
содержат только записи для вашей
локальной машины и, возможно,
других "важных" машин (таких
как сервер имен или шлюз). Перевод
имя - адрес для других машин сети
обеспечивает сервер имен.
Например, если ваша
машина называется loomer.vpizza.com
и имеет IP адрес 128.253.154.32, ваш /etc/hosts
будет выглядеть как:
127.0.0.1 localhost
128.253.154.32 loomer.vpizza.com loomer
Если вы используете
только loopback, единственная строка в /etc/hosts
должна быть для 127.0.0.1 с именами localhost
и хост-именем вашей машины.
Файл /etc/networks содержит
ваши имена и адреса, а также других
сетей. Он используется командой route
и позволяет описывать сеть именами,
если вы это захотите.
Всякая сеть, которую вы
хотите добавить в маршрутизацию с
использованием команды route (обычно
вызываемой из rc.inet1
) должна
иметь запись в /etc/networks
.
Пример.
default 0.0.0.0 # default route - mandatory
loopnet 127.0.0.0 # loopback network - mandatory
mynet 128.253.154.0 # Modify for your own network address
Чтобы обратиться к
машине по домену, система должна
определить ее физический адрес
(IP-адрес). Система делает это либо
находя соответствующий домен в
файле /etc/hosts
(см.
руководство), либо обращаясь к
специальным серверам, называемым
серверами имен (nameserver). Файл /etc/host.conf
задает Этот файл используется для
описания порядка просмотра этих
возможностей.
order hosts,bind
multi on
Эти строки указывают
библиотекам разрешения вначале
искать в файле /etc/hosts
требуемый домен, а потом обратиться
к серверу имен (если таковой
имеется). Строка multi
допускает множество IP адресов для
одного имени машины в /etc/hosts
.
Этот файл настраивает
программы определения физического
IP-адреса по домену машины, указывая
IP-адрес вашего сервера имен и имя
вашего домена. Имя вашего домена,
это доменный адрес вашей машины в
сети, с отброшенным именем машины.
Так например, если ваше полное
хост-имя loomer.vpizza.com
, то имя
вашего домена просто vpizza.com
.
Например, если ваша
машина goober.norelco.com
и имеет
сервер имен с адресом 128.253.154.5, ваш /etc/resolv.conf
будет выглядеть:
domain norelco.com
nameserver 127.253.154.5
Вы можете описать
более одного сервера имен - каждый
должен иметь свою строку в resolv.conf
.
Хост-имя
устанавливается с помощью команды hostname
.
Она обычно вызывается из /etc/rc
или /etc/rc.local
; просто
просмотрите свои системные rc-файлы,
откуда вызывается. Например, если
ваше (полное) хост-имя loomer.vpizza.com,
отредактируйте соответствующий
rc-файл, выполнив команду:
/bin/hostname loomer.vpizza.com
Обратите внимание, что
команды hostname
может не
оказаться в /bin.
После того, как вы
установили все эти файлы, вы должны
быть готовы перезагрузить новое
ядро и попытаться обрадоваться
работающей сети. Правда, существует
слишком много мест, где могут
спрятаться ошибки, так что разумным
будет проверить отдельные аспекты
настройки сети (например, не самая
хорошая идея для тестирования сети
сразу шарахнуть по ней с помощью
Mosaic с X-протоколом поверх IP). (прим.
переводчика: сегодня бы автор
вспомнил про Netscape)
Вы можете использовать
команду netstat
, чтобы
посмотреть таблицы маршрутизации;
это обычно источник большинства
неприятностей. Руководство по netstat
описывает точный синтаксис этой
команды в деталях. Для того, чтобы
проверить связи в сети, мы
предлагаем использовать клиента,
такого, как telnet
, чтобы
связать машины вашей локальной
подсети и внешней сети. Это
позволит локализовать ошибки.
(Например, если вы не можете
связаться с локальной машиной, но
связываетесь с машинами других
сетей, скорее всего есть проблема с
сетевой маской и настройкой
таблицы маршрутизации). Вы можете
также прямо вызвать команду route
(под root
)
поэкспериментировать с записями
таблицы маршрутизации.
Вам следует также
проверить связи в сети прямо
указывая IP адреса вместо хост-имен.
Например, если у вас есть проблемы с
командой
$ telnet shoop.vpizza.com
Причина может быть в
некорректной настройке сервера
имен. Попытайтесь использовать
физический IP адрес машины; если это
поможет, тогда вы будете знать, что
ваши основные сетевые установки
(скорее всего) правильны и проблема
лежит в описании адреса сервера
имен.
Отладка сетевых
настроек может быть трудной
задачей и мы не можем здесь
втягиваться в ее обсуждение. Если
вы не можете получить помощь от
местных гуру, мы очень вам советуем
почитать Linux Network Administrators' Guide
из LDP.
SLIP (Serial Line Internet Protocol)
позволяет использовать TCP/IP на
последовательных линиях, будь то
коммутируемая телефонная линия с
модемом или выделенная асинхронная
линия. Разумеется, для
использования SLIP вам необходим
доступ к SLIP-серверу. Многие
университеты и фирмы за умеренную
плату предоставляют SLIP-вход.
Есть две основные
программы, использующие SLIP: dip
и slattach
. Обе эти программы
используются для установления
SLIP-соединения через
последовательные устройства.
Необходимо использовать одну из
этих программ, чтобы
активизировать SLIP, недостаточно
просто дозвониться до SLIP-сервера (с
помощью коммуникационной
программы вроде kermit
) и
запустить команды ifconfig
и route
,
так как dip
и slattach
формируют специальный системный
вызов ioctl()
, чтобы
перехватить управление
последовательным устройством для
реализации SLIP-интерфейса.
Dip может произвести
дозвонку до SLIP-сервера, обеспечить
соединение (handshaking) и войти на
сервер (указав например, имя и
пароль), а затем инициировать
SLIP-соединение по последовательной
линии. slattach же не делает ничего,
кроме захвата устройства для
использования его SLIP. Это полезно,
если вы имеете постоянную линию для
SLIP-сервера и нет необходимости в
дозвонке и соединении для
обеспечения связи. Но большинство
пользователей предпочитает
использовать dip
.
Dip можно также
использовать для настройки вашей
системы Linux в качестве SLIP-сервера,
когда другие машины к вам
дозваниваются и выходят в сеть
через вторичное соединение по Ethernet
на вашей машине. Дополнительную
информацию по этой процедуре
смотрите в Руководстве на dip.
SLIP весьма отличается от
Ethernet, в нем только две машины в
"сети" SLIP-хост (это вы) и
SLIP-сервер. По этой причине SLIP часто
воспринимается как связь ``point-to-point''
(от точки до точки). Обобщение этой
идеи, известное как PPP (Point to Point Protocol)
также реализовано в Linux.
Когда вы инициируете
связь со SLIP-сервером, SLIP-сервер даст
вам IP адрес. Некоторые SLIP-серверы
выдают "статические" IP адреса -
в этом случае ваш IP адрес будет тот
же самый всегда, когда вы
связываетесь с сервером. Но
большинство SLIP-серверов выдают IP
адреса динамически, когда при
каждой связи вы получаете IP адрес
заново. В общем случае SLIP-сервер
сообщит вам при установлении связи
ваш IP адрес и адрес шлюза. dip
способен читать эти значения при
входе на SLIP-сервер и использовать
их для настройки самого SLIP.
Существенное замечание.
Настройка связи по SLIP похожа на
настройку loopback или ethernet. Основные
отличия обсуждаются ниже.
Прочитайте предыдущий раздел про
настройку базовых файлов TCP/IP, и
выполните изменения, описанные
ниже.
Если вы используете
SLIP-сервер, выдающий статические IP
адреса, вы можете включить записи о
ваших IP адресе и хост-имени в /etc/hosts
.
А также настроить файлы,
перечисленные в предыдущем
разделе: rc.inet2
, host.conf
и resolv.conf
.
Также настроить rc.inet1
, как
описано выше. Если вы используете
для связи со SLIP-сервером dip
,
то в файле rc.inet1
для
последовательного порта команды ifconfig
и route
вызывать не надо, dip
вызовет эти команды после
установления соединения. (Если же
вы, используете slattach
, вам
будет необходимо включить команды ifconfig
и route в rc.inet1
для SLIP - смотрите
ниже).
dip
должен
настраивать соответствующим
образом таблицы маршрутизации для
SLIP когда вы связываетесь. Однако, в
некоторых случаях поведение dip
может быть неправильным для ваших
настроек и вам надо будет вручную
выполнять команды ifconfig
или route
после того, как dip
свяжется с
сервером (это легче всего сделать
из сценария shell, который содержит
вызов dip
, и немедленно
выполнить соответствующие команды
настройки). Ваш шлюз, это в
большинстве случаев адрес
SLIP-сервера. Вы можете знать этот
адрес заранее или адрес шлюза будет
выведен SLIP-сервером при
установлении связи. Сценарий
работы dip
(описанный ниже)
может также получать эту
информацию от SLIP-сервера.
ifconfig может потребовать
аргумента "pointopoint", если dip
не настроил правильно интерфейс.
Например, если адрес вашего
SLIP-сервера 128.253.154.2, а ваш IP-адрес
128.253.154.32, вам может потребоваться
выполнить команду под root
ifconfig sl0 128.253.154.32 pointopoint 128.253.154.2
после связи по dip.
Обратите внимание, что
имена SLIP-устройств, используемые
командами ifconfig
и route
- sl0
,
sl1
и т.д.
В Разделе 5.3.4 мы
объясним, как настраивать dip
для связи со SLIP-сервером.
Если у вас выделенная
линия или кабель, идущий прямо к
SLIP-серверу, то нет необходимости
использовать dip
для
инициализации связи. Вместо этого
может быть использована команда slattach
.
В этом случае ваш файл /etc/rc.inet1
должен выглядеть примерно так:
#!/bin/sh
IPADDR="128.253.154.32" # Replace with your IP address
REMADDR="128.253.154.2" # Replace with your SLIP server address
# Modify the following for the appropriate serial device for
# the SLIP connection:
slattach -p cslip -s 19200 /dev/ttyS0
/etc/ifconfig sl0 $IPADDR pointopoint $REMADDR up
/etc/route add default gw $REMADDR
slattach
выделяет
первое свободное SLIP-устройство (sl0
,
sl1
, и т.д.) определенной
последовательной линии.
Обратите внимание, что
первый параметр команды slattach
- это используемый SLIP-протокол. В
настоящее время возможны только
значения slip
и cslip
. slip
- это обычный SLIP, как и следовало
ожидать, а cslip
- это SLIP с
компрессией заголовков дейтаграмм.
В большинстве случаев вам следует
использовать cslip
; однако,
если у вас с ним возникают проблемы,
попробуйте slip
.
Если у вас более одного
SLIP-интерфейса, то вы должны принять
решения относительно
маршрутизации. Вы должны решить,
какие маршруты добавить, и эти
решения могут быть сделаны только
на базе действительного протокола
связей вашей сети. Здесь вам могут
помочь, как книга по TCP/IP, так и
Руководство.
Если ваш SLIP-сервер
выдает IP адреса динамически, то вы,
разумеется, не знаете заранее свой
адрес, поэтому вы не можете
включить его в /etc/hosts
. (Между
тем вы должны включить запись для
своего хоста с адресом обратной
связи (loopback address) 127.0.0.1.)
Многие SLIP-сервера
выдают ваш IP адрес (также как и
адрес сервера) во время соединения.
Например, один тип SLIP-сервера
выдает такое сообщение:
Your IP address is 128.253.154.44.
Server address is 128.253.154.2.
dip
может
перехватить эти номера с выхода
сервера и использовать их для
настройки SLIP-устройств.
Смотрите выше Раздел
5.3.3.1 относительно информации по
настройке различных файлов для TCP/IP
при использовании SLIP. Ниже мы
объясняем, как настраивать dip
для связи со SLIP-сервером.
dip
может
упростить процесс соединения со
SLIP-сервером, войти и настроить
SLIP-устройства. Если только у вас не
выделенная линия для SLIP-сервера, dip
- это то, что вам надо.
Для использования dip
вы должны написать "сценарий
болтовни" (``chat script''), который
содержит перечень команд,
используемых для связи со
SLIP-сервером при входе в систему. Эти
команды могут автоматически
посылать ваши имя/пароль серверу, а
также получать информацию о вашем IP
адресе с сервера.
Вот пример такого
сценария для использования с
сервером динамических IP адресов.
Для статических серверов вам
потребуется в начале сценария
установить значения переменных $local
и $remote
. В соответствии с
вашими локальным IP адресом и
адресом сервера соответственно.
Более детальную информацию можно
получить в Руководстве на dip
.
main:
# Set Maximum Transfer Unit. This is the maximum size of packets
# transmitted on the SLIP device. Many SLIP servers use either
# 1500 or 1006; check with your network admins when in doubt.
get $mtu 1500
# Make the SLIP route the default route on your system.
default
# Set the desired serial port and speed.
port cua03
speed 38400
# Reset the modem and terminal line. If this causes trouble
# for you, comment it out.
reset
# Prepare for dialing. Replace the following with your
# modem initialization string.
send AT&C1&D2\\N3&Q5%M3%C1N1W1L1S48=7\r
wait OK 2
if $errlvl != 0 goto error
# Dial the SLIP server
dial 2546000
if $errlvl != 0 goto error
wait CONNECT 60
if $errlvl != 0 goto error
# We are connected. Login to the system.
login:
sleep 3
send \r\n\r\n
# Wait for the login prompt
wait login: 10
if $errlvl != 0 goto error
# Send your username
send USERNAME\n
# Wait for password prompt
wait ord: 5
if $errlvl != 0 goto error
# Send password.
send PASSWORD\n
# Wait for SLIP server ready prompt
wait annex: 30
if $errlvl != 0 goto error
# Send commands to SLIP server to initate connection.
send slip\n
wait Annex 30
# Get the remote IP address from the SLIP server. The
# `get...remote' command reads text in the form xxx.xxx.xxx.xxx,
# and assigns it to the variable given as the second argument
# (here, $remote).
get $remote remote
if $errlvl != 0 goto error
wait Your 30
# Get local IP address from SLIP server, assign to variable
# $local.
get $local remote
if $errlvl != 0 goto error
# Fire up the SLIP connection
done:
print CONNECTED to $remote at $rmtip
print GATEWAY address $rmtip
print LOCAL address $local
mode SLIP
goto exit
error:
print SLIP to $remote failed.
exit:
dip
автоматически
выполняет команды ifconfig
и route
,
базирующиеся на значениях
переменных $local
и $remote
.
Здесь этим переменным
присваиваются значения с
использованием удаленных команд get...
,
которые получают текст со
SLIP-сервера и присваивают его
названной переменной.
Если команды ifconfig
и route
, которые выполняет для
вас dip
не работают, вы можете
либо выполнить правильные команды
в сценарии shell после выполнения dip
,
либо модифицировать исходник для
самого dip
. Выполнение dip
с опцией -v
будет выдавать
отладочную информацию в процессе
установления связи, что должно
помочь в определении ошибок в
работе. Теперь, для того, чтобы
выполнить dip
и открыть
SLIP-соединение вы можете
использовать команду, вроде:
/etc/dip/dip -v /etc/dip/mychat 2>&1
Где различные dip-файлы и
сценарий болтовни (mychat.dip
)
помещены в /etc/dip
.
Вышеприведенное обсуждение должно
быть достаточным для вашего
хорошего самочувствия на славном
пути в сетевое сообщество через
Ethernet или SLIP. И вновь мы настоятельно
рекомендуем заглянуть в книгу по
TCP/IP, особенно, если ваша сеть имеет
специфику в маршрутизации,
отличающую ее от рассмотренных
здесь.
UUCP (UNIX-to-UNIX Copy) - старейший
механизм, используемый для
передачи информации между
системами UNIX. При использовании UUCP,
системы UNIX созваниваются друг с
другом (используя модем) и передают
почтовые сообщения, новости, файлы
и т.п. Если у вас нет TCP/IP или SLIP
доступа, вы можете использовать для
связи с миром UUCP. Большая часть
программ, связанных с почтой и
новостями (смотрите Разделы 5.5 и 5.6)
может быть настроена на
использование UUCP для передачи
информации на другие машины.
Действительно, если поблизости
есть узел Internet, вы можете иметь
доступ к почте Internet, получая ее с
узла по UUCP.
Книга Linux Network Administrator's
Guide содержит исчерпывающую
информацию по настройке и
использованию UUCP под Linux. Кроме
того, по anonymous FTP sunsite.unc.edu
,
доступна Linux UUCP HOWTO, которая
может быть весьма полезна. Другой
источник информации по UUCP - книга Tim
O'Reilly и Grace Todino Managing UUCP and USENET.
Дополнительно смотрите Приложение
A.
Как и множество систем
UNIX, Linux имеет несколько программных
пакетов для использования
электронной почты. E-mail (электронная
почта) на вашей системе может быть
либо локальная (то есть вы можете
обмениваться почтой с другими
пользователями вашей системы) или
сетевая (то есть вы посылаете почту,
используя либо TCP/IP, либо UUCP, другим
пользователям). Программы e-mail
обычно состоят из двух частей: мэйлер
и транспорт. Мэйлер - это
программы пользовательского
уровня, которые используются для
формирования и чтения почтовых
сообщений. Популярные мэйлеры
включают elm
и mailx
.
Транспорт - это программы
системного уровня, которые
отвечают за доставку почты, как
локальной, так и удаленной.
Пользователь никогда не видит
программы "транспорт"; они
взаимодействуют только с мэйлером.
Но, назвавшись системным
администратором, человек должен
понимать концепции программ
"транспорта" и как их
настраивать.
Наиболее популярная
транспортная программа для Linux - это
Smail
. Эту программу просто
настраивать. Она может посылать
e-mail, локально и удаленно по TCP/IP и по
UUCP. Yf В большинстве систем UNIX
используется более мощная
программа sendmail
, однако, из-за
сложного механизма установки,
многие системы Linux ее не используют.
Linux Mail HOWTO дает
больше информации относительно
доступных почтовых программ для Linux
и как их настраивать. Если вы
планируете послать почту
удаленному пользователю, вы должны
понимать либо TCP/IP или UUCP, в
зависимости от того, каким образом
ваша машина подключена в сеть
(смотри Разделы 5.3 и 5.4). Может быть
полезной документация по UUCP и TCP/IP,
перечисленная в Приложении А.
Большинство почтовых
программ можно достать через anonymous
FTP с sunsite.unc.edu
в каталоге /pub/Linux/system/Mail
.
Linux также обеспечивает
ряд возможностей для работы с
электронными новостями. При
желании вы можете установить на
вашей системе локальный сервер
новостей, который позволит вам
посылать "статьи" (``articles'') в
различные "группы новостей"
(``newsgroups'')... Удобная форма
организации обсуждений. А если вы
имеете выход по TCP/IP или UUCP в сеть,
тогда вы будете в состоянии
участвовать в USENET - всемирной сети
новостей.
Программы новостей
состоят из двух частей - сервера
и клиента. Сервер новостей
- это программа, которая управляет
группами новостей и занимается
доставкой писем другим машинам
(если вы в сети). Клиент новостей ( newsreader)
это программа, которая связывает с
сервером, который позволяет
пользователям получать и посылать
новости.
Для Linux есть несколько
серверов новостей. Они все имеют
одни базовые протоколы и принципы.
Две первые версии, это ``C News'' и ``INN''.
Существует также много типов
"читалок" новостей (newsreaders),
например rn
и tin
. Выбор
читалки в той или иной мере дело
вкуса. Все читалки работают
одинаково с различными версиями
серверных программ. Так что читалка
независима от сервера и наоборот.
Если вы хотите лишь вести
локальные новости (а не как часть
USENET), то вам потребуется завести
сервер на своей системе, а также
инсталлировать читалку для
пользователей. Сервер новостей
будет хранить статьи в каталоге,
например /usr/spool/news
, а читалка
будет их просматривать в поисках
поступивших новостей.
Если вы захотите вести
сетевые новости, вам
предоставляется несколько
возможностей. Новости,
базирующиеся на сетевом TCP/IP,
используют протокол, известный как
NNTP (Network News Transmission Protocol). NNTP
позволяет читалке читать новости
прямо удаленно по сети. NNTP также
позволяет серверам новостей
посылать по сети статьи друг другу,
это программа, на которой
базируется USENET. Большинство фирм и
университетов имеют один или более
NNTP-серверов, установленных для
работы со всеми новостями USENET
данного узла. Каждая вторая машина
на узле имеет базирующуюся на NNTP
читалку для чтения и посылки
новостей по сети через NNTP- сервер.
Это означает, что только NNTP-сервер
действительно хранит новости на
диске.
Далее следует несколько
сценариев настройки новостей.
Темная сторона многих
серверов новостей и читалок
заключается в том, что они должны
собираться вручную. Большинство
программного обеспечения новостей
не использует файлы настройки.
Вместо этого опции настройки
определяются при компиляции.
Большинство
"стандартных" программ
новостей (доступных через anonymous FTP с
сервера ftp.uu.net
каталог /news
)
- готовые для компиляции
полуфабрикаты. Необходимые
изменения (patches) можно найти на sunsite.unc.edu
в /pub/Linux/system/Mail
(который,
совершенно случайно, находится там
же, где Linux). Другие бинарные файлы
программ новостей для Linux можно
также найти в этом каталоге.
За дополнительной
информацией обращайтесь к Linux News
HOWTO на sunsite.unc.edu
в /pub/Linux/docs/HOWTO
.
Кроме того, входящий в проект LDP Linux
Network Administrator's Guide содержит
исчерпывающую информацию по
настройке программ новостей для
Linux. Книга Tim O'Reilly и Grace Todino Managing UUCP
and Usenet замечательное руководство
по установке UUCP и программ
новостей. Представляет интерес и
документ USENET ``How to become a USENET site'',
доступный на ftp.uu.net
, в
каталоге /usenet/news.announce.newusers
.
Предыдущая
глава | Содержание |
Следующая глава