Этот раздел, надеюсь, поможет решить некоторые ваши проблемы. Если у вас есть другие вопросы, можете написать мне письмо.
При загрузке системы (или модуля) я получаю следующие сообщения:
SIOCSIFADDR: No such device SIOCADDRT: Network is unreachable |
SIOCSIFADDR: No such device SIOCSIFDSTADDR: No such device SIOCADDRT: Network is unreachable mount clntudp_create: RPC: Port Mapper failure - RPC: Unable to send |
По какой-то причине ядро не поддерживает PLIP. Это может быть из-за того, что:
Вы не включили поддержку PLIP (PLIP support) при настройке ядра.
Вы включили поддержку принтера (Printer support) при настройке ядра.
Вы скомпилировали PLIP как модуль, но не загрузили его.
Вы указали не тот порт, например plip1, вместо plip0.
Есть ли способ (кроме модулей) поддерживать и PLIP, и LP, возможно с двумя параллельными портами?
Да, есть два способа, описанные в разделе "Патчи для совместной работы PLIP и LP":
Можно использовать патч, позволяющий ядру поддерживать и то, и другое.
Можно взять другой патч, позволяющий ядру использовать один порт для PLIP, а второй - для LP.
Я написал скрипт, запускаемый из rc.inet2, который соединяет 2 моих компьютера, и включает NFS. Машина "one" подключает каталоги с машины "two". Кроме того, я добавил правильные строки в /etc/fstab второго компьютера (two). Если я загружаю его в то время, как "one" выключен, то он несколько минут ждет "подключение удаленных файловых систем..." ("mounting remote file systems...").
Это происходит из-за того, что "two" пытается подключить файловые системы с "one". Если же последний выключен, то вам приходится ждать, пока "two" надоест пытаться сделать это. Чтобы избежать этого, вы можете:
Закомментировать в rc.inet2 команду, подключающую удаленные файловые системы.
Убрать из /etc/fstab компьютера "two" соответствующие строки и подключать удаленные файловые системы вручную.
Есть решение получше - определять при загрузке включен ли "one", и только в этом случае подключать с него файловые системы. Этого можно достигнуть, заменив команду mount в rc.d (или где оно там у вас) примерно такими строчками:
if ping -c 5 one ; then mount one:/..... fi |
Соединение есть, но ping не работает. Ядро выдает следующее (или подобное) сообщение:
plip1: timed out (1, 89) |
Это означает что, с "вашей стороны" соединения все нормально, ваша машина посылает сигналы, но "другая сторона" не отвечает. Как правило это случается при работе с некачественным кабелем или неправильной настройке IRQ/адреса ввода-вывода. Вообще, более 60% проблем связано с неправильной установкой IRQ. Попробуйте сменить его, очень вероятно, что все заработает. Ниже приводится более подробный список возможных причин возникновения этой проблемы:
Кабель неправильно подключен, неисправен или вообще не тот. Если есть такая возможность, включите его между машинами с заведомо работающим PLIP. Если такой возможности нет, то хотя бы проверьте тестером. Факт того, что кабель работал под DOS/win95 - хорошее предзнаменование, но не 100% гарантия.
На машине с "другой стороны" не загружен PLIP.
Если вы соединяетесь с переносным компьютером с нестандартным параллельным портом, то смотрите ниже.
У вас дешевый параллельный порт, предназначенный исключительно для поддержки принтера. Такие порты могут посылать данные, но не могут принимать их.
Ваш параллельный порт не был настроен (как минимум) как двунаправленный. Зайдите в конфигурацию BIOS и перенастройте его. Возможны также варианты EPP и ECP.
Параллельные порты имеют различный IRQ. Загрузите plip (или lp) модуль с другим IRQ. См. раздел "Активация PLIP соединения".
Другие устройства (например звуковая карта) использует тот же IRQ. Не доверяйте DOS программам типа MSD, лучше просто попробуйте загрузить PLIP модуль с другим IRQ.
Я правильно указал IRQ и адрес ввода/вывода, но PLIP все равно не работает. Адрес и IRQ я узнал с помощью MSD.
MSD не всегда правильно определяет адрес порта. Попробуйте эту программу: http://www.cs.caltech.edu/ huny/para13.zip.
Соединение установлено, и ping работает, но иногда ядро выдает (или похожее) следующее сообщение:
plip1: timed out (1, 89) |
Это означает, что другая сторона не ответила до истечения времени ожидания. Если все работает, то вы можете не обращать внимания на эти сообщения: как правило это значит, что другая сторона намного медленнее, чем ваша, что возможно из-за старого аппаратного обеспечения или высокой загрузки машины. Можно попробовать настроить PLIP командой plipconfig.
Я настроил PLIP соединение между моим настольным компьютером и переносным, но ping сообщает о 100% потере пакетов.
Параллельные порты некоторых переносных компьютеров не подходят для PLIP, так как они предназначены для работы только с принтерами, то есть могут посылать данные, но не могут принимать их. Я не знаю способа, заставить их работать с PLIP. Единственная надежда -
Посмотреть конфигурацию вашего ноутбука - если есть возможность, то настроить параллельный порт для работы в двунаправленном режиме. Обычно он называется "parallel enhanced mode" (расширенный режим работы параллельного порта).
Попробовать plip mode 0 (режим 0). Увы, я не знаю, как это сделать, и/или будет ли это работать, а также поддерживается ли этот режим в последних ядрах.
Какой скорости можно достигнуть при передаче через PLIP?
Это непростой вопрос, так как МНОЖЕСТВО различных факторов могут влиять на скорость:
Скорость процессора на обеих сторонах соединения.
Тип и настройки параллельного порта.
Загруженность системы.
Для чего вы использует PLIP.
Что если мне нужно часто давать команду ifconfig up и ifcongig down для plip1?
Похоже, вам нужно добавлять к команде ifconfig ключ -arp, кроме самого первого, после загрузки системы, раза. Мне он не требовался, но кому-нибудь может понадобится.
Я прочитал об IP адресах, зарезервированных для внутренних сетей. 200.0.0.1 и 200.0.0.2 к ним не относятся. Не нужно ли их поменять?
Да, нужно, но я сразу же подчеркнул, что выбрал эти адреса только из-за их простоты. Вы можете свободно менять их на то, что пожелаете. Вот цитата из net-2-howto:
В соответствие с RFC1597 некоторые IP адреса зарезервированы для внутренних сетей. Вы должны использовать их для избежания различных неприятных происшествий при случайном соединении к Internet. Это следующие адреса: 10.0.0.0 - 10.255.255.255 172.16.0.0 - 172.31.255.255 192.168.0.0 - 192.168.255.255 |
Есть ли способ настроить параметры PLIP без правки исходного текста кода?
Да, есть. Попробуйте команду /sbin/plipconfig. За более подробной информацией обращайтесь к руководству (man).
У меня установлен Debian GNU/Linux, в котором отсутствуют файлы /etc/rc.d/rc.inet1 и 2. Куда мне прописывать команды настройки plip?
В Debian GNU/Linux все команды, которые предполагалось вставить в rc.inet1 и 2, нужно внести в /etc/init.d/network.
У меня возникли сложности со связыванием двух машин с помощью PLIP. На первой стоит ядро последней версии, а на второй PLIP версии 1.0. Не в этом ли дело?
Да, будет намного лучше, если версии PLIP на обоих концах будут одинаковые. В plip.c указано, что PLIP (последних версий) не может работать с PLIP версии 1.0.xx.
В данный момент PLIP работает с 4 битами, а как насчет 8-битного PLIP, про который я читал в документации по ядру? Кажется, он называется режимом 1 (mode 0).
Этот Mini-HowTo опсиывает настройку PLIP. За технической информацией обращайтесь, пожалуйста, к автору или читайте /usr/src/linux/drivers/net/README*.PLIP. Я знаю только следующее: стандартный PLIP использует "параллельный нуль-кабель" и работает в режиме 0 (не путайте с именем интерфейса plip0), использующем 4 бита. Режим 1 использует 8 бит и уже должен быть реализован, но для него нужен самодельный кабель, и работать он будет только между машинами с Linux. Я не знаю, как настраивать режим 1. Если кто-нибудь знает, то сообщите мне, пожалуйста.