10-гигабитной локалкой уже никого не удивишь, много лет такое железо доступно на еБее и даже на местных сайтах бесплатных объявлений по совсем бросовым ценам. Дома я уже всё что можно было перевёл на 10G и не у дел остались только ноутбуки.

Существуют готовые thunderbolt↔SFP+ адаптеры, типа sonnettech Solo10G SFP+ но они стоят $230/17к руб и выше. Или QNAP QNA‑T310G1S $270/20к руб. Многовато для эпизодического использования, большую игру/фильм или дистрибутив на ноутбук я копирую не каждый день.

Другая мысль — взять кейс для внешних GPU (eGPU), он дешёвый если втыкается в m.2 слот, а разбирать ноут каждый раз, когда нужна сеть — так себе идея. Но кейсы, подключаемые через thunderbolt, не уступают по цене вышеназванным адаптерам:(

Готовый бокс раньше (пару лет назад) стоил в районе $300, но сейчас на али есть разные варианты:

$280 за красивую коробку.
$280 за красивую коробку.
$180 без коробки но с креплением
$180 без коробки но с креплением
$155 за голую плату и странный переходник до неё
$155 за голую плату и странный переходник до неё

Железо

Вот этот последний вариант меня и заинтересовал, уж очень подозрительно он похож на переходник для nvme‑ssd. Который и был довольно быстро обнаружен и заказан.

Адаптер ORICO для SSD приехал очень быстро и даже работает с нвме‑диском. В комплекте шланг тандерболт 3 на 40гбпс. На кабель 10G(usb3) жалуется и не работает, вообще никак, даже со сниженной скоростью. Кабели thunderbolt3 длиной 1м стоят от $15+, похоже придётся раскошелиться или терпеть короткий провод.

Тандерболт построен на базе Intel® JHL6340 4 lanes of PCI Express Gen 3, такие же чипы стоят, например, в разеровском eGPU. Правда, кроме рекламного буклета на них ничего в интернете не известно, а даташит интел зажопил.

Голые платы делают вот эти китайцы, если кто‑то имеет опыт розничных заказов с алибабы, то выгоднее взять там. Как показала беглая гуглёжка, моя идея не нова, и кто‑то уже успел с таким сетапом огрести проблемы.

У меня тоже завелось всё не сразу, дело в том, что сетевым картам (да и много каким другим устройствам PCIe) требуется питание 12V. Причём, нужно соблюдать правильный power sequence: в идеале 12v и 3.3v нужно подавать одновременно, ну или 12v чуть‑чуть позднее, чем 3v3. Из всего, что у меня было, только карты Mellanox оказались наименее требовательны к питанию и заводились при ручном втыкании проводов.

Первый блин (почти не-комом)
Первый блин (почти не-комом)

Чтобы каждый раз не жонглировать кабелями (usb-c и внешнего питания), пришлось спаять ключ на 12v из того, что было под рукой:

После этого завелись другие карточки, например, сетевуха solarflare и даже GTX710, но такой минимальный вариант работает с определёнными проблемами:

  1. При отключении thunderbolt‑кабеля от ноута драйвер mellanox очень удивляется и начинает целиком пожирать одно ядро процессора;

  2. Solarflare удивляется меньше, но после пере‑подключения кабеля сетевуху уже не видит;

  3. Сеть не набирает полную скорость, потому что мы ограничены не только 4-мя линиями PCIe в переходнике thunderbolt, а только 2-мя линиями которые разведены на зелёной какашке дешёвом переходнике с m.2...

Первые две проблемы удалось решить так: после долгого перебора в devmgmt.msc того, что можно выключать, а что не очень, выяснилось, что надо отключить PCIe Upstream Switch Port, он за собой утаскивает Downstream и саму сетевуху. Только после этого можно отключать провод, и при следующем включении все устройства вернутся обратно. Не очень удобно, но наверное можно написать какой‑то скрипт...

А вот для решения третьей проблемы пришлось снова идти на алиэкспресс и в куче китайского говразнообразия искать нормальный переходник на 4 линии.

И паять на него ключ для питания. Я решил выпендриться и сделать типа-SMD-монтаж, воспользовавшись присланными когда-то в довоенное время семплами от NXP, в частности готовым ключем PMC85XP.

Итак, встречайте mad skillz! Фото голых плат, 18+

Итоговый результат:

Софтовая часть

Теперь насчёт софта: какое-то время я так и пользовался, вручную выключая порт в девайс-менеджере. Но недавно решил снова поднять эту тему и сделать что-то похожее на меню извлечения флэшек.

К сожалению, малой кровью это решить не удалось: devcon.exe и подобные ему тулзы напрочь отказываются работать с уже покинувшими систему устройствами. Поэтому пришлось писать свою программу.

Для прикола решил воспользоваться новомодным языком zig. Всё оказалось достаточно просто. Для извлечения устройств полно примеров как в msdn, так и разнообразного опенсорса на гитхабе. Кода всего получилось меньше 300 строк: main.zig

Поначалу тулза был консольная (так проще), но потом я решил прикрутить меню, похожее на «извлекалку флэшек». Сил хватило только на само меню, поэтому после красивого графического выбора устройства на вас выпрыгнет консоль и будет писать, что она делает:

Я уже много лет не писал GUI-приложения, а особенно на незнакомых языках, но всё оказалось достачно просто: кроме неочевидного требования создать хоть какое-то окно, всё что требуется — вызвать метод TrackPopupMenu и дело в шляпе!

Больше всего времени у меня ушло на вытаскивание иконок устройств. Из-за желания windows сохранять обратную совместимость с совсем древними версиями, а так же неуёмного желания программистов придумать «новый самый лучший API», для этой цели в Windows есть как минимум 5 разных подходов, но иконки как в системном меню (и devmgmt) даёт только один, и естественно, я его попробовал самым последним...

Новый язык прогаммирования мне очень понравился, можно заслуженно назвать его “better C” (по аналогии, как Rust называют “better C++”). Но он всё ещё находится в активной разработке, поэтому самая свежайшая версия компилятора мой код уже не соберёт.

Если кому интересно, то исходники доступны на гитхабе. И нужная версия компилятора (со ссылкой откуда скачать) там тоже указана.

В заключение, вопрос к читателям: пользовались ли вы eGPU? И пробовали ли туда включать что-то кроме собственно самих GPU?

Комментарии (16)


  1. vtal007
    00.00.0000 00:00
    +1

    [если оно так редко надо, то может проще внешним диском переносить. ну или терпеть эти несчастные (скок там по вайфай6) минуты копирования ]

    Одно время интересовался подключением внешней видюхи к m2, но почитал насколько это геморно. Проще игровой ноут купить. А типовой ноут еще и в возможности проца упрется (и проца и охлада)

    в целом внешние видюхи были востребованы у маководов, наскок я понимаю. Но сейчас у них "встройка" худо-бедно тащит, что портировано на мак


  1. buldo
    00.00.0000 00:00

    А как же обычные usb3 10GBs сетевухи? Что с ними не так?


    1. aik
      00.00.0000 00:00

      А они есть? Я видел 2.5Gbps, вроде как про пять гигабит слышал. Но вот про десять пока не слышал, если не считать тандерболтнутых из первого пункта.


    1. atd Автор
      00.00.0000 00:00

      > Что с ними не так?

      Не знаю, наверное всё так. Но два года назад, когда я купил этот переходник, я про них не знал. Да если честно и сейчас не смог нагуглить. Не поделитесь ссылкой?


      1. buldo
        00.00.0000 00:00

        Действительно, ошибся. Когда-то читал про 2.5G адаптеры, а запомнил как 10G


    1. ENDermany
      00.00.0000 00:00

      Так сам USB3.2 Gen 1 передает всего 5GBs, а Gen 2 не так популярны


  1. aik
    00.00.0000 00:00
    +4

    Это всё было затеяно для какой-то конкретной цели? Или это из цикла "приколись братва, как я могу"?


    Просто десять гигабит на ноуте даже не знаю, зачем может быть нужно. Если больше гигабита надо, можно 2.5G взять. Или пять гигабит — их есть, посмотрел сейчас. И стоит вполне сравнимо с выносным pci-e.


    PS. По внешним видюшкам — думал для ноута, но прикинул цену вопроса и решил, что лучше уж вокруг видюшки системник соберу средней паршивости, по цене выйдет как коробка для gpu. Ещё видел извращенцев, которые к стимдеку внешнее видео прикручивают вместо ssd.


    1. atd Автор
      00.00.0000 00:00

      Обычно работать с фотками на общем NAS например, по скорости почти как локальный nvme (ладно, в пару раз медленней, но не в 10 же). А из последнего: дистрибутив ISTA+, который весит 170GB, качать такое на гигабите замучаешься, на флэшку копировать тоже...

      Хотя иногда бывает что я и от 10G-интернета бы не отказался ))

      Или пять гигабит — их есть, посмотрел сейчас.

      Да, но под них нужен особый свитч (как и под медный же 10G)...

      > Или это из цикла "приколись братва, как я могу"?

      Но это, наверное, основной повод


      1. atd Автор
        00.00.0000 00:00

        P.S.: а ноут-с-ноутом можно соединить напрямую thunderbolt-кабелем, для tb3 получается 20G сеть. Ну либо с десктопом с tb-портом, но на десктопах такое пока что редкость...


    1. AndreyDmitriev
      00.00.0000 00:00

      Просто десять гигабит на ноуте даже не знаю, зачем может быть нужно

      бывает всякое. К примеру у меня на работе камера, которая снимает 12800 кадров в секунду, 12 бит 1024х1024. Внутри у неё буфер 128 ГБ, который она заполняет чуть меньше чем за семь секунд, ну и хочется его выгрузить как можно быстрее для следующей съёмки, иногда в полевых условиях. У неё как раз 10 гиг, причём ни 2,5 ни 5 скорости она не понимает, только 1 или 10.


      1. aik
        00.00.0000 00:00
        +3

        Решение из статьи как-то не тянет на полевое.


        1. atd Автор
          00.00.0000 00:00

          Не тянет. Была мысль сделать для этого дела удобную коробочку, и брать 12v от ноута же (по второму порту, через usb-c триггер), но энтузазизм иссяк, увы


        1. kahi4
          00.00.0000 00:00
          +1

          Описание камеры звучит так, что она стоит как десяток переходников с парой ноутбуков сверху. Наверное, для такой узкой задачи можно и раскошелиться. Интересно что она th4 не поддерживает из коробки.


  1. aik
    00.00.0000 00:00

    .


  1. artursn12
    00.00.0000 00:00

    А диск успевает писать со скоростью 10гб? Вам нужно 10гб чтоб были 10гб или реально хоть раз в месяц качаете больше 1 тб в сутки?

    Гигабитной сетевой карты под ваши задачи не хватает?


    1. atd Автор
      00.00.0000 00:00

      С гигабитом ну ооочень уныло. Диск успевает, nvme-диски в основной буффер умеют писать даже быстрее (20-40 гбит), раньше этот буффер был небольшой, но производители постоянно его увеличивают.

      качаете больше 1 тб в сутки?

      Обычно задача не скачать 1тб, а работать с файлами на скорости локального диска, например с фотками.

      Есть другая задача, когда надо «очень по-быстрому закинуть файл размером 10-15гб и куда-то спешить с ноутом», такое случается 1, максимум 2 раза в месяц, может можно было бы решить как-то по-другому, но не пылиться же железу ))