LINUX-BG   Адрес : http://www.linux-bg.org
FreeBSD: Серийни комуникации [стр.2]
От: Димитър Василев
Публикувана на: 25-02-2003
Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=advices&key=348722532

17.4.5.1 Модеми при системи с постоянна скорост

За да подържате фиксирана скорост, ще трябва да настроите независимо съотношение на предаване на данните. За външен USR Sportster 14400 Kbps, следните команди ще фиксират отношението на предаване на данни между компютър и модем:

ATZ

AT&B1W

17.4.5.2 Модеми при системи с променлива скорост

За системи с променлива скорост, ще трябва да настроите модема да нагажда бързината си на предаване към входящата. При външен USR Sportster 14400 Kbps, следните команди ще фиксират съотношението на модема за коригирани данни към това за подаване на команди, но ще позволят скоростта за некоригирани данни да бъде променлива:

ATZ

AT&B2&

17.4.5.3 Проверка на настройките на модема

Повечето високоскоростни модеми осигуряват команди, с които да прегледате текущите му настройки в що годе четим вид от хората. При външните USR Sportster 14400 Kbps, командата ATI5 показва настройките, съхранявани в обикновената памет. За да видите истинските настройки на модема, използвайте ATZ и после ATI4.

Ако имате различна марка, проверете наръчника към него как да прегледате и променяте неговите настройки.

17.4.6 Отстраняване на проблеми

Ето няколко стъпки, които можете да последвате за проверка на дайъл-ъп модема към вашия сървър.

17.4.6.1 Проверка на операционната система

Свържете модема, заредете FreeBSD и ако вашият модем има лампички, гледайте дали DTR индикатора светва, когато се появява логин промпт на конзолата - ако свети това означава, че FreeBSD е стартирала getty процес върху съответните портове и чака модема да приема обаждания. Ако DTR индикатора не свети, влезте във FreeBSD машината чрез конзолата и въведете ps ax, за да видите дали FreeBSD се опитва да стартира getty процес върху правилния порт. Би трябвало в получения резултат да видите редове сходни на тези по долу:

114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd0

115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd1

Ако видите нещо различно, подобно на:

114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyd0

и модемът все още не е приел обаждания, това означава че getty е отворил комуникационния порт. Възможно е да има кабелен проблем или неправилно настроен модем, понеже getty няма да е в състояние да отвори порта преди CD сигнал да е бил подаден от модема.

Ако не виждате getty процеси да чакат да отворят желаните портове, проверете много внимателно какво сте писали в /etc/ttys. Проверете също /var/log/messages за съобщения от init или getty, засягащи каквито и да било проблеми. Ако има такива, проверете още по-старателно в /etc/ttys и в /etc/gettytab, както и файловете /dev/ttydN за грешки, липсващи редове или липсващи устройства в /dev.

17.4.6.2 Опитайте да влезете

Опитайте да влезете в системата използвайки модем на отдалечената машина - задайте му следните опции - 8 бита, без паритет и 1 бит за прекъсване (stop bit). Ако не получите логин промпт веднага, натиснете Enter веднъж на всяка секунда. Ако все още не веждате login: след известно време, опитайте да изпратите сигнал за прекъсване (BREAK).

Ако използвате високоскоростни модеми, опитайте да наберете отново след фиксиране на скоростта на набиране (чрез AT&B1 на USR Sportster, примерно).

Ако все още не получавате login:, проверете /etc/gettytab отново и проверете наново за следните неща:

  • Първоначалната конфигурация в /etc/ttys съответства на ред със същите свойства в /etc/gettytab
  • Всеки nx= ред съответства на друг такъв със същите свойства в gettytab
  • Всеки tc= ред съотвества на друг от gettytab със същите свойства

Ако набирате, но модемът на FreeBSD сървъра не отговаря, проверете дали е настроен да отговаря при подаване на DTR. Ако модемът изглежда, че е настроен правилно, проверете дали се подава DTR, като наблюдавате светлинния индикатор (ако има такъв).

Ако сте минали през всичко няколко пъти и все още не работи, починете и работете по въпроса по-късно. При липса на резултат, може да изпратите съобщение на пощенския списък за общи въпроси за FreeBSD: freebsd-questions@FreeBSD.org, описвайки модема си и трудностите, които имате и добрите хора от списъка ще се опитат да помогнат.

