10-гигабитной локалкой уже никого не удивишь, много лет такое железо доступно на еБее и даже на местных сайтах бесплатных объявлений по совсем бросовым ценам. Дома я уже всё что можно было перевёл на 10G и не у дел остались только ноутбуки.
Существуют готовые thunderbolt↔SFP+ адаптеры, типа sonnettech Solo10G SFP+ но они стоят $230/17к руб и выше. Или QNAP QNA‑T310G1S $270/20к руб. Многовато для эпизодического использования, большую игру/фильм или дистрибутив на ноутбук я копирую не каждый день.
![](https://habrastorage.org/getpro/habr/upload_files/3d9/23f/d78/3d923fd78eff928651cff7f003887e97.jpg)
Другая мысль — взять кейс для внешних GPU (eGPU), он дешёвый если втыкается в m.2 слот, а разбирать ноут каждый раз, когда нужна сеть — так себе идея. Но кейсы, подключаемые через thunderbolt, не уступают по цене вышеназванным адаптерам:(
Готовый бокс раньше (пару лет назад) стоил в районе $300, но сейчас на али есть разные варианты:
![$280 за красивую коробку. $280 за красивую коробку.](https://habrastorage.org/getpro/habr/upload_files/a8e/aca/618/a8eaca618023ed5347462c93f9ff5d77.jpg)
![$180 без коробки но с креплением $180 без коробки но с креплением](https://habrastorage.org/getpro/habr/upload_files/811/786/29e/81178629e48c5e765baac528bc10700e.jpg)
![$155 за голую плату и странный переходник до неё $155 за голую плату и странный переходник до неё](https://habrastorage.org/getpro/habr/upload_files/c2a/212/28e/c2a21228e566dbc1bd3b67e24965e237.jpg)
Железо
Вот этот последний вариант меня и заинтересовал, уж очень подозрительно он похож на переходник для nvme‑ssd. Который и был довольно быстро обнаружен и заказан.
![](https://habrastorage.org/getpro/habr/upload_files/ae1/039/901/ae103990178391ba1ed5a62d0370c27b.jpg)
Адаптер 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 оказались наименее требовательны к питанию и заводились при ручном втыкании проводов.
![Первый блин (почти не-комом) Первый блин (почти не-комом)](https://habrastorage.org/getpro/habr/upload_files/e4c/021/adc/e4c021adc706ec078236a60f0d31c254.jpg)
Чтобы каждый раз не жонглировать кабелями (usb-c и внешнего питания), пришлось спаять ключ на 12v из того, что было под рукой:
![](https://habrastorage.org/getpro/habr/upload_files/d98/22d/00d/d9822d00dfd391eab71311241edc82c2.jpg)
После этого завелись другие карточки, например, сетевуха solarflare и даже GTX710, но такой минимальный вариант работает с определёнными проблемами:
При отключении thunderbolt‑кабеля от ноута драйвер mellanox очень удивляется и начинает целиком пожирать одно ядро процессора;
Solarflare удивляется меньше, но после пере‑подключения кабеля сетевуху уже не видит;
Сеть не набирает полную скорость, потому что мы ограничены не только 4-мя линиями PCIe в переходнике thunderbolt, а только 2-мя линиями которые разведены на
зелёной какашкедешёвом переходнике с m.2...
Первые две проблемы удалось решить так: после долгого перебора в devmgmt.msc того, что можно выключать, а что не очень, выяснилось, что надо отключить PCIe Upstream Switch Port, он за собой утаскивает Downstream и саму сетевуху. Только после этого можно отключать провод, и при следующем включении все устройства вернутся обратно. Не очень удобно, но наверное можно написать какой‑то скрипт...
![](https://habrastorage.org/getpro/habr/upload_files/884/419/b31/884419b314c6ffb0e244bad56bd70d10.jpg)
А вот для решения третьей проблемы пришлось снова идти на алиэкспресс и в куче китайского говразнообразия искать нормальный переходник на 4 линии.
И паять на него ключ для питания. Я решил выпендриться и сделать типа-SMD-монтаж, воспользовавшись присланными когда-то в довоенное время семплами от NXP, в частности готовым ключем PMC85XP.
Итак, встречайте mad skillz! Фото голых плат, 18+
![](https://habrastorage.org/getpro/habr/upload_files/7dc/3f9/836/7dc3f9836b82649ffa4e5cb976a4ff0b.jpg)
![](https://habrastorage.org/getpro/habr/upload_files/597/525/db0/597525db0657d476ccfc86edb11e12ee.jpg)
Итоговый результат:
![](https://habrastorage.org/getpro/habr/upload_files/d3c/939/f26/d3c939f26c369b668155a6cab5c34a1e.jpg)
Софтовая часть
Теперь насчёт софта: какое-то время я так и пользовался, вручную выключая порт в девайс-менеджере. Но недавно решил снова поднять эту тему и сделать что-то похожее на меню извлечения флэшек.
![](https://habrastorage.org/getpro/habr/upload_files/820/896/00b/82089600badbf79cfd7ebf741a128eac.png)
К сожалению, малой кровью это решить не удалось: devcon.exe и подобные ему тулзы напрочь отказываются работать с уже покинувшими систему устройствами. Поэтому пришлось писать свою программу.
Для прикола решил воспользоваться новомодным языком zig. Всё оказалось достаточно просто. Для извлечения устройств полно примеров как в msdn, так и разнообразного опенсорса на гитхабе. Кода всего получилось меньше 300 строк: main.zig
Поначалу тулза был консольная (так проще), но потом я решил прикрутить меню, похожее на «извлекалку флэшек». Сил хватило только на само меню, поэтому после красивого графического выбора устройства на вас выпрыгнет консоль и будет писать, что она делает:
![](https://habrastorage.org/getpro/habr/upload_files/f15/244/c43/f15244c4373b88bbd658958cd6dda5cb.png)
Я уже много лет не писал GUI-приложения, а особенно на незнакомых языках, но всё оказалось достачно просто: кроме неочевидного требования создать хоть какое-то окно, всё что требуется — вызвать метод TrackPopupMenu и дело в шляпе!
Больше всего времени у меня ушло на вытаскивание иконок устройств. Из-за желания windows сохранять обратную совместимость с совсем древними версиями, а так же неуёмного желания программистов придумать «новый самый лучший API», для этой цели в Windows есть как минимум 5 разных подходов, но иконки как в системном меню (и devmgmt) даёт только один, и естественно, я его попробовал самым последним...
Новый язык прогаммирования мне очень понравился, можно заслуженно назвать его “better C” (по аналогии, как Rust называют “better C++”). Но он всё ещё находится в активной разработке, поэтому самая свежайшая версия компилятора мой код уже не соберёт.
Если кому интересно, то исходники доступны на гитхабе. И нужная версия компилятора (со ссылкой откуда скачать) там тоже указана.
В заключение, вопрос к читателям: пользовались ли вы eGPU? И пробовали ли туда включать что-то кроме собственно самих GPU?
Комментарии (16)
buldo
00.00.0000 00:00А как же обычные usb3 10GBs сетевухи? Что с ними не так?
aik
00.00.0000 00:00А они есть? Я видел 2.5Gbps, вроде как про пять гигабит слышал. Но вот про десять пока не слышал, если не считать тандерболтнутых из первого пункта.
atd Автор
00.00.0000 00:00> Что с ними не так?
Не знаю, наверное всё так. Но два года назад, когда я купил этот переходник, я про них не знал. Да если честно и сейчас не смог нагуглить. Не поделитесь ссылкой?
aik
00.00.0000 00:00+4Это всё было затеяно для какой-то конкретной цели? Или это из цикла "приколись братва, как я могу"?
Просто десять гигабит на ноуте даже не знаю, зачем может быть нужно. Если больше гигабита надо, можно 2.5G взять. Или пять гигабит — их есть, посмотрел сейчас. И стоит вполне сравнимо с выносным pci-e.
PS. По внешним видюшкам — думал для ноута, но прикинул цену вопроса и решил, что лучше уж вокруг видюшки системник соберу средней паршивости, по цене выйдет как коробка для gpu. Ещё видел извращенцев, которые к стимдеку внешнее видео прикручивают вместо ssd.
atd Автор
00.00.0000 00:00Обычно работать с фотками на общем NAS например, по скорости почти как локальный nvme (ладно, в пару раз медленней, но не в 10 же). А из последнего: дистрибутив ISTA+, который весит 170GB, качать такое на гигабите замучаешься, на флэшку копировать тоже...
Хотя иногда бывает что я и от 10G-интернета бы не отказался ))
Или пять гигабит — их есть, посмотрел сейчас.
Да, но под них нужен особый свитч (как и под медный же 10G)...
> Или это из цикла "приколись братва, как я могу"?
Но это, наверное, основной повод
atd Автор
00.00.0000 00:00P.S.: а ноут-с-ноутом можно соединить напрямую thunderbolt-кабелем, для tb3 получается 20G сеть. Ну либо с десктопом с tb-портом, но на десктопах такое пока что редкость...
AndreyDmitriev
00.00.0000 00:00Просто десять гигабит на ноуте даже не знаю, зачем может быть нужно
бывает всякое. К примеру у меня на работе камера, которая снимает 12800 кадров в секунду, 12 бит 1024х1024. Внутри у неё буфер 128 ГБ, который она заполняет чуть меньше чем за семь секунд, ну и хочется его выгрузить как можно быстрее для следующей съёмки, иногда в полевых условиях. У неё как раз 10 гиг, причём ни 2,5 ни 5 скорости она не понимает, только 1 или 10.
aik
00.00.0000 00:00+3Решение из статьи как-то не тянет на полевое.
atd Автор
00.00.0000 00:00Не тянет. Была мысль сделать для этого дела удобную коробочку, и брать 12v от ноута же (по второму порту, через usb-c триггер), но энтузазизм иссяк, увы
kahi4
00.00.0000 00:00+1Описание камеры звучит так, что она стоит как десяток переходников с парой ноутбуков сверху. Наверное, для такой узкой задачи можно и раскошелиться. Интересно что она th4 не поддерживает из коробки.
artursn12
00.00.0000 00:00А диск успевает писать со скоростью 10гб? Вам нужно 10гб чтоб были 10гб или реально хоть раз в месяц качаете больше 1 тб в сутки?
Гигабитной сетевой карты под ваши задачи не хватает?
atd Автор
00.00.0000 00:00С гигабитом ну ооочень уныло. Диск успевает, nvme-диски в основной буффер умеют писать даже быстрее (20-40 гбит), раньше этот буффер был небольшой, но производители постоянно его увеличивают.
качаете больше 1 тб в сутки?
Обычно задача не скачать 1тб, а работать с файлами на скорости локального диска, например с фотками.
Есть другая задача, когда надо «очень по-быстрому закинуть файл размером 10-15гб и куда-то спешить с ноутом», такое случается 1, максимум 2 раза в месяц, может можно было бы решить как-то по-другому, но не пылиться же железу ))
vtal007
[если оно так редко надо, то может проще внешним диском переносить. ну или терпеть эти несчастные (скок там по вайфай6) минуты копирования ]
Одно время интересовался подключением внешней видюхи к m2, но почитал насколько это геморно. Проще игровой ноут купить. А типовой ноут еще и в возможности проца упрется (и проца и охлада)
в целом внешние видюхи были востребованы у маководов, наскок я понимаю. Но сейчас у них "встройка" худо-бедно тащит, что портировано на мак