Linux mini-HOWTO

         

Будущее


Существует одна проблема с письмами, посланными таким способом - у них будет заголовок группы новостей. Эта проблема в принципе не доставляет много неприятностей. Было бы неплохо, если бы существовала программа, которая их перехватывает и исправляет заголовки до того, как сообщения отосланы.



Если вам не удалось это сделать...


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



Как это работает


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



Как приобрести mail2news


Вы можете скачать архив mail2news вместе со скриптом и этим HOWTO с

http://www.netizen.com.au/~bekj/code/mail2news/



Mail2News Mini-Howto


Bek Oberin
bekj@netizen.com.au


Перевод: Александр Ермолаев, ASPLinux

Этот документ описывает, как настроить ваш сервер новостей и программу mail2news.





Настройка групп новостей и сервера новостей (innd)


Создайте группы новостей на вашем сервере используя ctlinnd. Помните, что это местные группы новостей, поэтому дайте им определенные названия, для того, чтобы их в последствии можно было фильтровать.

Так же innd должен быть "уведомлен" о том, что группа модерируется (при помощи ctlinnd). Помните, что innd очень придирчиво относится к правам владения файлом и доступу к нему, поэтому вам необходимо обращаться с innd как пользователю новостей. Указание на то что группа модерируется, делается указанием ключа m в команде newgroup.

ctlinnd newgroup lists.jokes m

Ключ m указывает innd, что группа модерируется.

Отредактируйте файл newsfeeds так, чтобы имена групп не повторялись.

Например, если ваш список рассылки называется local.site.group, то вам лучше добавить во второе поле входящего (и возможно исходящего) потока строку !local*.

Теперь для того чтобы сообщения пользователей посылаются автоматически демоном innd, отредактируйте /etc/news/moderators путем включения строки в которой указан адрес списка рассылки модератора.

lists.jokes:jokes@netizen.com.au



Настройка mail2news


Скопируйте скрипт mail2news в удобное место. Лучше в /usr/local/bin.

Теперь вам нужно его отредактировать следующим способом:

удостоверьтесь, что в начале скрипта у вас идет ссылка на местную программу Perl. Вы можеет выяснить где находится Perl, написав в командной строке 'whereis perl' или 'which perl'. Если вы не смогли ее найти, то посмотрите в /usr/bin/perl это самое удобное место для размещения:

#!/usr/bin/perl # укажите реальное расположение perl

Отредактируйте нижеследующую часть в соответствии с местонахождением почтовой программы (я использую rnews, inews тоже будет работать) и хоста с новостями:

# $inews = "/usr/bin/inews"; # $iopts = "-h -o \"mail2news gateway\""; $inews = "/usr/bin/rnews"; $iopts = ""; $postinghost = "your.news.server"; # points at your news server

Удостоверьтесь, что скрипт запускаем:

chmod 755 /usr/local/bin/mail2news



Почта, получаемая по списку рассылки


Когда сообщение из списка рассылки поступает на вашу машину, procmail показывает, к какой группе новостей оно принадлежит, и передает его в управление mail2news.

Скрипт mail2news обрабатывает это сообщение, прилагает к нему заголовок и затем, при помощи rnews или inews, отсылает его в местную группу новостей.



Procmail


Файл настройки procmail находится в /.procmailrc. Если у вас нет файла procmailrc, то создайте его.

Сделайте запись для каждого списка рассылки которые поступают на ваш локальный сервер новостей. Обычно это срабатывает, кроме случаев, когда все рассылается с использованием Bcc (невидимые копии).

Например, если ваш список рассылки 'jokes@netizen.com.au' и вы хотите чтобы группа новостей называлась 'lists.jokes', то ваша запись будет выглядеть следующим образом:

:0 * TOjokes@netizen.com.au |/usr/local/bin/mail2news lists.jokes

Заметьте, что между 'TO' и адресом во второй строке нет пробела.

Вам понадобится поместить пустую строку между строками для каждой группы новостей. Сделайте столько записей, сколько вам понадобится, используя 3 строки для каждой группы, но изменяя адрес и группы название новостей.



Сообщения приходящие в местную группу новостей


Местная группа новостей является модерируемой (сообщения кем-то фильтруются), что позволяет воспользоваться преимуществами innd. Любое сообщение, посланное в местную группу новостей, не сразу попадают в группу. Они посылаются сначала модератору группы.

Если мы заменим модератора группы новостей на список рассылки, то все местные сообщения в группу новостей будут автоматически выкладываться в группу новостей демоном innd.



Почему иногда бывает нужно выкладывать


Почему иногда бывает нужно выкладывать новости, на которые вы подписались в местную группу новостей?
Потому что, другие тоже могут на них подписаться, и, в результате получится, что все будут качать одно и то же. А при подписке вашего сайта на новости (или что-то другое), вы можете предоставить доступ к этим новостям всем пользователям сайта или при помощи системы безопасности, наоборот, ограничить доступ к ним некоторым пользователям.
При прочтении всей почты, при помощи программы для чтения новостей вы можете поставить приоритеты и игнорирование. При этом вы сохраняете свой ящик более доступным для важных и срочных сообщений.
Это mini-HOWTO описывает создание скрипта для 'mail2news'.

