diff --git a/ru_RU.KOI8-R/books/faq/Makefile b/ru_RU.KOI8-R/books/faq/Makefile new file mode 100644 index 0000000000..0f3b8239b9 --- /dev/null +++ b/ru_RU.KOI8-R/books/faq/Makefile @@ -0,0 +1,26 @@ +# +# $Id: Makefile,v 1.1 1999-08-29 16:51:17 nik Exp $ +# +# Build the FreeBSD FAQ +# + +MAINTAINER=nik@FreeBSD.ORG + +DOC?= book + +FORMATS?= html-split html + +INSTALL_COMPRESSED?= gz +INSTALL_ONLY_COMPRESSED?= + +# +# SRCS lists the individual SGML files that make up the document. Changes +# to any of these files will force a rebuild +# + +# SGML content +SRCS= book.sgml + +DOC_PREFIX?= ../../.. + +.include "${DOC_PREFIX}/share/mk/docproj.docbook.mk" diff --git a/ru_RU.KOI8-R/books/faq/book.sgml b/ru_RU.KOI8-R/books/faq/book.sgml new file mode 100644 index 0000000000..148fb6cc7a --- /dev/null +++ b/ru_RU.KOI8-R/books/faq/book.sgml @@ -0,0 +1,9140 @@ + + + + +Frequently Asked Questions по FreeBSD 2.X + + + +The FreeBSD Russian Documentation Project + + + +$Date: 1999-08-29 16:51:17 $ + +Этот документ является так называемым FAQ (Frequently Asked + Questions), то есть списком Часто Задаваемых Вопросов по системе FreeBSD + версий 2.X Если не оговорено обратное, предполагается, что все замечания + справедливы для версий FreeBSD 2.0.5 и выше. Пункты с пометкой <XXX> + находятся в стадии разработки. Если вы хотите помочь в составлении этого + документа, пошлите письмо в список рассылки проекта по адресу + <freebsd-doc@FreeBSD.ORG>. + Последняя редакция этого документа всегда доступна с + WWW-сервера FreeBSD. Его также + можно получить в текстовом, + postscript, + PDF + или HTML форматах по HTTP или + в архивированном виде с + FTP-сервера. Вы + также можете осуществить + поиск в + FAQ. + + + + + + +Предисловие + +Добро пожаловать во FreeBSD 2.X FAQ! + +Как и обычный FAQ конференций Usenet, этот документ содержит + большинство из часто задаваемых вопросов, касающихся + операционной системы FreeBSD (и, конечно, ответы на них). + Первоначально предназначенный для уменьшения потока сообщений и + избежания повторения одних и тех же вопросов, постепенно FAQ + превратился в ценный источник информации. + +Мы прилагаем все усилия, чтобы сделать этот FAQ максимально + информативным; если у вас есть идеи по его усовершенствованию, + пожалуйста, напишите + составителю. + + +FreeBSD - что это такое? + +В двух словах, FreeBSD 2.X - это UN*X-подобная операционная + система, основанная на версии 4.4BSD Калифорнийского Университета + (Беркли) для платформы i386. Также она косвенно базируется на 386BSD + (BSD Net/2, перенесённой на платформу i386 Вильямом Джолитцем + (William Jolitz)), хотя от того первоначального кода осталось очень + мало. Более подробные объяснения того, что представляет из себя FreeBSD + и для чего она может вам пригодиться, можно найти на домашней странице FreeBSD. + +FreeBSD используется компаниями, Интернет-провайдерами, + научными работниками, профессионалами в вычислительной технике, + студентами и рядовыми пользователями по всему миру для + работы, образования и отдыха. Вы можете увидеть некоторых из них + в нашей галерее. + +Для более детального ознакомления с FreeBSD, пожалуйста, + обращайтесь к Руководству + пользователя FreeBSD. + + + + +Каковы цели FreeBSD? + +Цели, преследуемые проектом FreeBSD - это предоставление + программного обеспечения, которое может быть использовано в + любых целях без всяческих ограничений. Многие из нас вкладывают + значительные усилия в её разработку (и проектирование) и определённо + были бы не против получения финансовой поддержки, + но мы не собираемся её требовать. Мы надеемся, что наша основная и самая + значительная "миссия" - предоставить код всем желающим, для любых целей, + так чтобы он нашел самое широкое применение и принес наибольшую пользу. + Это, на наш взгляд, одна из самых фундаментальных целей + Free Software, которую мы с энтузиазмом поддерживаем. + +Исходный код, подпадающий под действие GNU General + Public License (GPL) или GNU Library General Public License (LGPL), + имеет несколько больше ограничений, хотя и представляет собой + навязывание доступа к исходным текстам, а не наоборот, как обычно. Из-за + дополнительных сложностей, которые могут возникнуть в случае + коммерческого использования программного обеспечения GPL, мы стараемся, + где только это возможно, заменить подобное программное обеспечение + аналогичным, но подпадающим под более свободную лицензию BSD. + + + + +Почему система называется именно FreeBSD? + + + + + +Она может использоваться безо всяческих выплат, даже + для извлечения выгоды. + + + +Все исходные тексты операционной системы свободно доступны, + на её использование в других разработках (как коммерческих, так и + некоммерческих) и дальнейшее распространение наложены минимальные + ограничения. + + + +Любой, у кого есть усовершенствования и/или исправления, + может предоставить свой код и он будет (правда, с парой + оговорок) добавлен в исходные тексты системы. + + + + + +Для тех наших читателей, для которых английский не является родным + языком, можно добавить, что слово ``free'' используется здесь в двух + смыслах, один означает ``бесплатно'', а другой ``вы можете делать всё, + что хотите''. За исключением пары вещей, которые вы не + можете производить с FreeBSD, например, + претендовать на то, что вы являетесь её разработчиком, вы на самом + деле можете делать с ней всё, что вам заблагорассудится. + + + + +Какова последняя версия FreeBSD? + +Версия 3.2, + выпущенная в мае 1999 года, является самой последней + стабильной версией. Она также является самым + последним релизом. + +Если говорить кратко, то ветка -stable предназначена + поставщикам услуг Internet или другим корпоративным пользователям, + которым в первую очередь нужна надёжность и не слишком большое количество + отличий от последнего релиза по сравнению с возможностями последнего + снэпшота -current. Релизы можно делать из любой + "ветки", но -current вы должны использовать только в + случае, если уверены, что готовы к постоянным (по сравнению с + -stable) изменениям в работе системы. + +Релизы делаются только . Хотя многие стараются отслеживать актуальное + состояние исходных текстов FreeBSD (обратите внимание на вопросы о + и ), делать это не обязательно, так как исходные + тексты постоянно меняются. + + + + +Что такое FreeBSD-current? + +FreeBSD-current - это + версия операционной системы, находящаяся в стадии разработки + до момента выпуска 4.0-RELEASE. Таким образом, она представляет + реальный интерес только для разработчиков системы и её фанатов. + Обратитесь к соответствующему разделу + Руководства + для прояснения деталей работы с -current. + +Если вы не специалист по операционным системам или не в состоянии + отличить реальную проблему от временных явлений, вы не должны + использовать FreeBSD-current. Эта ветвь зачастую меняется очень + быстро и вполне может быть просто не работоспособна некоторое + время. Те, кто используют FreeBSD-current, должны быть в состоянии + анализировать любые проблемы и сообщать о них, если это действительно + ошибки, а не ``глюки''. Сообщения типа ``make world produces some error + about groups'' в списке рассылки -current иногда воспринимаются + пренебрежительно. + +Из ветви -current регулярно делаются + снэпшоты, + некоторые из которых доступны на CDROM. Их + предназначение: + + + + + +Тестирование самой последней версии инсталлятора. + + + +Дать людям, которые хотят работать с -current, но не + имеют времени и/или мозможности (пропускной способности) для + отслеживания ежедневных измененений, простой способ её установки. + + + +Фиксация точки для последующих ссылок в случае, + если позже мы что-нибудь очень сильно сломаем. (Хотя CVS, как + правило, не позволяет случиться ничему такому ужасному :) + + + +Любые новые возможности, которым требуется тестирование, + должны иметь как можно больше потенциальных тестеров. + + + + + +Не утверждается, что всякий снапшот имеет качество + ``готового продукта''. Для стабильной и надежной работы + вам нужно подождать полного релиза. + +Снапшоты доступны непосредственно с ftp://current.freebsd.org/pub/FreeBSD/ и, как правило, + генерируются ежедневно для веток 4.0-current и 3.0-stable. + + + + +В чём смысл FreeBSD-stable? + +После того, как была выпущена FreeBSD 2.0.5, мы решили разделить + разработку FreeBSD на две части. Одна ветка была названа -stable, с тем предназначением, + что в ней будут делаться только хорошо оттестированные исправления и + маленькие последовательные усовершенствования (для провайдеров + услуг Интернет и других коммерческих пользователей, для которых + неожиданные изменения или экспериментальные возможности весьма + нежелательны). Другой ветвью является -current, + которая по существу является прямой линией, ведущей к 4.0-RELEASE (и + последующим) с тех пор, как была выпущена 2.0. Если вам поможет + картинка, то вот как это выглядит: + + + 2.0 + | + | + | [2.1-stable] + *ВЕТВЬ* 2.0.5 -> 2.1 -> 2.1.5 -> 2.1.6 -> 2.1.7.1 [конец 2.1-stable] + | (Мар 1997) + | + | + | [2.2-stable] + *ВЕТВЬ* 2.2.1 -> 2.2.2-RELEASE -> 2.2.5 -> 2.2.6 -> 2.2.7 -> 2.2.8 [конец] + | (Мар 1997) (Окт 97) (Апр 98) (Июл 98) (Дек 98) + | + | + 3.0-SNAPs (начало в I квартале 1997) + | + | + 3.0.0-RELEASE (Окт 1998) + | + | [3.0-stable] + *ВЕТВЬ* 3.1 (Фев 1999) -> 3.2 -> ... будущие релизы 3.x ... + | (Май 1999) + | + \|/ + + + [продолжение 4.0-current] + + + +Ветвь -current постепенно переходит в 4.0 и выше, тогда как + предыдущая ветвь, 2.2-stable, была вытеснена релизом 2.2.8. + Теперь его заменила ветвь 3.0-stable, следующий релиз которой, 3.3, + выйдет в третьем квартале 1999 года. "Текущей веткой" сейчас является + 4.0-current, первый релиз которой появится в первом квартале 2000 года. + + + + + В какой момент выпускаются новые версии FreeBSD? + + +Как правило, основная группа разработчиков выпускает + новую версию, только когда они уверены, что добавленных новых + возможностей и/или внесённых исправлений уже достаточно и новый + релиз не потеряет стабильности. Многие пользователи оценивают эту + осторожность как одну из лучших сторон FreeBSD, хотя она несколько + разочаровывает, если вам не терпится попробовать новые возможности.. + +В среднем новые версии выпускаются примерно каждые четыре месяца. + +Для тех, кому не терпится, предназначены SNAP-релизы, выпускаемые более + часто, в частности, в течении месяца перед релизом. + + + + +FreeBSD доступна только для персональных компьютеров? + +В настоящее время FreeBSD 3.x работает как на архитектуре x86, + так и на платформе DEC Alpha. + Некоторый интерес был проявлен к переносу на + SPARC, однако подробности этого проекта ещё не ясны. + +Если ваш компьютер имеет другую архитектуру и вам нужно что-то прямо + сейчас, советуем попробовать + NetBSD или + OpenBSD. + + + + +Кто разрабатывает FreeBSD? + +Решения, которые касаются ключевых моментов в проекте FreeBSD, + такие, как общее направление развития проекта или кто + может добавлять код к дереву исходных текстов, принимаются + основной командой + разработчиков (core team), состоящей из 15 человек. Также существует + гораздо большая группа из более 150 + коммиттеров + (committers), которые могут делать изменения прямо в дереве исходных + текстов FreeBSD. + +Однако, большинство нетривиальных изменений широко обсуждается + в , и не существует + никаких ограничений на участие в подобных дискуссиях. + + + + +Где можно найти FreeBSD? + +Все основные релизы FreeBSD доступны по ftp с + FTP-сервера FreeBSD: + + + + + +Текущий релиз 2.2-stable, 2.2.8R, находится в каталоге + 2.2.8-RELEASE. + + + +Текущий релиз 3.0-stable, 3.0-RELEASE, находится в каталоге 3.0. + + + +Релизы 2.2 Snapshot делаются ежедневно из ветки RELENG_2_2 + (после 2.2.8), которая постепенно переходит в режим сопровождения. + Ветвь RELENG_2_2 ведётся очень аккуратно и сейчас туда + не вносятся изменений, кроме как жизненно необходимых по соображениям + безопасности и надёжности. + + + +Выпуски 3.0 Snapshot также + делаются ежедневно из ветки RELENG_3 (после 3.0-release), пока она + переходит в 3.2-RELEASE. + + + +Выпуски 4.0 Snapshot, + которые деляются ежедневно из ветви , предназначены для тестеров и разработчиков. + + + + + +FreeBSD также доступна через CDROM, по такому алресу: + +Walnut Creek CDROM + 4041 Pike Lane, Suite F + Concord, CA 94520 USA + Orders: +1 800 786-9907 + Questions: +1 925 674-0783 + FAX: +1 925 674-0821 + email: WC Orders address + + WWW: WC Home page + + +В Австралии вы можете найти по адресу: + +Advanced Multimedia Distributors + Factory 1/1 Ovata Drive + Tullamarine, Melbourne + Victoria + Australia + Voice: +61 3 9338 6777 + + CDROM Support BBS + 17 Irvine St + Peppermint Grove WA 6011 + Voice: +61 9 385-3793 + Fax: +61 9 385-2360 + + И в Великобритании: + + The Public Domain & Shareware Library + Winscombe House, Beacon Rd + Crowborough + Sussex. TN6 1UL + Voice: +44 1892 663-298 + Fax: +44 1892 667-473 + + + + + Где найти информацию по спискам рассылки FreeBSD? + + +Исчерпывающая информация содержится в разделе Руководства, который посвящен спискам рассылки. + + + + +Какие существуют телеконференции по FreeBSD? + +Полная информация о группах новостей есть в разделе Руководства, касающемся телеконференций. + + + + + Существуют ли каналы IRC (Internet Relay Chat) по FreeBSD? + + +Да, большинство сетей IRC имеют канал FreeBSD: + + + + + +Канал #FreeBSD в сети EFNet посвящён FreeBSD, + но не обращайтесь туда за технической поддержкой и даже не + пытайтесь найти человека, который поможет вам обойтись без + чтения страниц Справочника или собственных изысканий. Этот + канал предназначен в первую и основную очередь для общения, + и в круг обсуждаемых тем входит секс, спорт, ядерное оружие, + как будто это и есть FreeBSD. В общем, вас предупредили! + Канал доступен на сервере irc.chat.org. + + + + + +Канал #FreeBSD в сети DALNET +доступен на сервере irc.dal.net в США и на + irc.eu.dal.net в Европе. + + + + + +Канал #FreeBSD в сети UNDERNET доступен +на серверах us.undernet.org в США и eu.undernet.org + в Европе. Похож на канал в сети EFNET - не задавайте вопросов или + научитесь задавать их чрезвычайно вежливо, если хотите получить + помощь. Это канал для общения, а не для получения помощи. + + + + + +Наконец, вы можете подключиться к каналу #FreeBSD + в сети BSDNET, посвящённой исключительно BSD, на сервере + irc.FreeBSD.org. Эта сеть пытается быть посвящённой в + большей степени технической поддержке и не быть такой анархистской, + как EFNET, UNDERNET или DALNET, однако по этой же причине она и не + столь популярна. Почему бы сегодня кому-нибудь не взяться и + поотвечать на вопросы на BSDNET? + + + + + + +Все эти каналы разные и не имеют отношения друг к другу. Их стили + общения также отличаются, так что вам, может быть, + придётся попробовать все, чтобы найти тот, который соответствует + вашему стилю. Как и обычно с *любым* каналом IRC, если вы + легко раздражаетесь или не можете иметь дела с большим количеством + лиц школьного (и младшего школьного) возраста, пытающихся озвучить + свои попытки самоутверждения, не обращайте на это внимания. + + + + +Книги по FreeBSD + +Вы можете обратиться в FreeBSD Documentation Project (а ещё лучше + к нему присоединиться) через список рассылки doc: + <freebsd-doc@FreeBSD.ORG>. + Этот список рассылки предназначен для обсуждения документации + FreeBSD. Для вопросов по системе предназначен список рассылки + questions: + <freebsd-questions@FreeBSD.ORG>. + +``Руководство'' по FreeBSD доступно и может быть найдено на + веб-сервере. + Заметьте, что этот проект находится в процессе разработки, + так что некоторые части могут отсутствовать. + +Прекрасным печатным руководством по FreeBSD является книга + ``The Complete FreeBSD'', написанная Грегом Лиэем (Greg Lehay) и + изданная Walnut Creek CDROM Books. В настоящее время вышло второе + издание, содержащее 1,750 страниц руководств по установке и + администрированию системы и прикладных программ, а также страницы + Справочника. Книга (и последний релиз FreeBSD) может быть заказана у + Walnut Creek, + CheapBytes, или в + вашем любимом книжном магазине. Индекс ISBN 1-57176-227-2. + +Так как FreeBSD 2.2.X основана на выпуске Berkeley 4.4BSD-Lite2, + большинство руководств по 4.4BSD подходят к FreeBSD 2.2.X. + O'Reilly and Associates издают следующие руководства: + + + + + +4.4BSD System Manager's Manual + By Computer Systems Research Group, UC Berkeley + 1st Edition June 1994, 804 pages + ISBN: 1-56592-080-5 + + + + + +4.4BSD User's Reference Manual + By Computer Systems Research Group, UC Berkeley + 1st Edition June 1994, 905 pages + ISBN: 1-56592-075-9 + + + + + +4.4BSD User's Supplementary Documents + By Computer Systems Research Group, UC Berkeley + 1st Edition July 1994, 712 pages + ISBN: 1-56592-076-7 + + + + + +4.4BSD Programmer's Reference Manual + By Computer Systems Research Group, UC Berkeley + 1st Edition June 1994, 886 pages + ISBN: 1-56592-078-3 + + + + + +4.4BSD Programmer's Supplementary Documents + By Computer Systems Research Group, UC Berkeley + 1st Edition July 1994, 596 pages + ISBN: 1-56592-079-1 + + + + + + +Описание этих книг может быть найдено через WWW: + + 4.4BSD books description. Из-за малых объёмов продаж, + эти книги найти труднее. + +Вы не ошибётесь, если для подробного ознакомления с устройством + ядра 4.4BSD kernel обратитесь к следующей литературе: + +McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, + and John Quarterman. + +The Design and Implementation of the 4.4BSD Operating + System. Reading, Mass. : Addison-Wesley, 1996. + ISBN 0-201-54979-4 + +Хорошей книгой по системному администрированию является: + +Evi Nemeth, Garth Snyder, Scott Seebass & Trent R. Hein, + ``Unix System Administration Handbook'', Prentice-Hall, 1995 + ISBN: 0-13-151051-7 + +ЗАМЕЧАНИЕ Удостоверьтесь, что вы получили второе издание, + с красной обложкой, а не первое. + +Эта книга касается основ администрирования, в том числе протоколов + TCP/IP, DNS, NFS, SLIP/PPP, sendmail, INN/NNTP, системы печати итд.. + Она сравнительно дорогая (примерно US$45-$55), но + стоит того. К ней прилагается также компакт-диск с исходными + текстами различных утилит; большинство их них, однако, также + присутствуют на диске FreeBSD 2.2.6R (на котором к тому же + часто находятся более свежие версии). + + + + +Как можно получить доступ к вашей базе сообщений о проблемах (Problem Report)? + +Сообщения пользователей о всех открытых проблемах могут быть + запрошены (или добавлены) с помощью нашего + веб-интерфейса + и запроса. Команда send-pr(1) + также может быть использована для передачи сообщений о проблеме + и изменении запроса через электронную почту. + + + + +Где можно найти FAQ в форматах ASCII/PostScript? + +Актуальная версия FAQ в форматах PostScript и обычного текста (7 + бит ASCII и 8 бит Latin1) доступна с веб-сервера FreeBSD или с любого + его зеркала. + +Как PostScript (примерно 370Кб): + + + + +http://www.freebsd.org/FAQ/FAQ.ps + + + + + + +Как текст ASCII (примерно 220Кб): + + + + +http://www.freebsd.org/FAQ/FAQ.ascii + + + + + + +Как текст ISO 8859-1 (примерно 220Кб): + + + + +http://www.freebsd.org/FAQ/FAQ.latin1 + + + + + + + + + + Где можно найти Руководство в форматах ASCII/PostScript? + + +Актуальная версия Руководства в форматах PostScript и обычного + текста (7 бит ASCII и 8 бит Latin1) доступна с веб-сервера FreeBSD + или с любого его зеркала. + +Как PostScript (примерно 1.7Мб): + + + + +http://www.freebsd.org/handbook/handbook.ps + + + + + + +Как текст ASCII (примерно 1080Кб): + + + + +http://www.freebsd.org/handbook/handbook.ascii + + + + + + +Как текст ISO 8859-1 (примерно 1080Кб): + + + + +http://www.freebsd.org/handbook/handbook.latin1 + + + + + + + + + +Руководство в формате ASCII - не чистый текст! + +Действительно, FAQ и Руководство в форматах ASCII и Latin1 не + являются чисто текстовыми документами; они содержат символы + форматирования для вывода на печать. Если вам нужно преобразовать эти + документы к виду, пригодному для чтения, обработайте файл программой + col: + + + $ col -b < inputfile > outputfile + + + + + + +Могу ли я зазеркалировать веб-сервер FreeBSD? + +Несомненно! Есть несколько способов это сделать. + + + + + +С помошью CVSUP: Вы можете скачивать отформатированные + файлы с помощью CVSUP с сервера cvsup.freebsd.org. Добавьте + следующую строку в конфигурационный файл cvsup: + +www release=current hostname=/home base=/usr/local/etc/cvsup +prefix=/usr/local/www/data/www.freebsd.org delete old use-rel-suffix + + + + + + + +С помощью rsync: Обратитесь к странице, посвященной + зеркалированию. + + + + + +С помощью зеркалирования ftp: Вы можете скачать копию + веб-сервера, находящуюся на ftp, используя ваше любимое средство + зеркалирования ftp. Просто начните с каталога + ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/www. + + + + + + + + + + Я могу перевести документацию на язык племени мумбо-юмбо. + + +Хорошо. Хотя мы не сможем заплатить, в наших силах подарить вам + бесплатный CD или футболку и внести вас в список составителей + Руководства, если вы предоставите перевод. + + + + +Другие источники информации. + +Следующие телеконференции содержат информацию о FreeBSD, которая + будет полезна её пользователям: + + + + + +comp.unix.bsd.freebsd.announce (модерируемая) + + + + + +comp.unix.bsd.freebsd.misc + + + + + +comp.unix.bsd.misc + + + + + + +Ресурсы Internet: + + + + + + Веб-сервер FreeBSD. + + + + + +Если у вас лаптоп, взгляните на страницу + Tatsumi Hosokawa's Mobile Computing в Японии. + + + + + +Информация о SMP (Symmetric + MultiProcessing) находится на странице поддержки SMP. + + + + + +Информация о мультимедийных + приложениях для FreeBSD находится на мультимедийной странице. Если вы интересуетесь + адаптерами захвата изображения + Bt848, перейдите по ссылке. + + + + + + +В Руководстве по FreeBSD имеется достаточно полный + библиографический раздел, который стоит посмотреть, если + вы хотите подыскать книгу по системе. + + + + + + +Установка + + + +Какой файл нужно скачать для установки FreeBSD? + +В общем случае вам нужен только один файл + floppies/boot.flp, содержащий образ, который вам + нужно будет перенести на дискету 1.44Мб и затем загрузиться с неё + для того, чтобы скачать все остальное (в процессе установки вам нужно + будет задавать параметры соединения TCP/IP, конфигурацию лент, + приводов CDROM, дискет, разделов DOS и всего, что будет необходимо + для успешной инсталляции). + +Если вы хотите скачать дистрибутив самостоятельно (например, для + установки с раздела DOS), вот список рекомендованных частей + дистрибутива: + + + + + + bin/ + + + + + manpages/ + + + + + compat*/ + + + + + doc/ + + + + + src/ssys.* + + + + + + +Полные инструкции по этой процедуре и об установке вообще можно + найти в разделе + Руководства, посвящённом инсталляции FreeBSD. + + + + + Помогите! Загрузочный файл не помещается на дискету! + + +На дискету размером 3.5 дюйма (1.44Мб) может поместиться + 1474560 байт данных. Образ дискеты имеет размер ровно 1474560 байт. + +Типичные ошибки при подготовке загрузочной дискеты: + + + + +Образ дискеты был загружен по FTP не в режиме binary. + + + +Некоторые клиентские программы FTP используют по умолчанию + текстовый (ascii) режим передачи и пытаются поменять + все принятые последовательности символов "конец строки" на + соответствующие им в вашей системе. В таком случае образ + загрузочного диска будет неизбежно испорчен. Проверьте размер + полученного файла: если он не точно такой же, + как на FTP-сервере, то ошибка произошла, скорее всего, в процессе + передачи. + +Во избежание этого введите команду binary в командной + строке FTP после того, как вы подключитесь к серверу, но до того, + как начали скачивать файл. + + + + +Для переноса образа на дискету была использована команда DOS + copy (или её аналог с графическим интерфейсом). + + +Программы типа copy не работают с образами дискет, + предназначенными для загрузки. Образ содержит полное содержимое + дискеты, дорожка за дорожкой, и не предназначен для помещения на + дискету в качестве обычного файла. Вам необходимо перенести его + на дискету ``непосредственно'', используя низкоуровневые средства + (такие как fdimage или rawrite), описанные в + руководстве. + + + + + + + + + +Где инструкции по инсталляции FreeBSD? + +Инструкции по установке могут быть найдены в + главе + Руководства, посвящённом установке FreeBSD. + + + + +Что мне нужно иметь для запуска FreeBSD? + +Вам нужен персональный компьютер не ниже 386, с 5 или более + мегабайтами ОЗУ и по крайней мере 60Мб свободного пространства на + винчестере. Система может работать с дешёвым графическим адаптером MDA, + но для того, чтобы запустить X11R6, требуется ведеокарта стандарта VGA + или лучше. + +Посмотрите также раздел + . + + + + + У меня только 4Мб ОЗУ. Смогу ли я установить FreeBSD? + + +FreeBSD 2.1.7 была последней версией, которую можно было + проинсталлировать на системе с 4Мб ОЗУ. Более новые версии FreeBSD, + типа 2.2, требуют по крайней мере 5Мб ОЗУ для установки. + +Все версии FreeBSD, включая 3.0, будут РАБОТАТЬ на 4Мб ОЗУ, + просто на 4Мб нельзя запустить инсталляционную программу. Вы + можете добавить дополнительную память для инсталляции, если вам + это нужно, а после того, как система будет установлена и запущена, + вернуться к конфигурации с 4Мб. Или вы можете подключить ваш диск + к компьютеру с ОЗУ, большим чем 4Мб, проинсталлировать систему и + переставить диск обратно. + +Есть ещё несколько причин, по которым FreeBSD 2.1.7 не будет + устанавливаться с 4Мб. А именно: она не будет устанавливаться + на системе с 640Кб основной и 3Мб дополнительной памяти. Если ваша + материнская плата может перемещать некоторую ``потерянную'' + память из области 640Кб в область 1Мб, тогда может быть, вы + сможете запустить FreeBSD 2.1.7. + +Попробуйте войти в настройку вашего BIOS и посмотреть параметры + ``перемещения'' (remap). Включите его. Может быть, еще понадобится + выключить теневое ПЗУ (ROM shadowing). + +Может быть, самое простое решение - найти еще 4Мб на время + инсталляции. Откомпилируйте ядро только с теми параметрами, которые + нужны и затем уберите 4Мб. + +Вы можете также проинсталлировать версию 2.0.5, а затем + обновить вашу систему до 2.1.7 с помощью пункта ``upgrade'' + программы инсталляции 2.1.7. + +После установки вы можете построить ядро, которое будет работать + на 4Мб. Кто-то даже умудрялся загружаться с 2Мб (хотя система + в основном была неработоспособна :-)) + + + + + Как сделать оригинальную загрузочную дискету? + + +В настоящий момент нет *простого* способа сделать оригинальную + загрузочную дискету. Файл + /usr/src/release/floppies/Makefile предназначен именно для + этого, однако на самом деле + + that's supposed to let you *just* make those floppies, but it's not + really gelled yet. + +Чтобы сделать оригинальный релиз, следуйте инструкциям + . + + + + + Могу ли я иметь более чем одну операционную систему на моём PC? + + +Взгляните на это руководство. + + + + +Может ли Windows 95 сосуществовать с FreeBSD? + +Сначала проинсталлируйте Windows 95, затем FreeBSD. Менеджер + загрузки FreeBSD будет управлять процессом загрузки Win95 или + FreeBSD, Если вы после этого ещё раз проинсталлируете Windows 95, + то в процессе установки менеджер загрузки будет грубо удалён. + Если такое случится, обратитесь к следующему разделу. + + + + + Windows 95 уничтожила мой менеджер загрузки! Как мне его вернуть? + + +Вы можете переустановить менеджер загрузки FreeBSD двумя способами: + + + + + +Запустите DOS, перейдите в каталог tools/ вашего дистрибутива + FreeBSD и найдите программу bootinst.exe. Запустите её + следующим образом: + + + +bootinst.exe boot.bin + +и менеджер загрузки будет переустановлен. + + + + +Загрузитесь с установочной дискеты FreeBSD и перейдите в меню + установки Custom install. Выберите пункт Partition. Выберите + устройство, на котором будет располагаться для ваш менеджера загрузки + (это будет самый первый диск) и когда вы перейдете к редактированию + разделов, первым делом (то есть ещё не делая никаких изменений) + выберите (W)rite. Последует запрос на подтверждение, ответьте yes, + и когда вы попадёте в меню выбора менеджера загрузки, выберите + пункт "Boot Manager". Менеджер загрузки будет переписан на диск. + Теперь нужно выйти из меню установки и загрузиться с винчестера + как обычно. + + + + + + + + + + Можно ли использовать диск с повреждёнными блоками? + + +Программа обнаружения повреждённых блоков (bad144) + помогает не во всех 100% случаев; (к нашему стыду) + можно, к сожалению, сказать, что если у вас диск IDE или ESDI с + большим количеством повреждённых блоков, то FreeBSD, похоже, не для + вас. Однако она работает на тысячах систем с повреждёнными дисками, + так что лучше всего сначала всё же попробовать самим. + +Если повреждённые блоки находятся на SCSI диске, взгляните на + . + + + + + Странные вещи происходят при загрузке с инсталляционного диска! + + +Если вы видите, что как машина зависает или неожиданнно + перезагружается, когда вы пытаетесь загрузиться с установочной + дискеты, вы должны задать себе три вопроса:- + + + + + +Вы используете новую, только что отформатированную дискету + (предпочтительно неиспользованную прямо из коробки, а не ту, что + пришла с популярным журналом и последние три года провалялась под + диваном)? + + + + + +Вы скачали образ дискеты в двоичном режиме? + (не смущайтесь, даже лучшие из нас время от времени скачивают + двоичный файл в режиме ASCII!) + + + + + +Если вы используете все эти свежеиспеченные операционные + системы типа Windows95 или WindowsNT, удостоверьтесь, что вы их + закрыли и перестартовали машину в добром старом DOS? Похоже, + что эти операционные системы могут влиять на программы, работающие + непосредственно с оборудованием, что и делает программа создания + установочного диска; даже запуск из DOS в графической оболочке может + вызвать проблемы. + + + + + + +Есть сведения, что Netscape вызывает проблемы при скачивании + загрузочного диска, так что лучше всего использовать специальную + программу FTP, если она у вас есть. + + + + +Помогите! Не могу установить систему с ленты! + +Если вы инсталлируете 2.1.7R с ленты, вы должны создать + ленту с размером блока tar, равным 10 (5120 байт). Размер + блока tar по умолчанию равен 20 (10240 байт), поэтому ленты, + созданные со стандартным размером блока, не могут быть использованы + для установки 2.1.7R; вы получите сообщение об ошибке, говорящее, + что размер записи слишком большой. + + + + + Соединение двух машин с FreeBSD через параллельные порты (PLIP) + + +Для этого нужен соединительный шнур типа laplink и на обеих машинах + должна быть включена поддержка драйвера lpt. + + + $ dmesg | grep lp + lpt0 at 0x378-0x37f irq 7 on isa + lpt0: Interrupt-driven port + lp0: TCP/IP capable interface + + + +Подключите кабель laplink к параллельным портам компьютеров. + +Настройте параметры сетевого интерфейса lp0 на обеих машинах, войдя + администратором. Например, если вы хотите соединить хосты с именами + max и moritz + + + max <-----> moritz +IP Address 10.0.0.1 10.0.0.2 + + + + на машине max дайте команду + + # ifconfig lp0 10.0.0.1 10.0.0.2 + + + + на машине moritz запустите + + + # ifconfig lp0 10.0.0.2 10.0.0.1 + + + +Это всё! Пожалуйста, прочтите ещё страницы Справочника + lp(4) и + lpt(4). + +Вы также должны добавить эти хосты в файл /etc/hosts + + + 127.0.0.1 localhost.my.domain localhost + 10.0.0.1 max.my.domain max + 10.0.0.2 moritz.my.domain moritz + + + +Для проверки работоспособности связи выполните следующие действия: + + на машине max: + + +$ ifconfig lp0 +lp0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000 + + + +$ netstat -r +Routing tables + +Internet: +Destination Gateway Flags Refs Use Netif Expire +moritz max UH 4 127592 lp0 + + + +$ ping -c 4 moritz +PING moritz (10.0.0.2): 56 data bytes +64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms +64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms +64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms +64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms + +--- moritz ping statistics --- +4 packets transmitted, 4 packets received, 0% packet loss +round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms + + + + + + Можно ли я установить систему на лэптоп через PLIP (Parallel Line IP)? + + +Для этого нужно соединить два компьютера параллельным кабелем + Laplink следующим образом: + + + +----------------------------------------+ + |A-name A-End B-End Descr. Port/Bit | + +----------------------------------------+ + |DATA0 2 15 Data 0/0x01 | + |-ERROR 15 2 1/0x08 | + +----------------------------------------+ + |DATA1 3 13 Data 0/0x02 | + |+SLCT 13 3 1/0x10 | + +----------------------------------------+ + |DATA2 4 12 Data 0/0x04 | + |+PE 12 4 1/0x20 | + +----------------------------------------+ + |DATA3 5 10 Strobe 0/0x08 | + |-ACK 10 5 1/0x40 | + +----------------------------------------+ + |DATA4 6 11 Data 0/0x10 | + |BUSY 11 6 1/0x80 | + +----------------------------------------+ + |GND 18-25 18-25 GND - | + +----------------------------------------+ + + + +Посмотрите также это замечание на странице, + посвящённой мобильным вычислениям. + + + + + Какие параметры диска я должен использовать? + + +(Под "параметрами" диска мы понимаем число дорожек, головок и + секторов на дорожку на диске, что для простоты обозначается как + C/H/S. Именно так работает BIOS персональных компьютеров при чтении + или записи диска). + +Похоже, что по каким-то причинам это вызывает много недоразумений. + Прежде всего, физические параметры диска SCSI не имеют никакого + значения, так как FreeBSD работает в терминах дисковых блоков. + Фактически нет такого показателя, как "физические параметры", + так как плотность размещения секторов различна по всему диску; то, + что производители называют "реальными" физическими параметрами обычно + размеры рабочие + выызвабт по крайней мере потерянное простран\ство. Для дисков IDE, + FreeBSD работает в терминах C/H/S, но во всех современных дисках они + преобразовываются во внутреннее представление. + +Имеет значение только логические параметры - это то, что + получает BIOS, когда спрашивает "какие у тебя параметры?", а затем + использует для обращения к диску. Так как FreeBSD использует BIOS + при загрузке, очень важно получить верные параметры. В частности, + если у вас на диске находятся несколько операционных систем, они обе + должны иметь одинаковое представление о параметрах диска, иначе + серьёзные проблемы при загрузке неизбежны! + +В случае дисков SCSI, параметры используются в зависимости от того, + включена ли поддержка расширенной трансляции на вашем контроллере + (что часто обозначается как "support for DOS disks >1GB" или + что-то похожее). Если эта возможность выключена, то используйте + N дорожек, 64 головки и 32 сектора на дорожку, где N - это ёмкость + диска в мегабайтах. Например, 2Гбайтный диск должен иметь 2048 + дорожек, 64 головки и 32 сектора а дороку. + +Если трансляция включена (что обычно используется для + преодоления некоторых ограничений MSDOS) и ёмкость диска превышает + 1ГБ, используется M дорожек, 63 сектора на дорожку (*не* 64) и 255 + головок, где 'M' - это объём диска в мегабайтах, поделённый на + 7.844238 (!). Таким образом, наш диск объёмом 2ГБ будет иметь + 261 дорожку, 63 сектора на дорожку и 255 головок. + +Если вы не уверены, или FreeBSD ошибается при определении + параметров диска во время установки, самый простой способ решить эту + проблему - создать на диске маленький раздел DOS. После этого + параметры диска должны определиться правильно (и вы всегда можете + удалить раздел DOS в редакторе разделов, если вы не хотите его + сохранить, или оставить его для настройки сетевых адаптеров и подобных + вещей). + +Кроме того, существует свободно доступная утилита, распространяемая + вместе с FreeBSD, которая называется ``pfdisk.exe'' + (можно найти в каталоге tools компакт-диска с FreeBSD или + на различных ftp-серверах), которую можно использовать для определения + параметров, которые используются другими операционными системами, + расположенными на вашем диске. Затем вы можете использовать эти + параметры в редакторе разделов. + + + + +Есть ли ограничения на разбиение диска? + +Да. Вы должны убедиться, что корневой раздел находится до + 1024 дорожки, так чтобы BIOS могла загрузить с него ядро. (Заметьте, + что это ограничение BIOS компьютера, а не FreeBSD). + +Для диска SCSI, это, как правило, будет означать, что + корневой раздел располагается в первых 1024Мб (или в первых 4096Мб, + если включен режим расширенной трансляции - посмотрите предыдущий + вопрос). Для дисков IDE соответствующее значение равно 504Мб. + + + + + Как насчет менеджеров диска? У меня большой диск! + + +FreeBSD распознаёт Ontrack Disk Manager и допускает его + использование. Другие менеджеры дисков не поддерживаются. + +Если вы хотите использовать диск с FreeBSD, вам не нужен + менеджер диска. Отконфигурируйте диск на столько пространства, + сколько сможет обработать BIOS (обычно 504 мегабайта). и + FreeBSD разпознает, сколько места у вас есть на самом деле. + Если вы используете старый диск с контроллером MFM, вам может + потребоваться точно указать FreeBSD количество используемых + дорожек. + +Если вы хотите использовать FreeBSD совместно с другой + операционной системой, это можно сделать и без менеджера диска: + удостоверьтесь, что загрузочный раздел FreeBSD и раздел для другой + операционной системы не выходят за пределы 1024 дорожки. Если вы + будете осторожны, 20 мегабайтного раздела для загрузки будет + достаточно. + + + + + При загрузке FreeBSD выдается сообщение ``Missing Operating System'' + + + +Это классический случай, когда FreeBSD и DOS или другая + операционная система конфликтуют по поводу диска. Вам нужно будет переустановить FreeBSD, + но имейте в виду, что инструкции, данные выше, помогают всегда. + + + + + После приглашения менеджера загрузки `F?' ничего не происходит. + + +Это ещё один признак проблемы, описанной в предыдущем разделе. + Параметры диска в BIOS и параметры, используемые FreeBSD, не + совпадают. Если ваш контроллер или BIOS поддерживают трансляцию + дорожек (часто обозначаемую как ``>1GB drive support''), + попробуйте включить эту возможность и переустановить FreeBSD. + + + + + У меня >16Мб ОЗУ. Это не вызовет никаких проблем? + + +Кроме разве что вопроса производительности, нет. Во FreeBSD 2.X + встроен контроль границ буферов (bounce buffers), что позволяет вашим + контроллерам, работающим в режиме прямого доступа к шине, иметь доступ + к памяти выше 16Мб. (Заметьте, что это будет требоваться только если + вы используете устройства ISA, хотя этого также требуют некоторые + устройства EISA и VLB). + +Обратитесь к разделу о , если у вас столько ОЗУ или вы используете + машины Compaq или BIOS, который выдаёт неверные параметры ОЗУ. + + + + + Нужно ли устанавливать все исходные тексты системы? + + +В общем случае, нет. Однако мы настоятельно рекомендуем + проинсталлировать, как минимум, исходные тексты набора + ``base'', включающий некоторые файлы, здесь упоминаемые, + и ``sys'', в который включены исходные тексты ядра. + Для работы системы присутствия исходных текстов не требуется, + разве что для программы конфигурирования ядра + config. За исключением исходных текстов ядра, структура + исходных текстов системы позволяет монтировать её в режиме + "только для чтения" через NFS и компилировать программы. (Из-за + ограничения на исходные тексты ядра мы рекомендуем монтировать их + не прямо в /usr/src, а в какой-нибудь другой каталог с + символическими ссылками для дублирования структуры каталогов. + +Наличие исходных текстов системы значительно облегчает + процесс обновления до новых версий FreeBSD. + +Для выбора подмножества исходных текстов, которое вы + хотите установить, используйте пункт меню Custom, когда + находитесь в меню Distributions программы установки. Скрипт + src/install.sh также инсталлирует часть исходных + текстов, в зависимости от указанного при запуске параметра. + + + + +Нужно ли перекомпилировать ядро? + +Построение нового ядра всегда было необходимым шагом при + установке FreeBSD, однако последние релизы предоставляют более + дружественный инструмент конфигурации ядра. В командной строке + на приглашение загрузчика FreeBSD (boot:) введите "-c" и вы + попадёте в экран визуальной настройки, которая позволяет + конфигурировать настройки ядра для большинства адаптеров ISA. + +Однако рекомендуется, что потом вы всё же построите новое ядро, + содержащее только те дравера, которые вам нужны, для того, + чтобы сэкономить немного ОЗУ, хотя для большиства систем это + больше не является большой необходимостью. + + + + + Находясь за пределами США, могу ли я использовать систему + шифрования DES? + + +Если нет абсолютной необходимости в использовании криптографической + системы типа DES, то для большей безопасности вы можете + использовать стандартную для FreeBSD системы криптографии без + экспортных ограничений. Используемый по умолчанию скрамблер паролей + FreeBSD 2.0 в настоящее время основан на MD5, и более устойчив + к подбору пароля, чем DES, к тому же позволяет иметь более длинные + пароли. Единственной + причиной не использовать шифрование MD5 может быть требование + использовать один и тот же файл паролей между системами FreeBSD и + не-FreeBSD. + +Так как алгоритм шифрования DES не может быть законно + экспортирован из США, пользователи за их пределами не должны + сгружать это программное обеспечеиие (как часть secrdist) + с американских ftp-серверов. + +Существует, однако, библиотека, заменяющая libcrypt, которая + основана на коде, разработанном в Австралии Дэвидом Барреном + (David Burren). Этот код можно найти на некоторых неамериканских + зеркалах FreeBSD. Исходные тексты для libcrypt без экспортных + ограничений, и сами программы, её использующие, можно получить + со следующих ftp-серверов: + + + +Южная Африка + +ftp://ftp.internat.freebsd.org/pub/FreeBSD + ftp://storm.sea.uct.ac.za/pub/FreeBSD + + + + + + +Бразилия + + +ftp://ftp.iqm.unicamp.br/pub/FreeBSD + + + + +Финляндия + + +ftp://nic.funet.fi/pub/unix/FreeBSD/eurocrypt + + + + + + + +Неамериканский securedist может быть использован как + непосредственную замену американского securedist. Этот + securedist устанавливается таким же образом, как и + американский вариант (обратитесь к замечаниям по установке). Если + вы собираетесь устанавливать шифрование DES, вы должны сделать это + до того, как будете устанавливать другое программное обеспечение. + +Пользователи за пределами США не должны сгружать + любое криптографическое программное обеспечение из США. Это может + вызвать проблемы юридического плана у тех, что занимается + обслуживанием тех сайтов, с которых было сгружено программное + обеспечение. + +В разработке находится неамериканский дистрибутив системы + Kerberos, и текущая версия может получена с анонимного FTP по + адресу braae.ru.ac.za. + +Существует , + посвящённый неамериканскому криптографическому программному + обеспечению. Для запроса информации пошлите письмо, содержащее + одну строчку ``help'' в теле сообщения на адрес + + <majordomo@braae.ru.ac.za>. + + + + + Загрузка с установочной дискеты прерывается на сообщении + ``Probing Devices...''. + + +Если у вас установлены устройства IDE Zip или Jaz, уберите их + и попробуйте снова. Они могут мешать инсталляционной программе. После + того, как система будет установлена, вы можете снова подключить + устройства. Надеемся, что это будет исправлено в более поздних + релизах. + + + + + Сообщение ``panic: cant mount root'' после перезагрузки + только что установленной системы. + + +Эта ошибка проявляется, когда есть несогласование между + представлениями загрузочного блока и ядра о дисковых устройствах. Эта + ошибка обычно проявляется на системах с двумя дисками IDE, с винчестерами, + установленными как ведущий или единственный на отдельных контроллерах IDE, + с FreeBSD, инсталлированной на втором контроллере IDE. Загрузочные блоки + думают, что система установлена на wd1 (второй диск BIOS), тогда как + ядро даёт первому диску на втором контроллере название wd2. После + обнаружения устройства ядро пытается смонтировать то, что загрузочные + блоки выдают за загрузочный диск, wd1, тогда как он на самом деле wd2, + и ошибается. + +Для разрешения этой проблемы сделайте одно из следующих действий: + + + + + +В приглашении Boot: наберите + 1:wd(2,a)kernel и нажмите клавишу Enter. Если система + запустилась, выполните команду +echo "1:wd(2,a)kernel" > /boot.config + + чтобы сделать это строкой загрузки по умолчанию. + + + + +Поместите диск с FreeBSD на первичный контроллер IDE, так чтобы + именования диском пришли в соответствие. + + + + +Перестройте ядро, + изменив конфигурацию контроллера wd на следующее: + +controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr +disk wd0 at wdc0 drive 0 +# disk wd1 at wdc0 drive 1 # comment out this line + +controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr +disk wd1 at wdc1 drive 0 # change from wd2 to wd1 +disk wd2 at wdc1 drive 1 # change from wd3 to wd2 + + + Проинсталлируйте новое ядро. + Если вы переместили ваши диски и хотите посстановить предыдущую + настройку, замените диски в нужной конфигурации и перезагрузитесь. + Ваша система должна нормально запуститься. + + + + + + + + + + + Какие существуют ограничения на оперативную память? + + +Теоретическое ограничение на память равно 4 гигабайтам. + Тестировался случай с одним гигабайтом; как правило, вы не сможете + приобрести персональный компьютер, поддерживающий больший объём ОЗУ. + + + + + Какие существуют ограничения для файловой системы ffs? + + +Для файловой системы ffs максимальный теоретический размер равен + 8 терабайтам (2Г блоков) или 16ТБ при стандартном размере блока 8К. + На практике есть программное ограничение в 1 терабайт, но с + некоторыми модификациями достижимы 4 гигабайта (и такие системы + существуют). + +Максимальный размер одного файла ffs равен примерно 1Г блоков + (4ТБ) при размере блока 4К. + + + максимальный размер файла + ---------------------------------- + 2.2.7 3.0 +размер блока fs -stable -current работает должно работать +--------------- ------- -------- -------- --------------- +4K 4T-1 4T-1 4T-1 4+T +8K 32+G 8T-1 32+G 16T-1 +16K 128+G 16T-1 128+G 32T-1 +32K 512+G 32T-1 512+G 64T-1 +64K 2048+G 64T-1 2048+G 128T-1 + + + +При размере блока файловой системы 4К, тройная адресация + блоков работает и всё должно быть ограничено максимальным количеством + блоков, которое задаётся в виде тройной переадресации + блока (примерно 1K^3 + 1K^2 + 1K), однако всё ограничивается + (ошибочным) лимитом 1Г-1 на количество блоков файловой системы. + Это ограничение должно быть равным 2Г-1. При количестве блоков, + приближающемся к 2Г-1, появляются некоторые ошибки, но этот предел + недостижим при размере блока 4К. + +При размере блока 8К и больше, всё должно быть ограничено + лимитом 2Г-1 на количество блоков файловой системы, но реально + ограничено пределом в 1Г-1 на число блоков файловой системы, кроме + случая -stable, недостижимый при тройной переадресации, так что предел + равен максимальному числу блоков файловой системы, который может + быть представлен через двойную переадресацию (примерно + (размер блока/4)^2 + (размер блока/4)), и под -current превышеине + этого ограничения может вызвать проблемы. Использование верного + ограничения в 2Г-1 блоков вызывает проблемы. + + + + +Как можно поместить файлы размером 1ТБ на дискету? + +Я храню парочку таких на дискете :-) Максимальный размер + файла не связан непосредственно с максимальным размером диска. + Максимальный размер диска равен 1ТБ. Особенностью является + то, что размер файла может превышать размер диска. + +В следующем примере создаётся файл размером 8Т-1 с помощью всего + 32К дискового пространства (3 блока адреса и 1 блок данных) на + маленьком корневом разделе. Команда dd должна уметь работать с + большими файлами. + + +ttyv0:bde@alphplex:/tmp/q> cat foo +df . +dd if=/dev/zero of=z bs=1 seek=`echo 2^43 - 2 | bc` count=1 +ls -l z +du z +df . +ttyv0:bde@alphplex:/tmp/q> sh foo +Filesystem 1024-blocks Used Avail Capacity Mounted on +/dev/sd0a 64479 27702 31619 47% / +1+0 records in +1+0 records out +1 bytes transferred in 0.000187 secs (5346 bytes/sec) +-rw-r--r-- 1 bde bin 8796093022207 Sep 7 16:04 z +32 z +Filesystem 1024-blocks Used Avail Capacity Mounted on +/dev/sd0a 64479 27734 31587 47% / +ttyv0:bde@alphplex:/tmp/q> exit + + +Bruce Evans, September 1998 + + + + + Я скомпилировал новое ядро и при загрузке получил сообщение об ошибке + "archsw.readin.failed". + + +Вы можете осуществить загрузку системы, явно указав ядро во время + второго этапа загрузочного процесса, нажав любую клавишу после + появления символа | до запуска загрузчика. Более точно, вы обновили + исходные тексты ядра, откомпилировали и установили новое ядро без + выполнения make world . Такое не поддерживается. Выполните + make world. + + + + + + +Аппаратная совместимость + + + +Какие типы винчестеров поддерживает FreeBSD? + +FreeBSD работает с дисками стандартов EIDE и SCSI (с + соответствующими контроллерами; обратитесь к следующему разделу), и + всеми дисками, использующими оригинальный интерфейс "Western Digital" + (MFM, RLL, ESDI и, конечно же, IDE). Некоторые контроллеры ESDI, + использующие собственные интерфейсы, могут и не работать: к таким + относятся WD1002/3/6/7 и их клоны. + + + + +Какие поддерживаются контроллеры SCSI? + +Полный список приведён в Руководстве. + + + + +Какие приводы CD-ROM поддерживаются во FreeBSD? + +Поддерживаются любые SCSI-устройства чнения компакт дисков, + подключенные к поддерживаемому контроллеру. + +Кроме того, поддерживаются следующие оригинальные интерфейсы: + + + + + +Mitsumi LU002 (8bit), LU005 (16bit) и FX001D (16bit 2x Speed). + + + + +Sony CDU 31/33A + + + + +Sound Blaster не-SCSI CD-ROM + + + + +Matsushita/Panasonic CD-ROM + + + + +ATAPI-совместимые IDE CD-ROM + + + + + + +Все не-SCSI адаптеры ставятся своей медлительностью по сравнению + со SCSI, а некоторые CDROM стандарта ATAPI могут и не работать. + +С версии 2.2 компакт-диск с FreeBSD от Walnut Creek является + загрузочным. + + + + +Поддерживает ли FreeBSD устройства ZIP? + +Несомненно, FreeBSD поддерживает ZIP-устройства SCSI. Устройству + ZIP могут быть назначены SCSI ID только 5 или 6, и если BIOS вашего + SCSI-адаптера поддерживает такую возможность, вы можете с него даже + загрузиться. Мне не известны адаптеры, позволяющие загрузиться с + устройств, номера которых отличны от 0 или 1... посмотрите в + вашей документации (и сообщите мне, если у вас это работает). + +Устройства ZIP стандарта ATAPI (IDE) поддерживаются FreeBSD начиная + с версии 2.2.6. + +FreeBSD поддерживает устройства Zip, работающие через параллельный + порт, начиная с версии 3.0. Если вы используете более новую версию, + проверьте, содержит ли ваше ядро драйверы для scbus0, da0 + , ppbus0 и vp0 (ядро GENERIC содержит всё это, + кроме vp0). Если эти драйверы имеются, то устройство должно быть + доступно как /dev/da0s4. Диски могут быть смонтированы + командами mount /dev/da0s4 /mnt или (для дисков dos) + mount_msdos /dev/da0s4 /mnt. + +Также посмотрите следующее замечание + о съёмных носителях, и это замечание + о 'форматировании'. + + + + + Поддерживает ли FreeBSD съёмные диски типа JAZ или EZ? + + +Кроме IDE-варианта устройства EZ, это всё устройства SCSI, так что + для FreeBSD все они должны выглядеть как диски SCSI, а IDE EZ должен + выглядеть как диск IDE. + +Я не знаю, насколько хорошо FreeBSD поддерживает + смену носителя во время работы. Конечно, чтобы сменить диск, вам + сначала нужно его размонтировать, и обратите внимание на то, что при + загрузке все внешние устройства должны быть включены, чтобы FreeBSD + могла их распознать. + +Посмотрите это замечание о + 'форматировании'. + + + + + Какие многопортовые последовательные адаптеры поддерживаются + во FreeBSD? + + +Список таких устройств находится в разделе о различных устройствах Руководства. + +Некоторые безымянные клоны таких адаптеров тоже работают нормально, + особенно те, которые заявляют о своей совместимости с AST. + +Прочтите страницы Справочника о sio + для получения подробной информации о конфигурировании таких адаптеров. + + + + + У меня необычная мышь типа bus mouse. Как её настроить? + + + +FreeBSD поддерживает мыши типов bus mouse и InPort bus mouse от + таких производителей, как Microsoft, Logitech и ATI. Драйвер + устройства bus mouse включен по умолчанию в ядро GENERIC. Если вы + строите собственное ядро с этим драйвером, добавьте следующую строку + в конфигурационный файл ядра; + + + device mse0 at isa? port 0x23c tty irq5 vector mseintr + + + +Мышь типа bus mouse обычно поставляется с отдельным интерфейсным + адаптером. Он позволяет установить адрес порта ввода/вывода и номер + IRQ, отличающиеся от приведённых выше. Обратитесь к документации по + вашей мыше и страницам Справочника об устройстве mse. + + + + + Как использовать мышь PS/2 (типа ``mouse port'' или ``keyboard'')? + + + +Если вы используете FreeBSD версии выше, чем 2.2.5, то необходимый + драйвер, psm, включён в ядро и активизирован. Ядро должно обнаружить + мышь PS/2 во время загрузки. + +Если вы работаете с предыдущей, но сравнительно свежей версией + FreeBSD (2.1.x и выше), то вы можете просто включить её поддержку в + меню конфигурации ядра во время инсталляции, либо позже, указав + -c в приглашении boot:. По умолчанию она отключена, так что вы должны + включить её явно. + +Если вы используете более старую версию FreeBSD, то вам нужно + добавить следующие строки в файл конфигурации ядра и скомпилировать + новое ядро: + + + device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr + + + +Обратитесь к главе Руководства о конфигурировании ядра, если вы не имеете опыта такой работы. + +После того, как ядро правильно обнаружило psm0 во время загрузки, + проверьте существование файла устройства для psm0 в каталоге /dev. + Это можно сделать, набрав: + + + cd /dev; sh MAKEDEV psm0 + + + +войдя в систему администратором. + + + + + Можно ли каким-либо образом использовать мышь, кроме X Window? + + + +Если вы используете стандартный драйвер консоли, syscons, то можете + использовать указатель мыши в текстовых консолях для выделения и + переноса текста. Запустите демон мыши, moused, и включите отображение + указателя мыши на консоли: + + + moused -p /dev/xxxx -t yyyy + vidcontrol -m on + + + +Здесь xxxx - это имя устройства мыши, а yyyy - + тип протокола, используемого мышью. Страница Справочника о + moused + содержит информацию о поддерживаемых типах протоколов. + +Вы можете запускать демон мыши автоматически во время старта + системы. В версии 2.2.1, установите значение следующей переменной в + /etc/sysconfig. + + + mousedtype="yyyy" + mousedport="xxxx" + mousedflags="" + + + + В версиях 2.2.2 и выше, установите значения следующих переменных в + /etc/rc.conf. + + + moused_type="yyyy" + moused_port="xxxx" + moused_flags="" + + + +Начиная с FreeBSD 2.2.6, демон мыши в состоянии определять тип + протокола автоматически, если, конечно, мышь не достаточно + древней модели. Укажите ``auto'' для автоматического + определения типа протокола. + +После запуска демона мыши, доступ к мыши должен согласовываться + между демоном мыши и другими программами типа X Window. Этот вопрос + освещён в . + + + + + Как можно вырезать и копировать текст с помощью мыши в + текстовой консоли? + + +После того, как вы запустили демон мыши (посмотрите ), нажмите кнопку 1 (левую) и + двигайте мышь для выбора области выделения. Затем нажмите кнопку 2 + (среднюю) или кнопку 3 (правую) для вставки текста из буфера, начиная + с текущей позиции курсора. + +В версиях 2.2.6 и выше, нажатие на кнопку 2 вызовет вставку текста. + Нажатие на кнопку 3 ``расширит'' выбранный область текста. Если у + вашей мыши отсутствует средняя кнопка, вы можете её сэмулировать или + переназначить кнопки опциями программы moused. Обратитесь к странице + Справочника по moused. + + + + + У моей мыши есть дополнительные колёсико и кнопочки. Можно + ли их использовать во FreeBSD? + + +Ответ, к сожалению, ``в зависимости от обстоятельств''. Эти мышки + с дополнительными возможностями как правило, требуют наличия + специальных драйверов. До тех пор, пока драйвер мыши или прикладная + программа не будут иметь отдельную поддержку такой мыши, она будет + работать как стандартная двух- или трёхкнопочная мышь. + + + + + Как использовать мышь/трэкболл/сенсорную панель на лэптопе? + + +Посмотрите один из предыдущих разделов. + И посмотрите это замечание на странице о + мобильных вычислениях. + + + + +Какие типы стримеров поддерживаются? + +FreeBSD поддерживает стримеры с интерфейсами SCSI, QIC-36 (с + интерфейсом QIC-02) и QIC-40/80 (на основе НГМД), включая 8-мм + (Exabyte) и DAT. Стримеры QIC-40/80 стравнительно медленны. + +Некоторые ранние модели 8-мм стримеров не совсем соответствуют + стандарту SCSI-2 и могут работать не совсем хорошо. + + + + +Поддерживает ли FreeBSD роботов для смены лент? + +FreeBSD 2.2 поддерживает SCSI-чейнджеры через устройство ch + и команду chio. Детальная информация об управлении чейнджерами может + быть найдена на странице Справочника по команде chio. + +Если вы не используете систему AMANDA или + другое программное обеспечение, умеющее работать с роботами, имейте в + виду, что они могут только переносить ленты с одного места на другое, + так что вам нужно самим отслеживать, в каком слоте находится нужная + лента, и в какой слот нужно вернуть ленту, находящуюся в стримере. + + + + +Какие звуковые платы поддерживаются во FreeBSD? + +FreeBSD поддерживает звуковые платы SoundBlaster, SoundBlaster Pro, + SoundBlaster 16, Pro Audio Spectrum 16, AdLib и Gravis UltraSound. + Имеется ограниченная поддержка MPU-401 и совместимых с ним адаптеров. + Адаптеры, удовлетворяющие спецификации Microsoft Sound System, также + поддерживаются драйвером pcm. + +ЗАМЕЧАНИЕ Это касается только звука! Этот драйвер не + поддерживает CDROM, SCSI или джойстики на всех подобных адаптерах, + кроме SoundBlaster. Поддерживаются устройства на SCSI-интерфейсе + SoundBlaster и не-SCSI CDROM, но загрузиться с них нельзя. + + + + +Какие сетевые адаптеры поддерживает FreeBSD? + +Более полный список содержится в разделе Руководства об адаптерах Ethernet. + + + + + На моей машине отсутствует математический сопроцессор - это плохо? + + +Замечание Это касается только владельцев компьютеров + 386/486SX/486SLC - во всех остальных машинах модуль вычислений с + плавающей точкой объединён с центральным процессором. + +В общем случае это не проблема, но в отсутствии сопроцессора вы + можете столкнуться со снижением производительность и точности при + использовании программной эмуляции сопроцессора (обратитесь к разделу + об ). + В частности, прорисовка дуг в X будет ОЧЕНЬ медленной. Приобретение + математического сопроцессора настоятельно рекомендуется, он того стоит. + +ЗАМЕЧАНИЕ Некоторые математические + сопроцессоры работают лучше, чем другие. Нам неприятно это признавать, + но Intel пока никого не подводил. Если вы не уверены, что сопроцессор + будет работать с FreeBSD, избегайте клонов. + + + + +Какие ещё устройства поддерживаются в 2.X? + +В Руководстве приведён список остальных устройств, которые + поддерживаются во FreeBSD. + + + + + Поддерживает ли FreeBSD управление энергосбережением на лаптопах? + + +FreeBSD поддерживает APM на некоторых машинах. Поищите в файле + конфигурации ядра LINT слово APM. + + + + + Решение специфичных проблем с аппаратным обеспечением + + +Этот раздел содержит решения специфичных проблем с аппаратным + обеспечением, с которыми сталкиваются наши пользователи. + + + + +Компьютеры Micron зависают при загрузке + +Некоторые материнские платы Micron имеют BIOS, не удовлетворяющую + стандарту PCI BIOS, что приводит к печальным последствиям при + загрузке FreeBSD, потому что имеет место несоответствие устройств + PCI занимаемым ими адресам. + +Для решения этой проблемы отключите в BIOS опцию "Plug and Play + Operating System" . + +Более подробная информация об этой проблеме находится по следующему + адресу: http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron + + + + + FreeBSD не распознаёт мой новейший контроллер от Adaptec. + + +Новый набор микросхем AIC789x от Adaptec поддерживается подсистемой + CAM SCSI, впервые появившейся в 3.0. Патчи для 2.2-STABLE находятся по + адресу ftp://ftp.freebsd.org/pub/FreeBSD/development/cam/. Загрузочный + диск с поддержкой CAM доступен по адресу http://www.freebsd.org/~abial/cam-boot/. В обоих случаях прежде + чем начать, прочтите файл README. + + + + +FreeBSD не находит внутренний модем Plug & Play. + +Вам нужно добавить PnP ID вашего модема в список PnP ID драйвера + последовательного порта. Для включения поддержки Plug & Play, + откомпилируйте новое ядро с опцией controller pnp0 в конфигурационном + файле, и перезагрузите машину. Ядро выведет список ID всех найденных + PnP-устройств. Добавьте PnP ID модема в таблицу в файле + /sys/i386/isa/sio.c, где-то в районе 1200 строки. Чтобы найти + таблицу, поищите слово "SUP1310" в структуре "siopnp_ids[]". Снова + постройте ядро, проинсталлируйте его и перезагрузитесь. Теперь ваш модем + должен быть опознан. + +Вам может понадобиться отконфигурировать PnP-устройства командой 'pnp' + в конфигураторе во время загрузки следующим образом: + + + pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8 + + + чтобы модем был распознан. + + + + + Как сделать, чтобы приглашение boot: выводилось на консоль на + последовательном порту? + + + + + + +Постройте ядро с опцией options COMCONSOLE. + + + + +Создайте файл /boot.config, поместив туда только текст . + + + + +Отключите клавиатуру. + + + + + + +Подробная информация находится в файле + /usr/src/sys/i386/boot/biosboot/README.serial. + + + + + Почему сетевой адаптер 3Com PCI не работает с компьютерами Micron? + + +Некоторые материнские платы Micron имеют BIOS, не удовлетворяющую + стандарту PCI BIOS, что приводит к несоответствию устройств PCI + занимаемым ими адресам. Это приводит к печальным последствиям при + загрузке FreeBSD. + +Для решения этой проблемы отключите в BIOS опцию "Plug and Play + Operating System" . + +Более подробная информация об этой проблеме находится по следующему + адресу: http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron + + + + + Поддерживает ли FreeBSD многопроцессорные системы (SMP)? + + +Поддержка SMP (Symmetric Multiprocessing) имеется только в + 3.0-STABLE и последующих релизах. + + + + + + +Устранение некоторых проблем + + + + На моём винчестеры есть запорченные блоки! + + +Если это SCSI-устройство, то винчестер должен иметь возможность + автоматической переадресации таких блоков. Однако по непонятным + причинам во многих поставляемых дисках эта возможность отключена... + +Чтобы её включить, вам нужно изменить режим работы устройства, что + во FreeBSD может быть выполнено администратором посредством команды + + + scsi -f /dev/rsd0c -m 1 -e -P 3 + + + +и изменить значения параметров AWRE и ARRE с 0 на 1:- + + + AWRE (Auto Write Reallocation Enbld): 1 + ARRE (Auto Read Reallocation Enbld): 1 + + + +Последующие параграфы были предоставлены + Тэдом Миттельштадтом + (Ted Mittelstaedt): + +Для дисков IDE появление запорченных блоков является признаком + возможных неприятностей. Все современные IDE-диски поставляются с + включенной возможностью переадресации испорченных блоков. Все + производители винчестеров в настоящее время предоставляют расширенные + гарантии и заменяют диски с запорченными блоками. + +Если вы всё же хотите спасти ваш диск IDE с запорченными блоками, + вы можете попытаться найти программу диагностики винчестеров от + производителя и протестировать ею диск. Иногда эти программы могут + заставить электронику винчестера пересканировать диск в поисках + испорченных блоков и заблокировать их. + +В случае дисков стандартов ESDI, RLL и MFM, наличие испорченных блоков + является обычным явлением и не является большой проблемой. В ПК + контроллер винчестера и BIOS берут на себя работу по блокировке + испорченных блоков. Это прекрасно работает в случае операционных систем + типа DOS, которые используют вызовы BIOS для доступа к диску. Однако + драйвер диска во FreeBSD не обращается к BIOS, поэтому для обеспечения + подобной функциональности существует bad144. bad144 работает только с + драйвером wd, её НЕВОЗМОЖНО использовать со SCSI. bad144 помещает все + найденные испорченные сектора в специальный файл. + +У bad144 имеется особенность - специальный файл с испорченными + блоками помещается на последнюю дорожку диска. Так как этот файл + может содержать список испорченных секторов, находящихся в начале + диска, где может располагаться файл ядра /kernel, он должен быть + доступен загрузчику, использующему вызовы BIOS для чтения файла ядра. + Это значит, что диск, который использует bad144, не должен иметь + размеры, превышающие 1024 дорожки, 16 головок и 63 сектора. Это + ограничивает размер диска, обрабатываемого bad144, 500 мегабайтами. + +Для использования bad144, просто установите "Bad Block" + в положение ON на экране программы fdisk во время начальной установки. + Это работает начиная с FreeBSD 2.2.7. Диск должен иметь размер, + не превышающий 1024 дорожки. Рекомендуется, чтобы до этого диск + проработал не менее 4 часов для перехода в рабочий тепловой режим и + стабильный режим работы головок. + +Если диск имеет размер, превышающий 1024 головки (как, например, + большой диск ESDI), контроллер ESDI использует особый режим + трансляции, чтобы это работало в DOS. Драйвер wd будет знать об этих + режимах трансляции, ЕСЛИ вы укажете на использование "преобразованных" + параметров в команде "set geometry" программы fdisk. Вы также НЕ должны + использовать режим "dangerously dedicated" при выделении раздела для + FreeBSD, так как при этом параметры диска не принимаются во внимание. + Также, хотя fdisk будет использовать изменённые параметры, он всё же + помнит настоящий размер диска, и попытается создать слишком большой + раздел FreeBSD. Если параметры диска изменились на транслированные, + раздел ДОЛЖЕН быть создан вручную с указанием количества блоков. + +Самым быстрым способом является установка большого диска ESDI с + контоллером ESDI, загрузка DOS и выделение на нём раздела DOS. Затем + запустите инсталляционную программу FreeBSD и в экране программы + fdisk найдите и запишите размер блока и их количество раздела DOS. + Затем установите параметры в те же значения, которые использует DOS, + удалите раздел DOS и создайте "совмещённый" раздел FreeBSD с ранее + записанным размером блока. Затем установите загрузку с этого раздела + и включите сканирование испорченных блоков. Во время установки сначала, + ещё до создания файловых систем, запустится bad144 (вы можете это + увидеть по Alt-F2). Если возникнут проблемы при создании файла с + запорченными секторами, вы установили слишком большие параметры диска + - перезагрузитесь и начните всё сначала (включая повторные разбиение + на разделы и форматирование винчестера в DOS). + +Если переадресация включена и всё равно на диске присутствуют + запорченные блоки, то, по-видимому, остаётся только заменить винчестер. + Количество испорченных блоков с течением времени имеет тенденцию только + увеличиваться. + + + + + FreeBSD не распознаёт мой EISA SCSI контроллер Bustek 742a! + + +Нижеследующая информация специфична для 742a, но может касаться и + других адаптеров от Buslogic (Bustek = Buslogic). + +Существуют две основных ``версии'' адаптеров 742a. Это аппаратные + модификации A-G и модификации H и выше. Буква, обозначающая + модификацию, расположена после номера сборки на кромке адаптера. На + адаптере 742a установлены две микросхемы ПЗУ, одна содержит BIOS, а + другая - микрокод (так называемое firmware). Для FreeBSD не имеет + значения используемая версия BIOS, но имеет значение версия микрокода. + Buslogic высылает обновления для ПЗУ, если вы позвоните в их отдел + технической поддержки. Михросхемы с BIOS и микрокодом поставляются + соответствующими парами. В ПЗУ адаптера вы должны иметь самую + последнюю версии микрокода для вашей аппаратной модификации. + +Адаптерам модификаций A-G может только подойти BIOS/Firmware версий + вплоть до 2.41/2.21. Адаптерам модификаций H и старше подходят самые + последние версии BIOS/Firmware 4.70/3.37. Отличие между версиями + микрокода заключается в том, что версия микрокода 3.37 поддерживает + механизм ``round robin''. + +На адаптерах Buslogic проставлен серийный номер. Если у вас + адаптер старой модификации, вы можете позвонить в подразделение RMA + фирмы Buslogic, сказать им серийный номер адаптера и попытаться + обменять его на более новую модификацию. Если адаптер достаточно нов, + то они его поменяют. + +FreeBSD 2.1 поддерживает микрокод модификаций только 2.21 и выше. + Если у вас версия микрокода старее, чем эта, то адаптер не будет + распознаваться как адаптер Buslogic. Однако он может быть опознан + как Adaptec 1540. Ранние версии микрокода от Buslogic содержат режим + ``эмуляции'' AHA1540. Однако для EISA-адаптера всё это выглядит как-то + некрасиво. + +Если у вас адаптер старой модификации и вы получили микрокод 2.21 + для него, установите перемычку W1 в положение B-C, по умолчанию она + находится в положении A-B. + +Адаптеры 742a EISA никогда не имели проблему ``>16MB'', + описанную в разделе . + Эта проблема возникает со SCSI-адаптерами Vesa-Local Buslogic. + + + + + Не распознаётся SCSI-контроллер на HP Netserver! + + +В общем-то это известная проблема. EISA-контроллеры SCSI, + расположенные на материнской плате машин HP Netserver, занимают + EISA-слот номер 11, так что все ``настоящие'' слоты EISA будут ему + предшествовать. Так как адресное пространство для слотов EISA выше 10 + пересекается с адресным пространством, предназначенным для PCI, то + автоконфигуратор FreeBSD в настоящее время не может эту проблему + нормально обойти. + +Так что пока лучшее, что вы можете предпринять, это попытаться + указать, что пересечения диапазонов адресов нет :), установив опцию + ядра EISA_SLOTS в значение 12. Отконфигурируйте и откомпилируйте + ядро так, как это описано в разделе Руководства о конфигурировании ядра. + +Конечно, это даст вам типичную ситуации "курица или яйцо" + при установке системы на такой машине. Для обхода этой проблемы + внутри UserConfig есть специальный хак. Не используя + ``визуального'' интерфейса, а только интерфейс командной строки, + просто наберите + + + eisa 12 + quit + + + +в приглашении, и проинсталлируйте систему как обычно. В любом + случае рекомендуется, что вы отконфигурируете и проинсталлируете + собственное ядро. Программа dset в настоящее + время может сохранять это значение. + +Надеемся, что будущие версии будут содержать полное решение этой + проблемы. + +ЗАМЕЧАНИЕ: Вы не сможете использовать режим + dangerously dedicated на машинах HP + Netserver. Полное описание причин содержится в + этом замечании. + + + + +Что не так с IDE-контроллером CMD640? + +Этот контроллер не рабочий. Он не может отрабатывать команды на + обоих каналах одновременно. + +Решение этой проблемы существует и включается автоматически, если + в вашей системе испольщуется этот контроллер. Подробная информация + находится на страницах Справочника по дисковому драйверу (man 4 wd). + +Если вы уже работаете с FreeBSD 2.2.1 или 2.2.2 с IDE-контроллером + CMD640 и хотите использовать второй канал, постройте новое ядро с + включенной опцией options "CMD640". В версии 2.2.6 и выше это + включено по умолчанию. + + + + +Выдаются сообщения типа ``ed1: timeout''. + +Обычно это вызвано конфликтом прерываний (например, двух адаптеров, + использующих один и тот же IRQ). FreeBSD до версии 2.0.5R была + нечувствительна к таким конфликтам, и драйвер сетевого адапетра + оставался работоспособен даже при конфликтах IRQ. Однако с версии + 2.0.5R и выше, конфликты IRQ больше не считаются безобидными. + Загрузитесь с опцией -c и смените строку, описывающую ed0/de0/... + на соответствующую вашей системе.. + +Если вы используете разъём BNC сетевого адаптера, таймауты + устройства могут быть вызваны плохим терминированием. Чтобы это + проверить, подключите терминатор к адаптеру (без кабеля) и + посмотрите, не исчезли ли сообщения об ошибках. + +Некоторые NE2000-совместимые адаптеры выдают такую ошибку, если нет + связи по UTP-порту или отключен кабель. + + + + + При монтировании компакт-диска, выдаётся сообщение + ``Incorrect super block''. + + +В параметрах команды mount вам нужно + указать тип устройства, который вы собираетесь смонтировать. По + умолчанию mount полагает, что монтируемая файловая система имеет тип + ``ufs''. При монтировании файловой системы CDROM нужно указать + опцию ``'' в команде mount. При этом + конечно предполагается, что CDROM содержит файловую систему стандарта + ISO 9660, как на большинстве CDROM. С версии 1.1R FreeBSD автоматически + распознаёт также расширение Rock Ridge (для длинных имён файлов). + +Например, если вы хотите смонтировать устройство CDROM + ``/dev/cd0c'', в каталог /mnt, вы должны выполнить + следующую команду: + + + mount -t cd9660 /dev/cd0c /mnt + + + +Заметьте, что имя устройства (``/dev/cd0c'' в этом примере) + может быть другим, в зависимости от интерфейса вашего CDROM. + Отметьте, что опция ``'' всего лишь приводит к вызову + команды ``mount_cd9660'', так что пример выше может быть + укорочен до такой команды: + + + mount_cd9660 /dev/cd0c /mnt + + + + + + + При монтировании компакт-диска выдаётся сообщение + ``Device not configured''. + + +Обычно это означает, что в приводе CDROM нет компакт-диска либо + устройство не было обнаружено на этапе загрузки. Вставьте в + привод какой-нибудь диск, и/или проверьте его настройку как + ведущего/ведомого устройства, если оно типа IDE (ATAPI). Для привода + CDROM может потребоваться несколько секунд для обнаружения, что был + вставлен диск, так что будьте терпеливыми. + +Иногда SCSI CDROM может отсутствовать в системе из-за недостатка + времени на ответ при сбросе шины. Если ваш привод CD-ROM является + SCSI-устройством, пожалуйста, попробуйте добавить такой символ в ваш + файл конфигурации ядра и перекомпилируйте его. + + + options "SCSI_DELAY=15" + + + + + + + Мой принтер печатает невероятно медленно. Что тут можно сделать? + + +Если принтер подключен к параллельному порту, и единственной + проблемой является его медлительность, попробуйте установить порт в + режим ``polled'': + + + lptcontrol -p + + + +Утверждается, что некоторые новейшие принтеры от HP не работают + корректно в режиме прерываний, скорее всего из-за (это ещё не совсем + точно выянено) проблем с временными задержками. + + + + + Программы аварийно завершают работу с ошибкой ``Signal 11''. + + +Это может быть вызвано сбоями аппаратного обеспечением (память, + материнская плата, итд). Попробуйте запустить на вашем ПК программу + тестирования памяти. Имейте в виду, что в случае незначительных + отклонений в работе возможна ситуация, когда все программы + тестирования, которые вы будете пробовать, будут утверждать, что с + ОЗУ всё в порядке, а ошибка будет возникать при определённых условиях + (таких, как использование DMA при использовании режима управления + шиной контроллером SCSI типа Adaptec 1542, интенсивное обращение к + ОЗУ при компиляции ядра или значительной нагрузке на систему). + +В FAQ по SIG11 (ссылка дана ниже) сказано, что медленная память + является самая распространённой причиной возникновения этой проблемы. + Увеличьте число тактов ожидания в настройке BIOS или установите более + быструю память. + +Для меня самой распространённой причиной была сбойная кэш-память + или кэш-контроллер. Попробуйте отключить внешний кэш (второго + уровня) в BIOS и посмотрите, не решит ли это вашу проблему. + +Подробная информация по этому вопросу содержится в FAQ по проблеме SIG11. + + + + + При загрузке монитор темнеет и теряет синхронизацию! + + +Это известная проблема с видеоадаптерами ATI Mach 64. Она вызвана + тем, что этот адаптер использует адрес 2e8, как и четвёртый + последовательный порт. Из-за ошибки (особенности?) в драйвере + sio.c + он обращается к порту, даже если если он не существует, и даже + если вы отключите sio3 (четвёртый порт), который, как правило, + использует этот адрес ввода/вывода. + +Пока это не исправлено, используйте следующий метод: + + + + + +В приглашенни загрузчика наберите . (Это переведёт + ядро в режим конфигурации). + + + + + +Отключите устройства sio0, sio1, sio2 и + sio3 (все). После этого драйвер sio не будет активизироваться + и проблем не будет. + + + + + +Для продолжения загрузки наберите exit. + + + + + + +Если вам нужно использовать последовательные порты, вм должны + построить новое ядро со следующей можификацией: в файле + /usr/src/sys/i386/isa/sio.c найдите строчку, содержащую + число 0x2e8 и удалите её вместе с предшествующий запятой + (оставив следующую за ним). После этого следуйте обычным указаниям + по построению ядра. + +Даже после этих изменений вы можете обнаружить, что X Window работает + ненормально. Некоторые новейшие видеоадаптеры ATI Mach 64 (например, + ATI Mach Xpression) не работают с текущей версией + XFree86; экран темнеет при запуске X Window + или работает со странностями. Вы можете получить бета-версию нового + X-сервера, который работает лучше, с + сайта XFree86, + перейдя по ссылке, указывающей на новый + бета-релиз. Вам нужны следующие файлы: + +AccelCards, BetaReport, Cards, Devices, FILES, README.ati, + README.FreeBSD, README.Mach64, RELNOTES, VGADriver.Doc, + X312BMa64.tgz + +Замените старые файлы новыми версиями и не забудьте снова запустить + xf86config. + + + + + У меня 128 МБ ОЗУ, но система используется только 64. + + + +Так как для определения объёма памяти FreeBSD использует информацию + BIOS, она ограничена 16 битами, используемыми для выражения + размера ОЗУ в килобайтах (65535 КБ = 64МБ) (или меньше... некоторые + BIOS ограничивают размеры памяти до 16МБ). Если у вас больше чем 64МБ + ОЗУ, FreeBSD будет пытаться обнаружить эту память; однако эта попытка + может и не удасться). + +Для решения этой проблемы вам нужно использовать опцию ядра, + указанную ниже. Способ выяснения полной информации о памяти из BIOS + существует, но у нас нет места в загрузочном блоке, чтобы это делать. + Когда проблема нехватки места в загрузочных блоках будет решена, мы + будем использовать расширенные функции BIOS для получения полной + информации о памяти... но пока мы остановились на опции ядра. + + options "MAXMEM=<n>" + + +Здесь n - это объём памяти в килобайтах. Для машины со 128 МБ + ОЗУ вам нужно использовать значение 131072. + + + + + FreeBSD 2.0 аварийно завершает работу с сообщением + ``kmem_map too small!'' + + +Замечание Сообщение может также выглядеть как + ``mb_map too small!'' + +Такое завершение работы показывает, что системе не хватает + виртуальной памяти для сетевых буферов (точнее, структур mbuf). Вы + можете увеличить количество виртуальной памяти для структур mbuf, + добавив: + +options "NMBCLUSTERS=<n>" + +в файл конфигурации ядра, где <n> - это число в пределах + 512-4096, в зависимости от числа TCP-соединений, которое вам нужно + одновременно обслуживать. Я рекомендую попробовать значение 2048 - + это должно избавить вас от аварийных остановов. Вы можете отслеживать + количество структур mbuf, выделенных/используемых системой командой + netstat -m. Значение по умолчанию для NMBCLUSTERS равно + 512 + MAXUSERS * 16. + + + + + Сообщение ``CMAP busy panic'' при перезагрузке с новым ядром. + + +Процедура определения устаревших фалов /var/db/kvm_*.db + иногда даёт сбой и использует не те файлы, что может вызвать аварийный + останов системы. + +Если это случилось, перезагрузитесь в однопользовательском режиме + и выполните команду: + + + rm /var/db/kvm_*.db + + + + + + +ahc0: brkadrint, Illegal Host Access at seqaddr 0x0 + +Это - результат конфликта со SCSI-адаптером Ultrastor. + +Во время загрузки войдите в меню конфигурации ядра и выключите + устройство uha0, являющееся источником этой проблемы. + + + + +Sendmail говорит, что ``mail loops back to myself'' + +В FAQ по sendmail на это дан такой ответ:- + + + * Выдаются сообщения "Local configuration error", примерно такие: + + 553 relay.domain.net config error: mail loops back to myself + 554 <user@domain.net>... Local configuration error + + Как можно решить эту проблему? + + Согласно записям MX, почта для домена (скажем, domain.net) была + перенаправлена на указанный хост (в нашем случае relay.domain.net), + но он не распознаётся как domain.net. Добавьте строку domain.net в + файл /etc/sendmail.cw (если вы используете FETURE(use_cw_file)) или + добавьте "Cw domain.net" в /etc/sendmail.cf. + + + +Текущая версия FAQ по sendmail больше не поставляется вместе с sendmail. + Однако этот документ регулярно помещается в конференции + comp.mail.sendmail, + comp.mail.misc, + comp.mail.smail, + comp.answers и + news.answers. + Вы можете получить копию по электронной почте, послав сообщение, + содержащее команду "send usenet/news.answers/mail/sendmail-faq" в теле + письма, в адрес mail-server@rtfm.mit.edu. + + + + +Полноэкранные приложения на удалённой машине ведут себя неправильно! + + +На удалённой машине тип терминала может быть устанавлен в значение, + отличное от типа терминала cons25, + требуемом при использовании консоли FreeBSD. + +Есть несколько возможных способов решения этой проблемы: + + + + + +После входа на другую машину установите значение переменной + окружения TERM равным ansi или + sco, если эта машина знает об этих + типах терминалов. + + + +Используйте эмулятор VT100 типа screen + на консоли FreeBSD. screen даёт вам + возможность открывать несколько рабочих сеансов на одном терминале, и она + имеет ещё ряд полезных особенностей. Каждое окно программы + screen ведёт себя как терминал VT100, так + что переменная TERM на удалённой машине должна быть установлена в + значение vt100. + + + +Опишите терминал cons25 в базе данных + характеристик терминалов на удалённой машине. Способ описания зависит от + используемой на этой машине операционной системе. Вам может помочь + чтение руководств по администрированию удалённой системы. + + + +Запустите X-сервер на стороне FreeBSD и войдите на удалённую систему + с помощью какого-либо эмулятора терминала, работающего в X Window, такого, + как xterm или rxvt. Переменная окружения TERM на удалённой + машине должна быть установлена в значение xterm или vt100. + + + + + + + + + Выводятся сообщения "calcru: negative time..." + + +Это может быть вызвано различными аппаратными или программными + проблемами, связанными с прерываниями. Это может быть связано как + с ошибками при программировании, так и с природой самих устройств. + Например, работа с TCP/IP по параллельному порту с использованием + большого MTU приводит к этой проблеме, также как использование + графических акселераторов; в последнем случае вы должны проверить + настройку прерываний на графическом адаптере. + +Одним из проявлений этой проблемы является прерывание работы + процессов с диагностическим сообщением "SIGXCPU exceeded cpu time + limit". + +Если эта проблема не может быть решена, для FreeBSD 3.0 от 29 + ноября 1998 и выше измените значение системной переменной: + + + sysctl -w kern.timecounter.method=1 + + +Это коснётся производительности системы, но принимая во внимание + источник этой проблемы, это будет незаметно. Если проблема всё ещё + даёт знать о себе, оставьте значение этой переменной равным единичке + и увеличьте значение параметра "NTIMECOUNTER" в файле конфигурации + вашего ядра. Если в конце концов вы достигнете значения + "NTIMECOUNTER=20", то вам эту проблему решить не удастся, прерывания + дают слишком большую нагрузку на процессор, чтобы обеспечить + отслеживание времени. + + + + + + +Коммерческие приложения + +ЗАМЕЧАНИЕ Этот раздел выглядит довольно + заброшенным, однако мы, + конечно же, надеемся, что производители сделают добавления! :) Проект + FreeBSD финансово не заинтересован в успехах никакой из компаний, которые + здесь упоминаются, хотя приводит их список в интересах общества (в + предположении, что коммерческий интерес к FreeBSD может положительно + повлиять на дальнейшее развитие FreeBSD). Мы просим поставщиков + коммерческого программного обеспечения присылать нам информацию о + ваших продуктах для включения в этот список. Более подробный список + производителей находится на странице производителей. + + + +Где можно купить Motif для FreeBSD? + +Обратитесь в фирму Apps2go, предлагающую + дистрибутив Motif 2.1 для FreeBSD в формате ELF. + +В этот дистрибутив включены: + + + + +OSF/Motif manager, xmbind, panner, wsm. + + + + +Пакет разработчика с uil, mrm, xm, xmcxx, файлами include + и Imake. + + + +Статические и динамические ELF-библиотеки (для использования + с FreeBSD 3.0 и выше). + + + +Демонстрационные приложения. + + + + + + +При оформлении заказа не забудьте указать, что вам нужна версия Motif + для FreeBSD! Apps2go также продаёт версии для + NetBSD и OpenBSD. В настоящий момент их можно скачать только по + FTP. + + + +Дополнительная информация + +WWW-сервер Apps2go + + + + +или + + +электронные адреса отделов продаж и поддержки. + + + + +или + + +телефоны (817) 431 8775 и +1 817 431-8775 + + + + + + + +Обратитесь в фирму Metro Link для получения + дистрибутива Motif 2.1 для FreeBSD в форматах ELF или a.out. + +В этот дистрибутив включены: + + + + +OSF/Motif manager, xmbind, panner, wsm. + + + +Пакет разработчика с uil, mrm, xm, xmcxx, файлами include + и Imake. + + + +Статические и динамические библиотеки (укажите ELF для + использования с FreeBSD 3.0 и выше; или a.out при использовании + FreeBSD 2.2.8 и ранее). + + + +Демонстрационные приложения. + + + + + +Преформатированные страницы справочника. + + + + + +При заказе обязательно отметьте, что вам требуется версия Motif + именно для FreeBSD! Metro Link также предлагает + версии для Linux. Они доступны на CDROM или для скачивания по FTP. + +Обратитесь в фирму Xi Graphics за + дистрибутивом Motif 2.0 для FreeBSD в формате a.out. + +В этот дистрибутив включены: + + + + +OSF/Motif manager, xmbind, panner, wsm. + + + +Пакет разработчика с uil, mrm, xm, xmcxx, файлами include + и Imake. + + + +Статические и динамические библиотеки (для использования с + FreeBSD 2.2.8 и ранее). + + + +Демонстрационные приложения. + + + +Отформатированные страницы Справочника. + + + + + +При заказе обязательно укажите, что вам требуется версия Motif именно + для FreeBSD! Xi Graphics также предлагает версии + для BSDI и Linux. В настоящее время это набор из 4 дискет... в будущем + это будет стандартный дистрибутив на компакт-диске, как их CDE. + + + + +Где можно купить CDE для FreeBSD? + +Фирма Xi Graphics предлагала CDE для FreeBSD, + но сейчас этот продукт в продаже отсутствует. + +KDE - это свободно + распространяемый вариант десктопа для X11, который во многом похож на + CDE. + + + + +Существуют ли коммерческие высокопроизводительные X-серверы? + + +Да, фирмы Xi Graphics и + Metro Link предлагают свой + продукт Accelerated-X для FreeBSD и других систем на базе Intel. + +Metro Link предлагает высокопроизводительный X-сервер, в котором + предусмотрена упрощённая процедура конфигурирования с помощью набора + утилит FreeBSD для работы с пэкэджами, поддержка нескольких + видеоадаптеров одновременно и он поставляется только в бинарном виде, + доступном по FTP. Нельзя не отметить, что Metro Link продаёт всё это + по очень доступной цене в 39 долларов. + +Metro Link продаёт также Motif для FreeBSD в форматах ELF и a.out + (смотрите выше). + + + +Дополнительная информация + +WWW-сервер Metro Link + + + + +или + + +адреса электронной почты отделов продаж и поддержки. + + + + +или + + +телефоны (954) 938-0283 и +1 954 938-0283 + + + + + + + +Xi Graphics предлагает высокопроизводительный X-сервер, который + обеспечивает простую конфигурацию, поддержку нескольких видеоадаптеров + и поставляется только в бинарной форме, в форме стандартного + дистрибутива на дискетах для FreeBSD и Linux. Xi Graphics также + предлагает высокопроизводительный X-сервер с поддержкой компьютеров + класса laptop. + +Доступна бесплатная "демонстрационная" версия 5.0. + +Xi Graphics также предлагает Motif и CDE для FreeBSD (смотрите выше). + + + +Дополнительная информация + +Xi Graphics WWW page + + + + +или + + +Sales или + Support по email. + + + + +или + + +телефон (800) 946 7433 или +1 303 298-7478. + + + + + + + + + + +Существуют ли БД для FreeBSD? + +Да! Фирма Conetic Software Systems перенесла свои СУБД C/base и + C/books во FreeBSD 2.0.5 и выше, а фирма Sleepycat Software продаёт + коммерчески сопровождаемую версию библиотеки для работы с БД. + + + +Дополнительная информация + +Conetic Software Systems + + + + +или по email + + +Information E-mail address, + + + + +и + + +Sleepycat Software. + + + + + + + + + + +Можно ли запустить Oracle на FreeBSD? + +Да. Руководство по настройке Linux-Oracle на FreeBSD находится + по следующим адресам: + + + + + +http://www.scc.nl/~marcel/howto-oracle.html + + + + + +http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-freebsd + + + + + + + + + + + +Прикладные программы + + + +Итак, где находятся все прикладные программы? + +Пожалуйста, загляните на + страницу портов, содержащую информацию + о программных продуктах, перенесённых под FreeBSD. На данный момент в + этом списке находится более 1800 приложений и он ежедневно увеличивается, + так что почаще туда заглядывайте или подпишитесь на freebsd-announce, в котором публикуется информация + о появлении новых приложений. + +Большинство портов предназначено для версий 2.2, 3.x и 4.0, и многие из + них должны нормально работать на системах версий 2.1.x. При выходе + нового релиза FreeBSD в него в каталог ports/ + включается актуальная на момент выхода коллекция портов. + +Мы также поддерживаем концепцию ``пакаджа'', являющегося не более + чем упакованным дистрибутивом в бинарной форме с некоторыми + встроенными возможностями по его настройке во время установки. Пакадж + может быть легко проинсталлирован и деинсталлирован снова без углубления + в детали того, какие файлы должны быть инсталлированы. + +Используйте меню установки пакаджей в /stand/sysinstall + (в пункте меню post-configuration) или запускайте + pkg_add(1) с указанием конкретных файлов с пакаджами, + которые вы хотите проинсталлировать. Файлы с пакаджами, как правило, + идентифицируются по их постфиксу .tgz, а для тех, кто имеет + дистрибутив системы на компакт-диске, предназначен каталог + packages/All, содержащий все эти файлы. Они также могут быть + получены по сети для разных версий FreeBSD со следующих серверов: + + + +для 2.2.8-release/2.2.8-stable + +ftp://ftp.FreeBSD.ORG/pub/FreeBSD/ports/i386/packages-2.2.8/ + + + + +для 4.0-current + + +ftp://ftp.FreeBSD.ORG/pub/FreeBSD/ports/i386/packages-3.0/ + + + + + + + +или с ближайшего к вам зеркального сервера. + +Имейте в виду, что не все порты могут быть доступны в виде + пакаджей, так как постоянно идёт добавление новых. Неплохо время от + времени проверять, какие пакаджи доступны на основном сервере + ftp.freebsd.org. + + + + +Где найти библиотеку libc.so.3.0? + +Похоже, что вы пытаетесь запустить пакадж для 2.2/3.x/4.0 на + системе версии 2.1.x. Пожалуйста, прочтите предыдущий раздел и + найдите подходящий для вашей системы порт или пакадж. + + + + + ghostscript выдаёт массу сообщений на моём 386/486SX. + + +У вас нет сопроцессора, верно? Вам нужно добавить в ядро другой + емулятор сопроцессора; это делается добавлением следующей строки в файл + конфигурации ядра и последующей его перекомпиляцией. + + + options GPL_MATH_EMULATE + + + +ЗАМЕЧАНИЕ Если вы поступаете таким образом, вам нужно будет + убрать опцию MATH_EMULATE. + + + + + При запуске приложения SCO/iBCS2, он прерывается на socksys. + + +Прежде всего вам нужно отредактировать файл /etc/sysconfig + (или /etc/rc.conf), изменив в последнем разделе значение следующей + переменной на YES: + + + # Set to YES if you want ibcs2 (SCO) emulation loaded at startup + ibcs2=NO + + + +Это включит загрузку модуля поддержки ibcs2 + на этапе загрузки системы. + +Затем вам нужно изменить каталог /compat/ibcs2/dev так, чтобы он + выглядел следующим образом: + + +lrwxr-xr-x 1 root wheel 9 Oct 15 22:20 X0R@ -> /dev/null +lrwxr-xr-x 1 root wheel 7 Oct 15 22:20 nfsd@ -> socksys +-rw-rw-r-- 1 root wheel 0 Oct 28 12:02 null +lrwxr-xr-x 1 root wheel 9 Oct 15 22:20 socksys@ -> /dev/null +crw-rw-rw- 1 root wheel 41, 1 Oct 15 22:14 spx + + + +Работа с socksys была значительно упрощена по ставнению с более + ранними версиями. Socksys должен указывать на /dev/null, + чтобы обмануть open & close. Код, имеющийся в -current, возьмёт + на себя всё остальное. Если вам нужен драйвер spx для + подключения X по локальному сокету, определите переменную + SPX_HACK при компиляции системы. + + + + + Как настроить INN (Internet News) на моей машине? + + +После инсталяции пакаджа или порта для inn, для начала загляните + на страничку Дэйва Бэрра (Dave Barr), посвящённую INN, где вы + найдёте соответствующий FAQ. + + + + + Какую версию Microsoft FrontPage я должен иметь? + + +Используй порт, дурачок! Среди портов имеется Apache с поддержкой + FrontPage. + + + + +Поддерживает ли FreeBSD среду Java? + +Да. Посетите страницу http://www.FreeBSD.org/java/. + + + + + +Почему некоторый порт не компилируется на моей машине + с 3.x-stable? + +Если вы используете FreeBSD версии, значительно отстающей от -current или + -stable, вам нужен пакет обновления, который можно найти по адресу http://www.FreeBSD.org/ports/. + Если вы отслеживаете все изменения, то, скорее всего, кто-то внёс + изменения в порт, так что он работает в -current, но не работает в + -stable. Так как предполагается, что коллекция портов должна работать + как в ветке -current, так и в ветви -stable, то, пожалуйста, пошлите + сообщение об этой ошибке с помощью команды send-pr(1). + + + + + + Где найти ld.so? + +Если вам необходимо запустить некоторые приложения в формате aout + типа Netscape Navigator на Elf-машине, такой как 3.1-R и выше, + то для этого требуется /usr/libexec/ld.so и некоторые библиотеки в + формате aout. Они включены в дистрибутив как compat22. + Запустите /stand/sysinstall или install.sh в каталоге compat22, чтобы + установить этот компонент. Прочтите также документы ERRATA от + 3.1-R и 3.2-R. + + + + + + +Конфигурирование ядра + + + + Я хочу изменить настройки ядра. Это сложно? + + +Вовсе нет! Обратитесь к соответствующему разделу Руководства, который посвящён этому + вопросу. + +ЗАМЕЧАНИЕ: Рекомендуем сохранить копию вашего ядра в + файл kernel.YYMMDD после того, как вы получите рабочую версию, + для того, чтобы в следующий раз, если вы испортите что-либо в + вашем конфигурационном файле, вы смогли загрузить это ядро, вместо того, + чтобы начинать снова с kernel.GENERIC. Это, в частности, имеет + смысл, если вы производите загрузку системы с контроллера, который + не поддерживается в стандартном ядре GENERIC (из моего личного + опыта). + + + + + Я не могу скомпилировать ядро. Отсутствует + _hw_float. + + +Позвольте мне угадать. Вы, наверное, удалили npx0 из вашего + файла конфигурации ядра, потому что у вас нет сопроцессора, да? + Неправильно! :-) Строка npx0 ОБЯЗАТЕЛЬНА. Даже если у + вас нет математического сопроцессора, вы должны включить + поддержку npx0. + + + + + Конфликты прерываний при включении поддержки многопортовыx + коммуникационных адаптеров. + + +Q. Когда я компилирую ядро с поддержкой многопортовых + коммуникационных адаптеров, сообщается, что только первый порт будет + тестироваться, а все остальные пропускаются из-за конфликтов + прерываний. Как это исправить? + +A. Проблема состоит в том, что во FreeBSD встроен код, + предохраняющий ядро от аппаратных и программных конфликтов. Вам нужно + убрать указания IRQ на всех портах, кроме одного. Например: + + + # + # Высокоскоростной коммуникационный адаптер - 16550 UARTS + # + device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr + device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr + device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr + device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr + + + + + + +Как включить поддержку накопителей QIC-40/80? + +Раскомментируйте следующую строку в файле конфигурации стандартного + ядра (или добавьте ее в конфигурационный файл вашего ядра), добавьте + ``flags 0x1'' к строке, содержащей + fdc и перекомпилируйте ядро. + + +controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 flags 0x1 vector fdintr +disk fd0 at fdc0 drive 0 ^^^^^^^^^ +disk fd1 at fdc0 drive 1 +#tape ft0 at fdc0 drive 2 +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + + +Затем создайте устройство с именем /dev/ft0, перейдя в + каталог /dev и запустив команду + + + sh ./MAKEDEV ft0 + + + +для первого устройства, ft1 для второго и так далее. + +У вас появится устройство с именем /dev/ft0, на которое + вы можете производить запись с помощью специальной программы управления, + называющейся ``ft'' - за дополнительной информацией обратитесь к + странице справочника по ft. + +Версии операционной системы, предшествующие , + имеют огрехи, связанные с качеством носителя. Если у вас появились + проблема, когда ft прокручивает ленту туда-сюда на одном и том + же месте, попробуйте взять последнюю версию программы ft с + /usr/src/sbin/ft из и попробовать её. + + + + + + +Системное администрирование + + + +Где расположены файлы конфигурации системы? + +Для FreeBSD версий от 2.0.5R до 2.2.1R основным конфигурационным + файлом является /etc/sysconfig. Все параметры указываются + здесь, а остальные конфигурационные файлы, такие, как + /etc/rc + и /etc/netstart просто его используют. + +Посмотрите файл /etc/sysconfig и измените значения + переменных на соответствующие вашей системе. В файле содержатся + комментарии, описывающие смысл этих переменных и способ их задания. + +В системах выше 2.2.1 и в 3.0 файл /etc/sysconfig сменил + название на говорящее само за себя rc.conf, + синтаксис описания переменных был несколько улучшен. + /etc/netstart тоже был переименован в /etc/rc.network, + так что все конфигурационные файлы теперь можно перенести одной + командой cp /usr/src/etc/rc* /etc. + +/etc/rc.local как обычно, можно использовать для запуска + дополнительных местных служб типа INN или + для настройки дополнительных параметров. + +Файл /etc/rc.serial предназначен для инициализации + коммуникационных адаптеров (например, установки характеристик + работы последовательных портов итд). + +Файл /etc/rc.i386 предназначен для настройки специфичных + для архитектуры Intel параметров, таких, как эмуляция iBCS2 или + характеристик системной консоли ПК. + +Начиная с версии 2.1.0R, вы можете иметь "местные" файлы + автозапуска в каталоге, указанном в файле /etc/sysconfig + (или /etc/rc.conf): + + + # Location of local startup files. + local_startup=/usr/local/etc/rc.local.d + + + +Каждый файл, оканчивающийся на .sh, будет запущен на выполнение + в алфавитном порядке. + +Если вам нужно добиться определённого порядка выполнения не + меняя имён файлов, можно использовать схему, в которой для + упорядочения используются цифры, предшествующие имени файла. + + + 10news.sh + 15httpd.sh + 20ssh.sh + + + +Это может выглядеть безобразно (как SysV :-)), но это + простой и понятный метод для добавления дополнительных служб без + шаманства с редактированием /etc/rc.local. Многие + порты/пакаджи предполагают, что каталог + /usr/local/etc/rc.d предназначен для размещения + запускаемых при загрузке системы скриптов. + + + + +Как проще всего добавить пользователя? + +Используйте команду adduser. + +Существует также пакет, называющийся ``new-account'', + написанный на языке Perl Оливьером Робертом (Ollivier Robert). + Все вопросы направляйте на адрес <roberto@FreeBSD.ORG>. + В настоящий момент это пакет находится в стадии доработки. + +Чтобы удалить пользователя, используйте команду rmuser. + + + + +Как добавить в систему новый диск? + +Обратитесь к Руководству по форматированию дисков на сервере + www.freebsd.org. + + + + + Как использовать устройство для чтения сменных дисков? + + +Каким бы ни было это устройство, типа ZIP, EZ (или даже обычным + дисководом, если вы хотите его использовать) или каким-то + другим, как только оно будет установлено и распознано + системой, и вы вставите в него картридж/дискету/что-там-ещё, всё + будет выглядеть примерно одинаково. + +(этот раздел опирается на FAQ по устройствам ZIP Марка Мэйо (Mark Mayo)) + +Если это устройство ZIP или обычный дисковод, и у вас уже есть + файловая система DOS на дискетах, то вы можете нспользовать команду + типа: + + + mount -t msdos /dev/fd0c /floppy + + + +для обычных дискет, или + + + mount -t msdos /dev/sd2s4 /zip + + + +для дискет ZIP со стандартной конфигурацией. + + + +Для других дисков посмотрите их параметры с помощью + fdisk или /stand/sysinstall. + + + +Остальные примеры даны для привода ZIP на sd2, третьем диске SCSI. + + + +Если это дискета или сменный диск, который будет использоваться для + обмена информацией с другими людьми, хорошой идеей будет помещение туда + файловой системы BSD. Вы получите поддержку длинных имён файлов, + увеличение производительности по крайней мере в два раза и гораздо + большую надёжность. Первым делом вам снова будет нужно выполнить + разбиение диска на разделы/файловые системы. Вы можете + воспользоваться утилитой fdisk либо + /stand/sysinstall, а в случае небольшого диска, на котором + не нужно располагать несколько операционных систем, просто сотрите + таблицу разделов (слайсов) FAT и используйте разбиение на разделы BSD. + + + dd if=/dev/zero of=/dev/rsd2 count=2 + disklabel -Brw sd2 auto + + + + + +Вы можете использовать disklabel или /stand/sysinstall для + создания нескольких разделов BSD. Вам наверняка придётся это сделать, + если вы станете добавлять место для раздела подкачки на винчестере, + хотя это не имеет отношения к устройствам типа ZIP. + + + +В итоге вы должны создать новую файловую систему (в этом примере + она занимает весь наш диск ZIP): + + + newfs /dev/rsd2c + + + + + +и смонтировать её: + + + mount /dev/sd2c /zip + + + + + +Хорошо ещё добавить строку типа следующей в файл + /etc/fstab, чтобы в будущем можно было просто давать команду + "mount /zip": + + + /dev/sd2c /zip ffs rw,noauto 0 0 + + + + + + + + +Как смонтировать вторичный раздел DOS? + +Вторичные разделы DOS находятся после ВСЕХ первичных разделов. + Например, если раздел "E" является вторым разделом DOS на + втором диске SCSI, вам нужно создать специальные файлы для пятого + "слайса" в каталоге /dev, затем смонтировать /dev/sd1s5: + + + # cd /dev + # ./MAKEDEV sd1s5 + # mount -t msdos /dev/sd1s5 /dos/e + + + + + + + + + Можно ли смонтировать другие файловые системы? + + +Компакт-диски с файловой системой UFS от Digital UNIX + могут быть замонтированы без всяких проблем. Монтирование файловых + систем Digital UNIX или других систем, поддерживающих UFS, может быть + более сложным, в зависимости от особенностей разбиения диска конкретной + операционной системой. + + + + Linux: Версии 2.2 и выше имеют поддержку разделов ext2fs. + За дополнительной информацией обратитесь к страницам справочника по + команде mount_ext2fs. + + + + NT: Существует драйвер, позволяющий под FreeBSD иметь + доступ к NTFS в режиме "только для чтения". Посмотрите учебник от + Марка Овенса (Mark Ovens) по адресу http://www.users.globalnet.co.uk/~markov/ntfs_install.html. + + + +Нас интересует любая дополнительная информация по этому вопросу. + + + + + + + Как можно использовать загрузчик NT для запуска FreeBSD? + + +Идея заключается в копировании первого сектора корневого раздела + FreeBSD в файл, находящийся в разделе DOS/NT. Предположим, что + вы назвали этот файл c:\bootsect.bsd (по аналогии с + c:\bootsect.dos), после чего можете отредактировать + файл c:\boot.ini, чтобы он выглядел примерно так: + + + [boot loader] + timeout=30 + default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS + [operating systems] + multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT" + C:\BOOTSECT.BSD="FreeBSD" + C:\="DOS" + + + + + +Здесь предполагается, что DOS, NT, FreeBSD или другая операционная + система были установлены в их соответствующие разделы fdisk на + одном и том же диске. В моём случае DOS & NT находятся + на первом разделе fdisk, а FreeBSD на втором. Я также проинсталлировал + FreeBSD для загрузки с её раздела, а не из MBR. + + + +Смонтируйте дискету в формате DOS (если вы используете NTFS) или + раздел FAT, скажем, в каталог /mnt. + + + dd if=/dev/rsd0a of=/mnt/bootsect.bsd bs=512 count=1 + + + + + +Перезапустите DOS или NT. Пользователи NTFS должны скопировать + файл bootsect.bsd и/или bootsect.lnx с дискеты на диск + C:\. Измените атрибуты (права) на файл boot.ini + следующим образом: + + + attrib -s -r c:\boot.ini + + + + + +Отредактируйте этот файл, добавив соответствующие строки из + примерного boot.ini выше, и восстановите атрибуты: + + + attrib -r -s c:\boot.ini + + + + + +Если FreeBSD загружается из MBR, восстановите его командой DOS + ``fdisk'' после того, как переконфигурировали их для загрузки с + их родных разделов. + + + + + + + Как загрузить FreeBSD и Linux с помощью LILO? + + +Если у вас установлены FreeBSD и Linux на одном и том же диске, + следуйте указаниям по установке LILO о загрузке не-Linux операционных + систем. Они сводятся к следующему: + + + +Загрузите Linux, и добавьте слеующие строки в файл + /etc/lilo.conf: + + other=/dev/hda2 + table=/dev/hda + label=FreeBSD + + + (здесь вы предполагаем, что слайс с FreeBSD известен Linux как + /dev/hda2; измените эту строку в соответствии с вашей + конфигурацией). Затем достаточно будет запустить lilo, + войдя в систему администратором. + + + +Если FreeBSD располагается на другом диске, вам нужно добавить + строчку ``loader=/boot/chain.b'' в конфигурационный файл + LILO. Например: + + other=/dev/sdb4 + table=/dev/sdb + loader=/boot/chain.b + label=FreeBSD + + + + + +В некоторых случаях для успешной загрузки со второго диска вам + может потребоваться указать номер диска BIOS загрузчику FreeBSD. + Например, если диск SCSI с FreeBSD определяется BIOS как диск 1, + в приглашении загрузчика FreeBSD нужно указать: + + Boot: 1:sd(0,a)/kernel + + + + + +Во FreeBSD 2.2.5 и выше вы можете настроить boot(8) + на автоматическое принятие таких параметров во время загрузки. + + + +В документе Linux+FreeBSD mini-HOWTO содержится много информации, + касающейся взаимодействия FreeBSD и Linux. + + + + + + + Как загрузить FreeBSD и Linux с помощью BootEasy? + + +Установите LILO в начало загрузочного раздела Linux, а не в + Master Boot Record. После этого можно запустить LILO из BootEasy. + + + +Это рекомендуется сделать в любом случае при одновременном + использовании Windows-95 и Linux, чтобы упростить восстановление + работоспособности Linux после переинсталляции Windows95 (которая + является Недоброжелательной Операционной Системой и не терпит + присутствия других операционных систем в Master Boot Record). + + + + + + + Не угрожает ли режим ``dangerously dedicated'' моему здоровью? + + +В процессе установки вы можете выбрать два + различных метода разбиения вашего диска. По умолчанию это делается + в режиме совместимости с другими операционными системами на этой же + машине с использованием записей в таблице разделов fdisk (то, что + называется ``слайсом'' во FreeBSD), со слайсом (разделом), выделенным + FreeBSD. Опционально, вы можете выбрать установку менеджера + загрузки для переключения между операционными системами. Либо вы + можете выделить диск полностью под FreeBSD, не заботясь о совместимости + с другими операционными системами. + + + +Почему же этот режим называется ``dangerous''? Дело в том, что + диск в этом режиме не будет содержать того, что обычные утилиты для + ПК распознают как таблицу разделов. В зависимости от того, насколько + хорошо они написаны, они могут сообщить вам об этом, как только + обнаружат такой диск, или, что гораздо хуже, могут запортить загрузчик + BSD, даже не спрашивая и не сообщая об этом. К тому же известно, что + разметка диска в режиме ``dangerously dedicated'' вводит в заблуждение + BIOS многих производителей, включая AWARD (которые используются в + компьютерах HP Netserver, Micronics и многих других) и Symbios/NCR + (производителя популярных SCSI-контроллеров серии 53C8xx). И это не + полный список, есть ещё другие производители. Симптомами подобных + проблем является сообщение "read error", выводимое загрузчиком FreeBSD, + когда он не может найти сам себя, а также зависания системы при загрузке. + + + +Тогда зачем вообще нужен этот режим? Он экономит всего лишь + несколько килобайт дискового пространства и может вызвать серьёзные + проблемы при новой инсталляции. Причиной появления этого режима + является желание избежать появления одной из самых распространённых + проблем, с которой сталкиваются новички - соответствие параметров + BIOS и реальных параметров диска. + + + +``Параметры'' диска являются устаревшей концепцией, но она лежит + в основе работы BIOS с диском. Когда программа установки FreeBSD + создаёт слайсы, она записывает их расположение в соответствии с тем, + как с ними будет работать BIOS. Если это делается неправильно, вы не + сможете выполнить загрузку системы. + + + +Режим ``dangerously dedicated'' пытается обойти это, упрощая решение + данной проблемы. Иногда он делает это правильно. Однако это значит, + что его нужно использовать только как последнюю альтернативу - есть + способы получше, решающие проблему в 99 случаях из 100. + + + +Итак, как избежать использования режима ``DD'' во время установки? + Сначала запишите параметры диска, которые сообщает BIOS. Вы можете + выяснить это, заставив ядро вывести эти параметры при загрузке, указав + ``-v'' в приглашении ``boot:'', или используя ``boot -v'' в загрузчике. + Перед тем, как запустится программа установки, ядро выведет параметры, + используемые BIOS. Не волнуйтесь - подождите запуска программы + установки, а затем воспользуйтесь скроллингом, чтобы посмотреть + значения этих параметров. Как правило, BIOS нумерует диски в том же + порядке, что и FreeBSD, сначала IDE, затем SCSI. + + + +Когда вы разбиваете диск на слайсы, проверьте, что параметры диска, + выводимые в окне программы FDISK, корректны (то есть они соответствуют + параметрам BIOS); если это не так, воспользуйтесь командой ``g'', чтобы + их исправить. Вы можете это сделать, если на диске нет абсолютно + ничего или если этот диск был перенесён с другой системы. Заметьте, + что это касается только загрузочного диска; FreeBSD прекрасно разберётся + с остальными дисками, которые могут у вас быть. + + + +Как только вы добились соответствия параметров диска в BIOS и + FreeBSD, скорее всего, проблем у вас больше не будет, и использовать + режим ``DD'' не потребуется. Если, однако, страшной сообщение + ``read error'' продолжает появляться при загрузке, самое время + перекреститься и попробовать этот режим - вам больше нечего терять. + + + +Чтобы вернуть диск из режима ``dangerously dedicated'' к + нормальному режиму использования, есть два способа. Первый заключается + в том, что вы записываете достаточное количество байтов NULL поверх + MBR, чтобы любой инсталлятор думал, что это чистый диск. Это можно + сделать, например, командой + + + dd if=/dev/zero of=/dev/rsd0 count=15 + + + + + +Другой способ - недокументированной командой DOS + + + fdisk /mbr + + + + + +проинсталлировать новую MBR, удалив загрузчик BSD. + + + + + + + Как добавить дополнительную виртуальную память? + + +Наилучший способ - увеличить размер раздела подкачки, может быть, + добавив для этого ещё один диск. Общим правилом является выбор + размера виртуальной памяти, в два раза превышающий объём физической + памяти. Однако, если у вас очень мало физической памяти, этот объём + гораздо больше. Хорошей практикой является задание достаточного + объёма виртуальной памяти в ожидании добавления физической памяти, + чтобы потом не испытывать трудностей. + + + +Перенос виртуальной памяти на отдельный диск увеличивает + быстродействие системы по сравнению с добавлением виртуальной памяти + на том же диске. Например, компиляция исходных текстов происходит + быстрее, если они находятся не на том же диске, что и раздел подкачки. + Особенно это заметно для дисков SCSI. + + + +Если у вас имеется несколько дисков, размещение раздела подкачки + на каждом из них, даже на рабочем диске, обычно бывает полезно. + Как правило, каждый быстрый диск в вашей системе должен иметь раздел + подкачки. FreeBSD поддерживает по умолчанию до 4 устройств подкачки с + чередованием. При задании нескольких разделов подкачки вам захочется + сделать их одинакового размера, однако иногда первичный раздел подкачки + делается несколько больше для того, чтобы он мог поместить аварийный + образ ядра. Размер вашего первичного раздела подкачки должен по крайней + мере быть равным объёму физической памяти, чтобы поместить аварийный + образ ядра. + + + +Диски IDE не позволяют реализовать одновременный доступ к обоим + дискам по одному каналу (FreeBSD не поддерживает режим 4, так что + весь ввод/вывод для дисков IDE ``программируется''). Однако я всё + равно советую перенести раздел подкачки на отдельный диск. Диски + достаточно дешёвы, и экономить тут не на чем. + + + +Использование NFS для размещения раздела подкачки рекомендуется + только в случае, если у вас нет локального диска. Подкачка поверх + NFS медленна и неэффективна в релизах FreeBSD до 4.x, хотя достаточно + быстра в релизах 4.0 и выше. Кроме того, её скорость будет ограничена + реальной пропускной способностью сети и это даст дополнительную нагрузку + на NFS-сервер. + + + +Вот пример vn-файла подкачки размером 64Мб (/usr/swap0, + хотя, конечно, вы можете выбрать любое другое имя. + + + +Удостоверьтесь, что ядро откомпилировано со строкой + + + pseudo-device vn 1 #Vnode driver (turns a file into a device) + + + + + +в конфигурационном файле. Ядро GENERIC её содержит + + + + + +создайте vn-устройство + + + cd /dev + sh ./MAKEDEV vn0 + + + + + + + +создайте файл подкачки (/usr/swap0) + + + dd if=/dev/zero of=/usr/swap0 bs=1024k count=64 + + + + + + + +Установите корректные права на файл (/usr/swap0) + + + chmod 0600 /usr/swap0 + + + + + + + +Включите использование файла подкачки в /etc/rc.conf + + + swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired. + + + + + + + +перезагрузите машину + + + + + + + + +Чтобы включить использование файла подкачки немедленно, наберите + + + vnconfig -ce /dev/vn0c /usr/swap0 swap + + + + + + + + +У меня проблемы с установкой принтера. + +Обратитесь к соответствующему разделу Руководства, посвящённому печати. В нём описаны + решения большинства ваших проблем. + + + + + + +Раскладка клавиатуры неверна. + +Программа kbdcontrol имеет параметр, задающий файл раскладки. + Файлы раскладок находятся в каталоге + /usr/share/syscons/keymaps. Выберите соответствующий вашей + системе и загрузите его. + + + kbdcontrol -l uk.iso + + + + + +Программа kbdcontrol + предполагает использование каталога /usr/share/syscons/keymaps + и расширения .kbd. + + + +Это может быть настроено в файле /etc/sysconfig (или + rc.conf). Обратитесь к соответствующим комментариям в этом + файле. + + + +В системах 2.0.5R и выше, всё, относящееся к знакогенератору, + раскладке клавиатуры, находится в каталоге + /usr/share/examples/syscons. + + + +На данный момент поддерживаются следующие раскладки: + + + + + +Belgian ISO-8859-1 + + + + +Brazilian 275 keyboard Codepage 850 + + + + +Brazilian 275 keyboard ISO-8859-1 + + + + +Danish Codepage 865 + + + + +Danish ISO-8859-1 + + + + +French ISO-8859-1 + + + + +German Codepage 850 + + + + +German ISO-8859-1 + + + + +Italian ISO-8859-1 + + + + +Japanese 106 + + + + +Japanese 106x + + + + +Latin American + + + + +Norwegian ISO-8859-1 + + + + +Polish ISO-8859-2 (programmer's) + + + + +Russian Codepage 866 (alternative) + + + + +Russian koi8-r (shift) + + + + +Russian koi8-r + + + + +Spanish ISO-8859-1 + + + + +Swedish Codepage 850 + + + + +Swedish ISO-8859-1 + + + + +Swiss-German ISO-8859-1 + + + + +United Kingdom Codepage 850 + + + + +United Kingdom ISO-8859-1 + + + + +United States of America ISO-8859-1 + + + + +United States of America dvorak + + + + +United States of America dvorakx + + + + + + + + + + + +Не получается заставить работать дисковые квоты. + + + + + +Не включайте квотирование на '/', + + + + + +Помещайте файл с квотами в ту файловую систему, которую + он обслуживает, то есть: + + + ФС ФАЙЛ КВОТ + /usr /usr/admin/quotas + /home /home/admin/quotas + ... + + + + + + + + + + + + + +Что не так с устройством ccd? + +Симптом выглядит так: + + + # ccdconfig -C + ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format + # + + + + + +Это сообщение обычно выдаётся, когда вы пытаетесь объединить разделы + 'c', по умолчанию имеющие тип 'unused'. Драйвер ccd требует, чтобы + используемые разделы имели тип FS_BSDFFS. Отредактируйте метки тех + дисков, которые вы хотите использовать, сменив типы разделов на + '4.2BSD'. + + + + + + + Почему невозможно отредактировать метку диска ccd? + + +Симптом выглядит так: + + + # disklabel ccd0 + (здесь выводится информация о диске, пробуем отредактировать метку) + # disklabel -e ccd0 + (редактирование, сохранение, выход) + disklabel: ioctl DIOCWDINFO: No disk label on disk; + use "disklabel -r" to install initial label + # + + + + + +Это происходит из-за того, что метка диска, возвращаемая ccd, на + самом деле 'ненастоящая', не соответствующая реально располагающейся + на диске. Вы можете решить эту проблему, явно записав эту метку + обратно следующим образом: + + + # disklabel ccd0 > /tmp/disklabel.tmp + # disklabel -Rr ccd0 /tmp/disklabel.tmp + # disklabel -e ccd0 + (теперь это будет работать) + + + + + + + + +Поддерживает ли FreeBSD вызовы IPC из System V? + +Да, FreeBSD поддерживает IPC из System V, а именно совместно + используемую память, сообщения и семафоры. Чтобы они работали, вам + нужно добавить следующие строки в файл конфигурации ядра. + + + options SYSVSHM + options "SHMMAXPGS=64" # 256Kb of sharable memory + options SYSVSEM # enable for semaphores + options SYSVMSG # enable for messaging + + + + + +Перекомпилируйте и проинсталлируйте ядро. + + + +ЗАМЕЧАНИЕ: Вам может потребоваться увеличить значение + константы SHMMAXGS на что-то большее, типа 4096 (16М!), если вы + собираетесь ипользовать GIMP. 256Кб достаточно для работы X11R6. + + + + + + + Как настроить sendmail для доставки почты по UUCP? + + + +Конфигурация sendmail, поставляемая с FreeBSD, предназначена для + сайтов, которые имеют непосредственный выход в Internet. Сайты, + которым требуется обмениваться почтой по UUCP, должны использовать + другой конфигурационный файл. + + + +Ковыряние в файле /etc/sendmail.cf вручную - это занятие + для пуристов (и мазохистов). Восьмая версия sendmail поставляется + с новой системой генерации конфигурационных файлов с использованием + препроцессора m4, в которой ручная конфигурация перенесена на более высокий + уровень абстракции. Используйте конфигурационные файлы в каталоге + + + /usr/src/usr.sbin/sendmail/cf + + + + + +Если вы не собираетесь инсталлировать все исходные тексты системы, + специально для вас конфигурационные файлы sendmail выделены в отдельный + дистрибутив. Если вы имеете смонтированный компакт-диск, выполните + такую команду: + + + cd /usr/src + tar -xvzf /cdrom/dists/src/ssmailcf.aa + + + + + +Не волнуйтесь, эти файлы занимают всего лишь несколько сотен + килобайт. Файл README в каталоге cf может быть + использован как начальное введение в конфигурацию m4. + + + +Для доставки почты по UUCP лучше всего использовать + mailertable. В этом файле содержится база данных, + используемая sendmail при маршрутизации почты. + + + +Первым делом создайте ваш файл .mc. Для таких файлов + предназначен каталог /usr/src/usr.sbin/sendmail/cf/cf. + Посмотрите в нём, там есть уже несколько примеров. Положим, что + вы назвали ваш файл foo.mc, всё, что вам нужно для + перобразования его в нормальный sendmail.cf, это: + + + cd /usr/src/usr.sbin/sendmail/cf/cf + make foo.cf + cp foo.cf /etc/sendmail.cf + + + + + +Типичный файл .mc выглядит примерно так: + + + include(`../m4/cf.m4') + VERSIONID(`Your version number') + OSTYPE(bsd4.4) + + FEATURE(nodns) + FEATURE(nocanonify) + FEATURE(mailertable) + + define(`UUCP_RELAY', your.uucp.relay) + define(`UUCP_MAX_SIZE', 200000) + + MAILER(local) + MAILER(smtp) + MAILER(uucp) + + Cw your.alias.host.name + Cw youruucpnodename.UUCP + + + + + +Параметры nodns и nocanonify подавляют + использование DNS в процессе доставки. Строка UUCP_RELAY + может понадобиться только в очень странных случаях, не + спрашивайте о них. Просто поместите здесь имя хоста Internet, + который может обрабатывать адреса с псевдо-доменами .UUCP; в + большинстве случаев достаточно поставить сюда имя почтового шлюза + вашего провайдера. + + + +Как только вы сгенерируете конфигурационный файл, вам понадобится + /etc/mailertable. Типичный пример такого файла: + + + # + # makemap hash /etc/mailertable.db < /etc/mailertable + # + horus.interface-business.de uucp-dom:horus + .interface-business.de uucp-dom:if-bus + interface-business.de uucp-dom:if-bus + .heep.sax.de smtp8:%1 + horus.UUCP uucp-dom:horus + if-bus.UUCP uucp-dom:if-bus + . uucp-dom:sax + + + + + +Как видите, это часть реально существующего файла. Первые три + строки описывают особые случаи, когда почта, направленная на + некоторые домены, будет посылаться не по стандартному маршруту, а на + некоторую близлежащую UUCP-систему для `сокращения' маршрута доставки. + Следующая строка описывает, что почта на локальный домен в сети + Ethernet может быть доставлена по SMTP. В конце файла описаны + близлежащие системы UUCP в псевдо-домене .UUCP, что позволит + выполнять правильную доставку почты на адреса + ``uucp-система!получатель''. В последней строке всегда присутствует + одна точка, соответствующая всем остальным доменам, с доставкой по + UUCP на блишнюю систему UUCP, который является универсальный почтовым + шлюзом во весь остальной мир. Все имена узлов после uucp-dom: + должны быть реально существующими узлами UUCP, что можно проверить + командой uuname. + + + +Как напоминание о том, что этот файл должен быть преобразован + в формат базы данных DBM перед использованием, командная строка, + выполняющая это действие, помещена как комментарий в начало + файла. При изменении mailertable всегда нужно выполнять эту команду. + + + +Последняя подсказка: если вы не уверены в правильности настройки + маршрутизаци почты, используйте sendmail с опцией . Она + переводит sendmail в режим проверки адресов; введите ``0 '', + а затем адрес, который вы хотите протестировать на правильность + маршрутизации. В последней строке будут указаны используемый + почтовый агент, хост получателя, с которым будет работать этот агент, + и (может быть преобразованный) адрес. Выход их этого режима + осуществляется по Control-D. + + + j@uriah 191% sendmail -bt + ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) + Enter <ruleset> <address> + > 0 foo@interface-business.de + rewrite: ruleset 0 input: foo @ interface-business . de + ... + rewrite: ruleset 0 returns: $# uucp-dom $@ if-bus $: foo \ + < @ interface-business . de > + > ^D + j@uriah 192% + + + + + + + + + Как настроить почту при коммутируемом соединении с Internet? + + + +Если вам выделен статический IP-адрес, вам не нужно ничего + менять. Установите имя вашего хоста в соответствии с выделенным + именем DNS, а sendmail сделаёт всё остальное. + + + +Если ваш IP-адрес выделяется динамически при коммутируемом + соединении по ppp с Internet, может быть, вам выделен почтовый + ящик на сервере провайдера. Предположим, что домен вашего + провайдера называется myISP.com, а ваше имя пользователя + user. Также положим, что вы назвали вашу машину bsd.home и + что ваш провайдер сказал, что вы должнв использовать + relay.myISP.com как почтовый шлюз. + + + +Чтобы забирать почту из вашего почтового ящика, вам нужно установить + соответствующий агент. Хорошим агентов является fetchmail, так + как он поддерживает много различных протоколов. Обычно провайдеры + предлагают POP3. Если вы используете user-ppp, вы можете + автоматически забирать вашу почту при установлении соединения с + Internet, добавив такую строку в /etc/ppp/ppp.linkup: + + + MYADDR: + !bg su user -c fetchmail + + + + + +Если вы используете sendmail (как показано ниже) для + доставки почты для внешних пользователей, поместите команду + + + !bg su user -c "sendmail -q" + + + + после вышеуказанной строки. Это заставит sendmail обработать вашу + очередь почтовых сообщений, как только будет осуществлено подключение + к сети. + + + +Предположим, что вы имеет учётную запись для user на машине + bsd.home. В домашнем каталоге пользователя user на машине + bsd.home создайте такой файл .fetchmailrc: + + + poll myISP.com protocol pop3 fetchall pass MySecret; + + + + + +Излишним будет напоминание о том, что этот файл никому не должен + быть доступен для чтения, кроме пользователя user, потому что + он содержит пароль MySecret доступа к почтовому ящику. + + + +Чтобы посылать почту с правильным заголовком from:, вы должны + указать программе sendmail использовать user@myISP.com, а не + user@bsd.home. Вам может понадобиться настроить sendmail для + посылки всей почты через relay.myISP.com, чтобы убыстрить её + передачу. + + + +Следующий файл .mc должен подойти: + + + VERSIONID(`bsd.home.mc version 1.0') + OSTYPE(bsd4.4)dnl + FEATURE(nouucp)dnl + MAILER(local)dnl + MAILER(smtp)dnl + Cwlocalhost + Cwbsd.home + MASQUERADE_AS(`myISP.com')dnl + FEATURE(allmasquerade)dnl + FEATURE(masquerade_envelope)dnl + FEATURE(nocanonify)dnl + FEATURE(nodns)dnl + define(SMART_HOST, `relay.myISP.com') + Dmbsd.home + define(`confDOMAIN_NAME',`bsd.home')dnl + define(`confDELIVERY_MODE',`deferred')dnl + + + + + +В предыдущем разделе описано, как преобразовать файл .mc в + sendmail.cf. И не забудьте перезапустить sendmail после + обновления sendmail.cf. + + + + + + +Ой! Я забыл пароль администратора! + +Без паники! Просто перезапустите систему, наберите -s в приглашении + Boot: для входа в однопользовательский режим. На вопрос об используемой + оболочке нажмите ENTER. На приглашение # введите mount -u /, + чтобы перемонтировать корневую файловую систему в режиме чтения/записи, + затем выполните команду mount -a для монтирования всех файловых + систем. Запустите команду passwd root, чтобы сменить пароль + администратора и затем exit для продолжения загрузки. + + + + + + + Как запретить перезагрузку по клавишам Control-Alt-Delete? + + +Отредактируйте используемый вами для консоли файл раскладки + клавиатуры, заменив ключевые слова boot на nop. Раскладка + по умолчанию находится в файле + /usr/share/syscons/keymaps/us.iso.kbd. + Вам может потребоваться явно указать в файле /etc/rc.conf + загрузку этой раскладки, чтобы она действительно поменялась. Конечно, + если в вашей стране вы используете другую раскладку, вы должны + отредактировать именно её. + + + + + + +Как преобразовать текстовые файлы DOS в формат UNIX? + +Используйте такую команду: + + +perl -i.bak -npe 's/\r\n/\n/g' file ... + + + + +где file - это имя файла(ов) для преобразования. Преобразование + делается в том же самом файле, оригинальные файлы сохраняются с + расширением .bak. + + + +Это преобразование также можно выполнить с помощью команды + tr(1): + + +tr -d '\r' < dos-text-file > unix-file + + + + +где dos-text-file - это имя файла, содержащего текст DOS, а + в файл unix-file будет помещён уже преобразованный текст. Этот способ + может работать гораздо быстрее, чем при использовании perl. + + + + + + +Как прервать процесс по имени? + +Используйте команду killall(1). + + + + + + + Почему su выдаёт сообщение о том, что я не вхожу в root ACL? + + +Эта ошибка выдаётся распределённой системой аутентификации Kerberos. + Эта ошибка не фатальна, однако это раздражает. Вы можете запустит su + с ключом -K либо деинсталлировать Kerberos, как описано в следующем + разделе. + + + + + + +Как деинсталлировать Kerberos? + +Чтобы убрать Kerberos из системы, переинсталлируйте дистрибутив bin + того релиза, который у вас запущен. Если у вас есть CDROM, вы можете + смонтировать компакт-диск (положим, в каталог /cdrom) и выполнить + команду + + + cd /cdrom/bin + ./install.sh + + + + + + + + +Как добавить в систему дополнительные псевдотерминалы? + +Если у вас много пользователей, работающий в сеансах telnet, ssh, X + или в screen, вам можете столкнуться с проблемой нехватки + псевдотерминалов. Их количество можно уыеличить следующим образом: + + + + + +Откомпилируйте и инсталлируйте новое ядро, в конфигурационный + файл которого входит строка + + + pseudo-device pty 256 + + + + + + + +Выполните команду + + + # cd /dev + # ./MAKEDEV pty{1,2,3,4,5,6,7} + + + + + +для создания 256 дополнительных файлов устройств для новых терминалов. + + + + + +Отредактируйте файл /etc/ttys, добавив по строке для + каждого из 256 терминалов. Они должны соответствовать формату + существующих строк, то есть должны выглядеть как + + + ttyqc none network + + + + + +Порядок назначения букв при записи в виде регулярного выражения имеет + вид tty[pqrsPQRS][0-9a-v]. + + + + + +Теперь осталось только перезапустить систему с новым ядром. + + + + + + + + + + + + Как перечитать содержимое /etc/rc.conf и перестартовать /etc/rc + без перезагрузки системы? + + +Перейдите в однопользовательский режим, а затем возвратитесь обратно + в многопользовательский. + + На консоли выполните следующее: + + + # shutdown now + (Замечание: без -r или -h) + + # return + # exit + + + + + + + + + + +X Window System и виртуальные консоли + + + +Я хочу запустить X, как это сделать? + +Самый простой способ - это указать во время инсталляции, что вы + хотите использовать X. + + + +Затем следуйте указаниям в документации по утилите xf86config, которая предназначена для конфигурирования работы + XFree86(tm) с вашим графическим адаптером/мышью/итд. + + + +Вы можете также попробовать сервер Xaccel. За подробной информацией + обратитесь к разделу, посвящённому продуктам фирм Xi Graphics и Metro Link. + + + + + Почему моя мышь не работает с X? + + +Если вы используете syscons (стандартный драйвер консоли), то + можете настроить поддержку указателя мыши во всех виртуальных экранах. + Во избежание конфликтов с X, драйвер syscons поддерживает виртуальное + устройство ``/dev/sysmouse''. Все события, полученные от + реальной мыши, пишутся в устройство sysmouse, реализующее протокол + MouseSystems. Если вы хотите использовать вашу мышь на одной или + нескольких виртуальных консолях, продолжая использовать X, + рекомендуется такая конфигурация: + + + /etc/rc.conf: + moused_type=ps/2 # or whatever your actual type is + moused_port=/dev/psm0 # or whatever your real port is + moused_flags= + + /etc/XF86Config + Section Pointer + Protocol "MouseSystems" + Device "/dev/sysmouse" + ..... + + + + + +Некоторые предпочитаюют использовать в X устройство + ``/dev/mouse''. Чтобы оно работало, файл устройства должен + являться ссылкой на /dev/sysmouse: + + + # cd /dev + # rm -f mouse + # ln -s sysmouse mouse + + + + + + + + + Меню и диалоговые окна в X Window работают неправильно! + + +Попробуйте выключить Num Lock. + + + +Если клавиша Num Lock во время загрузки по умолчанию включена, + добавьте в секцию ``Keyboard'' файла XF86Config следующую + строку. + + + # Let the server do the NumLock processing. This should only be + # required when using pre-R6 clients + ServerNumLock + + + + + + + + + Что такое виртуальные консоли и как изменить их количество? + + +Виртуальные консоли, упрощённо говоря, позволяют вам иметь + несколько одновременных сеансов работы с той же самой машиной без + установки какой бы то ни было сети или запуска X. + + + +При запуске системы после вывода сообщений этапа загрузки на консоль + выдаётся приглашение на вход в систему. Вы можете ввести своё имя и + пароль и начать работать (или играть!) на первой виртуальной консоли. + + + +В какой-то момент вы можете захотеть запустить ещё одну сеанс, + скажем, чтобы заглянуть в документацию по программе, которую вы + запустили или для для чтения электронной почты во время ожидания + завершения передачи данных по FTP. Просто нажмите Alt-F2 (удерживая + клавишу Alt, нажмите F2) и вы обнаружите приглашение, ждущее вас на + второй ``виртуальной консоли''! Когда захотите вернуться к + первоначальному сеансу, нажмите Alt-F1. + + + +После инсталляции по умолчанию во FreeBSD задействованы три + виртуальных консоли, а комбинации клавиш Alt-F1, Alt-F2, и Alt-F3 + служат для переключения между ними. + + Чтобы увеличить количество консолей, отредактируйте файл /etc/ttys, + добавив туда записи для терминалов с именами от ``ttyv4'' до + ``ttyvc'' после слов ``Virtual terminals'': + + + # Edit the existing entry for ttyv3 in /etc/ttys and change + # "off" to "on". + ttyv3 "/usr/libexec/getty Pc" cons25 on secure + ttyv4 "/usr/libexec/getty Pc" cons25 on secure + ttyv5 "/usr/libexec/getty Pc" cons25 on secure + ttyv6 "/usr/libexec/getty Pc" cons25 on secure + ttyv7 "/usr/libexec/getty Pc" cons25 on secure + ttyv8 "/usr/libexec/getty Pc" cons25 on secure + ttyv9 "/usr/libexec/getty Pc" cons25 on secure + ttyva "/usr/libexec/getty Pc" cons25 on secure + ttyvb "/usr/libexec/getty Pc" cons25 on secure + + + + + +Используйте из них столько, сколько посчитаете нужным. Чем больше + виртуальных терминалов у вас имеется, тем больше ресурсов они + используют; это может иметь значение, если у вас меньше чем 8МБ ОЗУ. + Вы можете сменить статус консолей с ``secure'' на + ``insecure''. + + + +ВАЖНОЕ ЗАМЕЧАНИЕ если вы хотите запустить X, вы ДОЛЖНЫ + оставить для него по крайней мере один неиспользуемый (или + выключенный) виртуальный терминал. Таким образов, если вы хотите + иметь приглашения login на всех двенадцати функциональнык клавиши, + то вам не повезло - вы можете это сделать только для одиннадцати из + них, если хотите на этой же машине ещё запустить X-сервер. + + + +Самым простым способом убрать консоль является просто её + выключение. Например, если вы запустили на всех 12 консолях + виртуальные терминалы, как указано выше, и ещё хотите запустить X, то + должны будете изменить параметры двенадцатого виртуального + терминала с: + + + ttyvb "/usr/libexec/getty Pc" cons25 on secure + + + + + +на: + + + ttyvb "/usr/libexec/getty Pc" cons25 off secure + + + + + +Если на вашей клавиатуре только десять функциональных клавиш, + то последние строки будут выглядеть так: + + + ttyv9 "/usr/libexec/getty Pc" cons25 off secure + ttyva "/usr/libexec/getty Pc" cons25 off secure + ttyvb "/usr/libexec/getty Pc" cons25 off secure + + + + + +(Вы также можете просто их удалить.) + + + +После того, как вы отредактировали файл /etc/ttys, + проверьте, что у вас имеется достаточное количество устройств для + виртуальных терминалов. Самый простой способ сделать это: + + + # cd /dev + # ./MAKEDEV vty12 # For 12 devices + + + + + +Самым простым (и надёжным) способом активировать виртуальные + консоли является перезагрузка. Однако если вы вовсе не хотите этого + делать, просто остановите X Window System и выполните (как + администратор): + + + kill -HUP 1 + + + + + +При этом требуется, чтобы вы полностью закрыли X Window, если она + была запущена, до запуска этой команды. Если вы это не сделаете, + ваша система может повиснуть/заблокироваться после выполнения команды + kill. + + + + + + + Как осуществляется доступ к виртуальным консолям из X? + + +Если на консоли запущена X Window, вы можете использовать + комбинации клавиш, подобные Ctrl-Alt-F1, для переключения в режим + работы с виртуальной консолью. Заметьте, однако, что как только вы + переключитесь из X Window в виртуальный терминал, вы можете + использовать только Alt- клавиши для переключения в другой + виртуальный терминал или снова в X Window. Вам не нужно ещё нажимать + клавишу Ctrl. Если вы используете клавишу Ctrl при переключении в X, + то в старых релизах вы может обнаружить, что ваша текстовая консоль + осталась в режиме ``заблокированного control''. Нажмите эту клавишу + ещё раз. + + + + + + +Как запустить XDM во время загрузки? + +Есть две философские школы, проповедующие различные методы запуска + xdm. Последователи одного течения запускают xdm из /etc/ttys, + используя приводимый пример, тогда как другие вставляют запуск xdm в + скрипт rc.local или X.sh, поместив последний в каталог + /usr/local/etc/rc.d. Оба метода равноправны, и один из них + может работать в ситуациях, с которыми не справляется другой и + наоборот. В обоих случая результат один и тот же: X выводит + графическое приглашение login:. + + + +Плюсом метода с использованием ttys является документрование того, + на каком vty будет запущен X и то, что ответственность за перезапуск + X-сервера при завершении сеанса работы лежит на процессе init. Метод + с использованием rc.local позволяет просто прекратить работу xdm, если + при запуске X возникли какие-нибудь проблемы. + + + +Из rc.local xdm должен быть запущен без аргументов, (то есть + как даемон). xdm должен быть запущен ПОСЛЕ запуска getty, иначе они + будут конфликтовать, блокируя консоль. Лучше всего выдержать паузу + секунд на 10 и потом запустить xdm. + + + +В предыдущей версии FAQ говорилось о необходимости добавления + vt который будет использовать X, в файл + /usr/X11R6/lib/X11/xdm/Xservers. На самом деле делать это + необязательно: X будет использовать первый свободный vt, который + сможет найти. + + + + + + + При запуске xconsole выдаётся сообщение ``Couldn't open console''. + + +Если вы запускаете X через скрипт startx, права на устройство /dev/console не изменяются, + поэтому такие команды, как xterm -C и xconsole, не будут работать. + + + +Это зависит от прав доступа, установленных для консоли по умолчанию. + В многопользовательской системе вовсе не нужно, чтобы любой + пользователь мог выводить информацию на системную консоль. Для + пользователей, вошедших в систему через VTY, для решения этой проблемы + существует файл fbtab. + + + +В общем, раскомментируйте строчку вида + + + /dev/ttyv0 0600 /dev/console + + + + + +в файле /etc/fbtab, и этого будет достаточно для того, чтобы всякий, + кто вошёл в систему с /dev/ttyv0, будет иметь доступ к + консоли. + + + + + + +Моя мышь PS/2 в X работает неправильно. + +Вполне может быть, что ваша мышь и её драйвер + рассинхронизировались. + + + +В версиях 2.2.5 и более ранних это может произойти при переключении + из X в виртуальный терминал и последующем возвращении в X. Если эта + проблема возникает достаточно часто, попробуйте добавить следующую + строку в файл конфигурации ядра и перекомпилировать его. + + + options PSM_CHECKSYNC + + + + + +Если у вас нет опыта перекомпиляции ядра, обратитесь к . + + + +С этой опцией проблем с синхронизацией мыши и её драйвера должно + быть меньше. Если, однако, эта проблема всё же осталась, щёлкните + любой кнопкой мыши, не двигая ей, что заставит мышь и драйвер сделать + попытку синхронизироваться. + + + +Заметьте, что в некоторых системах эта опция может не работать и + приводить к отключению функции ``tap'' устройства ALPS GlidePoint, + подключенного к порту мыши PS/2. + + + +В версиях 2.2.6 и выше, проверка синхронизации сделана гораздо лучше + и включена в стандартный драйвер мыши PS/2. Она должна работать даже с + GlidePort. (Так как код проверки стал стандартной функцией, опция + PSM_CHECKSYNC в этих версиях нежоступна.) Однако в редких случаях + драйвер может ошибочно обнаруживать проблемы с синхронизацией, и вы + будете видеть такие сообщения ядра: + + + psmintr: out of sync (xxxx != yyyy) + + + + а также обнаружите, что мышь теперь работает неправильно. + + + +Если это случится, отмените проверку согласования, установив + значение флага для драйвера мыши PS/2 в 0x100. Войдите в конфигуратор + UserConfig, задав опцию ``'' в приглашении + загрузчика: + + + boot: -c + + + + Затем в командной строке UserConfig наберите: + + + UserConfig> flags psm0 0x100 + UserConfig> quit + + + + + + + + +Моя мышь PS/2 от MouseSystems похоже, не работает. + +Было несколько сообщений, что некоторые модели мышей PS/2 от + MouseSystems работают только в режиме ``высокого разрешения''. В + других режимах курсор мыши постоянно прыгает в верхний левый угол + экрана. + + + +К сожалению, для версий 2.0.X и 2.1.X решения этой проблемы не + существует. Для версий от 2.2 до 2.2.5 приложите следующий патч к + файлу /sys/i386/isa/psm.c и перестройте ядро. Если у вас + нет опыта перекомпиляции ядра, обратитесь к . + + +diff -u psm.c.orig psm.c +@@ -766,6 +766,8 @@ + if (verbose >= 2) + log(LOG_DEBUG, "psm%d: SET_DEFAULTS return code:%04x\n", + unit, i); ++ set_mouse_resolution(sc->kbdc, PSMD_RES_HIGH); ++ + #if 0 + set_mouse_scaling(sc->kbdc); /* 1:1 scaling */ + set_mouse_mode(sc->kbdc); /* stream mode */ + + + + + +Для версий 2.2.6 и выше укажите флаг 0x04 драйверу мыши PS/2 + для перевода её в режим высокого разрешения. Войдите в + UserConfig, задав опцию ``'' в приглашении + загрузчика: + + + boot: -c + + + + Затем в командной строке UserConfig наберите: + + + UserConfig> flags psm0 0x04 + UserConfig> quit + + + + + +В предыдущем разделе описана возможная причина проблем с мышью. + + + + + + + При компиляции приложений для X imake не может найти файл + Imake.tmpl. Где он находится? + + +Файл Imake.tmpl является частью пакета Imake, стандартного + инструмента для построения X-приложений. Он, также как ещё несколько + заголовочных файлов, требуемых для построения X-приложений, содержится + в дистрибутиве программ X. Вы можете их проинсталлировать из sysinstall + или взять из дистрибутива X. + + + + +Как поменять местами кнопки мыши? + +Поместите команду xmodmap -e "pointer = 3 2 1" в один из ваших + скриптов .xinitrc или .xsession. + + + + + + + + +Работа в сети + + + +Где можно найти информацию о ``бездисковой загрузке''? + +``Бездисковая загрузка'' означает, что машина с FreeBSD загружается + по сети и читает необходимые файлы с сервера, а не со своего диска. + Подробное описание есть в + соответствующей главе + Руководства. + + + + + + + Может ли машина с FreeBSD использоваться как маршрутизатор? + + +Стандарты Internet и опыт практической работы не позволяют нам + в FreeBSD держать маршрутизацию пакетов включенной по умолчанию. Вы, + можете сделать это, изменив значение следующей переменной в файле + rc.conf на YES: + + + gateway_enable=YES # Set to YES if this host will be a gateway + + + + + +Этот параметр изменит значение + системной переменной + net.inet.ip.forwarding на 1. + + + +Кроме того, в большинстве случаев вам будет необходимо запустить + программу маршрутизации, для того, чтобы объявить о появлении нового + маршрутизатора другим системам в вашей сети; FreeBSD поставляется со + стандартной для BSD-систем программой маршрутизации + routed, в более сложных ситуациях вы можете попробовать + GaTeD (доступный по FTP с ftp.gated.Merit.EDU), который + поддерживает FreeBSD начиная с версии 3_5Alpha7. + + + +Мы обязаны предупредить вас, что даже когда FreeBSD настроена + таким образом, она не полностью соответствует стандартам Internet + для маршрутизаторов, однако для обычной работы этого хватает. + + + + + + + Можно ли подключить машину с Win95 к Internet с помощью FreeBSD? + + +Как правило, те, кто задает такие вопросы, имеют дома два компьютера, + один с FreeBSD, а другой с Win95; идея состоит в использовании + FreeBSD для подключения к Internet, а затем осуществлять выход в + Internet из Windows95 через FreeBSD. На самом деле это просто + особый случай предыдущего вопроса. + + + +Существует полезный документ, + описывающий, как настроить FreeBSD в качестве маршрутизатора с выходом + по протоколу PPP. + + + +ЗАМЕЧАНИЕ: При этом требуется иметь по крайней мере два + фиксированных IP адреса, а может быть, три или больше, в зависимости + от того, сколько машин с Windows вы хотите подключить. Как вариант, + если у вас нет фиксированных IP адресов, вы можете использовать + одну из частных IP подсетей и установить прокси типа + SQUID или + TIS на машине с FreeBSD. + + + +Посмотрите также раздел о . + + + + + + + Почему не проходит компиляция последней версии BIND от ISC? + + +Это - результат конфликта между файлом ``cdefs.h'' в + дистрибутиве и тем, что поставляется с FreeBSD. Достаточно + удалить файл compat/include/sys/cdefs.h. + + + + + + +Поддерживает ли FreeBSD протоколы SLIP и PPP? + +Да. Посмотрите страницы справочника по командам + slattach, sliplogin, + pppd и + ppp. + Pppd и ppp могут обслуживать как входящие, так и исходящие + соединения. Sliplogin имеет дело исключительно со входящими соединениям, + а slattach - только с исходящими. + + + +Эти программы описаны в следующих разделах + руководства: + + + + + +Протокол SLIP (сервер) + + + + + +Протокол SLIP (клиент) + + + + + +Протокол PPP (режим ядра) + + + + + +Протокол PPP (режим пользователя) + + + + + + + + +Если вы имеете доступ в Internet через командную строку + оболочки, вам может подойти slirp. + С его помощью можно получить (ограниченный) доступ к таким + службам, как ftp и http прямо с вашей машины. + + + + + + + Поддерживает ли FreeBSD NAT или Masquerading? + + +Если у вас есть локальная сеть (одна или больше машин), но + только один IP адрес, предоставленный провайдером, вас может привлечь + natd. + Natd позволяет подключить всю сеть к Internet, используя + единственный IP адрес. + + + +Программа ppp имеет похожую встроенную возможность через параметр + . В обоих случаях используется библиотека + libalias. + + + + + + + +Не могу создать устройство /dev/ed0! + +В стандарте сетевого взаимодействия Беркли сетевые интерфейсы + напрямую доступны только ядру. За дополнительной информацией + обратитесь к файлу /etc/rc.network и страницам справочника, + описывающим различные сетевые программы, упоминаемые здесь. Если всё + это оставит вас в недоумении, почитайте книгу, описывающую + администрирование сети в другой BSD-подобной операционной системе; + с некоторыми незначитальными исключениями, администрирование сети + во FreeBSD в основном совпадает с SunOS 4.0 и Ultrix. + + + + + + +Как настроить алиас на Ethernet? + +Добавьте ``netmask 0xffffffff'' в командной строке ifconfig + так, как это сделано здесь: + + + ifconfig ed0 alias 204.141.95.2 netmask 0xffffffff + + + + + + + + + Как заставить адаптер 3C503 использовать другой тип сетевого разъёма? + + +Если вы хотите задействовать другой разъём, то должны указать + дополнительный параметр в командной строке + ifconfig. Разъёмом по умолчанию является ``link0''. + Чтобы задействовать разъём AUI, а не BNC, используйте ``link2''. + Эти флаги должны быть указаны с помощью переменных ifconfig_* + в /etc/rc.conf. + + + + + + +У меня проблемы при работе NFS во FreeBSD. + +Некоторые сетевые адаптеры работают (мягко говоря) хуже, чем другие + что может иногда вызывать проблемы при работе приложений типа NFS, + интенсивно использующих сеть. + + + +Подробности описаны в соответствующей главе Руководства, посвящённой NFS. + + + + + + +Почему я не могу смонтировать диск Linux по NFS? + +Некоторые версии NFS для Linux поддерживают запросы на монтирование + только с привилегированного порта; попробуйте + + + mount -o -P linuxbox:/blah /mnt + + + + + + + + +Почему я не могу смонтировать диск Sun по NFS? + +Рабочие станции Sun под управлением SunOS 4.X поддерживают запросы + на монтирование только с привилегированного порта; попробуйте + + + mount -o -P sunbox:/blah /mnt + + + + + + + + +Проблемы при связи по PPP с машинами NeXTStep. + +Попробуйте отменить все расширения TCP в /etc/rc.conf, + изменив значение следующей переменной в NO: + + + tcp_extensions=NO + + + + + +Маршрутизаторы Annex фирмы Xylogic не работают по этой же причине, + поэтому при подключении к ним вам нужно проделать то же самое. + + + + + + +Как включить поддержку multicast IP? + +Работа с многоадресной рассылкой по умолчанию полностью + поддерживается версиями FreeBSD 2.0 и выше. Если вы хотите использовать + ваш компьютер как маршрутизатор многоадресного трафика, вам нужно + перекомпилировать ядро с включенной опцией MROUTING и + запустить mrouted. Версии FreeBSD 2.2 и выше будут запускать + mrouted во время загрузки, если переменная mrouted_enable + в файле /etc/rc.conf установлена в значение "YES". + + + +Приложения MBONE находятся в своей категории портов, mbone. Если + вы ищете приложения для организации конференций vic и vat, + посмотрите там! + + + +Более подробная информация располагается на сервере + Mbone Information Web. + + + + + + + Какие сетевые адаптеры сделаны на наборе микросхем DEC PCI? + + +Вот список, составленный Гленом Фостером (Glen Foster), с некоторыми незначительными + добавлениями: + + + Производитель Модель + ---------------------------------------------- + ASUS PCI-L101-TB + Accton ENI1203 + Cogent EM960PCI + Compex ENET32-PCI + D-Link DE-530 + Dayna DP1203, DP2100 + DEC DE435 + Danpex EN-9400P3 + JCIS Condor JC1260 + Linksys EtherPCI + Mylex LNP101 + SMC EtherPower 10/100 (Model 9332) + SMC EtherPower (Model 8432) + TopWare TE-3500P + Zynx ZX342 + + + + + + + + + Почему я должен использовать FQDN для хостов не в моей сети? + + +Вы, наверное, обнаружили, что хост, к которому вы обратились, + оказался на самом деле в другом домене; например, если вы находитесь + в домене foo.bar.edu и хотите обраттиться к хосту ``mumble'' в домене + bar.edu, то должны указать его полное доменное имя, ``mumble.bar.edu'', + а не просто ``mumble''. + + + +Традиционно, это позволял делать ресолвер BSD BIND. Однако текущая + версия bind, + поставляемая с FreeBSD, больше не добавляет имена доменов, + отличающихся от того, в котором вы находитесь, для не полностью + указанных имён хостов. Так что неполно указанный хост mumble + будет найден либо как mumble.foo.bar.edu, либо будет искаться + в корневом домене. + + + +Это отличается от предыдущего поведения, при котором поиск + продолжался в mumble.bar.edu, и mumble.edu. + Посмотрите RFC 1535 о причинах объявления такого поведения плохой + практикой и даже ошибкой в безопасности. + + + +Как хорошее решение, вы можете поместить строку + + + search foo.bar.edu bar.edu + + + + + +вместо ранее используемой + + + domain foo.bar.edu + + + + + +в файл /etc/resolv.conf. Однако удостоверьтесь, что порядок поиска не + нарушает ``границ полномочий между местным и внешним + администрированием'', как это названо в RFC 1535. + + + + + + +``Permission denied'' для любых действий в сети. + +Если вы компилировали ядро с опцией IPFIREWALL, имейте в + виду, что политика по умолчанию настроена как в 2.1.7R (она + на самом деле изменилась во время разработки 2.1-STABLE), то есть + указан запрет на прохождение всех пакетов, которые явно не разрешены. + + + +Если вы случайно неверно отконфигурировали брандмауэр, то для + восстановления работоспособность сети дайте такую команду, войдя + суперпользователем: + + + ipfw add 65534 allow all from any to any + + + + + +Также вы можете установить "firewall_type='open'" в файле + /etc/rc.conf. + + + +Более подробная информация о конфигурировании брандмауэра в + FreeBSD находится в соответствующем разделе Руководства. + + + + + + +Какую нагрузку вызывает использование IPFW? + +Ответ на этот вопрос зависит главным образом от набора правил + и производительности процессора. Для большинства приложений, имеющих + дело с ethernet и простым набором правил, ответ: незначительно. Для + тех, кому нужны реальные цифры для удовлетвореия любопытства, + читайте дальше. + + + +Следующие измерения были сделаны с использованием 2.2.5-STABLE на + машине 486-66. IPFW был модифицирован для измерения времени, + затрачиваемого внутри процедуры ip_fw_chk и вывода результатов + на консоль каждую тысячу пакетов. + + + +Тестировались два набора по 1000 правил в каждом. Первый набор + был предназначен для демонстрации наихудшего случая, повторяя условие + + + ipfw add deny tcp from any to any 55555 + + + + + +Это наихудший случай, так как все условия IPFW будут проверены + перед тем, как будет принято окончательное решение о том, что пакет + не соответствует условию (мы меняли номер порта). После 999 + повторений этого условия находилось правило + allow ip from any to any. + + + +Второй набор был предназначен для быстрого прерывания + процесса проверки условий: + + + ipfw add deny ip from 1.2.3.4 to 1.2.3.4 + + + + + +Неподходяший IP-адрес источника для указанного условия + быстро вызывает пропуск этого правила. Как и ранее, последним правилом + было allow ip from any to any. + + + +Затраты на обработку пакета в первом случае было примерно 2.703 + мс/пакет, или примерно 2.7 микросекунд на правило. Таким образом, + теоретический предел скорости обработки пакетов с этими правилами + равен примерно 370 пакетам в секунду. Предполагая использование + ethernet 10Мб/с с размером пакета примерно 1500, мы можем достигнуть + только 55.5% использования пропускной способности. + + + +В последнем случае на обработку каждого пакета было затрачено + примерно 1.172мс, или около 1.2 микросекунд на правило. Теоретический + предел обработки будет равен около 853 пакетам в секунду, что почти + соответствует скорости 10Мб/с ethernet. + + + +Большое количество протестированных правил и природа этих правил + не даёт представление о реальной жизни - они были использованы + только для генерации информации о времени обработки. Вот + несколько наблюдений, которые нужно иметь в виду для построении + эффективного набора правил: + + + + + +Поместите правило `established' в самое начало списка для + обработки основного трафика TCP. Не помещайте перед ним никаких + правил allow tcp. + + + + + +Старайтесь помещать часто вызываемые правила как можно раньше, + а редко используемые - позже (без изменения политики, + конечно). Вы можете выяснить частоту использования правил с помощью + вывода статистики командой ipfw -a l. + + + + + + + + + + + + + Как можно перенаправить запросы с одной машины на другую? + + +Вы можете перенаправить запрос на FTP (или другой сервис) с помощью + пакаджа 'socket', доступного в дереве портов в категории 'sysutils'. + Просто замените командную строку запуска сервиса на вызов socket, + типа: + + +ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.foo.com ftp + + + + +где 'ftp.foo.com' и 'ftp' являются соответственно хостом и портом + для перенаправления. + + + + + + + Где можно найти средства управления сетевым трафиком? + + +Для FreeBSD существуют два средства управления трафиком: свободно + распространяемый ALTQ + и коммерческий продукт Bandwidth Manager от Emerging Technologies. + + + + + + + Почему появляются сообщения ``/dev/bpf0: device not configured"? + + +Для работы программ, использующих Berkeley Packet Filter (bpf) необходимо + включение в ядро соответствующего драйвера. Перекомпилируйте ядро, + добавив в его конфигурационный файл следующую строку: + + + pseudo-device bpfilter # Berkeley Packet Filter + + + +Затем, после перезапуска системы, вам нужно создать соответствующий + файл устройства. Это можно сделать, сменив текущий каталог на + /dev и выполнив команду + + + + # sh MAKEDEV bpf0 + + + + +Обратитесь к разделу руководства, посвящённому созданию файлов устройств за подробной информацией по этому + вопросу. + + + + + + +PPP + + + +Не могу заставить работать ppp. Что я делаю не так? + + +Первым делом прочтите страницы справочника, посвящённые ppp, а также соответствующий + раздел руководства. + Включите протоколирование командой + + + set log Phase Chat Connect Carrier lcp ipcp ccp command + + + +Эта команда может быть набрана в командной строке ppp или + она может находиться в конфигурационном файле + /etc/ppp/ppp.conf (начало секции default - лучшее + для неё место. Удостоверьтесь, что файл + /etc/syslog.conf содержит строки + + + !ppp + *.* /var/log/ppp.log + + + +и файл /var/log/ppp.log существует. Теперь вы сможете + найти полную информацию о происходящем в файле протокола. Не + беспокойтесь, если не всё вам будет там понятно. Если вы будете + пользоваться чьей-то помощью, протокол вам пригодится. + +Если ваша версия ppp не понимает команду "set log", вы должны скачать + последнюю версию. + Она рассчитана на FreeBSD версий 2.1.5 и выше. + + + + +Ppp просто зависает, когда я его запускаю + +Обычно это происходит, когда не может быть определено имя + вашего хоста. Наилучший способ исправить это - + удостовериться, что файл /etc/hosts используется вашим + ресолвером. Отредактируйте файл /etc/host.conf, поместив + на первое место строчку hosts. Затем просто добавьте + записи о вашей машине в файл /etc/hosts. Если у вас нет + локальной сети, измените строку localhost: + + +127.0.0.1 foo.bar.com foo localhost + + + + В противном случае просто добавьте ещё одну запись о вашем хосте. + Обратитесь к соответствующим страницам справочника за подробным + описанием. + +Если вы выполнили эти указания, вы сможете успешно выполнить + команду ping -c1 `hostname`. + + + + +Ppp не звонит в режиме -auto + +Во-первых, проверьте, что у вас есть маршрут по умолчанию. + Запустив netstat -rn, вы должны увидеть две строки вида: + + +Destination Gateway Flags Refs Use Netif Expire +default 10.0.0.2 UGSc 0 0 tun0 +10.0.0.2 10.0.0.1 UH 0 0 tun0 + + + +Здесь предполагается, что вы использовали адреса, + приведённые в Руководстве, Справочнике или файле + ppp.conf.sample. Если у вас нет маршрута по умолчанию, это + может быть из-за использования старой версии + ppp, которая не понимает слова HISADDR в файле + ppp.conf. Если ваша версия ppp из FreeBSD версий ранее + чем 2.2.5, замените строку + + + add 0 0 HISADDR + + + +на + + + add 0 0 10.0.0.2 + + + +Другой причиной отсутствия маршрута по умолчанию может быть + то, что вы ошибочно установили маршрут по умолчанию в вашем файле + /etc/rc.conf (этот файл назывался /etc/sysconfig + до 2.2.2-RELEASE), и вы пропустили строку + + + delete ALL + + + +в ppp.conf. В таком случае обратитесь к соответствующему + разделу Руководства. + + + + +Что означает сообщение "No route to host"? + +Эта ошибка появляется из-за отсутствующего раздела + + + MYADDR: + delete ALL + add 0 0 HISADDR + + + +в файле /etc/ppp/ppp.linkup. Он необходим, если ваш + IP адрес выделяется динамически или адрес маршрутизатора вам не + известен. Если вы используете интерактивный + режим, вы можете набрать следующие команды после входа в + пакетный режим (пакетный режим идентифицируется заглавными + буквами PPP в приглашении): + + + delete ALL + add 0 0 HISADDR + + + +Обратитесь к разделу PPP и динамические IP адреса Руководства за подробной + информацией. + + + + +Соединение разрывается через 3 минуты + +Таймаут для ppp по умолчанию равен 3 минутам. Это может быть + изменено строкой + + + set timeout NNN + + + +где NNN - время неактивности в секундах, после которого + соединение закывается. Если NNN равно нулю, соединение никогда + не разрывается по таймауту. Эту команду можно поместить в файл + ppp.conf или набрать ее в интерактивном режиме. Изменение + этого параметра также возможно при активном соединении, если + подключиться к сокету ppp сервера с помощью программ + telnet + или pppctl. Обратитесь к страницам Справочника, посвящённым + ppp. + + + + +Соединение разрывается при большой нагрузке + +Если у вас включен Link Quality Reporting (LQR), возможно, + что слишком много пакетов LQR теряется в канале. Ppp делает вывод, + что канал плох, и разрывает соединение. В FreeBSD до версии 2.2.5 + LQR было включено по умолчанию. Сейчас оно по умолчанию выключено. + LQR можно выключить строкой + + + disable lqr + + + + + + + Соединение разрывается в случайные промежутки времени + + +Иногда, на шумной линии или даже на линии с включенным режимом + ожидания звонка, ваш модем может вешать трубку, думая (совершенно + напрасно), что потерял несущую. + +В большинстве модемов есть параметр, определяющий чувствительность + к временной потере несущей. Например, в модеме USR Sportster, + это определяется значением регистра S10 в десятых долях секунды. + Чтобы сделать связь более устойчивой, добавьте следующую + последовательность посылок-ожиданий в строку набора: + + + set dial "...... ATS10=10 OK ......" + + + +Обратитесь к руководству по вашему модему. + + + + + Соединение часто рвётся в случайные промежутки времени + + +Многие сообщают об обрывах соединений без видимой причины. Первым + делом нужно выяснить, с какой стороны соединения рвётся связь. + +Если вы используете внешний модем, можете просто попробовать + использовать утилиту ping и посмотреть, мигает ли индикатор + TD при передаче данных. Если он мигает (а индикатор TD нет), + проблема с той стороны. Если индикатор TD не загорается, проблема + с вашей стороны. При использовании внутреннего модема вам необходимо + воспользоваться командой set server, указав её в файле + ppp.conf. Когда произойдёт обрыв связи, подключитесь к ppp с + помощью pppctl. Если ваше сетевое подключение неожиданно восстановится + (ppp оживает при проявлении активности на диагностическом сокете) или + или если вы не сможете соединиться (здесь мы полагаем, что команда + set socket в начальный момент была выполнена успешно), то проблема + имеет локальный характер. Если вы сможете подключиться, но связи всё + равно нет, включите вывод отладочной информации командой set log + local async и запустите ping из другого окна или терминала, чтобы + проверить связь. В отладочном выводе будут показаны данные, + передаваемые и получаемые из канала связи. Если данные посылаются, + но не принимаются обратно, проблема с противоположной стороны. + +Выяснив, является эта проблема локальной или удалённой системы, + вы имеете следующие возможности: + + + + +Удалённая система не отвечает + +Здесь вы мало что можете сделать. Большинство провайдеров + отказываются оказать помощь, если вы используете ОС не от Microsoft. + Вы можете добавить команду enable lqr в ваш ppp.conf, что + позволит ppp отследить ошибки в удалённой системе и закрывать + соединение, однако такое обнаружение достаточно медленное и поэтому + не так уж полезно. Вы можете также просто не сообщать своему + провайдеру, что запускаете user-ppp.... + +Первым делом попробуйте отключить всю местную компрессию, + указав в конфигурационном файле следующее: + + + disable pred1 deflate deflate24 protocomp acfcomp shortseq vj + deny pred1 deflate deflate24 protocomp acfcomp shortseq vj + + + +Теперь попробуйте установить соединение ещё раз и удостовериться, + что ситуация не изменилась. Если качество соединения улучшилось + или проблема окащалась полностью решённой, выясните, настройка + чего приводила к проблемам методом проб и ошибок. Это даст вам + дополнительную защиту, когда вы будете разговаривать с вашим + провайдером (хотя при этом может обнаружиться, что вы работаете + не с продуктом Microsoft). + +Перед тем, как звонить провайдеру, включите вывод отладочной + информации, как вы это делали ранее и подождите, пока соединение + снова не прервётся. Правда, для этого требуется некоторое + дисковое пространство. Интерес могут представлять последние + прочитанные из порта данные. Обычно это данные в формате ascii + и они могут даже содержать описание проблемы (``Memory fault, + core dumped'' ?). + +Если ваш провайдер согласен помочь вам, нужно будет включить + режим отладки с их стороны, а потом, когда связь прервётся в + следующий раз, они могут сказать вам, почему возникли проблемы + с их стороны. Будет хорошо, если вы пришлёте детальное описание + на адрес brian@Awfulhak.org, или даже попросите провайдера связаться + со мной напрямую. + + + + +Ppp зависает + +Лучше всего в этом случае перекомпилировать ppp, добавив параметры + CFLAGS+=-g и STRIP= в конец Makefile, а затем выполнить + make clean && make && make install. Когда ppp + зависнет, найдите идентификатор процесса ppp с помощью команды + ps ajxww | fgrep ppp и выполните команду gdb ppp PID. + Затем в приглашении gdb вы можете использовать команду bt для + получения стека вызовов. + +Пошлите результат на адрес brian@Awfulhak.org. + + + + + Ничего не происходит после сообщения Login OK! + + +До версии FreeBSD 2.2.5, как только связь устанавливалась, + ppp ожидал начала согласования Line Control Protocol + (LCP) с противоположной стороны. Многие провайдеры Internet не + начинают согласования и предполагают, что это сделает клиент. + Чтобы заставить ppp инициировать согласование параметров + LCP, используйте следующую строку: + + + set openmode active + + + +Замечание: Ничего страшного не произойдёт, если согласование + начнут обе стороны, поэтому режим инициирования сейчас + по умолчанию активный. Однако, в следующем разделе описывается + ситуация, когда это приводит к некоторым неприятностям. + + + + + В протоколе есть сообщения о том, что 'magic being the same'. + + +Иногда, сразу же после установления соединения, вы можете увидеть + сообщения в протоколе, говорящие что "magic is the same". Иногда + эти сообщения проходят безболезненно, а иногда одна из сторон + прекращают работу. Большинство реализаций ppp не может справиться с + такой ситуацией, и, даже когда связь выглядит установившейся, вы + будете видеть только бесконечно повторяющиеся конфигурационные + запросы и подтверждения в файле протокола до тех пор, пока ppp + окончательно не закроет соединение. + +Обычно это происходит на серверах с медленными дисками, на + которых порт обслуживает программа getty, а ppp выполняется из + сценария регистрации или другой программы после регистрации + пользователя. Были сообшения, что такое случается постоянно при + использовании slirp. Причина заключается в том, что во время, + проходящее между завершением работы getty и запуском ppp, ppp + со стороны клиента начинает посылать пакеты Line Control Protocol + (LCP). Так как режим эха остаётся всё ещё включенным, ppp клиента + получает "отражения" своих запросов. + +Частью процесса согласования параметров LCP является определение + "магического" числа для каждой стороны соединения для обнаружения + "отражений". Согласно спецификации, когда одна сторона пытается + использовать совпадающее "магическое" число, должен быть послан ответ + NAK и должно быть выбрано новое "магическое" число. В тот момент, + когда на порту сервера включен режим эха, клиент ppp посылает пакеты + LCP, получает то же самое "магическое" число в отражённом пакете и + отвечает на него NAK. Он также видит отражённый NAK (который также + означает, что ppp должен изменить своё "магическое" число). В + потенциале это может вызвать появление огромного количества процессов + смен "магических" чисел, и все они накапливаются в буфере терминала. + Как только запустится сервер ppp, он будет перегружен запросами на + смену "магических", немедленно решит, что этого много для согласования + LCP и прервёт соединение. В то же самое время, клиент, который больше + не видит отражений, останавливается для того, чтобы увидеть, что + сервер закрыл соединеие. + +Этого можно избежать, позволив начинать согласование + противоположной стороне следующей строкой в файле ppp.conf: + + + set openmode passive + + + +Это заставит ppp ожидать начала согласования LCP. Некоторые + серверы, однако, могут никогда не начать согласование. Если это тот + самый случай, вы можете сделать следующее: + + + set openmode active 3 + + + +Это заставит ppp пассивно ждать 3 секунды, и только затем посылать + запросы LCP. Если противоположная сторона начнёт посылать в этот + момент запросы, ppp немедленно ответит, не ожидая истечения + трёхсекундного интервала. + + + + + Согласование LCP продолжается, пока не закроется соединение + + +В настоящий момент одной из неприятных особенностей + реализации ppp является то, что она не связывает сообщения + LCP, CCP & IPCP с запросами. Как результат, если реализация + ppp с одной стороны более чем на 6 секунд медленнее, чем с + другой, противоположная сторона будет посылать два дополнительных + запроса на согласование параметров LCP. Это фатально. + + Предположим, что у нас работают две реализации, A и B. + A начинает посылать запросы LCP сразу же после соединения, а + B требуется 7 секунд для запуска. Когда B запускается, + A послало 3 LCP-запроса. Полагаем, что режим эха выключен, + в противном случае мы столкнулись бы с проблемами "магического" + числа, описанные в предыдущем разделе. B посылает REQ, затем + ACK на первый REQ от A. Это приводит к тому, что A входит + в состояние OPENED и посылает (первый) ACK обратно B. В + то же самое время B посылает обратно ещё два ACK в ответ на + два дополнительных REQ, посланные A до старта B. B + затем получает первый ACK от A и возвращается в состояние + REQ-SENT, послав ещё один (четвёртый) REQ согласно RFC. Затем + он получает третий ACK и входит в состояние OPENED. В то же + время B принимает четвёртый REQ от A, что возвращает + его в состояние ACK-SENT и посылает ещё один (второй) REQ + и (четвёртый) ACK согласно RFC. A получает REQ, переходит + в состояние REQ-SENT и посылает ещё один REQ. Он немедленно + принимает последующий ACK и входит в состояние OPENED. + +Это будет продолжаться до тех пор, пока одна из сторон не + обнаружит, что это ни к чему не приводит и не закроет соединение. + +Лучшим способом избежать этой ситуации является конфигурация + одной из сторон как passive, чтобы она ждала другую для + начала согласования. Это можно сделать командой + + + set openmode passive + + + + С этой командой нужно быть осторожным. Вы также должны будете + использовать команду + + + set stopped N + + + + для ограничения периода ожидания, в течении которого ppp ждёт + начала согласования с противоположной стороны. Как вариант, может + быть использована строка + + + set openmode active N + + + + (где N - период ожидания в секундах перед тем, как начать + согласование). + + + + +Вскоре после соединения ppp блокируется + +В версиях FreeBSD ранее 2.2.5, была возможна ситуация, + когда связь выключалась очень скоро после соединения из-за + некорректной обработки запроса на согласования сжатия данных + ppp. Это случалось, когда обе стороны пытались установить + разные типы CCP (Compression Control Protocol). Эта проблема + сейчас решена, но если вы всё ещё используете старую версию + ppp, проблема может быть обойдена с помощью строки + + + disable pred1 + + + + + + + Когда я выполняю команду shell для тестирования соединения, + ppp блокируется + + +Когда вы выполняете команду shell или !, ppp + запускает оболочку (если были заданы параметры, ppp их + использует). Ppp будет ждать окончания выполнения команды, прежде + чем продолжить. Если вы попытаетесь воспользоваться связью ppp + после запуска команды, связь будет выглядеть заблокированной. Это + происходит из-за того, что ppp ждёт завершения выполнения + запущенной команды. + +Если вам необходимо выполнять подобные команды, используйте + команду !bg. В этом случае нужная команда будет выполняться + в фоновом режиме, а ppp сможет продолжить обслуживание канала связи. + + + + + Ppp, обслуживающее нуль-модем, никогда не закрывается + + +Ppp не может определить, что соединение было закрыто. + Это происходит из-за метода использования сигнальных линий + нуль-модемного кабеля. При использовании такого типа соединения + всегда включайте LQR. + + + enable lqr + + + +По умолчанию LQR включается, если это было затребовано с + противоположной стороны на этапе согласования параметров соединения. + + + + +В режиме -auto ppp неожиданно начинает звонить + +Если ppp начинает неожиданно звонить, вы должны определить + причину и задать фильтры dfilters для предотвращения подобных + звонков. + +Для выяснения причины такого поведения, используйте строку: + + + set log +tcp/ip + + + +Это включит протоколирование всего трафика через соединение. В + следующий раз, когда неожиданно будет установлено соединение, + вы установите причину по временным отметкам в файле протокола. + +После этого вы можете запретить дозвонку при выясненных + условиях. Как правило, такие проблемы возникают из-за обращений + к DNS. Для предотвращения обращений к DNS и установления соединения + (что не запретит ppp пропускать пакеты через уже + установленное соединение), используйте такую комбинацию: + + + set dfilter 1 deny udp src eq 53 + set dfilter 2 deny udp dst eq 53 + set dfilter 3 permit 0/0 0/0 + + + +Это может вам не подойти, так как закроет возможность дозвонки + по запросу - большинству программ нужно обратиться к DNS до того, + как начать работать. + +В случае DNS, вы должны попытаться определить, кто пытается + определить имя хоста. В большистве случаев виновным оказывается + sendmail. Удостоверьтесь, что вы указали программе sendmail + не осуществлять обращений к DNS в его конфигурационном файле. + Обратитесь к разделу о + за подробным описанием создания конфигурационного файла и что туда + нужно поместить. Вам может понадобиться добавить в файл .mc + строку: + + + define(`confDELIVERY_MODE', `d')dnl + + + +Это заставит sendmail ставить все сообщения в очередь до + тех пор, пока не будет запущена её обработка (как правило, + sendmail запускается с параметрами ``-bd -q30m'', указывающие, что + обрабатывать очередь нужно каждые 30 минут) или до тех пор, пока + не будет выполнена команда ``sendmail -q'' (может быть, из файла + ppp.linkup). + + + + +Что означают ошибки CCP + +В файле протокола появляются такие сообщения об ошибках: + + + CCP: CcpSendConfigReq + CCP: Received Terminate Ack (1) state = Req-Sent (6) + + + +Это происходит, если ppp пытается установить компрессию + типа Predictor1, а противоположная сторона не хочет устанавливать + никакой компрессии. Эти сообщения безобидны, но если вы хотите + от них избавиться, вы можете запретить компрессию Predictor1 и + у себя тоже: + + + disable pred1 + + + + + + + Ppp блокируется во время передачи файла с ошибками ввода-вывода + + +В FreeBSD 2.2.2 и ранее существовала ошибка в драйвере устройства + tun, которая не позволяла проходить пакетам размером, превышающим + значене MTU интерфейса. Приём пакета, большего, чем размер MTU, + приводит к ошибке ввода-вывода, который протоколируется через syslogd. + +Спецификация протокола ppp утверждает, что MRU, равное 1500, + должно всегда подходить как минимальное, несмотря на + согласование LCP, таким образом, если сделать MTU меньше + 1500, ваш провайдер может начать передавать пакеты размером 1500, + несмотря ни на что, и вы это почувствуете - ваше соединение + заблокируется. + +Проблема может быть обойдена, если никогда не ставить MTU, + меньшее, чем 1500, для FreeBSD 2.2.2 и ранее. + + + + + Почему ppp не протоколирует скорость соединения? + + +Для вывода протокола взаимодействия с модемом вам нужно + включить следующее: + + + set log +connect + + + +Это заставит ppp + протоколировать всё вплоть до последней прочтённой через "expect" + строки. + +Если вы хотите видеть скорость соединения и используете + PAP или CHAP (и поэтому вам не нужно определять никаких сценариев + входа через "set login" после получения строки CONNECT сценарием + дозвонки dial), вы должны указать ppp, что нужно ожидать полную + строку CONNECT, вроде следующего: + + + set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n" + + + +Здесь мы получили строку CONNECT, ничего не посылаем, затем + ожидаем символа перевода строки, заставляя ppp принять + полный ответ модема. + + + + +Ppp игнорирует символ `\' в chat-скрипте + +Ppp выполняет каждую строку в ваших конфигурационных файлах, так + что она может проинтерпретировать строку вида + set phone "123 456 789" правильно (и обнаружить. что номер + является на самом деле единственным аргументом. Для того, чтобы + указать символ ``"'', вы должны экранировать его символом обратного + слэша (``\''). + +Когда интерпретатор chat обрабатывает каждую строку, он + ещё раз просматривает аргумент для того, чтобы найти какую-либо + специальную последовательность типа ``\P'' or ``\T'' (обратитесь с + справочнику). В результате из-за этой двойной интерпретации вы + должны всегда использовать правильное число символов экранирования. + +Если вам нужно передать символ ``\'', например, вашему модему, + вам необходимо указать что-то типа: + + + set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK" + + + +что приведёт к такой последовательности: + + + ATZ + OK + AT\X + OK + + + +или + + + set phone 1234567 + set dial "\"\" ATZ OK ATDT\\T" + + + +что даст такую последовательность: + + + ATZ + OK + ATDT1234567 + + + + + + + Ppp получает ошибку защиты, но я не вижу файла ppp.core + + +Ppp (или любая другая программа такого рода) никогда не + создаёт файлов дампа памяти. Так так ppp запускается с + эффективным uid, равным 0, то операционная система не будет + записывать дамп памяти ppp на диск перед его завершением. Если, + однако ppp всё же прекратит работу из-за нарушения защиты, + или по другому сигналу, который вызывает создание дампа памяти, + и вы уверены, что используете самую последнюю версию (смотрите + самое начало раздела), то вы должны сделать следующее: + + + $ tar xfz ppp-*.src.tar.gz + $ cd ppp*/ppp + $ echo STRIP= >>Makefile + $ echo CFLAGS+=-g >>Makefile + $ make clean all + $ su + # make install + # chmod 555 /usr/sbin/ppp + + + +Теперь у вас есть отладочная версия ppp. Вам нужно + стать суперпользователем для запуска ppp, так как соответствующие + биты прав были убраны. Когда запустите ppp, обратите особое внимание + на то, какой каталог у вас был текущим на этот момент. + +Итак, если ppp получит ошибку нарушения защиты, он сбросит дамп + памяти с именем ppp.core. Затем вам нужно сделать следующее: + + + $ su + # gdb /usr/sbin/ppp ppp.core + (gdb) bt + ..... + (gdb) f 0 + ..... + (gdb) i args + ..... + (gdb) l + ..... + + + +Вся эта информация должна быть предоставлена вместе с вашим + вопросом, чтобы проблему можно было продиагностировать. + +Если вы умеете обращаться с gdb, вы можете попробовать найти + причины образования дампа, а также адреса и значения относящихся + к этому переменных. + + + + + Процесс, вызвавший прозвонку в режиме auto, никогда не получает + затребованного соединения + + +Эта проблема проявлялась, когда ppp в режиме auto был + настроен на динамическое согласование локального IP-адреса с + противоположной стороной. Это исправлено в последней версии - + поищите на странице справочника слово iface. + +Причиной было то, что когда эта программа использует системный + вызов connect(2), для сокета назначается IP-адрес tun-интерфейса. + Ядро создаёт первый исходящий пакет и записывает его в устройство + tun. Затем ppp читает пакет и устанавливает соединение. Если + в результате согласования ppp динамического IP-адреса, + адрес интерфейса менется, сокет будет работать некорректно. Любые + IP-пакеты, передаваемые через сокет, будут отброшены. Если даже + этого не произойдёт, ответные данные не будут достигать отправителя, + так как этот адрес больше ему не принадлежит. + +Теоретически есть несколько способов решить эту проблему. + Лучше всего, если противоположная сторона назначит интерфейсу тот же + самый IP-адрес :-) Текущая версия ppp именно так и + поступает, более ранние реализации этого не делали. + +Самым простым решением будет просто никогда не менять IP-адрес + tun-интерфейса, а вместо этого изменять на лету все исходящие + пакеты так, чтобы IP-адрес источника менялся с IP-адреса интерфейса + на согласованный с противоположной стороной. Это, в сущности, то же + самое, что делает опция iface-alias в последней версии ppp + (с помощью библиотеки libalias(3) + и ключа для ppp) - она отслеживает все назначенные + ранее интерфейсу адреса и замещает их на последний из назначенных. + +Другой возможный (и наверное, самый надёжный) способ - это + создать системный вызов, меняющий IP-адреса всем уже связанным + сокетам. Ppp использовал бы этот вызов для модификации сокетов + всех работающих программ после согласования нового IP-адреса. Этот + же самый системный вызов могли бы использовать клиенты DHCP, когда + они осуществляют повторную привязку к сокету. + +Ещё одной возможностью является резрешение интерфейсу становиться + активным без IP-адреса. Исходящим пакетам будет даваться IP адрес + 255.255.255.255 до тех пор, пока не будет дан ioctl-запрос SIOCAIFADDR. + приводящий к полной привязке сокета. Ppp нужно будет изменять + IP-адрес источника и контрольную сумму пакета, только если он + установлен в 255.255.255.255. Это, однако, является некоторым + хаком, так как ядро будет посылать некорректные пакеты на не полностью + сконфигурированный интрерфейс, в предположении, что существует + механизм исправления этих пакетов. + + + + + Почему большинство игр не работает с опцией -alias? + + +Причиной, по которой игры и подобные программы не работают + с библиотекой libalias заключается в том, что внешняя машина будет + пытаться открыть соединение или посылать (нежданные) UDP пакеты на + машину внутренней сети. Программное обеспечение, обеспечивающее + опцию -alias, не знает о том, что должна посылать эти пакеты машине + внутренней сети. + +Чтобы это всё же заработало, удостоверьтесь, что единственной + запущенной программой является программное обеспечение, с которым + вы испытываете проблемы, затем напустите tcpdump на + tun-интерфейс маршрутизатора либо включите протоколирование tcp/ip + в ppp (``set log +tcp/ip'') на маршрутизаторе. + +Когда вы запустите некорректно работающее программное обеспечение, + вы должны увидеть пакеты, проходящие через маршрутизатор. Когда + что-то начнёт приходить извне, оно будет отброшено (в этом-то и + проблема). Заметьте номер порта получателя этих пакетов, затем + завершите работу вашего программного обеспечения. Выполните эту + процедуру несколько раз для того, чтобы убедиться, что номер порта + постоянен. Если это так, то следующая строчка в соответствующем + разделе /etc/ppp/ppp.conf заставит программное обеспечение + функционировать нормально: + + + alias port proto internalmachine:port port + + + +Здесь ``proto'' - это ``tcp'' либо ``udp'', ``internalmachine'' - + это машина, которой вы хотите перенаправлять пакеты, и ``port'' - это + номер порта получателя пакетов. + +Несомненно, вы не сможете использовать программное обеспечение на + других машинах, не изменяя указанную выше команду, а также запускать + программное обеспечение на двух машинах внутри сети одновременно - + в конце концов, внешний мир видит всю вашу сеть как единственную + машину. + +Есои номера портов непостоянны, есть ещё три варианта: + +1) Настройте поддержку этого в libalias. Примеры + ``особых случаев'' можно найти в /usr/src/lib/libalias/alias_*.c + (alias_ftp.c - хорошее начало). Это означает, что вам нужно будет + использовать чтение некоторых распознаваемых исходящих пакетов, + обнаруживать команды для установления внешней машиной обратной связи + на внутреннюю машину на конкретный (случайный) порт и настраивать + ``маршрут'' в таблице соответствий так, чтобы последующие пакеты + проходили нормально. + +Это самое трудоёмкое решение, но оно наилучшее и позволит + программному обеспечению работать на нескольких машинах. + +2) Используйте прокси. Приложение может поддерживать, + например, socks5 или (как в случае ``cvsup'') может иметь + режим ``passive'', обходящийся без запросов к противоположной + стороне на открытие обратного соединения. + +3) Переназначьте всё на внутреннюю машину с помощью + команды ``alias addr''. Это решение в лоб. + + + + + Кто-нибудь составляет список полезных номеров портов? + + +Пока нет, но ниже находится список, могущий таковым стать (если + к этому будет проявлен какой-либо интерес). + + + + + +Quake + + +Quake использует UDP порт 6112, так что строчка + alias port udp hostmachine:6112 6112 где + hostmachine это IP-адрес quake-сервера, должна сработать. + + +Альтернативное решение, обеспечивающее поддержку прокси для + Quake, можно найти на сервере www.battle.net. + + + + + + + + + +Что такое ошибки FCS? + +FCS является сокращением от Frame Check Sequence + (контроль последовательности кадров). Каждый кадр ppp имеет + контрольную сумму для проверки того, что принятые данные совпадают + с переданными. Если FCS принятого пакета некорректна, пакет + отбрасывается и счётчик FCS для HDLC увеличиваетя. Значения ошибок + уровня HDLC можно вывести командой show hdlc. + +Если у вас плохая линия (или драйвер коммуникационного адаптера + отбрасывает пакеты), ошибки FCS неизбежны. Это обычно не является + причиной для волнений, хотя это существенно замедляет протоколы + компрессии. Если у вас внешний модем, проверьте качество + экранирования соединительного кабеля - это может избавить от + проблемы. + +Если ваша связь замирает, как только вы соединились и + наблюдается большое количество ошибок FCS, это может быть вызвано + не полной прозрачностью канала для 8-битовых данных. Проверьте, что + модем не использует программного управоения потоком, используйте + команду set accmap 0x000a0000 для указания ppp + экранировать символы ^Q и ^S. + +Другой причиной слишком большого количества ошибок FCS может + быть прекращение противоположной стороной сеанса PPP. + В этом случае Вам может понадобиться включить протоколирование + async для проверки того, не являются ли поступаемые из линии + данные на самом деле приглашениями login или shell. Если вы + получили приглашение shell с противоположной стороны, возможно + завершение ppp без обрыва связи командой close lcp + (последующая команда term снова вернёт вас к приглашению + shell на удалённой машине). + +Если ничего в файле протокола не говорит о том, что связь + была прервана, вы должны спросить у администратора удалённой + машины (вашего провайдера), почему сеанс был закрыт. + + + + +Ничего не помогает - я уже отчаялся! + +Если всё уже перепробовано, и ничего не получается, пошлите нам + максимальное количество информации, ваш конфигурационный файл, + способ запуска ppp, соответствующие части файла протокола, и + вывод команды netstat -rn + (до и после соединения) в адрес списка рассылки + freebsd-questions@FreeBSD.org или в телеконференцию + comp.unix.bsd.freebsd.misc, и может быть, кто-нибудь + укажет вам верное направление. + + + + + + +Коммуникационные адаптеры + +В этом разделе освещены вопросы о работе последовательных + адаптеров во FreeBSD. Протоколы PPP и SLIP рассматриваются в разделе, + посвящённом . + + + + + + Как узнать, какие последовательные порты были обнаружены FreeBSD? + + +При загрузке ядра FreeBSD оно будет пытаться найти последовательные + порты, с поддержкой которых было откомпилировано. Вы можете + повнимательней присмотреться к выдаваемым сообщениям либо выполнить + команду + + + dmesg | grep sio + + + + + +после загрузки и запуска системы. + + + +Вот пример вывода указанной команды: + + + sio0 at 0x3f8-0x3ff irq 4 on isa + sio0: type 16550A + sio1 at 0x2f8-0x2ff irq 3 on isa + sio1: type 16550A + + + + + +Здесь присутствуют два последовательных порта. Первый использует + irq 4, порт ввода/вывода 0x3f8 и построен на микросхеме UART типа + 16550A. Второй использует тот же тип микросхемы, но использует irq 3 и + адрес порта ввода/вывода 0x2f8. Внутренние модемы выглядят точно + также, как последовательные порты, за исключением того, что к ним + всегда ``подключен'' модем. + + + +В ядро GENERIC встроена поддержка двух последовательных портов, + с irq и адресами портов ввода/вывода, как в примере выше. Если эти + настройки не соответствуют вашим, или если вы добавили внутренние + модемы, или у вас больше последовательных портов, чем описано в ядре, + просто переконфигурируйте ядро. За дополнительной информацией + обратитесь к разделу . + + + + + + + Как узнать, какие внутренние модемы были обнаружены FreeBSD? + + +Посмотрите ответ на предыдущий вопрос. + + + + + + + Я только что поставил 2.0.5 и не нашёл устройств tty0X! + + +Не волнуйтесь, они были объединены с устройствами ttydX. + Вам придётся подправить конфигурационные файлы, которые вы раньше + использовали. + + + + + + + Как осуществляется доступ к последовательным портам во FreeBSD? + + +Третий последовательный порт, sio2 (который в + DOS называется COM3), называется /dev/cuaa2 для устройств, + выполняющих исходящие звонки, и /dev/ttyd2 для устройств, + принимающих входящие звонки. Какая разница между этими двумя классами + устройств? + + + +Вы должны использовать ttydX для входящих соединений. При + открытии /dev/ttydX в блокирующем режиме, процесс будет + ожидать неактивности соответствующего устройства cuaaX, а затем + появления сигнала о наличии несущей. При открытии устройства + cuaaX, он проверяет, что последовательный порт не используется + уже устройством ttydX. Если порт доступен, он ``похищает'' его + у устройства ttydX. Также устройство cuaXX не следит за + наличием несущей. С такой схемой работы и модемом, находящимся в + режиме автоответа, вы можете позволить пользователям входить в + систему и в то же время можете осуществлять исходящие звонки, а + система позаботится о возможных конфликтах. + + + + + + + Как включить поддержку многопортовых последовательных адаптеров? + + +Повторим ещё раз: информация о конфигурировании ядра содержится в + разделе, посвящённом этому вопросу. Для многопортовых последовательных + адаптеров в файле конфигурации ядра поместите ключевое слово + sio + для каждого порта на адаптере. Но irq и вектор должен быть указан + только у одного порта. Все порты на адаптере должны использовать одно + и то же irq. Используйте последний последовательный порт для указания + irq. Также включите опцию COM_MULTIPORT. + + + +В следующем примере дано описание 4-портового адаптер AST на irq 7: + + + options "COM_MULTIPORT" + device sio4 at isa? port 0x2a0 tty flags 0x781 + device sio5 at isa? port 0x2a8 tty flags 0x781 + device sio6 at isa? port 0x2b0 tty flags 0x781 + device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr + + + + + +Флаги указывают, что управляющий порт имеет младший номер + устройства 7 (0x700), включена диагностика на время обнаружения + (0x080), и все порты используют одно и то же irq (0x001). + + + + + + + Может ли FreeBSD использовать несколько многопортовых адаптеров + с одинаковым irq? + + +Пока нет. Вы должны назначить уникальный irq для каждого адаптера. + + + + + Можно ли установить режим работы по умолчанию для порта? + + +Вашему приложению может понадобиться открыть устройства + ttydX (или cuaaX). Когда процесс открывает устройство, + оно имеет набор параметров ввода/вывода. Вы можете посмотреть их + значения командой + + + stty -a -f /dev/ttyd1 + + + + + +Когда вы меняете настройки этого устройства, они действуют + вплоть до закрытия устройства. При повторном открытии оно будут + иметь режимы работы по умолчанию. Чтобы изменить значения режимов + работы по умолчанию, вы можете открыть и изменить настройки в + устройстве ``начального состояния''. Например, чтобы сделать режимом + по умолчанию режим CLOCAL, 8 бит, и управление потоком + XON/XOFF для устройства ttyd5, сделайте следующее: + + + stty -f /dev/ttyid5 clocal cs8 ixon ixoff + + + + + +Для выполнения таких действий предназначен скрипт + /etc/rc.serial. Теперь при открытии устройства ttyd5 + приложение будет иметь именно такой режим работы с портом. Оно, + однако. может изменить эти режимы по своему усмотрению. + + + +Вы можете запретить изменение приложением некоторых режимов работы, + выполнив настройки устройства ``постоянного состояния''. Например, + чтобы сделать скорость работы ttyd5 постоянно равной 57600 bps, + выполните + + + stty -f /dev/ttyld5 57600 + + + + + +Теперь, если приложение откроет ttyd5 и попытается изменить + скорость работы порта, она всё равно останется равной 57600 bps. + + + +Естественно, вы должны сделать устройства начального и + постоянного состояний доступными на запись только пользователю + root. Скрипт MAKEDEV + при создании файлов устройств этого НЕ делает. + + + + +Как сделать вход через модем? + +Похоже, что вы хотите стать Internet-провайдером, да? Сначала + вам необходимо подключить к системе один или несколько модемов, + которые могут работать в режиме автоответа. Модем должен держать + сигнал наличия несущей, только когда она присутствует. Он должен + вешать трубку и переинициализировать, когда сигнал готовности + устройства DTE (DTR) меняет состояние из включенного на + выключенный. Должно использоваться аппаратное (RTS/CTS) + управление потоком или вовсе отсутствовать. Ещё он должен работать + на постоянной скорости с портом компьютера, но (что удобно для + звонящих) с согласованием скорости передачи с другим модемом. + + + +Для большинства модемов, поддерживающих набор команд Hayes, + следующая последовательность команд выполнит эти настройки и + сохранит их в энергонезависимой памяти: + + + AT &C1 &D3 &K3 &Q6 S0=1 &W + + + + + +Информация о том, как сделать эти настройки без обращения к + терминальным программам MS-DOS, содержится в разделе о . + + + +Затем опишите модем в файле /etc/ttys. + В нём перечислены все порты, с которых операционная система ожидает + входа пользователей. Добавьте строку, которая выглядит как эта: + + + ttyd1 "/usr/libexec/getty std.57600" dialup on insecure + + + + + +В этой строке указано, что ко второму последовательному порту + (/dev/ttyd1) подключен модем на скорости 57600 bps без + контроля по чётности (std.57600, что берётся из файла + /etc/gettytab). Тип терминала для этого порта определён + как ``dialup''. Порт включен (``on'') и небезопасен (``insecure''), + что означает, что попытки войти в систему пользователем root с этого + порта будут отвергнуты. Для портов, обслуживающих входящие звонки, + как этот, используйте устройства ttydX. + + + +Использование слова ``dialup'' в качестве имени терминала является + обычной практикой. Многие пользователи включают в свои файлы + .profile или .login скрипты для задания реального типа терминала, если + начальным является тип dialup. В примере порт описан небезопасным. + Чтобы войти администратором на этом порту, вам нужно войти обычным + пользователем, а затем командой ``su'' стать + пользователем root. Если порт имеет атрибут ``secure'', то + пользователь root может входить с этого порта непосредственно. + + + +После модифицирования /etc/ttys, вам + нужно послать сигнал потери связи или HUP процессу init: + + + kill -HUP 1 + + + + + +Это заставит процесс init снова прочитать файл /etc/ttys. + Процесс init запустит процессы getty для всех включенных портов. + Вы можете проверить, доступны ли входы с конкретного порта, выполнив + команду + + + ps -ax | grep '[t]tyd1' + + + + + +Вы должны увидеть нечто вроде следующего: + + + 747 ?? I 0:00.04 /usr/libexec/getty std.57600 ttyd1 + + + + + + +Как подключить терминал к FreeBSD? + +Если вы собираетесь использовать другой компьютер в качестве + терминала для FreeBSD, соедините их послежовательные порты + нуль-модемным кабелем. Если у вас есть терминал, обратитесь к его + документации. + + + +Затем модифицируйте файл /etc/ttys + описанным выше способом. Например, если вы подключаете терминал + WYSE-50 к пятому последовательному порту, используйте такую строчку: + + + ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure + + + + + +В этом примере описан порт на /dev/ttyd4, имеющий + терминал wyse50, подключенный на скорости 34800 bps без контроля по + четности (std.38400 из /etc/gettytab) и разрешён непосредственный вход пользователя + root (secure). + + + + + + +Почему не удаётся запустить tip или cu? + +Скорее всего, в вашей системе запуск программ tip и cu разрешён только + пользователю uucp и членам группы dialer. Вы можете использовать + группу dialer для управления доступом к вашему модему или + удалённым системам. Достаточно добавить пользоватея в группу dialer. + + + +Вы можете разрешить всем пользователям вашей системы запускать + tip и cu, выполнив команды: + + + # chmod 4511 /usr/bin/cu + # chmod 4511 /usr/bin/tip + + + + + + + + + Мой модем Hayes не поддерживается---что можно сделать? + + +На самом деле страница справочника о программе tip устарела. + Модемы Hayes поддерживаются системой. Просто добавьте + ``at=hayes'' в ваш файл /etc/remote. + + + +Драйвер модемов Hayes не достаточно умён, чтобы поддерживать + некоторые из новых возможностей современных модемов---сообщения + типа BUSY, NO DIALTONE, или CONNECT 115200 будут + приводить его в замешательство. Вы должны выключить вывод таких + сообщений при использовании программы tip (командой + ATX0&W). + + + +Таймаут по умолчанию для программы tip равен 60 секундам. + Ваш модем должен использовать меньшее значение, иначе tip будет + думать, что у вас проблемы со связью. Попробуйте ATS7=45&W. + + + +На самом деле tip в том виде, каком поставляется, не + поддержимает можемы Hayes полностью. Решением является редактирование + файла tipconf.h в каталоге /usr/src/usr.bin/tip/tip. + Чтобы это сделать, вам нужен дистрибутив исходных текстов системы. + + + +Замените строку ``#define HAYES 0'' на ``#define HAYES + 1''. Затем выполните ``make'' и ``make install''. После + этих действий всё работает замечательно. + + + + + + + Как я должен ввести эти AT-команды? + + +Создайте так называемое ``прямое'' описание в вашем файле + /etc/remote. Например, если ваш модем подключен к первому + последовательному порту, /dev/cuaa0, сделайте такую строку: + + + cuaa0:dv=/dev/cuaa0:br#19200:pa=none + + + + + +Укажите максимальную скорость обмена с портом, поддерживаемую + модемом в параметре br. Затем выполните команду tip cuaa0 и + вы подключитесь к модему. + + + +Если в вашей системе нет устройства /dev/cuaa0, сделайте + следующее: + + + # cd /dev + # ./MAKEDEV cuaa0 + + + + + +Или используйте cu, войдя администратором, с такими параметрами: + + + # cu -l``line'' -s``speed'' + + + + + +где line - это имя последовательного порта (например, + /dev/cuaa0), а speed - скорость работы модема с портом + (например, 57600). После ввода AT-команд, наберите + ~. для завершения работы. + + + + + + +Знак @ для описания характеристики pn не работает! + +Знак @ в характеристике, описывающей номер телефона, указывает + программе tip обратиться к файлу /etc/phones + для поиска телефонного номера. Однако знак @ является также и + специальным символом в файлах описания характеристик типа + /etc/remote. Экранируйте его символом обратного слэша: + + + pn=\@ + + + + + + + + +Как набрать телефонный номер из командной строки? + +Поместите так называемое ``общее'' описание в ваш файл + /etc/remote. Например: + + + tip115200|Dial any phone number at 115200 bps:\ + :dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du: + tip57600|Dial any phone number at 57600 bps:\ + :dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du: + + + + + +Тогда вы сможете выполнять команды вроде ``tip -115200 + 5551234''. Если предпочитаете программу cu, а не tip, используйте общее описание для cu: + + + cu115200|Use cu to dial any number at 115200bps:\ + :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du: + + + + + +и выполняйте команду ``cu 5551234 -s 115200''. + + + + + + + Нужно ли при этом каждый раз задавать скорость работы с портом? + + +Создайте описание для tip1200 или cu1200, но не + останавливайтесь на этом и используйте подходящую скорость + при задании характеристики br. Tip полагает, + что хорошим значением по умолчанию является 1200 bps, поэтому он + использует описание для ``tip1200''. Однако вас никто не + заставляет использовать именно эту скорость. + + + + + Мне нужно иметь доступ к нескольких хостам через терминальный сервер. + + +Вместо того, чтобы каждый раз ожидать подключения к терминальному + серверу, а затем набирать команду ``CONNECT <host>'', + используйте характеристику cm программы tip. Например, вот такое + описание в файле /etc/remote: + + + pain|pain.deep13.com|Forrester's machine:\ + :cm=CONNECT pain\n:tc=deep13: + muffin|muffin.deep13.com|Frank's machine:\ + :cm=CONNECT muffin\n:tc=deep13: + deep13:Gizmonics Institute terminal server:\ + :dv=/dev/cua02:br#38400:at=hayes:du:pa=none:pn=5551234: + + + + + +позволит вам просто набрать ``tip pain'' или + ``tip muffin'' для подключения к хостам pain или muffin и + ``tip deep13'' для доступа к терминальному серверу. + + + + + + + Может ли tip использовать несколько телефонов для одного сайта? + + +Эта проблема возникает, когда в университете есть пара + модемных входов и несколько тысяч студентов, пытающихся ими + воспользоваться... + + + +Создайте описание для вашего университета в файле + /etc/remote и используйте символ \@ при задании + характеристики pn: + + + big-university:\ + :pn=\@:tc=dialout + dialout:\ + :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none: + + + + + +После этого пропишите номера телефонов университета в файле + /etc/phones: + + + big-university 5551111 + big-university 5551112 + big-university 5551113 + big-university 5551114 + + + + + +Tip будет пытаться воспользоваться всеми телефонными номерами + в указанном порядке, прежде чем завершить работу. Если вы хотите, + чтобы попытки были продолжены, запустите tip в цикле while. + + + + + + + Почему нужно нажимать CTRL+P дважды для посылки одного этого символа? + + +По умолчанию CTRL+P является специальным символом ``принудительного + ввода'', используемым для указания программе tip, что + следующий символ является байтом данных. Вы можете назначить + функцию символа принудительного ввода любому другому символу с помощью + команды ~s, которая предназначена для ``установки значений + переменных''. + + + +Наберите ``~sforce=<single-char>'' с начала новой + строки. Здесь <single-char> - любой одиночный символ. + Если вы не зададите <single-char>, то символом + принудительного ввода будет нулевой символ, который можно получить, + набрав CTRL+2 или CTRL+SPACE. Подходящим значением для + <single-char> может быть SHIFT+CTRL+6, который используется + только некоторыми терминальными серверами. + + + +Вы можете задать любое значение для символа принудительного ввода, + указав его в вашем файле $HOME/.tiprc: + + + force=<single-char> + + + + + + + + +Неожиданно всё стало набираться ЗАГЛАВНЫМИ БУКВАМИ? + +Должно быть, вы нажали CTRL+A, символ перехода в верхний регистр + программы tip, специально предназначенный для тех, у кого не работает + клавиша caps-lock. Используйте команду ~s, как это было сделано + выше, и установите значение переменной ``raisechar'' во что-нибудь + подходящее. В действительности вы можете установить его равным + символу принудительного ввода, если не собираетесь пользоваться этими + особенностями. + + + +Следующий пример файла .tiprc должен понравиться пользователям + редактора Emacs, которым часто приходится нажимать CTRL+2 и CTRL+A: + + + force=^^ + raisechar=^^ + + + + + +Здесь ^^ это SHIFT+CTRL+6. + + + + + + + Как можно передавать файлы с помощью программы tip? + + +Если вы соединились с другой UNIX-системой, вы можете посылать и + принимать файлы командами ~p (передача) и ~t (приём). Эти + команды запускают программы cat и echo на + удалённой системе, чтобы принять и послать файлы. Синтаксис вызова + имеет такой вид: + + + ~p <local-file> [<remote-file>] + ~t <remote-file> [<local-file>] + + + + + +Контроль ошибок передачи при этом не осуществляется, так что вам + может понадобиться другой протокол передачи, например, zmodem. + + + + + + +Как использовать zmodem вместе с tip? + +Первым делом установите одну из программ, реализующих протокол + zmodem из коллекции портов (там есть парочка в категории comms, + lrzsz + и rzsz). + + + +Для приёма файлов запустите программу передачи на противоположной + стороне. Затем нажмите enter и наберите ``~C rz'' (или + ``~C lrz'', если у вас установлеи lrzsz) для начала приёма их на + локальную машину. + + + +Для посылки файлов, запустите программу приёма на противоположной + стороне. Затем нажмите enter и наберите ``~C sz <files>'' + (или ``~C lsz <files>'') для посылки их на удалённую + систему. + + + + + + + FreeBSD не распознаёт последовательные порты на моей машине, хотя + все настройки верны. + + +Микросхемы UART производства Acer на материнских платах и адаптерах + распознаются некорректно. Для решения этой проблемы попробуйте + воспользоваться патчем с сервера www.lemis.com. + + + + + + + + +Разное + + + Почему FreeBSD использует гораздо больше места в разделе подкачки, чем + Linux? + + +Это только кажется, что для FreeBSD требуется больше места на разделе + подкачки, чем для Linux. На самом деле это не так. Главное отличие + FreeBSD от Linux в этом плане заключается в том, что FreeBSD активно + перемещает неиспользуемые страницы памяти, к которым не было обращений, + в раздел подкачки, чтобы увеличить объём доступной физической памяти + для активного использования. Linux же перемещает страницы памяти в + раздел подкачки только в крайнем случае. Получаемое во FreeBSD + увеличение нагрузки на раздел подкачки компенсируется более эффективным + использованием оперативной памяти. + +Заметьте, что, хотя FreeBSD предпочитает использовать раздел подкачки, + она не может сбросить все неактивные страницы в своп при полностью + неактивной системе. Так что вряд ли может возникнуть ситуация, когда, + проснувшись рано утром, вы обнаружите, что вся ваша система находится в + разделе подкачки, хотя она простаивала всю ночь. + + + + + Почему используются (и что из себя представляют) форматы выполнимых + файлов a.aut и ELF? + + +Для понимания того, почему FreeBSD использует формат a.out, + вы должны сначала получить представление о трёх "основных" форматах + выполнимых файлов для UNIX: + + + + + +a.out + + + +Это самый старый, `классический' формат объектных файлов для UNIX. + В нём используется короткий и компактный заголовок с магическим числом + в начале, которое часто используется для определения формата + (за подробным описанием обратитесь к странице Справочника о a.out(5)). + Он содержит три загружаемых сегмента: .text, .data и .bss плюс + таблицу символов и таблицу строк. + + + + + +COFF + + +Это формат объектных файлов SVR3. Дополнительно в заголовок + включена таблица секций, так что вы можете иметь их больше, чем только + .text, .data и .bss. + + + +ELF + + +Преемник COFF, в который добавлены возможности иметь много + секций и 32- или 64-разрядные значения. Один большой минус: + ELF был спроектирован также в предположении, что для каждой + аппаратной платформы будет существовать только один ABI. Это + предположение достаточно некорректно, и даже в мире коммерческих + реализаций SYSV (в котором имеется по крайней мере три ABI: SVR4, + Solaris и SCO) это не так. + + + +FreeBSD каким-то образом пытается решить эту проблему, предоставляя + утилиту для пометки конкретного выполнимого файла ELF + с информацией о ABI, с которым он совместим. Обратитесь к странице + Справочника об утилите brandelf + за подробной информацией. + + + + + + + + +FreeBSD выросла на "классических" традициях и традиционно использовала + формат a.out, технологию, опробованную и проверенную во многих + вариациях BSD. Хотя давно уже можно было компилировать и выполнять + родные выполнимые файлы (и ядро) в формате ELF, FreeBSD с самого + начала сопротивлялась переходу на ELF как на формат, используемый + по умолчанию. Почему? Когда мир Linux делал болезненный переход к + ELF, причин отвергнуть формат a.out было не так уж и много, + разве что их негибкий механизм работы с совместно используемыми + библиотеками, который был основан на таблице переходов, что делало + построение таких библиотек очень затруднительным для разработчиков. + Так как средства работы с ELF предоставляли решение этой проблемы + и это было в общем-то "шагом вперёд" в любом случае, цена перехода была + признана стоящей того и переход был сделан. + + + +В случае FreeBSD, наш механизм работы с совместно используемыми + библиотеками очень похож на механизм, применяемый в SunOS, + поэтому его очень легко использовать. Однако, начиная с 3.0, FreeBSD + официально поддерживает ELF как формат, используемый по умолчанию. + И, хотя формат a.out поддерживается в полной мере, разработчики + из проекта GNU, являющиеся авторами компилятора, который мы используем, + больше не поддерживают формат a.out. Это заставило нас поддерживать + различные версии компилятора и компоновщика, и не позволило + воспользоваться всеми возможностями последних разработок GNU. + Потребность в наличии реализации ISO-C++, в основном конструкторов и + деструкторов, также привела к поддержке ELF в будущих релизах + FreeBSD. + + + + +Да, но почему так много разных форматов? + +Если вернуться в далёкое тёмное прошлое, то тогда компьютеры были + очень просто устроены. На них могла работать простая, маленькая + система. Формат a.out полностью решал задачу представления программ + на простых системах (PDP-11). Когда же люди перенесли unix с простых + систем, они оставили a.out, так как его было достаточно для ранних + реализаций unix для таких архитектур, как Motorola 68k, VAX, итд. + + + +Затем какой-то умный инженер решил, что если он может заставить + программное обеспечение делать некоторые тонкие манипуляции, то это + позволит преодолеть некоторые ограничения при проектировании и позволит + ядру процессора работать быстрее. Когда это было сделано с новым типом + аппаратуры (в наши дни известном как RISC), оказалось, что a.out + плохо подходит для этой аппаратуры, поэтому было разработано много новых + форматов для достижения большей производительности от такого аппаратного + обеспечения, чем может дать простой, имеющий ограничения формат + a.out. Были разработаны такие форматы, как COFF, ECOFF и + ещё несколько безвестных других со своими ограничениями, пока наконец + все не остановились на формате ELF. + + + +Вдобавок к этому, так как размеры программ стали достигать огромных + размеров, а дисковая (и физическая) память оставалась сравнительно + небольшой, то возникла концепция совместно используемых библиотек. + Система VM также стала более мощной. Хотя каждое из этих нововведений + продолжало использовать формат a.out, его бесполезность становилась + видна всё больше и больше с добавлением каждой новой возможности. К тому + же люди захотели динамически загружать код во время выполнения программ + или сбрасывать части программ после выполнения кода инициализации для + экономии основной памяти и/или размера свопа. Языки программирования + становились всё более умными и люди захотели автоматического запуска + некоторого кода перед главной процедурой программы. С форматом + a.out была сделана масса ухищрений для реализации всех этих + требований, и они в общем-то работали. В конце концов наступил момент, + когда формат a.out перестал бы справляться со всеми этими + проблемами без ещё больших потерь в коде и гибкости в работе. Тогда + как ELF решал многие из этих проблем, переход на него был бы + болезненным на рабочей системе. Так что ELF ждал момента, когда + был бы более болезненным оставаться с форматом a.out, чем перейти + к формату ELF. + + + +Однако с течением времени инструменты разработки, на которых + основаны инструменты разработки FreeBSD (особенно ассемблер и + загрузчик), разделились на две параллельные ветви. В дерево FreeBSD + была добавлена поддержка совместно используемых библиотеки и были + исправлены некоторые ошибки. Разработчики из GNU, которые изначально + писали эти программы, полностью их переделали, добавив более простую + поддержку построения кросс-компиляторов, в котором можно использовать + различные форматы, итд. Когда многие захотели строить кросс-компилятор + с выходнвм кодом для FreeBSD, то им не повезло, так как старые исходные + тексты, которые FreeBSD использовала для as и ld, не подошли. Новый + набор утилит от GNU (binutils) поддерживает кросс-компиляцию, ELF, + совместно используемые библиотеки, расширения C++, итд. Вдобавок, + многие разработчики выпускают программы в бинарном формате ELF, и + для FreeBSD было бы полезно иметь возможность их запускать. И если + такая возможность будет реализована, зачем тогда вообще продолжать + опираться на a.out? Это измученная старая лошадь, которая была + полезна долгое время, но сейчас самое время от неё отказаться, оставив + в прошлом долгие годы преданной службы. + + + +ELF более выразителен, чем a.out, и позволяет реализовать + большую расширяемость основной системы. Инструменты для работы с + ELF лучше поддерживаются разработчиками, и предоставляют поддержку + кросс-компиляции, что для многих важно. ELF может работать немного + медленнее, чем a.out, но это трудно измерить. Также между ними есть + некоторые отличия по распределению страниц памяти, обработке кода + инициализации, итд. Никакие из этих отличий особо не важны, но эти + отличия всё же есть. Со временем поддержка a.out будет убрана из + ядра GENERIC, и постепенно убрана из системы совсем, как только отпадёт + нужда в запуске старых программ в формате a.out. + + + + + Почему невозможно изменить права на символические ссылки? + + +Чтобы это работало, используйте опции ``'' или ``'' + вместе с опцией ``''. Обратитесь к страницам Справочника по + команде chmod и по symlink. + + + +ПРЕДУПРЕЖДЕНИЕ опция ``'' выполняет команду chmod + РЕКУРСИВНО. Будьте осторожны, задавая каталоги или символические + ссылки на каталоги в параметрах chmod. Если вы хотите изменить + права на каталог, на который указывает символическая ссылка, используйте + chmod + без опций и следуйте символической ссылке с помощью лидирующего слэша + (``/''). Например, если ``foo'' является символической + ссылкой на каталог ``bar'', а вы хотите изменить права на + ``foo'' (на самом деле ``bar''), вы должны выполнить команду + типа следующей: + + + chmod 555 foo/ + + + + + +Если задан лидирующий слэш, chmod будет + следовать символической ссылке, ``foo'', меняя права на каталог + ``bar''. + + + + + Почему длина регистрационного имени всё ещё ограничена + 8 символами? + + +Наверное, вы думаете, что достаточно будет изменить значение + константы UT_NAMESIZE, перекомпилировать полностью систему + и всё будет работать. К несчастью, часть приложений и утилит (включая + системные) имеют жёстко заданные малые значения (не всегда "8" или + "9", но и такие странные, как "15" или "20") в структурах и буферах. + Это приведёт не только к порче файлов журналов (из-за записи полей + переменного размера там, где ожидается поле фиксированного размера), но + может повлиять на работу клиентов системы Sun NIS и может в принципе + вызвать другие проблемы при взаимодействии с другими системами UNIX. + + + +Во FreeBSD 3.0 и старше, максимальная длина имени была увеличена + до 16 символов и все утилиты с предопределённым размером имени были + найдены и исправлены. Так как это касается столь многих областей в + системе, то такие изменения не делались вплоть до 3.0. + +Если вы абсолютно уверены, что сможете найти и исправить проблемы + такого рода самостоятельно, когда они возникнут, то можете увеличить + длину регистрационного имени в ранних релизах, отредактировав файл + /usr/include/utmp.h и изменив соответствующим образом константу + UT_NAMESIZE. Вы должны будете также изменить значение MAXLOGNAME в + файле /usr/include/sys/param.h, чтобы оно соответствовало UT_NAMESIZE. + И наконец, если вы компилируете из исходных текстов, не забудьте, что + /usr/include обновляется каждый раз! Делайте изменения в + соответствующих файлах каталога /usr/src/.. + + + + +Можно ли запускать программы для DOS во FreeBSD? + +Да, начиная с версии 3.0, вы можете использовать эмулятор DOS + rundos от BSDI, который был интегрирован в систему и + усовершенствован. Пошлите письмо в список рассылки, + посвящённый эмуляции во FreeBSD, если вы заинтересованы в участии в + этом проекте. + + + +Для систем, предшествовавшим 3.0, в коллекции портов есть + замечательная утилита pcemu, + эмулирующая процессор 8088 и функции BIOS, чего достаточно для запуска + приложений DOS, работающих в текстовом режиме. Она требует X Window + System (которая поставляется как XFree86). + + + + + + + Что такое ``sup'' и как это можно использовать? + + +Сокращение SUP означает Software Update Protocol, который был разработан в + CMU для синхронизации исходных текстов. Мы используем его для + синхронизации исходных текстов на удалённых сайтах с основным сервером + разработчиков. + +Протокол SUP использует пропускную способность канала неэффективно, + и был отвергнут. В настоящее время рекомендуемым методом для + синхронизации исходных текстов является протокол CVSup. + + + + +Насколько греется процессор при работе FreeBSD? + +В. Кто-нибудь делал замеры температуры при работе FreeBSD? Я + знаю, что Linux греется меньше, чем DOS, но никогда не видел упоминания + FreeBSD. Наверное, он сильно греется. + + + +О. Нет, но мы сделали различные вкусовые тесты у добровольцев с + завязанными глазами, которые до этого приняли по 250 микрограмм + LSD-25. 35% добровольцев заявило, что FreeBSD имеет вкус апельсина, + тогда как вкус Linux расценивался как фиолетовый туман. Насколько + я помню, ни одна из групп не отметила значительной разницы в + температуре. Вы хотели опубликовать полные результаты этого опроса, + когда обнаружиди, что слишком много добровольцев покинули помещение + во время тестов, что несколько смазало результаты. Я думаю, что + большинство из них работают сейчас в Apple над их новым GUI + ``чеши и нюхай''. Это старый добрый бизнес! + + + +Серьёзно, и FreeBSD, и Linux используют инструкцию ``HLT'' + (halt), когда система простаивает, что уменьшает потребление энергии + и в свою очередь, выделение тепла. Вдобавок, если у вас настроен + APM (автоматическое управление энергопотреблением), то FreeBSD + может переводить процессор в режим пониженного энергопотребления. + + + + + + +Кто там скребётся в микросхемах памяти?? + +В. Делает ли FreeBSD что-нибудь эдакое при компиляции ядра, что + вызывает поскрипывание микросхем памяти? При компиляции (и в короткий + промежуток времени после обнаружения дисковода при старте системы) + от микросхем памяти исходит странный царапающий звук. + + + +О. Да! Вы, наверное, видели частое упоминание ``даемонов'' в + документации по BSD, но не многие знают, что это настоящие нематериальные + существа, которые теперь завладели вашим компьютером. Царапающий звук, + издаваемый микросхемами памяти - это на самом деле высокочастотное + перешёптывание между даемонами, когда они решают, как лучше справиться + с различными задачами по администрированию системы. + + + +Если шум достиг ваших ушей. команда DOS ``fdisk /mbr'' + их спугнёт, но не удивляйтесь, если они отреагируют соответствующим + образом и попытаются вас остановить. Фактически, если во время + выполнения этой команды вы услышите сатанинский голос Билла Гейтса из + встроенного динамика, бегите и даже не оглядывайтесь! Избавленные + от противостояния с даемонами BSD, близнецы-демоны DOS и Windows часто + могут захватить полный контроль не только над вашей машиной и + навлечь вечное проклятие на вашу душу. Если бы у меня был выбор, я + думаю, что предпочту царапающий звук. + + + + + + +Что такое 'MFC'? + +MFC это сокращение от 'Merged From -CURRENT.' Оно используется в + протоколах изменений CVS для отметки того, что изменение было + перенесено в ветвь STABLE из CURRENT. + + + + + + +Что означает сокращение 'BSD'? + +Это сокращение значит что-то на секретном языке, который могут знать + только посвящённые. Это нельзя перевести один к одному, однако + достаточно сказать, что перевод с BSD - это что-то между 'Команда + Formula-1", 'Пингвины - это вкусные плюшки' и 'Мы прикольнее, чем + Linux.' :-) + + + +Если серьёзно, то BSD является сокращением от 'Berkeley Software + Distribution', названия, которое было выбрано Berkeley CSRG (Computer + Systems Research Group) для их дистрибутива Unix. + + + + + + + Сколько требуется разработчиков FreeBSD, чтобы сменить лампочку? + + +Необходимо иметь ровно одну тысячу сто семьдесят два разработчика: + + + +Двадцать три сообщат в -current о том, что не горит свет; + + + +Четыре начнут утверждать, что это проблема конфигурации и такие + сообщения нужно посылать в -questions; + + + +Трое оформят PR по этому поводу, причём одно их них будет направлено + в doc и будет содержать только строчку "здесь темно"; + + + +Один закоммитит неоттестированную лампочку, что сломает построение + системы, а затем через пять минут вернёт все назад; + + + +Восемь поругаются с авторами PR по поводу включения патчей в PR; + + + +Пять сообщат о том, что не проходит компиляция системы; + + + +Тридцать один человек ответит, что у них всё работает и наверное, те + выполняли cvsup в неподходящее время; + + + +Один пошлёт патч для новой лампочки в -hackers; + + + +Один пожалуется, что у него имелись патчики ещё три года назад, + но когда он послал их в -current, они были проигнорированы и он имел + неудачный опыт работы с системой PR; кроме того предлагаемая лампочка + не имеет отражателя. + + + +Тридцать семь начнут кричать, что лампочки не относятся к базовой + системе, что коммиттеры не имеют права делать такие вещи без опроса + обшественности и ЧТО ВООБЩЕ -CORE ДЕЛАЕТ ПО ЭТОМУ ПОВОДУ? + + + +Две сотни напишут о цвете велосипедных фар; + + + +Трое скажут, что этот патч не соответствует style(9); + + + +Семнадцать возразят, что предлагаемая новая лампа подпадает под + лицензию GPL; + + + +Пятьсот восемьдесят шесть раздуют флэйм по поводу сравнения + лицензий GPL, BSD, MIT, NPL и личных мнений о неизвестных основателей + FSF; + + + +Семеро пошлют различные части этих обсуждений в -chat и + -advocacy; + + + +Один закоммитит предлагаемую лампу, хотя она светит хуже, чем + старая; + + + +Двое откатят эти изменения с ужасной руганью в журнале коммита + о том, что лучше FreeBSD будет сидеть в темноте, чем с тусклой лампой. + + + +Сорок шесть громко воспротивятся этому изменению и потрубуют + объяснений от -core; + + + +Одиннадцать попросят уменьшить размер лампочки, чтобы она подошла + к их Тамагочи на случай, если мы когда-нибудь соберёмся переносить + FreeBSD на эту платформу; + + + +Семьдесят три заявят о SNR в -hackers и -chat и в знак протеста + отпишутся; + + + +Тринадцать пошлют письма "unsubscribe", "How do I unsubscribe?", + и "Please remove me from the list" с обычной подписью; + + + +Один закоммитит работающую лампочку в то время, как все будут + слишком заняты руганью, чтобы это заметить; + + + +Тридцать один человек напишет, что новая лампочка будет светить на + 0.364% ярче, если её откомпилировать с помощью TenDRA (хотя при этом + она приобретёт форму куба) и что FreeBSD должна перейти на компилятор + TenDRA, а не на EGCS; + + + +Один заметит, что у лампочки отсутствует цоколь; + + + +Девять (включая авторов PR) спросят "что такое MFC?"; + + + +Спустя две недели после смены лампочки пятьдесят семь человек сообщат + о том, что света всё равно нет. + + + +Ник Клэйтон (Nik + Clayton) добавил: + + + +Я сильно смеялся над всем этим. + + + +И тогда я подумал, "Постойте-ка, найдётся ли кто-нибудь, + чтобы задокументировать это где-нибудь?" + + + +И на меня снизошло озарение :-) + + + + + + + + + Только для серьёзных FreeBSD хакеров + + + + + Что такое SNAP и RELEASE? + + +В дереве CVS сейчас находятся три активно/полуактивно + развивающихся ветки FreeBSD: + + + + + +RELENG_2_2 AKA 2.2-stable AKA "ветвь 2.2" + + + + +RELENG_3 AKA 3.x-stable AKA "ветвь 3.0" + + + + +HEAD AKA AKA 4.0-current + + + + + + + + +HEAD - это не реальный тег ветки, как другие два, а просто + символьная константа для обозначения "текущего, не ветвящегося, + находящегося в разработке дерева", то есть . + + + +На данный момент является находящимся в разработке + деревом 4.0, ветка 3.0-stable, RELENG_3, отделилась от + в январе 1999. + + + +Ветвь 2.2-stable, RELENG_2_2, отделилась от -current + в ноябре 1996. + + + +Ветвь 2.1-stable, RELENG_2_1_0, отделилась от -current + в сентябре 1994. Развитие этой ветви полностью прекращено. + + + + + + +Как самим сделать релиз? + +Чтобы сделать релиз, вам нужно иметь три вещи: Во-первых, вам нужно + работать с ядром, включающим драйвер vn. Добавьте его + в файл конфигурации ядра и откомпилируйте новое ядро: + + + pseudo-device vn #Vnode driver (turns a file into a device) + + + + + +Во-вторых, вам нужно иметь на диске полное дерево CVS. Чтобы + добиться этого, вы можете использовать CVSUP, указав в файле + supfile в качестве имени релиза cvs и удалив все поля с тегами и датами: + + + *default prefix=/home/ncvs + *default base=/a + *default host=cvsup.FreeBSD.org + *default release=cvs + *default delete compress use-rel-suffix + + ## Main Source Tree + src-all + src-eBones + src-secure + + # Other stuff + ports-all + www + doc-all + + + + + +После этого запустите cvsup -g supfile для выкачки всех + нужных исходных текстов на ваш компьютер... + + + +Наконец, вам нужно свободное место для построения системы. + Допустим, что свободное место есть в каталоге + /some/big/filesystem и, как в примере выше, вы поместили + дерево CVS в каталог /home/ncvs: + + + setenv CVSROOT /home/ncvs # or export CVSROOT=/home/ncvs + cd /usr/src/release + make release BUILDNAME=3.0-MY-SNAP CHROOTDIR=/some/big/filesystem/release + + + + + +Полный релиз будет строиться в каталоге + /some/big/filesystem/release и по окончании этого процесса + дистрибутив, готовый к помещению на FTP-сервер, будет находиться в + каталоге /some/big/filesystem/release/R/ftp. Если вы захотите + построить SNAP другой ветки, не -current, то можете указать + RELEASETAG=SOMETAG в командной строке make release выше, например, + при указании RELEASETAG=RELENG_2_2, будет строиться самый свежий + снэпшот ветки 2.2-STABLE. + + + + + + +Как создать инсталляционные диски? + +Весь процесс создания инсталляционных дисков и дистрибутивов + исходных текстов и бинарников автоматизирован в файле + /usr/src/release/Makefile. Информации, в нём содержащейся, + должно быть достаточно, чтобы начать. Однако, должны вас предупредить, + что этот процесс включает в себя выполнение ``make world'' и поэтому + занимает много времени и дискового пространства. + + + + + + + По команде ``make world'' были переустановлены все программы. + + +Да, так и должно быть; как говорит название этой команды, ``make + world'' выполняет построение всех системных файлов с нуля, так + что в итоге можете быть уверены, что получите чистую рабочую + систему (вот почему это занимает столько времени). + + + +Если в момент запуска команд ``make world'' или ``make + install'' определена переменная окружения DESTDIR, то вновь + создаваемые файлы будут помещены в дерево каталогов. идентичное + существующему, с корнем, располагающимся в + ${DESTDIR}. Однако некоторые случайные + комбинации модификаций совместно используемых библиотек и версий + компилируемых программ при исполнении команды ``make world'', + может этому помешать. + + + + + + + При загрузке системы выдаётся сообщение ``(bus speed defaulted)''. + + +Адаптеры SCSI Adaptec 1542 позволяют программно изменять скорость + доступа к шине. Предыдущие версии драйвера 1542 пытались определить + максимально возможную скорость работы и установить это значение. Мы + обнаружили, что у некоторых пользователей это приводило к нарушению + работоспособности системы, поэтому эта возможность сейчас вынесена + в параметр конфигурации ядра ``TUNE_1542''. Использование + этой опции на тех системах, где она работает, может привести к + ускорению доступа к дискам, а там, где это не работает, может привести + к потере данных. + + + + + + + Можно ли работать с current при ограниченном доступе в Internet? + + + +Да, это можно делать без скачивания полного дерева исходных + текстов с помощью системы CTM. + + + + + + +Как вы разделяете дистрибутив на файлы по 240К? + +Команда split в современных BSD-системах имеет опцию ``'', + позволяющую разрезать файлы на части с точностью до байта. + + + +Вот пример из файла /usr/src/Makefile. + + + bin-tarball: + (cd ${DISTDIR}; \ + tar cf - . \ + gzip --no-name -9 -c | \ + split -b 240640 - \ + ${RELEASEDIR}/tarballs/bindist/bin_tgz.) + + + + + + + + + Я написал некоторое добавление к ядру, кому его послать? + + +Обратитесь к соответствующему разделу Руководства, в котором описано, как это сделать. + + + +И спасибо вам за ваши усилия! + + + + + + + Как распознаются и инициализируются адаптеры ISA Plug N Play? + + +От: Фрэнка Дурды IV (Frank Durda IV) + + + +Если рассматривать на самом низком уровне, то существует несколько + портов ввода/вывода, в которые должны выводить информацию все адаптеры + PnP, когда компьютер пытается выполнить запрос о наличии установленных + адаптеров. Так что, когда запускается процедура определения адаптеров + PnP, она выполняет запрос о наличии каких-либо адаптеров PnP, а все + такие адаптеры выдают свой номер модели при чтении того же порта + ввода/вывода, поэтому процедура определения получит ответ на свой + запрос, состоящий из логически наложенных номеров моделей, + интерпретируемый как ``да''. В этом ответе по крайней мере один бит + будет установлен в единицу. Затем код определения адаптеров может + ``выключать'' адаптеры с ID (назначаемыми Microsoft/Intel), меньшими, + чем X. Потом следует попытка определить, остались ли ещё адаптеры, + отвечающие на запрос. Если ответ ``0'', то адаптеров с + ID, большими чем X, нет. После этого делается попытка определить + наличие адаптеров с номерами, меньшими чем ``X''. Если они есть, + то становится известно, что есть адаптеры с номерами, меньшими чем X. + Тогда происходит запрос адаптерам, большим чем X-(limit-4), на + выключение. Запрос повторяется. Применив этот метод полудвоичного + поиска границ расположения ID достаточное количество раз, код + идентификации найдёт все адаптеры PnP, установленные в данной машине + за число итераций, гораздо меньшее, чем может занять перебор 2^64 + возможных вариантов ID. + + + +ID представляет собой два 32-разрядные числа (всего их 2ˆ64) + + 8 бит контрольной суммы. Первые 32 бита являются идентификатором + производителя. Они никогда не сообщаются, однако часто бывает, что + различные типы адаптеров от одного и того же производителя имеют + различные 32-битные значения идентификатора производителя. + Необходимость в 32 разрядах только для задания производителя адаптера + выглядит несколько излишним. + + + +Оставшиеся 32 бита являются серийным номером, ethernet-адресом, + чем-либо, делающим этот адаптер уникальным. Производитель не должен + выпускать других адаптеров, имеющих то же самое значение этих битов, + если, конечно, у них не разные идентификаторы производителя. Таким + образом, вы можете иметь несколько адаптеров одинакового типа, но с + различными 64-разрядными номерами. + + + +Группы по 32 бита не богут быть нулевыми. Это позволяет при + логическом объединении OR их номеров получать ненулевое значение во + время начального поиска адаптеров. + + + +Как только система определила ID всех адаптеров, она активизирует + каждый адаптер, по одному за раз (через те же порты ввода/вывода), и + определяет, какие ресурсы требуются данному адаптеру, какие возможные + прерывания доступны итд. Сканирование и сбор информации происходит + по всем адаптерам. + + + +Эта информация соотносится с содержащейся в файлах ECU на диске + или в MLB BIOS. Поддержка PnP из ECU и BIOS для аппаратуры на + MLB обычно имеет синтетический характер, и периферия не выполняет + полностью поцедуру настоящего PnP. Однако, используя BIOS и + информацию из ECU, процедура инициализации может обнаружить устройства + PnP, которые не могут быть найдены другим способом. + + + +Затем устройства PnP опрашиваются ещё раз для назначения им портов + ввода/вывода, DMA, IRQ и адресов отображаемой памяти. Теперь + устройства должны иметь именно такие настройки и они должны оставаться + такими до следующей перезагрузки, хотя нигде не сказано, что вы не + можете их менять, когда захотите. + + + +Здесь сделано много упрощений, однако общую идею вы должны уловить. + + + +Microsoft использовала для PnP некоторые порты статуса первого + принтера, по их логике, не существует адаптеров, использующих эти + адреса для ввода/вывода. Я обнаружил один такой адаптер принтера от + IBM, который декодирует запись в порт статуса в момент начального + опроса устройств PnP, на что MS ответил ``хулиган''. Так что они + выполняют запись в порт статуса принтера для установки адресов, + плюс используют этот адрес + 0x800, и ещё один порт ввода/вывода, + который может располагаться где угодно в диапазоне между 0x200 и + 0x3ff, для чтения. + + + + + + +Поддерживает ли FreeBSD платформы, отличные от x86? + +Интерес к работе над многоплатформенной поддержкой во FreeBSD + проявили несколько групп разработчиков, и одна из попыток переноса, + FreeBSD/AXP (ALPHA), оказавшейся достаточно удачной, в настоящее + время доступна в виде релиза 3.0 SNAP по адресу ftp://ftp.freebsd.org/pub/FreeBSD/alpha. Эта реализация + для ALPHA сейчас поддерживаёт всё увеличивающееся число машин ALPHA, + в частности, модели AlphaStation, AXPpci, PC164, Miata и Multia. + Нельзя сказать, что это настоящий релиз, он и не будет полным, + пока в него не будут включены все утилиты для инсталляции и не + будет сделан дистрибутивный CDROM, включающий достаточное количество + рабочих портов и пакаджей. FreeBSD/AXP сейчас находится в стадии + BETA. Чтобы быть в курсе событий, происходящих с этим портом, + подпишитесь на соответствующий + <freebsd-alpha@FreeBSD.ORG>. + + Также был проявлен интерес к переносу FreeBSD на платформу SPARC, + если вы хотите подключиться к этому проекту, подпишитесь на + соответствующий <freebsd-sparc@FreeBSD.ORG> + . Для обсуждение общих + вопросов, касающихся новых аппаратных платформ, предназначен + <freebsd-platforms@FreeBSD.ORG>. + + + + + + + Мне нужно старшее число для написанного мною драйвера устройства. + + +Всё зависит от того, планируете вы сделать этот драйвер + общедоступным или нет. Если это так, то, пожалуйста, пошлите нам + копию исходных текстов драйвера вместе с соответствующими + модификациями в файле files.i386, пример описания устройства + в файле конфигурации ядра и соответствующий код + MAKEDEV для создания специальных файлов устройств, которые + использует ваше устройство. Если это не так. или это невозможно + из-за лицензионных ограничений, то для старшего числа символьного + устройства и старшего числа блочного устройства для этих целей были + зарезервированы значения 32 и 8 соответственно; используйте их. В + любом случае. мы будем рады услышать о вашем драйвере в списке + рассылки <freebsd-hackers@FreeBSD.ORG>. + + + + + + +Альтернативный метод размещения каталогов + +В ответ на вопрос о других методах размещения каталогов могу + сказать, что используемая в настоящее схема не претерпела изменений + с 1983 года. Эти соглашения были предназначены для оригинальной + файловой системы FFS, я никогда их не пересматривал. Эта схема + прекрасно работает, позволяя избежать переполнения групп дорожек. + Как некоторые из вас замечали, она работает плохо при поиске. + Большинство файловых систем создаются из архивов, которые были + созданы с глубиной первого поиска (aka ftw). Это приводит к тому, что + их каталоги размещаются на нескольких группах дорожек, создавая + наихудший случай для последующего поиска глубиной один. Если бы + было известно общее количество каталогов, которые должны быть созданы, + быходом было бы создание (общее количество / количество групп дорожек) + на дорожку группу перед переходом. Обычно это число определяется чисто + эвристически. Даже при использовании маленького фиксированное числа, + скажем 10, значительно улучшает ситуацию. Чтобы различать операции + восстановления от обычных операций (где текущий алгоритм подходит), + вы можете использовать объединение в кластеры объёмом до 10, если они + делаются в окне, равным 10 секундам. Во всяком случае, я думаю, что + это требует некоторых экспериментов. + +Кирк МакКузик (Kirk McKusick), Сентябрь 1998 + + + + +Что делать при аварийном остановах системы + + + [Этот раздел был вырезан из письма, написанного Биллом Полом (Bill Paul) + в список рассылки + freebsd-current Дэгом-Элингом Коиданом Смёгравом (Dag-Erling Coïdan + Smørgrav), который исправил несколько опечаток и добавил + комментарии в квадратных скобках] + + + + +From: Bill Paul <wpaul@skynet.ctr.columbia.edu> +Subject: Re: the fs fun never stops +To: ben@rosengart.com +Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT) +Cc: current@FreeBSD.ORG + + + + + + [<ben@rosengart.com> отправил письмо, содержащее следующее + аварийное сообщение системы] + +> Fatal trap 12: page fault while in kernel mode +> fault virtual address = 0x40 +> fault code = supervisor read, page not present +> instruction pointer = 0x8:0xf014a7e5 + ^^^^^^^^^^ +> stack pointer = 0x10:0xf4ed6f24 +> frame pointer = 0x10:0xf4ed6f28 +> code segment = base 0x0, limit 0xfffff, type 0x1b +> = DPL 0, pres 1, def32 1, gran 1 +> processor eflags = interrupt enabled, resume, IOPL = 0 +> current process = 80 (mount) +> interrupt mask = +> trap number = 12 +> panic: page fault + + + + + +[Если] вы увидите такое сообщение, просто его воспроизвести и + послать нам не достаточно. Указатель инструкций, выделенный мною, + важен, к сожалению, его значение зависит от конфигурации ядра. + Другими словами, его значение меняется в зависимости от конкретного + ядра, которое вы используете. Если вы используете ядро GENERIC + одного из снэпшотов, то кто-то ещё может отследить функцию, вызвавшую + ошибку, но если вы работаете со специально отконфигурированным ядром, + то только вы можете сказать нам, где случилась ошибка. + + + +Вот что вы должны сделать: + + + + + +Запишите значение указателя инструкций. Заметьте, что + часть 0x8: в этом случае не важна: нам нужна часть + 0xf0xxxxxx. + + + + +Когда система перезагрузится, сделайте следующее: + +% nm /kernel.that.caused.the.panic | grep f0xxxxxx + + + где f0xxxxxx - это значение указателя инструкций. Однако + неприятность заключается в том, что вы не получите точного + соответствия, так как в таблице имен ядра для точек входа в функции + даны адреса на начало функций, а указатель инструкций будет указывать + куда-то внутрь её тела. Если вы не получили точного соответствия, + опустите последнюю цифру в значении указателя инструкций и попробуйте + снова, то есть: + +% nm /kernel.that.caused.the.panic | grep f0xxxxx + + + Если и это не привело ни к каким результатам, отрежьте следующую + цифру. Повторяйте, пока не получите хоть что-то. Результатом будет + список функций, которые, возможно, привели к аварийному останову. + Этот механизм обнаружения ошибочного места довольно неточен, но это + всё же лучше чем ничего. + + + + + + + + +Зачастую люди приводят подобные аварийные сообщения, на редко кто + утруждается привести соотвествие указателя инструкций с функцией в + таблице символов ядра. + + + +Лучшим способом выяснить причину, вызвавшую аварийный останов, + является создание аварийного дампа системы, а затем использование + gdb(1) для трассировки вызовов. Конечно, это зависит + от корректности работы gdb(1) с -current, что я гарантировать не + могу (помнится, кто-то говорил, что новый ELF gdb(1) некорректно + работает с аварийными дампами ядра: необходимо проверить это + до выхода 3.0, иначе не избежать краски стыда на наших лицах + после выпуска CD). + + + +Во всяком случае, обычно я использую такой способ: + + + + + +Отредактируйте конфигурационный файл ядра, добавив строку + 'options DDB', если вам зачем-то понадобился встроенный отладчик. + (Я использую его в основном для указания точек останова, если + подозреваю возникновение бесконечных циклов.) + + + + +Выполните config -g KERNELCONFIG для создания каталога + построения ядра. + + + + +cd /sys/compile/KERNELCONFIG; make + + + + +Дождитесь окончания компиляции ядра. + + + + +cp kernel kernel.debug + + + + +strip -d kernel + + + + +mv kernel /kernel.orig/ + + + + +cp kernel / + + + + +reboot + + + + + + + + +[Замечание: Так как теперь ядра FreeBSD 3.x по умолчанию + имеют формат Elf, вы должны использовать команду strip -g + вместо strip -d]. Если по какой-то причине ваше ядро всё ещё + имеет формат a.out, используйте команду strip -aout -d.] + + + +Заметьте, что ВАМ НЕ НУЖНО ЗАГРУЖАТЬ ЯДРО С ОТЛАДОЧНОЙ + ИНФОРМАЦИЕЙ. Ядро, откомпилированное с ключом , может + занимать порядка 10МБ. Вам не нужно загружать этот огромный образ: + он вам пригодится позже для gdb(1)gdb(1) требует + таблицу имён). Вместо этого просто сохраните полный образ и создайте + ещё один, удалив отладочную информацию командой strip -d. Именно + этот образ вам и нужен для загрузки. + + + +Чтобы включить сброс аварийного дампа, вам нужно отредактировать + файла /etc/rc.conf, чтобы dumpdev указывало на раздел + подкачки. В этом случае скрипты rc(8) будут вызывать команду + dumpon(8) для включения создания аварийных дампов. Вы можете + запустить команду dumpon(8) вручную. После аварийной остановки + аварийный дамп может быть получен с помощью программы + savecore(8); если значение переменной dumpdev было + установлено в /etc/rc.conf, скрипты rc(8) запустят + savecore(8) автоматически и поместят аварийный дамп в каталог + /var/crash. + + + +ЗАМЕЧАНИЕ: аварийные дампы FreeBSD обычно имеют размер, равный + физическому объёму оперативной памяти вашей машины. Так что если + у вас 64МБ ОЗУ, вы получите дамп размером 64МБ. Поэтому вы должны + удостовериться, что в каталоге /var/crash достаточно места + для хранения дампа. Либо вы можете вручную запустить savecore(8) + и создать аварийный дамп в другом каталоге, где достаточно места. + Размер аварийного дампа можно уменьшить, указав в конфигурации + ядра options MAXMEM=(размер) подходящее значение для объёма + памяти, которое будет использоваться ядром. Например, если у вас + 128 МБ ОЗУ, вы можете ограничить использование памяти ядром 16 + мегабайтами, так что размер аварийного дампа будет равен 16МБ, а + не 128. + + + +Как только вы получили аварийный дамп, вы можете выполнить + трассировку вызовов с помощью gdb(1) таким образом: + + + + +% gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0 +(gdb) where + + + + + +Заметьте, что при этом может быть выведено несколько экранов + информации; в идеале вы должны использовать script(1) для их + перехвата. При использовании необработанного образа ядра со всей + отладочной информацией может быть найдена конкретная строка исходного + текста ядра, при достижении которой случилась аварийная остановка. + Для выяснения последовательности событий, приведших к аварийному + останову, обычно читается трассировка стека снизу вверх. Вы можете + также использовать gdb(1) для вывода значений различных переменных + или структур, чтобы выяснить состояние системы во время аварии. + + + +Теперь, если вы в самом деле душевнобольной и у вас есть второй + компьютер, то можете настроить gdb(1) для удалённой отладки, так, + что сможете использовать gdb(1) на одном компьютере, чтобы + отладить ядро на другом, включая использование точек останова, + пошагового прохода по коду ядра, всё как с обычной прикладной + программой. Я пока с этим не игрался, так как не часто имею + возможность поставить две машины одну напротив другой для отладки. + +[Билл (Bill) добавил: "Я забыл обратить ваше внимание + на одну вещь: если у вас включена поддержка DDB и ядро переходит + в режим отладки, вы можете намеренно вызвать аварийный останов + (и создание аварийного дампа), набрав 'panic' в командной строке + ddb. Этот процесс может снова вызвать отладчик. В этом случае + наберите 'continue' и процесс будет завершён созданием аварийного + дампа." -ed] + + + + +Перестала работать функция dlsym() для ELF! + +По умолчанию при работе с форматом ELF символы, определённые в + выполнимом файле, не доступны динамическому загрузчику. Поэтому + при вызове функции dlsym(), которая осуществляет поиск по + дескриптору, полученному после вызова dlopen(NULL, flags), + желаемый результат достигнут не будет. + +Если вы хотите осуществить поиск в выполнимом файле процесса с + помощью функции dlsym(), вам нужно компоновать выполнимый + файл с опцией компоновщика ELF. + + + + +Увеличение и уменьшение адресного пространства ядра + +По умолчанию размер адресного пространства ядра равен 256 МБ во + FreeBSD 3.x и 1 ГБ во FreeBSD 4.x. Если вы используете FreeBSD + в качестве сервера с интенсивной сетевой нагрузкой (скажем, + большой FTP или HTTP сервер), вы можете обнаружить, что 256 МБ + недостаточно. + + + +Каким же образом можно увеличить адресное пространство? Здесь + есть два момента. Во-первых, вам нужно указать ядру выделить + большее количество адресного пространства для самого ядра. Во-вторых, + так как ядро загружается в верхнюю часть адресного пространства, вам + нужно уменьшить адрес загрузки так, чтобы он не вышел за верхнюю + границу. + + + +Первая проблема решается увеличением значения константы + NKPDE в файле src/sys/i386/include/pmap.h. В случае 1 + ГБ адресного пространства он должен выглядеть примерно так: + + +#ifndef NKPDE +#ifdef SMP +#define NKPDE 254 /* addressable number of page tables/pde's */ +#else +#define NKPDE 255 /* addressable number of page tables/pde's */ +#endif /* SMP */ +#endif + + + + + +Для вычисления значения NKPDE разделите желаемый объём + адресного пространства (в мегабайтах) на четыре и вычтите из + получившегося числа единичку в случае однопроцессорной машины и + двоечку в случае многопроцессорного ядра. + + + +Для достижения второй цели вам нужно правильный адрес для загрузки + ядра: просто отнимите размер адресного пространства (в байтах) от + 0x100100000; результат будет равным 0xc0100000 для адресного + пространства в 1 ГБ. Установите значение константы LOAD_ADDRESS + в файле src/sys/i386/conf/Makefile.i386 в это значение; затем + установите значение счётчика в начале списка секций в файле + src/sys/i386/conf/kernel.script в то же самое значение, как + это сделано здесь: + + +OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") +OUTPUT_ARCH(i386) +ENTRY(btext) +SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/obj/elf/home/src/tmp/usr/i386-unknown-freebsdelf/lib); +SECTIONS +{ + /* Read-only sections, merged into text segment: */ + . = 0xc0100000 + SIZEOF_HEADERS; + .interp : { *(.interp) } + + + + + +После этого переконфигурируйте и перестройте ядро. Вы можете + столкнуться с проблемами при работе утилит ps(1), top(1) + и подобных им; решить их может make world (или ручная + перекомпиляция libkvm, ps и top после копирования + исправленного pmap.h в /usr/include/vm/). + + + +ЗАМЕЧАНИЕ: Размер адресного пространства ядра должен быть + кратен четырём мегабайтам. + + + +[Дэвид Гринмэн + (David Greenman) добавил: Я думаю, что размер адресного + пространства ядра должен быть степенью двойки, но я в этом не уверен. + Для работы с верхними адресами памяти использовался код старого + загрузчика, и я ожидаю по крайней мере точность в 256 МБ.] + + + + + + + + +Наши благодарности + + + Если вы обнаружили неточности в этом FAQ или хотите что-то в него + добавить, пожалуйста, напишите нам по адресу <FAQ@FreeBSD.ORG>. + Мы ждём ваши отзывы и пожелания, чтобы с вашей помощью сделать этот + документ ещё лучше! + + + FreeBSD Core Team + + + + + +Jordan Hubbard + +Различные упорядочения и добавления в FAQ. + + + + + + +Doug White + + +Работа со списком рассылки freebsd-questions + + + + + + +Joerg Wunsch + + +Работа с телеконференциями Usenet + + + + + + +Garrett Wollman + + +Раздел о сети и форматирование + + + + + + +Jim Lowe + + +Информация о протоколе многоадресной передачи + + + + + + +Peter da Silva + + +Раб-наборщик + + + + +Andrey Zakhvatov + + +Перевод на русский язык + + + + +The FreeBSD Team + + +Охи, вздохи, стоны, добавления + + + + + + + +И всем остальным, оставшимся неизвестными, наши глубочайшие + извинения и сердечные благодарности! + + + +