17.5 Изходящо набиране (dial-out)

Следните трикове са за свързване на вашата с друга машина през модем. Това е подходящо за установяване на терминална сесия с отдалечен хост. Полезно е за влизане в BBS.

Този тип връзки могат да бъдат много полезни да източите файл от мрежата, ако имате проблеми с PPP. Ако имате нужда да ползвате FTP и PPP е повреден, използвайте терминална сесия за тази цел. После използвайте zmodem да го прехвърлите на вашата машина.

17.5.1 Mоят Хейс модем не е подържан, какво да правя?

Всъщност, страницата от наръчника за тип (tip) е остаряла. Вече съществува подръжка за Хейс модеми. Просто използвайте at=hayes във файла си /etc/remote.

Хейс драйвърът не е много рафиниран да разпознава някои от новите характеристики на новите модеми - съобщения като BUSY, NO DIALTONE или CONNECT 115200 или ще ги сбърка с друго. Трябва да изключите тези съобщения, когато ползвате tip (става с ATX0&W).

Също така, паузата за набиране е 60 секунди. Вашият модем трябва да ползва по-малка пауза, иначе tip ще мисли, че има проблем с комуникациите. Опитайте с ATS7=45&W.

Забележка: Доставяната версия на tip, все още не подържа Хейс модемите вапълно. Решението е да се редактира файла tipconf.h в /usr/src/usr.bin/tip/tip. Очевидно е, че ще се нуждаете от изходния код за тази цел.

Променете реда #define HAYES 0 на #define HAYES 1. После въведете make и make install на конзолата. Всичко работи прекрасно след това.

17.5.2 Нима очаквате да въвеждам всичко?

Има и по-хитър начин - направете ''директен" опис в /etc/remote. Например, ако вашият модеме свързан към първия сериен порт - /dev/cuaa0, въведете следния ред:

cuaa0:dv=/dev/cuaa0:br#19200:pa=none.

Използвайте най-високата скорост на вашия модем в низа br . После, напишете tip cuaa0 и ще се свържете с модема. Ако няма такова устройство на машината ви, направете следното:

# cd /dev

# sh MAKEDEV cuaa0

Или използвайте cu програмата като root:

# cu -lline -sspeed

където line е серийният порт (например /dev/cuaa0) and и speed е скоростта (примерно 57600). След като привършите въвеждането на AT командите, натиснете ~. за да излезете.

17.5.3 Знакът @ за телефонната функция не работи!

Знакът @ за телефонната функция указва на tip да погледне в /etc/phones за телефонен номер. Също така е и специален знак, използван в конфигурационни файлове като /etc/remote. Освободете се от второто значение с помощта на обърната наклонена черта:

pn=\@

17.5.4 Как да набирам телефонни номера от команден ред ?

Сложете ''обща" конфигурация във файла /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

17.5.5 Трябва ли всеки път да въвеждам скоростта?

Сложете ред за tip1200 или cu1200, но можете да сложите каквато скорост си искате във низа br. Тip смята, че 1200 bps е добра скорост по подразбиране. Ето защо търси ред tip1200. Хубавото е, че не сте длъжни да използвате 1200 bps.

17.5.6 Достъп до множество машини през терминален сървър

Вместо да чакате да бъдете свързан и да пишете: 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/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234:

който ще ви позволи да пишете tip pain или tip muffin, за да се свържете към хостовете pain или muffin и tip deep13 за да влезете в терминалния сървър.

17.5.7 Може ли tip да набира повече от една линия на сайта?

Това чест е проблем при университетите, където няколко хиляди студенти се опитват да ползват няколкото налични модема.

Опишете вашият университет в /etc/remote и изполвайте знака @ за функцията pn:

big-university:\

:pn=\@:tc=dialout

dialout:\

:dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:

После избройте телефонните номера в /etc/remote:

big-university 5551111

big-university 5551112

big-university 5551113

big-university 5551114

Тip ще опита да набере всеки номер и ако всички са заети ще прекрати работата си. Ако искате да опитвате отново и отново, пуснете tip в цикъл.

17.5.8 Защо трябва да натискам Ctrl+P два пъти, за да пратя Ctrl+Р веднъж?

