Ситуация:
Есть свежеустановленная, слегка оттюненая FreeBSD 4.5-RELEASE.
Есть старенький внутренний ISA модем "USR Sportster 36k voice int" со свежей(относительно) прошивкой, с которой он апгрейднулся до "USR Sportster 56k voice int". Кстати, таким он стал больше года назад и под w2k прекрасно работал по сей день.
В связи с моими минимальными познаниями принципов работы FreeBSD в целом, и ее работы с последовательными портами в частности, возникла пара вопросов:
1. У модема есть перемычки, позволяющие как оставить его PnP, так и проставить адрес порта ввода/вывода и irq вручную.
Если его оставить PnP, то при загрузки ядро находит его как устройство sioX, где X всегда на 1 больше последнего из сконфигурированных в ядре последовательных портов(например, если в ядре последний порт - sio1 [как сейчас], то модему присваивается sio2). После такой загрузки, модем не обнаружился ни на одном из соответствуущих устройств в /dev.
Вопрос в следующем - по какому принципу найденные PnP устройства привязываются к устройствам в /dev? И как повлиять на этот процесс(читай - запихать модем куда МНЕ надо )?
2. В случае ручной установки irq и портов ввода/вывода на модеме (в соосветствии с одним из sio-устройств в ядре) он удачно(надеюсь) привязался для исходящих звонков к /dev/cuaa1. Но тут возникла другая проблема - в режиме работы с модемом (будь то хоть cu, хоть tip, или term из ppp) происходит нечто странное: модем воспринимает все посланные ему команды(например, дозванивается и соединяется с модемом провайдера по atdp1234567), но эхо, ответ с той стороны и любая другая _входящая_ информация возникает _только_ в момент посылания какого-нибудь символа, и с опозданием ~ в один символ(разъясняю - набирая "atdp" я вижу "a" когда ввожу "t", "at" когда ввожу "d" и т.д.) причём коретка не переводится на следующую строку. Очень весело выглядела моя попытка установить PPP соединение с провайдером: в term'e набираю atdp1234567, и задумчиво гляжу на строчку "atdp123456", слушая попискивания модемов, и попутно прикидывая, когда можно будет ввести логин - надпись "login:" появляется только в момент его ввода . По этой же причине невозможно установление ppp-соединения по скрипту - модем не ответит "ok" на строку инициализации и т.д.
Путём продолжительной процедуры битья головой о стенку я смог найти только одну возможную причину вышеуказанного - неправильный режим работы порта по умолчанию. Но по причине моих уже упомянутых низких познаний, когда я увидел результат команды man stty, моя крыша не просто съехала - её сорвало и со свистом унесло за горизонт .
Вопрос: какие параметры поменять и какому устройству? Предполагаю, что настраивать надо /dev/cuaa1, посему кидаю результат команды stty -a -f /dev/cuaa1 :
--------------------------------------------------------------------------------
speed 9600 baud; 0 rows; 0 columns
lflags: -icanon -isig -iexten -echo -echoe -echok -echoke -echonl -echoctl -echoprt -altwerase -noflsh -tostop -flusho -pendin -nokerninfo -extproc
iflags: -istrip -icrnl -inlcr -igncr -ixon -ixoff -ixany -imaxbel -ignbrk -brkint -inpck -ignpar -parmrkoflags: -opost -onlcr -ocrnl -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow -dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>; eol2 = <undef>; erase = ^?; erase2 = ^H; intr = ^C; kill = ^U; lnext = ^V; min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T; stop = ^S; susp = ^Z; time = 0; werase = ^W;
--------------------------------------------------------------------------------
Заранее огромное спасибо всем откликнувшимся FreeBSD-шникам.