Добавление задержки при доставке


Часто бывает полезным установить некоторую задержку при доставке почты на время набора номера и установления соединения. Это означает, что, если sendmail пытается установить соединение, но получает отказ, так как связь еще не установилась, то он будет ждать некоторое время, а затем пытаться вновь.


Непосредственное конфигурирование sendmail.cf

Где-то в вашем sendmail.cf должна быть строка, похожая на эту:

#O DialDelay=10s

(или очень похожая). Удалите символ "#". Если этого символа уже нет, то значит все в порядке (видимо Вы сделали это ранее).

Если же нет ничего похожего на эту строку, то сами вставьте ее (лучше всего сделать это в разделе "options"):

O DialDelay=10s

А сейчас измените значение "10s" на значение, которое Вы считаете подходящим.


Конфигурирование sendmail.cf, при помощи m4-файлов

Добавьте следующую строку в файл /usr/src/sendmail-8.8.7/cf/cf/имя_вашей_машины.smtp.mc:

define(`confDIAL_DELAY',`10s')

А теперь измените значение"10s" на значение, которое Вы считаете подходящим.

Файл sendmail.cf будет построен автоматически с использованием специальных команд. Сохраните старую версию /etc/sendmail.cf перед тем, как устанавливать новую:

cp /etc/sendmail.cf /etc/sendmail.cf.bak cd /usr/src/sendmail-8.8.7/cf/cf m4 yourhostname.smtp.mc > /etc/sendmail.cf



Доставка e-mail


E-Mail может быть доставлена непосредственно с использованием команды "sendmail -q". Для тех, кому интересно, что при этом происходит, используйте "sendmail -q -v", и вы получите больше информации об этом процессе.

Очень удобно автоматизировать этот процесс. Для этого используется cron.



Как доставить почту в определенное время.


Отредактируйте ваш crontab:

crontab -e

Добавьте в него строки следующего формата:

05 18-23,0-7 * * Mon,Tue,Wed,Thu,Fri /usr/sbin/sendmail -q 05 * * * Sat,Sun /usr/sbin/sendmail -q

Пожалуйста, обратитесь руководству по crontab (man 5 crontab) для более подробной информации. Мне кажется, что формат довольно очевиден. Данный пример записи посылает почту (если, и еще раз если, она находится в очереди) в 5 минут некоторых часов из определенных дней недели, начиная в 18:05 и заканчивая в 7:05. В выходные, e-mail отправляется в 5 минут каждого часа, начиная в 0:05 субботы и заканчивая в 23:05 воскресенья.

Поскольку вызов осуществляется по требованию, желательно заодно иметь систему, которая забирает почту через POP3 протокол в определенное время дня. Вы можете добавить в crontab следующее:

0 21 * * * popclient -3 -u -p -o /var/spool/mail/

Конечно, все это обязательно должно быть в одной строке.

Затем сохраните файл и выйдите из редактора. Crontab запомнит все изменения.



Конфигурирование sendmail


Серьезные пользователи sendmail для этой задачи используют файлы m4. Я рекомендую это решение, если в ваши планы входит последующее расширение (изменение) функциональности sendmail, а также все нетривиальные изменения sendmail.cf.

Если Вы никогда не собираетесь менять настройку sendmail для изменения заголовков писем, при том, что IP - адрес выделяется для Вас динамически или что-то в этом духе, то использование файлов m4 может быть для Вас необязательным.


Непосредственное конфигурирование sendmail.cf для простых конфигураций

Этот способ - экстремальный, по сравнению с использованием M4. Следующее решение работает только для sendmail-8.8.x.

Редактируем /etc/sendmail.cf:



Конфигурирование sendmail.cf


По причинам, описанным в [1.2], я рекомендую изменять m4 файлы, вместо непосредственного редактирования sendmail.cf. Это сэкономит много нервов и позволит избежать неприятных незапланированных осечек, а также сделает конфигурацию более гибкой.

Сначала реализуйте все шаги, описанные в первой части. Затем прочтите материал, специфичный "доставке по требованию".


Непосредственное конфигурирование sendmail.cf для простых конфигураций

!Непосредственное конфигурирование очень непрактично и негибко, но ведь вы этого хотите.

Найдите в вашем sendmail.cf строку, похожую на эту:



Мини-HOWTO: Очередь почты в Linux


Leif Erlingsson
leif@lege.comjptietze@mail.hh.provi.de
Перевод: Александр Ермолаев, ASPLinux

Отложенная Удаленная Почта + Доставка Локальной Почты (Queue Remote Mail + Deliver Local Mail) Для того, чтобы Sendmail локально доставлял почту, необходимо изменение конфигурации. Почта будет находится в очереди, пока я не скажу "вперед".



Поддержка меню


1.x версия этого текста содержала пункт 'Поддержка меню' для /var/X11R6/lib/fvwm/system.fvwmrc. В настоящем документе это опущено, однако эту информацию можно получить, написав по адресу:

``Menu support suggestions '', Тема: ``Menu support suggestions''



Решения, основанные на доставке по требованию (dial-on-demand)


Написано Jan P Tietze .

У многих пользователей Linux есть доступ в Интернет через телефонные линии, и многие решили реализовать на своей системе "доставку почты по требованию". То есть всякий раз, когда некоторый IP - пакет должен выйти за пределы локальной сети или машины, автоматически происходит соединение с провайдером услуг Интернет (ISP). Cвязь завершается после некоторого периода бездействия (пакеты для доставки в Интернет отсутствуют).

Хотя это очень удобно и эффективно, с точки зрения стоимости решения, имеется один частный случай, когда это не совсем так (мы помним, что время установления соединения через "обычную" модемную линию относительно велико). И этот случай связан с посылкой электронной почты. E-Mail обычно посылается через SMTP, локально настроенной на вашей системе, через SMTP-сервер, который постоянно находится в Интернет (SMTP-сервер вашего провайдера).

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

Глава 1 данного документа позволит выйти из этой ситуации, хотя в системах, где имеется внешний поиск DNS имен, это все равно вызовет соединение с ISP. Хотя почта и будет поставлена в очередь. Это случается потому, что sendmail пытается "канонизировать" имена хостов.

Решение этой проблемы двояко: Сначала мы подправим sendmail.cf. Затем мы должны определить процесс, который действительно займется доставкой почты. Лично я предпочитаю использовать crond и создавать задания - это будет описано ниже.



Решения, основанные не на доставке по требованию (non dial-on-demand)


Написано Leif Erlingsson .

Первоначальная версия этой части содержала много ненужного материала. Сейчас осталось только то, что требуется. Точно...



Для чего создан этот документ


В процессе моей работы с Linux и модулями ядра, я столкнулся с тем, что ни в одном документе нет удовлетворительного описания того, как настроить и использовать модули ядра Linux. Советы, приведенные в этом документе, проверялись и использовались не один раз как на моей машине, так и на многих других машинах, разбросанных по Internet. Здесь я опишу, как пользоваться тем или иныи устройством, драйвер которого может быть собран только в виде модуля.

На моей машине установлен RedHat Linux 4.1, и я использовал именно этот дистрибутив для проверки советов, приведенных в этом документе. Я проверил эти советы и на различных версиях дистрибутива Slackware, а также на Debian. Все необходимые коррективы, связанные с различием дистрибутивов, также приведены в этом документе.

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



Мини-HOWTO: Модули ядра Linux



rhw@bigfoot.com
Перевод: Станислав Рогин, ASPLinux

Авторские права

В этом документе описывается установка и использование модулей ядра Linux.



Настройка поддержки модулей в дистрибутивах Debian и RedHat


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

Процедуры загрузки системы дистрибутивов Debian и RedHat идентичны, поэтому у них совпадает и процедура настройки модулей.

Зайдите в систему в качестве root-а, и, при помощи вашего любимого текстового редактора, создайте файл /etc/rc.d/init.d/modules.init, написав в нем следующее:



Настройка поддержки модулей в дистрибутиве Slackware


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

Теперь вам надо отредактировать файл /etc/rc.d/rc.M

примерно следующим образом:

В районе строки 18 есть раздел, содержащий следующее:



Настройка поддержки модулей в других дистрибутивах


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

Точная последовательность действий в других дистрибутивах, конечно же, не может быть определена, но, скорее всего, она будет совпадать с одной из вышеописанных. Для того, чтобы определить, которая из них вам подходит, вы можете просмотреть содержимое каталога /etc/rc.d, следующим образом:

cd /etc/rc.d ls -l *.d rc.*

В зависимости от того, что вы увидите на экране, у вас есть три варианта действий:

Если в этом списке есть каталог init.d и несколько каталогов с именем вида rc?.d, где вместо знака вопроса стоят различные цифры, и в этом списке НЕТ файла с именем rc.M, то этот дистрибутив можно настроить так, как описано в главе "Настройка поддержки модулей в дистрибутивах Debian и RedHat".

Если в этом списке НЕТ каталога init.d, но есть файл rc.M, то этот дистрибутив можно настроить так, как описано в главе "Настройка поддержки модулей в дистрибутиве Slackware".

Если ваш список не удовлетворил предыдущим двум вариантам, то процедура загрузки вашей системы не описана в этом HowTo. В этом случае вы можете связаться с автором этого документа, и он вам поможет настолько, насколько это возможно.



Обязательные условия


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

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

Я предполагаю, что в вашей системе исходные тексты ядра находятся в каталоге /usr/src/linux. Также я предполагаю, что при исполнении любых команд, приведенных в это тексте, вы находитесь именно в этом каталоге.



Пересобираем ядро для включения поддержки модулей


Почти все функции ядра могут быть собраны в виде модулей. Исключением является драйвер файловой системы, на которой находится корневой раздел (обычно это файловая система ext2)

Однако, некоторые вещи очень сложно настроить, если их поддержка собрана в виде модуля, и я бы рекомендовал встроить в ядро:

Драйверы сетевых карт Ethernet.

Драйверы SCSI CD-ROM.

С другой стороны, существуют такие комбинации драйверов, которые работают ТОЛЬКО если они собраны в виде модулей, особенно если их несколько:

Драйвер принтера на параллельном порту,

Драйвер внешнего дисковода, подключаемого к параллельному порту (такие как IOMEGA ZipDrive или JazzDrive, или BackPack CD-ROM), и

Демон PLIP

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



Ускорение работы компилятора


Если на вашей машине 16 или больше Мегабайт ОЗУ, то вы можете использовать полезную вещь, которая позволит вам компилировать несколько модулей ядра одновременно. Это увеличит степень загрузки процессора при компиляции, но серьезно уменьшит время сборки модулей.

Перед тем, как использовать это ускорение, вам надо проверить объем оперативной памяти вашего компьютера, потому что, если вы установите слишком большое значение ускорения, компиляция может сильно замедлиться. Опыт показал, что оптимальное значение зависит от объема ОЗУ компьютера по следующей формуле (по крайней мере, для компьютеров с ОЗУ до 32 Мб. На компютерах с большим объемом памяти все может немного отличаться):

N = [Объем ОЗУ в Мегебайтах] / 8 + 1

Если вы не любите считать по формулам, то вы можете взять значения из следующей таблицы:

Таблица 1. Таблица коэффициентов

Объем ОЗУЗначение коэффициента
16 Мб3
24 Мб4
32 Мб5
40 Мб6
48 Мб7
56 Мб8
64 Мб9
80 Мб11
96 Мб13
112 Мб15
128 Мб17

После того, как вы выберете для себя значение коэффициента, откройте файл /usr/src/linux/Makefile

и найдите строку, в которой написано следующее:

MAKE=make

И замените ее на:

MAKE=make -j N

где N - это значение коэффициента ускорения.



Краткое руководство по совмещению Win95 + WinNT + Linux с использованием LILO


Renzo Zanelli
rzanelli@southeast.net
Перевод: Денис Дементьев, ASPLinux

Данный документ описывает процесс обеспечения нормального запуска систем Windows 95, Windows NT и Linux, установленных на одном компьютере, с помощью LILO - системного загрузчика Linux.



Необходимые действия в среде Linux


Под Linux необходимо отредактировать фалй /etc/lilo.conf и перезагрузить LILO. В файле /etc/lilo.conf должна быть такая строка:

boot=/dev/hda

Строки, описывающие пункт меню "Linux", уже должны быть в файле:

# Linux stanza image=/vmlinuz root=/dev/hdc1 label=Linux # End Linux stanza

Теперь добавим строки для пункта меню "Windows 95":

# Windows 95 stanza other=/dev/hda1 table=/dev/hda label=Windows95 # End Windows 95 stanza

И еще добавим строки для пункта меню "Windows NT":

# Windows 95 stanza other=/dev/hdb1 table=/dev/hda loader=/boot/any_d.b label=WindowsNT # End Windows 95 stanza

Сейчас необходимо перезапустить LILO. Теперь при загрузке LILO у вас в меню должны быть и Windows 95, и Windows NT, и Linux. Пока должны загружаться только Linux и Windows 95 (при запуске Windows вы должны попадать в меню загрузчика NT). Чтобы нормально загружать Windows NT, нужно сделать еще кое-что под Windows NT (пункт 4).



Установка операционных систем


Когда вы начнете устанавливать операционные системы на компьютер, то убедитесь, что устанавливаете их на основные загружаемые разделы. Я устанавливал и Windows 95 и Windows NT на разделы с файловой системой Fat16, так что точно могу сказать, что все работает на таких дисках. Если вы решитесь использовать Fat32 для Windows 95 или NTFS для Windows NT, то проверьте, поддерживает ли их ваша версия Linux, и до какой степени.



Установите Windows 95 на первый


Установите Windows 95 на первый винчестер (это будет диск C:). Не забудьте создать загрузочные дискеты для Windows 95, когда вам предложат это сделать при инсталляции.

Я рекомендую убрать винчестер, с установленным на нем Linux, из компьютера на период установки Windows 95, чтобы он никоим образом не был обнаружен и для Windows 95 не существовал.

Теперь, если все сделано правильно, вы должны нормально загружаться, и работать в Windows 95.

Установка Windows NT 4.0

Установите Windows NT 4.0 на второй винчестер. Когда будете создавать разделы на винчестере, то обязательно сделайте раздел загрузочным. Не все версии Linux поддерживают NTFS, поэтому для безопасности я создавал раздел с FAT16, к тому же, этим я обеспечил свободный обмен информацией между дисками Windows.

Программа установки Windows NT определит присутствие диска с установленным Windows 95 и добавит возможность его загрузки в свой стартовый загрузчик NT так, что при старте Windows NT, вы сможете выбрать вариант загрузки в таком меню:

Windows NT Workstation Version 4.00 Windows NT Workstation Version 4.00 [VGA mode] Microsoft Windows


Теперь, если все сделано правильно, вы должны нормально загружаться и работать в Windows NT и в Windows 95.

Установка Linux

Установите Linux на третий винчестер. Когда я устанавливал Linux, у меня уже была установлена система Windows 95, так что в LILO я добавлял только ее. Вы можете устанавливать все операционные системы параллельно с установкой LILO, либо сначала установить и позднее добавлять их в конфигурационные файлы LILO. В любом случае, я привел пример того, как должно выглядеть содержимое файла /etc/lilo.conf, далее по тексту. После того, как процесс установки Linux окончится, вы должны свободно загружать Linux и работать в нем.


Создайте загрузочную DOS дискету из


Создайте загрузочную DOS дискету из режима командной строки MSDOS (нажимайте Shift+F5 при загрузке Windows 95). Вы должны сделать эту дискету не в окне Windows, а именно в режиме MSDOS! Не загружайте Windows 95 до того, как выполните все эти действия! Скопируйте на эту дискету файл C:\WINDOWS95\COMMAND\SYS.COM (возможно у вас будет по-другому называться каталог с установленным Windows). Теперь перезагрузитесь с этой дискеты и выполните команду:

SYS C:


Результатом ее выполнения должно стать удаление системного загрузчика NT. Теперь Windows 95 должен просто запускаться из меню LILO.

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

Boot.ini Bootsect.dos Ntdetect.com Ntldr



Windows NT


Прежде всего необходимо сделать две вещи.

Во-первых, скачать и разархивировать программу BootPart (автор Gilles Vollant). Найти ее можно по адресу http://www.winimage.com/bootpart.htm

там же находится и информация о ее использовании.

Во-вторых, необходимо скопировать (и пока не удалять!) следующие файлы в корневой каталог диска с установленным Windows NT:

Boot.ini Bootsect.dos Ntdetect.com Ntldr

Эти файлы и есть системный загрузчик NT. Они расположены в корневом каталоге диска с Windows 95, туда их поместила программа установки Windows NT при инсталляции.

Как только все это сделано, загрузитесь в режиме командной строки MSDOS (нажимайте Shift+F5 при загрузке Windows 95) и выполните следующую команду:

BOOTPART WINNT BOOT:D:

Сейчас надо отредактировать файл Boot.ini в корневом каталоге Windows NT. Надо поправить три строки, одну в разделе [boot loader], и две в разделе [operating systems].

Вот как выглядел до правки файл Boot.ini:

[boot loader] timeout=30 default=multi(0)disk(0)rdisk(1)partition(1)\WINNT [operating systems] multi(0)disk(0)rdisk(1)partition(1)\WINNT="Windows NT Workstation Version 4.00" multi(0)disk(0)rdisk(1)partition(1)\WINNT="Windows NT Workstation Version 4.00 [VGA mode]" /basevideo /sos C:\ = "Microsoft Windows"

А вот как теперь выглядит исправленный файл Boot.ini:

[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINNT [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 4.00" multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 4.00 [VGA mode]" /basevideo /sos

Отметьте, что все вхождения "rdisk(1)" были изменены на "rdisk(0)", а все строки, касающиеся Windows 95, удалены.

Если все сделано правильно, то после сохранения Boot.ini и перезагрузки, вы должны просто запустить Windows NT из меню LILO.



Файлы настройки Х терминала


Во время процесса загрузки Х терминал попытается переправить и загрузить файлы с запускающей машины. Для успешной загрузки Х терминала эти файлы не требуются. Если файл не найден, терминал использует настройки по умолчанию.

Файлы настройки, посылаемые Х терминалу во время загрузки:

файл конфигурации Х терминала (напр. ncd.conf), используемый для сохранения настроек терминала

файл цветов (напр. rgb.txt).

база данных настроек клавиатуры (напр. XKeysymDB)

файлы каталога шрифтов (напр. font.dir, font.alias).

После успешного завершения загрузки должно появиться окно консоли Х терминала с меню. Кнопка настройки терминала выводит/прячет окно консоли. В выпадающем меню 'setup' окна консоли отражены характеристики терминала. Они могут быть изменены и сохранены в файле настроек для дальнейшего использования.

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

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

Для сброса NVRAM наберите команду 'nv'. В этом подменю выберите 'l', чтобы загрузить настройки по умолчанию; 's' для сохранения; и 'q' для выхода. Повторите процедуру загрузки, описанную выше.



Физическое подключение


NCD Х терминал (модель Xncd19r была использована при подготовке этого документа) имеет коннектор RJ-45 (витая пара) для работы в 10baseT Ethernet. Хаб необходим для соединения более двух устройств Ethernet с использованием витой пары. Если Х терминал и его машина являются единственными устройствами в сети, они могут быть связаны с помощью нуль-кабеля, описанного в документе HOWTO по Linux Ethernet.



Х терминал


Х терминал- это устройство, которое связывает компьютеры и отображает информацию, используя сетевую систему X Window. Обычно пакет программ Х терминала, называемого Х сервер, подгружается из сети в момент запуска. Пакеты программ, отличные от пакетов программ Х сервера (X client programs), запускаются не на Х терминале(за некоторым исключением); Х терминал отображает программы, запущенные на других машинах в сети. Х терминал, в свою очередь, - это тип сетевого компьютера, который использует Х протокол для доступа к сетевым ресурсам.



Краткое описание


Процесс подсоединения Х терминала к сети UNIX может быть кратко сведен к выполнению следующих шагов :

физически подключите Х терминал к сети

настройте хост UNIX, с которого Вы хотите загрузиться

настройте процедуру загрузки Х терминала

загрузите Х терминал

войдите в сеть



Меню настройки Boot монитора


Доступ к меню настройки осуществляется нажатием кнопки 'Setup' или введением команды 'se' после приглашения '>'.

Get IP Addresses From

IP адрес Х терминала, хранящийся в энергонезависимой памяти. Выберите пункт 'Network', если Вы используете RARP (reverse ARP) для получения IP адреса Х терминала с удаленной машины.

Terminal IP Address

IP адрес, назначенный X терминалу (например 10.0.0.2). Это то же, что и параметр 'terminal_IP'.

First Boot Host IP Address

IP адрес загрузочной машины (например 10.0.0.1). Это то же, что и параметр 'host_IP'.

Gateway IP Address

IP адрес шлюза подсети. Это то же, что и параметр 'gateway'.

Subnet Mask

Маска подсистемы, указанная в виде десятичных чисел. Это то же, что и параметр 'subnet_mask'.

Broadcast IP Address

Широковещательный IP адрес подсети (например 10.255.255.255)

Boot File

Имя файла, закачиваемого с удаленной машины, содержащего программное обеспечение Х сервера. Файл используется для загрузки Х терминала (например "Xncd19r"). Это то же, что и параметр 'file'.

TFTP Boot Directory

Имя каталога, содержащего файл загрузки (например "/usr/X11/lib/X11/ncd/" или "/tftpboot/").

Config file

Имя файла настройки Х терминала на удаленной машине.

UNIX Config Directory

Имя каталога, содержащего файлы настройки Х терминала (например "/usr/X11/lib/X11/ncd/").

TFTP Order, NFS Order, Local Order

Задайте '1' выбранному способу загрузки. Задайте '1' TFTP при загрузке с машины с использованием BootP.



Настройка процесса загрузки Х терминала NCD


После включения Х терминал готов к загрузке. Это процесс, в ходе которого программное обеспечение загружается в память и запускается. Если Х терминал не может запуститься, появится приглашение к вводу '>' Boot Monitor. Boot Monitor - это программа производителя, находящаяся в ППЗУ терминала. С интерфейсом Boot Monitor можно настраивать терминал на загрузку и загрузить программное обеспечение Х сервера с машины. Используйте '?' для вывода списка комманд Boot Monitor

Параметры настройки хранятся в энергонезависимой памяти и сохраняются перед выключением терминала.

Из Boot Monitor терминал загружается с использованием 'bt' команд или систем меню. Действие обоих методов во многом пересекается, однако меню обеспечивает управление большим количеством параметров настройки.



Настройка UNIX машины


В момент запуска Х терминал скачивает файлы (включая программное обеспечение для Х сервера) с удаленной машины в сети. После загрузки терминала Х сервер управляет вводом, выводом, локальными клиентами, а также протоколом обмена Х-ов. Программное обеспечение Х сервера работает на Х терминале и не обязательно совместимо с программным обеспечением машины, на которой оно находится.



NCD X terminal mini HOWTO


Ian Hodge
ian@permedia.ca


Перевод: Станислав Рогин, ASPLinux

В этом документе описывается процесс подключения X-Терминала NCD к UNIX-машине



Оборудование, использованное при подготовке данного документа


X terminal: NCD model NCD19r с 19 монохромным монитором 1280x1024 8M RAM

пограмма X server: NCDware V3.2.CV 19r_s

Удаленный хост: IBM Cyrix 686 P150+ с Slackware (Linux kernel version 2.0.31)

Удаленный хост: IBM Cyrix M2 200 MMX с Red Hat 5.0 (Linux kernel version 2.0.32)

Сетевая карта: 10 base T Ethernet (ne2000 совместимая) и 8 портовый хаб

Сервер шрифтов вер. 2 релиз номер 6300



Обратная связь


Пожалуйста, направляйте ian@permedia.ca любые комментарии, вопросы, исправления и предложения. Большое спасибо всем, кто направлял нам дополнительные сведения.



Поддерживаемые терминалы


Мне известно, что последовательность действий, описанная в данном документе, справедлива для следующих терминалов: NCD 19r, NCD 19c, NCD19m?, NCD 15b, NCD MCX



Программное обеспечение Х сервера NCD


Программное обеспечение сервера Х терминала можно приобрести у разработчика, а также он обычно поставляется при покупке терминала. Оно должно находиться на запускающей машине, где к нему имеется доступ в момент загрузки Х терминала. Терминал можно запустить с любой машины, которая поддерживает коммуникационный протокол (это будет объяснено в следующих главах). В дополнение к Х серверу существует пакет приложений, таких как window manager, которые могут работать на Х терминале.



Сервер шрифтов


Сервер шрифтов (xfs) работает на машине в сети и отыскивает шрифты для Х терминала, и других клиентов в сети. Применение сервера шрифтов позволяет использовать большее разнообразие шрифтов, так как программное обеспечение Х сервера ограничено растровыми шрифтами. Во время загрузки сервер шрифтов может распаковывать, масштабировать и конвертировать шрифты для Х сервера, а также может помочь упростить управление шрифтами для групп терминалов и пользователей в сети. Программное обеспечение сервера шрифтов введено в Х консорциум программного обеспечения (ftp.x.org) и поставляется с большинством дистрибутивов Linux.

Для использования сервера шрифтов существует запись tcp service, а не пути к шрифтам файла настроек или меню настройки консоли.

Формат записи tcp service tcp/:

Пример: tcp/10.0.0.1:7100

Пример записи в файле настройки, находящемся на запускающей машине:

xserver-default-font-path = { { "tcp/10.0.0.1:7100" } { "built-ins" } }

Команда xset с указанием сервиса tcp добавляет сервер шрифтов к пути:

xset +fp tcp/10.0.0.1:7100

Внимание! Некоторые версии NCD требуют, чтобы запись сервера шрифтов предшествовала записям встроенных шрифтов. Это противоречит документу "Руководство системного администратора для системы UNIX" по NCD. Поэкспериментируйте с порядком путей к шрифтам и проверьте результаты с помощью команды 'xset q'.

Сервер шрифтов запускается в момент загрузки из скрипта запуска rc.local. Сервер шрифтов (xfs) запускается следующей командой:

xfs -config -port

7100 - стандартный порт сервера шрифтов.

Пример:

xfs -config /usr/X11/lib/X11/fs/config -port 7100

Пример файла настроек сервера шрифтов:

# Файл настроек сервера шрифтов: # максимальное количество клиентов = 10 client-limit = 10

# когда количество клиентов достигнет client-limit, запустится еще один сервер clone-self = on

# использовать системный журнал в качестве журнала ошибок use-syslog = on

# список каталогов шрифтов

catalogue = /usr/X11R6/lib/X11/fonts/misc/, /usr/X11R6/lib/X11/fonts/Speedo/, /usr/X11R6/lib/X11/fonts/Type1/, /usr/X11R6/lib/X11/fonts/75dpi/, /usr/X11R6/lib/X11/fonts/100dpi/

# файл используется для записи ошибок в журнал, если syslog не используется. error-file = /usr/X11R6/lib/X11/fs/fs-errors

# 12 пунктов в десятых долях пункта default-point-size = 120

# 100 x 100 и 75 x 75 default-resolutions = 75,75,100,100



Шрифты и Х терминал


Х терминал поставляется с небольшим набором шрифтов. В меню настроек Х терминала и в файлах настройки эти шрифты описаны как встроенные (built-ins). Терминал может обходиться только им, однако желательно иметь большее количество шрифтов. Шрифты могут быть добавлены по указанным в меню настройки путям к файлам шрифтов или путем применения команды xset.

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

Для запроса: xset -q

Для добавления записи о шрифте: xset +fp

Для удаления записи о шрифте: xset -fp



Синтаксис команд Boot монитора


>bt file terminal_IP host_IP gateway_IP subnet_mask

file

Имя файла, который скачивается с удаленной машины, содержащий программу Х сервера, используется для загрузки Х терминала (например "Xncd19r"). Убедитесь, что имя файла совпадает с именем, в соответствующей записи файла bootptab (объяснение смотри в предыдущем разделе).

terminal_IP

IP адрес, назначенный Х терминалу (например 10.0.0.2). Повторю, что этот IP адрес должен быть таким же, как и адрес, заданный в соответствующей записи файла bootptab.

host_IP

IP адрес загрузочной машины (например 10.0.0.1).

gateway

IP адрес шлюза подсети (например 10.0.0.1)

subnet_mask

маска подсистемы в виде десятичного IP адреса или шестнадцатеричного числа (например 255.0.0.0 или ff000000)



Спорные вопросы


Возможно, имеет смысл запускать сервер шрифтов, используя inetd?

Если удаленная машина с запущенным сервером шрифтов перезапускалась, когда сервер шрифтов был активен, Х терминалу может не удаться загрузка шрифтов. Путь к файлам шрифтов должен быть введен заново, с помощью меню консоли или команды xset. Почему?

Похожи ли процедуры для других моделей Х терминала ?

Какова процедура загрузки Х терминала с использованием NFS (Network File System) или RARP (Reverse Address Resolution Protocol)?

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

%XSERVER-I-NEWCLIENT, host "localhost" connected with blank authorization %XSERVER-W-NOEXTENSION, client attempted to use non-existent extension "BIG-REQUESTS" %XSERVER-W-NOEXTENSION, client attempted to use non-existent extension "XKEYBOARD" %XSERVER-W-NOEXTENSION, client attempted to use non-existent extension "XFree86-Misc"

Может ли Linux быть портирован в Х терминал?



Ссылки


Unix страницы руководства: bootpd(8), tftpd(8), bootptab(5), xdm(1x), xfs(1), fsinfo(1), xset(1), inetd(8)

Linux Ethernet HOWTO, Linux Net-3 (Networking) HOWTO

NCDware System Administrator's Guide for UNIX Systems

NCD Techtips Archive

NCDware Reference Manual

описывающее практически каждый этап настройки Х терминала, теперь доступно для загрузки с NCD Techtips Archive.

NCD knowledge base

содержит ответы на некоторые наиболее часто задаваемые вопросы, а также отчеты об ошибках.

Заметьте, что указанные выше документы постоянно изменяются. Со времени первой публикации мини-HOWTO, NCD web site поспоянно реорганизуется.



TFTP и BootP


Вместе tftp (trivial file transfer protocol) с BootP (boot protocol server) используются на удаленной машине для того, чтобы Х терминал скачал программное обеспечение Х сервера и настроил файлы через сеть. Оба сервиса обычно запускаются от inetd (Internet Daemon).

После включения Х терминал, если он настроен на загрузку из сети, рассылает широковещательное сообщение, используя BootP (TCP/IP bootstrap protocol). Это сообщение содержит адрес устройства Ethernet Х терминала, который используется запускающей машиной в ответ на полученный запрос.

Когда ответ получен удаленной машиной, inetd (отвечая на запрос порта, описанного в /etc/services) запускает демона BootP, который находится в /etc/inetd.conf.

В файле inetd.conf создайте или раскомментируйте строки, относящиеся к TFTP и BootP. Последний аргумент tftpd entry в нижеследующем примере - это путь к каталогу, содержащему файлы, требующиеся Х терминалу. Хотя имена каталогов не являются обязательными, ради безопасности они всегда должны присутствовать, так как доступ tftpd будет ограничен для файлов в указанных каталогах

Из простого файла /etc/inetd.conf:

# tftp сервис предназначен, в первую очередь, для загрузки. Большинство сайтов # действует только на машинах, работающих как "boot серверы". tftp dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.tftpd /usr/X11/lib/X11/ncd/ bootps dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.bootpd

После активизации BootP демон сервера считывает файл базы данных /etc/bootptab. Каждый вход содержит набор тегов, разделенных знаками ":" . Имя машины должно быть первым тегом.

Используемые теги файла bootptab

hd

домашний каталог файла загрузки (например /usr/X11/lib/X11/ncd/).

ip

адрес Х терминала (например 10.0.0.1).

sm

маска подсети (например 255.0.0.0). Чтобы понять назначение маски подсети и других принципов IP сети, обратитесь к документу HOWTO по Linux NET-3.

gw

адрес шлюза (например 10.0.0.1).

ht

тип аппаратного обеспечения- в данном примере Ethernet

ha


аппаратный адрес Х терминала (6-ти байтовый адрес Ethernet)

В соответствии с руководством UNIX по bootptab, тег 'ht' должен предшествовать тегу 'ha'. При первом включении терминала, Ethernet адрес Х терминала выводится на дисплей. Адрес появляется в виде 6 сдвоенных шестнадцатеричных чисел, разделенных двоеточием (например 00:00:A7:12:26:19).

tc

Продолжение таблицы или имя другой записи базы данных BootP. Смотрите пример ниже.

ds

IP адрес DNS (например 10.0.0.3). Не требуется, если DNS не используется для разрешения имен машин.

bf

Имя файла запуска Х терминала (Обычно модель терминала используется как имя файла Х сервера (например Xncd19r)

Ниже приведен пример файла базы данных сервера протокола Boot /etc/bootptab. Знак '\' используется для пропуска перевода строки.

# Это запись (дано имя default) # с информацией, общей для всех клиентов BootP. default:hd=/usr/X11/lib/X11/ncd/:\ ds=10.0.0.3:\ sm=255.0.0.0:\ gw=10.0.0.1:

# запись об Х терминале с именем машины myxterm # заметьте, что тег tc ссылается на запись default myxterm:ht=ethernet:\ ha=0x0000a7122619:\ ip=10.0.0.2:\ tc=default:\ bf=Xncd19r:

Когда подходящая запись аппаратного адреса в запросе на загрузку найдена, bootpd посылает ответ с IP адресом из этой записи. Файл пересылается по протоколу IP с использованием TFTP.

Имя машины может быть назначено Х терминалу, путем создания записи на запускающей машине в файле /etc/hosts. Этот файл используется, чтобы сопоставить имена машин и соответствующие IP-адреса. В данном примере Х терминалу (адрес 10.0.0.2) было задано имя машины 'myxterm'.

10.0.0.1 linuxhost #имя машины 10.0.0.2 myxterm #Х терминал


Вход на другой хост


В главном меню консоли выберите пункт 'terminals', в нем выберите 'New Telnet...'. Когда появится окно telnet, введите адрес машины в сети и нажмите 'OK'. Должно появиться приглашение на вход в машину. После входа Х программа, включая менеджер окон, может быть запущена из окна telnet.



X terminal, произведенный компанией NCD


Этот документ описывает, как X terminal, произведенный компанией NCD (Network Computing Devices), может быть подключен и загружен с хоста UNIX с использованием BootP. Многие терминалы могут быть загружены с RARP, NFS или с платы PCMCIA, а также через последовательное соединение (напрямую или через модем).
Хотя материалы этого документа основаны на работе с единственным Х терминалом, большая их часть справедлива для других моделей и других Х терминалов в общем. Существует другой mini HOWTO по Х терминалу Linux, (признанный устаревшим специалистами на момент написания, и поэтому он, возможно, отсутствует в некоторых дистрибутивах Linux), который пересекается с данным документом. Тот документ содержит более общую информацию об Х терминале.