Ctrl+P е подрабиращият се ''силов" сигнал, използван за указване на tip, че следващите знаци са обикновени данни. Можете да настроите ''силовия" сигнал на каквото искате с ~s escape, което значи '' настрой променлива".

Въведете ~sforce=single-char последвано от нов ред. Single-char е който и да е знак от клавиатурата. Ако не въведете single-char, тогава новият ''силов" знак е нула, който може да бъде изведен с комбинацията Ctrl+2 или Ctrl+Space. Добра алтернатива е Shift+Ctrl+6, използван единствено на някои терминални сървъри.

Можете да зададете стойност по ваш вкус на ''силовия" знак, като го опишете във вашия файл $HOME/.tiprc: force=<single-char>

17.5.9 Изведнъж всичко, което пиша е с ГЛАВНИ БУКВИ?

Трябва да сте натиснали комбинацията Ctrl+A, която отговаря за главните букви в tip, специално направена за хора с потрошени CAPS lock клавиши. Използвайте ~s както по-горе и настройте променливата raisechar на нещо по ваш вкус. В същност може да я ползвате като ''силов" знак, ако сте преценили, че няма да ви трябват главни букви. Ето примерен .tiprc, идеален за Emacs потребители, които трябва да пишат много пъти Ctrl+2 и Ctrl+A:

force=^^

raisechar=^^

Комбинацията ^^ е Shift+Ctrl+6

17.5.10 Как стават файловите трансфери с tip?

Ако сте се свързали с друга Unix машина system, можете да пращате и получавате файлове с командите ~p (put) и ~t (take). Тези команди, задействат cat и echo на отдалечената система за прием и предаване на файлове.

Синтаксисът е :

~p наш файл [чужд файл]

~t чужд файл [наш файл]

Няма проверки за грешки, така че би трябвало да използвате друг протокол като zmodem.

17.5.11 Как да стартирам zmodem с tip?

За да получите файлове, стартирайте изпращащата програма на отдалечение хост. После въведете rz, за да започне получаването им.

За да изпратите файлове, въведете ~C sz, за да ги изпратите на отдалечената машина.

17.6 Настройка на серийна конзола

написано от Кazutaka Yokota. Основано на документ от Bill Paul.

17.6.1 Въведение

FreeBSD има възможността да зареди на машина само с обикновен терминал, вързан към сериен порт като конзола. Подобна система е полезна за две групи хора: системни администратори, желаещи да инсталират FreeBSD на машини без прикачена клавиатура и монитор; разработчици, желаещи да отстранят проблеми в ядрото или драйвърите.

Както е описано в глава 7, FreeBSD е възприела тристепенна система на зареждане. Първите два стадия са в кода на зареждащия блок, намиращ се в началото на FreeBSD дяла на зареждащия диск. Тогава зареждащият блок ще се зареди и стартира буут лоудъра (/boot/loader) като трети стадий.

За да настроите серийна конзола, трябва да настроите кода на зареждащия блок, буутлоудъра и ядрото.

17.6.2 Настройка на серийна конзола

  1. Подгответе серийния кабел. Ще се нуждаете от null-modem кабел или стандартен сериен такъв. Вижте раздел 17.2.2 по този въпрос.
  2. Разкачете клавиатурата си.Повечето PC-та проверяват за нея повреме на Power-On Self-Test (POST) теста и ще съобщят за грешка, ако не я открият. Някои машини ще врънкат доста звучно за липсата на клавитура и ще откажат да зареждат, докато не бъде включена.

