Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Активировать функцию кабельной диагностики на сетевой карте.  (Прочитано 794 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ViRuSTN

  • Автор темы
  • Новичок
  • *
  • Сообщений: 44
    • Просмотр профиля
Доброго времени суток. Прошу помощи у гуру вот с таким вопросом. Есть группа чипсетов (сетевых карт), умеющих делать кабельную диагностику. А то есть показывают на каком метре разрыв кабеля. Так вот у многих производителей (например Marwell) есть софт для этого под Окна. Под Ubuntu я такого не нашёл. Вопрос в следующем. Есть ли софт который имеет такой функционал. Если нет, то как бы драйвера допилить для отображения данной информации.

Про отображение данной Инны навеяла статья про написание своего драйвера. Источник вот - http://rus-linux.net/lib.php?name=/MyLDP/algol/realtekdriver.html

В этой статье я увидел Следующее:

Устройству для доступа нужен физический адрес, который запоминается в поле tx_bufs_dma. Ниже приведен список смещений регистров, используемых в исходном коде. Более подробную информацию об этих значениях Вы можете получить из спецификаций RealTek8139.
Код: (C) [Выделить]
#define TX_BUF_SIZE  1536  /* should be at least MTU + 14 + 4 */
#define TOTAL_TX_BUF_SIZE  (TX_BUF_SIZE * NUM_TX_SIZE)

/* 8139 register offsets */
#define TSD0          0x10
#define TSAD0       0x20
#define RBSTART  0x30
#define CR               0x37
#define CAPR         0x38
#define IMR            0x3c
#define ISR             0x3e
#define TCR           0x40
#define RCR           0x44
#define MPC           0x4c
#define MULINT    0x5c

/* TSD register commands */
#define TxHostOwns    0x2000
#define TxUnderrun    0x4000
#define TxStatOK      0x8000
#define TxOutOfWindow 0x20000000
#define TxAborted     0x40000000
#define TxCarrierLost 0x80000000

/* CR register commands */
#define RxBufEmpty 0x01
#define CmdTxEnb   0x04
#define CmdRxEnb   0x08
#define CmdReset   0x10

/* ISR Bits */
#define RxOK       0x01
#define RxErr      0x02
#define TxOK       0x04
#define TxErr      0x08
#define RxOverFlow 0x10
#define RxUnderrun 0x20
#define RxFIFOOver 0x40
#define CableLen   0x2000
#define TimeOut    0x4000
#define SysErr     0x8000

#define INT_MASK (RxOK | RxErr | TxOK | TxErr | \
               RxOverFlow | RxUnderrun | RxFIFOOver | \
               CableLen | TimeOut | SysErr)

Заинтересовало естественно поле: #define CableLen 0x2000

Собственно вопрос! Как использовать данное значение для допиливания драйверов, что бы отображалась данная информация. Либо как использовать скрипт для вывода(доступа к ней)

Вопрос очень серьёзный в силу моей работы. Хотел использовать свой мобильный ПК для кабельной диагностики.

Заранее спасибо за Ваши ответы.
« Последнее редактирование: 17 Октября 2017, 09:34:26 от Azure »
E=MC2

Оффлайн F12

  • Администратор
  • Старожил
  • *
  • Сообщений: 4402
    • Просмотр профиля
... показывают на каком метре разрыв кабеля.
- подобный функционал встречал у старых, года эдак 2008, D-Link DIR-300, а вот у более современных, этого уже не было...

Оффлайн ViRuSTN

  • Автор темы
  • Новичок
  • *
  • Сообщений: 44
    • Просмотр профиля
... показывают на каком метре разрыв кабеля.
- подобный функционал встречал у старых, года эдак 2008, D-Link DIR-300, а вот у более современных, этого уже не было...

Тут вопрос стоит немного по другому. При наличии такой возможности в чипсете сетевой карты, как задействовать данную возможность в Ubuntu. Немного раскрою тему. На базе orange pi, собрал эдакий девайс мобильный для работы. Функционал покрывает почти все мои задачи сервисного инженера. Из под командной строки и пингую и проверяю сервисы. Но вот кабельной диагностики нехватает. Отдельный девайс на кристалле at mega16 есть. Но дружить его на физическом уровне с мобильным ещё сложнее, чем на уровне драйвера вызвать функцию диагностики, из поста выше.

Вопрос стоит в том, как это сделать имея сетевую карту с такой функцией. Был бы благодарен за решение, с удовольствием бы поделился готовым решением, после реализации.
E=MC2

Оффлайн suslikk

  • Старожил
  • *
  • Сообщений: 2485
    • Просмотр профиля
ViRuSTN, видел такой функционал только в некоторых роутерах и на свичах...
Нарисуй свой город на openstreetmap.org

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28358
    • Просмотр профиля
Да вы достали уже говорить, где вы его видели.
Вы вопрос прочитайте сначала, потом пишите в топик.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Чуть оффтопну
Отдельный девайс на кристалле at mega16 есть.
А можно ссылочку на девайс? Гуглить умею. Но хотелось бы проверенную железяку.

Оффлайн ViRuSTN

  • Автор темы
  • Новичок
  • *
  • Сообщений: 44
    • Просмотр профиля
А можно ссылочку на девайс? Гуглить умею. Но хотелось бы проверенную железяку.

Конечно. Вот ссылка на сей девайс: - http://robocraft.ru/blog/3002.html


Принцип работы на замере емкости кабеля. Очень спасает. Аналоги таких девайсов очень дорогие.

Админы, простите за офф топ :)
E=MC2

Оффлайн OldSamuray

  • Активист
  • *
  • Сообщений: 840
    • Просмотр профиля
Предположу, что длину покажет только на исправной линии
Посмотрел чужие костыли — не понравились — сделал свои, родные

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
ViRuSTN, спасибо, на досуге попробую сваять и испытать.

OldSamuray - любой линии. Знать расстояние до места обрыва часто тоже помогает в поиске неисправности. Даже примерное: 1 метр или 50.

Оффлайн OldSamuray

  • Активист
  • *
  • Сообщений: 840
    • Просмотр профиля
я про #define CableLen   0x2000 для релтека,
Посмотрел чужие костыли — не понравились — сделал свои, родные

 

Страница сгенерирована за 0.048 секунд. Запросов: 25.