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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

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

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

Оффлайн ViRuSTN

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

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

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

Устройству для доступа нужен физический адрес, который запоминается в поле tx_bufs_dma. Ниже приведен список смещений регистров, используемых в исходном коде. Более подробную информацию об этих значениях Вы можете получить из спецификаций RealTek8139.
Код: C
  1. #define TX_BUF_SIZE  1536  /* should be at least MTU + 14 + 4 */
  2. #define TOTAL_TX_BUF_SIZE  (TX_BUF_SIZE * NUM_TX_SIZE)
  3.  
  4. /* 8139 register offsets */
  5. #define TSD0          0x10
  6. #define TSAD0       0x20
  7. #define RBSTART  0x30
  8. #define CR               0x37
  9. #define CAPR         0x38
  10. #define IMR            0x3c
  11. #define ISR             0x3e
  12. #define TCR           0x40
  13. #define RCR           0x44
  14. #define MPC           0x4c
  15. #define MULINT    0x5c
  16.  
  17. /* TSD register commands */
  18. #define TxHostOwns    0x2000
  19. #define TxUnderrun    0x4000
  20. #define TxStatOK      0x8000
  21. #define TxOutOfWindow 0x20000000
  22. #define TxAborted     0x40000000
  23. #define TxCarrierLost 0x80000000
  24.  
  25. /* CR register commands */
  26. #define RxBufEmpty 0x01
  27. #define CmdTxEnb   0x04
  28. #define CmdRxEnb   0x08
  29. #define CmdReset   0x10
  30.  
  31. /* ISR Bits */
  32. #define RxOK       0x01
  33. #define RxErr      0x02
  34. #define TxOK       0x04
  35. #define TxErr      0x08
  36. #define RxOverFlow 0x10
  37. #define RxUnderrun 0x20
  38. #define RxFIFOOver 0x40
  39. #define CableLen   0x2000
  40. #define TimeOut    0x4000
  41. #define SysErr     0x8000
  42.  
  43. #define INT_MASK (RxOK | RxErr | TxOK | TxErr | \
  44.                RxOverFlow | RxUnderrun | RxFIFOOver | \
  45.                CableLen | TimeOut | SysErr)

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

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

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

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

Оффлайн F12

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

Оффлайн ViRuSTN

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

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

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

Оффлайн suslikk

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

Оффлайн AnrDaemon

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

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

Оффлайн fisher74

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

Оффлайн ViRuSTN

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

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


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

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

Оффлайн OldSamuray

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

Оффлайн fisher74

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

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

Оффлайн OldSamuray

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

 

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