Начало » Настройка ОС Linux » Вопросы по серверам и сетям » Проблема поднять SLIP соединение
| Проблема поднять SLIP соединение [сообщение #342160] |
Вск, 29 Август 2010 12:46  |
jakushev Сообщений: 8 Зарегистрирован: Август 2010 Географическое положение: Королев |
Новичок |
|
|
Встала у меня на половину академическая задача изучения и написания стека протоколов TCP/IP для микроконтроллера. Пока неохота ковырятся с железом (долго и для начала нет смысла), решил промоделировать все на компьютере. Для этого создал простенький стенд: В машине под Федорой 13 установлена PCI платка с 2 COM портами, перепаянными 3х проводным нуль-модемом. Устройства /dev/ttyS1 и /dev/ttyS2. К устройствам применяю chmod, дабы из под простого пользователя работать можно было. Проверяю 2мя терминалами, на аппаратном уровне все работает, данные передаются. Далее пытаюсь поднять SLIP на ttyS1. Для этого делаю следующие под рутом:
slattach -L -p slip -s 115200 /dev/ttyS1 &
Вроде как пролетает устпешно (и при запуске не в фоне ошибок нет), устройство sl0 создается. Пытаюсь его сконфигурировать:
ifconfig sl0 192.168.0.10 pointopoint 192.168.0.20 up
Все тоже без ошибок, в листе ifconfig появляется устройство sl0 с настроенными параметрами.
Команда ping -с1 192.168.0.20, соответственно, возвращает 100% потерю пакетов, но при этом на слушающем (/dev/ttyS2) терминале глухо, как в танке... Вызов ifconfig показывает, что на sl0 устройстве происходит попытка передачи (параметр TX Byte увиличивается с каждым пингом на 84).
Уже перебрал все варианты, route пытался настроить. Результат 0.
Люди, помогите! Где засада? Я уже ядро подозревать стал:(
|
|
| |
| Re: Проблема поднять SLIP соединение [сообщение #342163 является ответом на сообщение #342162] |
Вск, 29 Август 2010 18:31   |
jakushev Сообщений: 8 Зарегистрирован: Август 2010 Географическое положение: Королев |
Новичок |
|
|
Попробовал. Странная ситуация. slattach прогружается в дебаге и встает как вкопанный:
[1]+ Stopped man slattach
[root@mainpc all]# slattach -d -L -p slip -s 115200 /dev/ttyS1
slattach: tty_open: looking for lock
slattach: tty_open: trying to open /dev/ttyS1
slattach: tty_open: /dev/ttyS1 (fd=3) slattach: tty_set_speed: 115200
slattach: tty_set_databits: 8
slattach: tty_set_stopbits: 1
slattach: tty_set_parity: N
slip started on /dev/ttyS1 interface sl0
Далее конфигурю сеть:
[root@mainpc all]# ifconfig sl0 192.168.0.10 pointopoint 192.168.0.20 up
и пытаюсь пропинговать:
[root@mainpc all]# ping -c3 192.168.0.20
PING 192.168.0.20 (192.168.0.20) 56(84) bytes of data.
--- 192.168.0.20 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 11999ms
И тут начинается интересная вещичка. После того, как ping отработал, просматриваю состояние сети. Количество переданных данных по sl0 увеличиваются в течении нескольких секунд, достигая 252 (как раз передача 3х пинговых пакетов). К тому же появляется ошибка ядра:
Package: kernel
Latest Crash: Вск 29 Авг 2010 17:53:31
Command: not_applicable
Reason: WARNING: at net/sched/sch_generic.c:255 dev_watchdog+0xf0/0x192()
Comment: None
Bug Reports:
что наталкивает меня на проблему с ядром. Может кто подскажет, как посмотреть, скомпилированно ли ядро с модулем SLIP. В Федоре сырцы ядра не загружены, только каталоги и служебная информация. Команда make menuconfig выполняется. И, вроде как, SLIP скомпилирован как модуль. Надо ли его подключать вручную, или он автоматом грузится?
|
|
| | | | | |
| Re: Проблема поднять SLIP соединение [сообщение #342214 является ответом на сообщение #342170] |
Пнд, 06 Сентябрь 2010 03:40   |
|
А что в dmesg по поводу slip'а говорится? Я такую схему когда поднимал между Debian Etch(если не ошибаюсь, там было ядро 2.6.18) и Slackware 12.1(версию ядра не помню, но там стандартное было - не самосборное). Поэтому очень странно, по-моему, что сейчас из-за ядра что-то может не работать.
У себя попробовал просто поднять интерфейс(к сожалению, кабеля нульмодемного нет под рукой, поэтому пинга проверить не могу, но выглядит всё так, будто поднялось без проблем). Никаких ошибок. Сейчас пробовал на Debian Lenny(2.6.26-2-686, slip модулем).
Today is good day to die...
|
|
|
| Re: Проблема поднять SLIP соединение [сообщение #342228 является ответом на сообщение #342214] |
Пнд, 06 Сентябрь 2010 19:31   |
jakushev Сообщений: 8 Зарегистрирован: Август 2010 Географическое положение: Королев |
Новичок |
|
|
После slattach -L -p slip -s 9600 /dev/ttyS1 &
Ядро:
SLIP: version 0.8.4-NET3.019-NEWTTY (dynamic channels, max=256).
CSLIP: code copyright 1989 Regents of the University of California.
SLIP linefill/keepalive option.
Далее поднимаю sl0:
ifconfig sl0 192.168.0.10 pointopoint 192.168.0.20 up
ifconfig sl0
sl0 Link encap:Serial Line IP
inet addr:192.168.0.10 P-t-P:192.168.0.20 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:296 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Вроде все нормально...
Далее пингую:
ping -c3 192.168.0.20
PING 192.168.0.20 (192.168.0.20) 56(84) bytes of data.
--- 192.168.0.20 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 11999ms
Понятно, что ничего нет в ответ, так как /dev/ttyS2 у меня на терминале. Но и на терминале ничего не вижу.
Пока идет пинг, по таймауту вылезают следующие сообщения ядра:
[root@mainpc all]# dmesg | tail -n 11
[<ffffffff814529f0>] smp_apic_timer_interrupt+0x8d/0x9b
[<ffffffff8100a613>] apic_timer_interrupt+0x13/0x20
<EOI> [<ffffffff8102a615>] ? native_safe_halt+0xb/0xd
[<ffffffff810115a5>] default_idle+0x36/0x53
[<ffffffff810116bd>] c1e_idle+0xfb/0x102
[<ffffffff81008c22>] cpu_idle+0xaa/0xe4
[<ffffffff8144597e>] start_secondary+0x253/0x294
---[ end trace 976e326b52916c58 ]---
sl0: transmit timed out, bad line quality?
sl0: transmit timed out, bad line quality?
sl0: transmit timed out, bad line quality?
apic отключать, думаю, плохая идея. Многоядерная конфигурация. Но, ща попробую. Порты работают. между двумя терминалами связь есть.
Если я правильно понимаю, ядро должно "обрамить" IP пакет в SLIP пакет и передать на нужный порт.
Платка с портами следующая: 03:06.0 Serial controller: NetMos Technology PCI 9835 Multi-I/O Controller (rev 01)
При работе с портом на материнке, ситуация аналогичная...
|
|
| |
| Re: Проблема поднять SLIP соединение [сообщение #342230 является ответом на сообщение #342228] |
Пнд, 06 Сентябрь 2010 20:31   |
gogi Сообщений: 532 Зарегистрирован: Январь 2009 |
Житель |
|
|
jakushev писал(а) Mon, 06 September 2010 19:31Если я правильно понимаю, ядро должно "обрамить" IP пакет в SLIP пакет и передать на нужный порт.
ция аналогичная...
Не совсем. В случае виртуального интерфейса, как я понимаю, ядро должно передать пакет не в сеть, а программе slattach, запущенной в режимк даемона (для отладки можно и на консоли). А она обрамляет и передает в порт /dev/ttyS..., т.е. снова ядру, а то в физический сериал порт.
По делу. Очень похоже, что дело действительно в ядре. Попробуйте в своем дистрибутиве установить несколько ядер, в том числе и стабильное от редхат (сентос) и грузить по очереди. Скорее всего они уже есть в репозитории. Если нет, это легко сделать вручную.
|
|
|
| Re: Проблема поднять SLIP соединение [сообщение #342231 является ответом на сообщение #342230] |
Пнд, 06 Сентябрь 2010 20:47  |
jakushev Сообщений: 8 Зарегистрирован: Август 2010 Географическое положение: Королев |
Новичок |
|
|
Сейчас проверил на Федоре 12 на другом компьютере, там ядро 2.6.31.5. Тоже самое. Может быть есть возможность перенаправить slattach в файл, чтоб отделить зерна от плевил? Сейчас попробую, но не думаю, что это получится...
|
|
|
Переход к форуму:
Текущее время: Срд Фев 08 17:20:17 MSK 2012
Общее время, затраченное на создание страницы: 0.00600 секунд
|