Ако компютърът ви се оплаче за липсата на клавиатура, но продължи да зарежда, тогава не трябва да правите нищо. ( Някои машини с Phoenix BIOS бегло ще промълвят: ''Keyboard failed" и ще продължат нататък.) Ако компютърът ви откаже да зареди без прикачена клавиатура, тогава ще трябва да настроите BIOS-а да пренебрегва тази грешка (ако може). Погледнете наръчника към дънната си платка за подробности как да стане това.

Съвет: Задаването в BIOS на клавиатура като ''Not installed", не означава че няма да можете да я ползвате. Просто указва на BIOS да не я търси при включване. Можете да оставите клавиатурата включена, дори когато тази опция е активирана и пак ще можете да я ползвате.

Забележка: Ако вашият компютър има PS/2 мишка, вероятността да се наложи да я махнете е много голяма. Това е така понеже PS/2 мишките споделят някои хардуерни ресурси с клавиатурата. Оставянето на мишката закачена, може да доведе до подлъгване на BIOS, че клавиатурата е още на мястото си. По подобен начин се държи Gateway 2000 с Pentium 90 MHz процесор и AMI BIOS. Като цяло, това не е проблем, понеже само мишка не е много полезна без клавиатура.

    3. Свържете терминала към COM1 порта (sio0)

Ако нямате терминал, може да използвате старо PC/XT с терминален софтуер или серийния порт на друга Юникс машина. Ако нямате COM1 порт (sio0), купете си. В настоящия момент няма начин да изберете друг порт освен COM1 за зареждащия блок без да го прекомпилирате. Ако вече използвате COM1 за друго устройство, ще трябва временно да го отстраните и инсталирате нов зареждащ блок и ядро, веднага щом заредите FreeBSD. (Предполага се, че COM1 е на разположение на всички видове сървъри; ако наистина COM1 ви трябва за друго (и не можете да сложите другото на COM2 (sio1)), тогава на първо място въобще не трябва да си давате зор по въпроса.)

    4. Проверете дали конфигурационният файл на ядрото има въведени подходящите опции зададени на COM1 (sio0):

Въпросните опции са:

0x10

Разрешава подръжката на конзоли в ядрото. Другите параметри ще бъдат пренебрегнати, освен ако този не е зададен. За момента, почти всяка машина може да има подръжка на конзола; като за предпочитане е първата от тях (по реда на конфигурационния файл) да бъде с тази настройка. Само тази опция няма да превърне серийния порт в конзола. Задайте следващата опция за тази цел или използвайте -h параметъра,описан по-долу заедно с този.

0x20

Форсира устройството да изпълнява ролята на конзола (освен ако няма друга с по-висок приоритет), независимо от опцията -h обсъждана по-долу. Този параметър заменя литерала COMCONSOLE във версиите 2.х на FreeBSD. Опцията 0x20 трябва да бъде използвана заедно с 0x10.

0x40

Резервира оборудването (в съответствие с 0x10) и го прави недостъпно за нормален достъп. Не трябва да задавате тази опция на порта, на който желаете да сложите конзолата. Единственото предназначение на този флаг е да подготви машината за отдалечено дебъгване на ядрото. Вижте ''Наръчник на разработчика" за повече подробности за отдалечено дебъгване.

Забележка: Във FreeBSD 4.0 и по-нагоре, значението на 0x40 е доста по-различно и има друг параметър за отдалечено дебъгване.

Пример:

device sio0 at isa? port IO_COM1 flags 0x10 irq 4

Вижте man sio за повече подробности.

Ако параметрите не са зададени, трябва да стартирате UserConfig (програмата за пренастройка на ядрото в реално време) на различна конзола или да прекомпилирате ядрото.

    5. Създайте файл boot.config в главната директория на a дяла на зареждащия диск. Този файл ще укаже на зареждащия блок как вие искате да зареди операционната система. За активиране на серийната конзола, ще ви трбяват една или повече от следните опции ако искате много опции, включете ги всичките на един и същи ред:

-h

Избор между вътрешна и серийна конзола. Използвайте за превключване на конзолите. Например, ако заредите от вътрешната(видео) конзолата, може да ползвате -h да насочите буутлоудъра и ядрото да използват серийния порт като конзолно устройство. Алтернативно, зареждайки от серийния порт, с -h може да насочите буутлоудъра и ядрото да ползват монитора вместо серийната конзола.

-D

Дава възможност за избор между единична и двойна конфигурация. При единичната, конзолата ще бъде или вътрешния видео адаптер или COM порта, в зависимост от състоянието на -h опцията по-горе. В двойната конфигурация, и монитора и COM порта ще бъдат конзоли едновременно, независимо от сътоянието на -h. Залбележете обаче, че двойната конфигурация има ефект единствено докато зареждащият блок върви. Веднъж щом буутлоудъра поеме нещата, конзолата определена от -h става единствената.

-P

Указва на зареждащия блок да търси за клавиатура. Ако не се намери такава,-D и -h се запускат автоматично.

Забележка: Поради ограничения в мястото на текущата версия на буут (зареждащия) блок, с -P опцията могат да се откриват единствено по-нови поколения клавиатури. Такива с по-малко от 101 клавиша (и без F11, и F12 клавиши) могат да не бъдат открити. Някои лаптопи могат да имат същия проблем, в следствие на това ограничение. Ако това е така на вашата машина, откажете се от употребата на -P (или си купете клавиатура с 105 и повече клавиша - бел. прев.). За съжаление няма решение за този проблем (с по-старите клавиатури, бел. прев.).

Използвайте или -P да изберете конзолата автоматично, или -h да активирате серийната конзола. Също така, може да включите други опции, описани в boot(8).

Опциите, с изключение на -P, ще бъдат подадени на буутлоудъра (/boot/loader). Буутлоудъра ще определи кой от видео или серийните портове да стане конзола, като провери състоянието на -h. Това означава, че ако зададете -D но не и -h в /boot.config, може да използвате COM порт като конзола само докато действа буут блока. Зареждащата програма обаче ще използва монитора за конзола.

    6. Включете компютъра. При стартиране на FreeBSD, буут блока ще изведе за момент съдържанието на /boot.config върху конзолата. Пример:

/boot.config: -P

Keyboard: no

Вторият ред се появява единствено, ако сложите -P в /boot.config и обозначава присъствието/отсъствието на клавиатура. Тези съобщения отиват или на серийната или на вътрешната конзола, или и на двете, в зависимост от параметрите в /boot.config. Вижте таблицата по-долу за детайли.

Опции в /boot/config

Съобщенията отиват на

Никакви

вътрешната конзола

-h

серийната конзола

-P, при наличие на клавитура

вътрешната конзола

-P, без клавиатура

серийната конзола

-D

двете конзоли

-Dh

двете конзоли

След горните съобщения, ще има малка пауза преди зареждащият блок да продължи да зарежда буутлоудъра и преди да се появят нови съобщения на конзолата. При нормални обстоятелства, няма нужда да прекъвате процеса на зареждане, но можете да го направите, за да сте сигурни че всичко е настроено правилно.

Въведете кой да е клавиш без Enter на конзолата, за да прекъснете процеса на зареждане. Буутблока ще ви попита какво да прави по-нататък. Би трябвало да видите нещо подобно на:

FreeBSD/i386

BOOT Default: 0:wd(0,a)/boot/loader

boot:

Проверете дали горните съобщения се появяват на обикновената или серийна конзола, или на двете, в зависимост от опциите, зададени в /boot.config. Ако съобщенията се появят на правилната конзола, насиснете Enter да продължите процеса на зареждане.

Ако искате да се появят на серийната конзола, но не виждате нищо на серийния терминал, значи нещо сте объркали с настройките. Междувременно, въведете -h и натиснете Enter/Return (ако е възможно), да укажете на буутблока (а после на буутлоудъра и ядрото) да изберат серийния порт за конзолата. Веднъж заредили, върнете се обратно и проверете какво се е объркало.

След зареждане на буутлоудъра, намирайки се в третата фаза на зареждане, все още можете да превключвате между вътрешната и серийната конзола като настроите съответните променливи в него. Вижте раздел 17.6.5 за повече подробности.

17.6.3 Обобщение

Ето обобщение на различните параметри, обсъдени в този раздел и избрани в последствие.

17.6.3.1 Сценарий N1: задавате за COM1 параметър 0x10

device sio0 at isa? port IO_COM1 flags 0x30 irq 4

Опции в /boot.config

Конзола по време на действие на буутблока

Конзола по време на действие на буутлоудъра

Конзола след зареждане на ядрото

Без опции

вътрешната

вътрешната

вътрешната

-h

серийната

серийната

серийната

-D

двете

вътрешната

вътрешната

-Dh

двете

серийната

серийната

-P, при наличие на клавиа-тура

вътрешната

вътрешната

вътрешната

-P, при липса на клавиатура

серийната

вътрешната

серийната

17.6.3.2 Сценарий N2: задавате за COM1 параметър 0x30

device sio0 at isa? port IO_COM1 flags 0x30 irq 4

Опции в /boot.config

Конзола по време на действие на буутблока

Конзола по време на действие на буутлоудъра

Конзола след зареждане на ядрото

Без опции

вътрешната

вътрешната

серийната

-h

серийната

серийната

серийната

-D

двете

вътрешната

серийната

-Dh

двете

серийната

серийната

-P, при наличие на клавиа-тура

вътрешната

вътрешната

серийната

-P, при липса на клавиатура

двете

серийната

серийната

17.6.4 Съвети за серийната конзола

17.6.4.1 Задаване на по-бърза скорост на серийния порт

По подразбиране, настройките на серийния порт са: скорост 9600, 8 бита, без паритет и 1 бит за спиране. Ако желаете да промените скоростта, трябва да прекомпилирате поне зареждащия блок. Добавете следния ред в /etc/make.conf и компилирайте нов буутблок:

BOOT_COMCONSOLE_SPEED=19200

Ако серийната конзола е настроена по някакъв друг начин освен да зарежда с -h или серийната конзола използвана от ядрото и различна от тази, която използва зареждащият; тогава също трябва да добавите следната опция към конфигурационния файл на новото ядро:

options CONSPEED=19200

17.6.4.2 Използване на порт различен от sio0 за серийната конзола

Използването на порт различен от sio0 като конзолa, изисква известно прекомпилиране. Ако искате да ползвате друг сериен порт по каквито и да било причини, прекомпилирайте буутблока, буутлоудъра и ядрото както следва.

  1. Вземете изходния код на ядрото (виж Глава 22)
  2. Редактирайте /etc/make.conf и задайте променливата BOOT_COMCONSOLE_PORT според адреса на порта, който желаете (0x3F8, 0x2F8, 0x3E8 or 0x2E8). Само портове между sio0 и sio3 ( от COM1 до COM4) могат да бъдат използвани; многопортови серийни карти няма да работят. Не е нужно да се настройват прекъсванията.
  3. Създайте собствена конфигурация за ядрото и добавете съответните параметри за COM портовете, които искате да използвате. Примерно, ако искате sio1 (COM2) за конзола:

device sio1 at isa? port IO_COM2 flags 0x10 irq 3

device sio1 at isa? port IO_COM2 flags 0x30 irq 3

Параметрите на другите серийни портове не трябва да бъдат задавани.

    4. Прекомпилирайте и инсталирайте буутблока и буутлоудъра:

# cd /sys/boot

# make

# make install

    5. Прекомпилирайте и инсталирайте новото ядро

    6. Запишете буутблока на зареждащия диск с disklabel(8) и заредете новото ядро.

17.6.4.3 Влизане в DDB дебъгъра през серийната конзола

Ако желаете да влезете в дебъгъра на ядрото от серийната конзола ( полезно за отдалечена диагностика, но много опасно ако случайно през конзолата натиснете Ctlr+C !), тогава ще трябва да компилирате ядрото си със следните опции:

options BREAK_TO_DEBUGGER

options DDB

17.6.4.4 Извеждане на логин промпт на серийната конзола

Въпреки че не е задължително, може да изведете логин промпт на през серийния кабел, така че да можете да гледате съобщенията при зареждане и да дебъгвате ядрото през серийната конзола. Ето как става.

  1. Отворете файла /etc/ttys с редактор и намерете редовете:

ttyd0 ''/usr/libexec/getty std.9600'' unknown off secure

ttyd1 ''/usr/libexec/getty std.9600'' unknown off secure

ttyd2 ''/usr/libexec/getty std.9600'' unknown off secure

ttyd3 ''/usr/libexec/getty std.9600'' unknown off secure

ttyd0 до ttyd3 съответсва на COM1 до COM4. Сменете off на on за желания порт. Ако сте сменили скоростта на серийния порт, трябва да смените std.9600 да съответства на текущите настройки, примерно std.19200.

Може също да желаете да смените типа на терминала от неизвестен (unknown) на действителния вид на вашия терминал.

2. След редактиране на файла, тряба да въведете kill -HUP 1, за да влязат в сила настройките.

17.6.5. Смяна на конзолата от буутлоудъра

Предишните раздели описваха как да настроите серийната конзола като променяте зареждащия блок. Този раздел ще ви покаже, че може да определите конзолата, въвеждайки някои команди и променливи в зареждащата програма. Понеже тя е извиквана на последния етап от зареждането, след зареждащия блок , то настройките й ще се наложат над тези от зареждащия блок.

17.6.5.1 Настройка на серийната конзола

Можете лесно да определите буутлоудъра и ядрото за серийната конзола, въвеждайки един ред в /boot/loader.rc:

set console=comconsole

Това ще влезе в сила независимо от настройки в буутблока, обсъждани в предния раздел. По-добре е да поставите горният ред като първи в /boot/loader.rc, така че съобщенията при зареждане да се виждат възможно най-рано.

Аналогично, ожете да определите вътрешната конзола като:

set console=vidconsole

Ако не определите променливите за конзола на буутлоудъра, той и след това ядрото ще използват конзолата, отбелязана с -h опцията в зареждащия блок.

Във версия 3.2 или по-висока, можете да определите конзолата в /boot/loader.conf.local или в /boot/loader.conf, отколкото в /boot/loader.rc. По този начин, вашият /boot/loader.rc би изглеждал така:


include /boot/loader.4th

start

После, създайте /boot/loader.conf.local и сложете следния ред там:.

console=comconsole

или

console=vidconsole

Вижте loader.conf(5) за повече информация.

Забележка: В момента, буутлоудъра няма опция еквивалентна на -P опцията от зареждащия блок. Няма и възможност автоматично да се избира вътрешната или серийната конзола според наличието/отсъствието на клавиатура.

17.6.5.2. Използване на сериен порт различен от sio0 за конзолата

Трябва да прекомпилирате буутлоудъра да използва COM порт различен от sio0 за серийната конзола. Следвайте процедурата в раздел 17.6.4.2.

17.6.6. Недостатъци

Идеята тук е да се помогне на хората да настроят много сигурни сървъри, които не се нуждаят от графични карти и периферия, нито от клавиатура.

За съжаление, повечето компютри няма да ви позволят да заредите без клавиатура, а още по-малко са онези дето ще ви позволят да заредите без графична карта. Машините с AMI BIOS могат да бъдат настроени да зареждат без инсталирана графична карта, просто като смените опцията ''graphics adapter" в CMOS на ''Not installed."

Обаче много системи не подържат тази опция и ще откажат да буутват, ако нямат графичен хардуер в тях. Ще трябва да оставите в тях някаква карта, била тя и монохромна; въпреки че няма да ви се налага да закачате монитор към нея. Може да пробвате да качите AMI BIOS.


1Първото поле обикновено определя името на устройството така както е в /dev директорията

2Второто поле е командата, която трябва да бъде изпълнена(обикновено getty(8)). Getty инициализира и отваря реда, задава скоростта, запитва за потребителско име и изпълнява login(1) програмата. Също така, тя приема един (по избор) параметър в комаден ред, това е getty типа. Той казва за характеристиките на терминалната линия, като bps и паритет. Програмата getty чете тези характеристики от /etc/gettytab.

3Третото поле е за терминалите, които са свързани към въпросната комуникационна линия. За dial-up портове ''unknown" или ''dialup" е типичният опис, понеже потребителите могат да набират с кой да е терминал или софтуер. За свързани терминали, типа не се променя, така че може да сложите истински тип от termcap(5) файла в това поле.За нашия пример WYSE-50 си ползва истинските параметри, докато 286-цата ще бъде настроена да емулира VT-100.

4Четвъртото поле определя дали портът трябва да бъде разрешен. Пишейки ''on" тук ще накара процеса init да стартира програмата във второто поле, ''off" ще го изключи и влизането от този порт няма да бъде възможно.

5Последното поле се използва да определи дали портът е сигурен. Отбелязвайки го като сигурен, означава че вие вярвате достатъчно, че да позволите root ( или кой да е потребител с потребителски номер равен на 0) да влиза от този порт. ''Insecure" не разрешава root влизания. На несигурен порт, потребителите трябва да влезат като непривилигеровани потребители и после използват su(1) или сходен механизъм за придобиване на администраторски права. Препоръчва се да използвате ''insecure" дори за терминали зад заключени врати.


Страници: 1 [2]

<< Още по-добър Red Hat 8.x | Често задавани въпроси за Squid (част 3) >>

Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук, но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора, както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.

All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
Linux is copyright by Linus Torvalds.
© Линукс за българи ЕООД 2007
© Slavei Karadjov 1999 - 2006

All rights reserved.

Изпълнението отне: 1 wallclock secs ( 0.17 usr + 0.01 sys = 0.18 CPU)