4

У меня Dell Precision M3800 и док-станция OWC Thunderbolt 2.  Они оба прекрасно работают вместе, и все, кажется, просто работает.  Я еще не пробовал FireWire, но Ethernet, USB3, DisplayPort и звук отлично работают из коробки.

Моя система не совсем довольна выдергиванием кабеля Thunderbolt и иногда зависала, когда я снимал док; В других случаях это было хорошо. Я хотел бы найти более безопасный путь и надеялся, что, возможно, появится механизм, с помощью которого я смогу сообщить своей системе, что я собираюсь отключить ее и сначала аккуратно отключить интерфейсы.

Я пробовал искать пакеты и информацию о поддержке Thunderbolt в Linux и нашел только блог Грега КХ, в котором говорится, что он будет работать, но не упомянул никаких инструментов.

Я не нашел пакетов, связанных с Thunderbolt, в репозиториях Ubuntu для моей установки 15.10.

Есть ли инструменты или узлы /proc или /sys, которые я мог бы использовать для этого?

3 ответа3

3

Thunderbolt - это, по сути, шина PCIe, представленная в виде удобного в использовании подключаемого интерфейса. Как вы можете себе представить, горячее подключение карты PCIe к любому компьютеру - это не то, что вы можете ожидать без проблем - если только не будут предприняты особые усилия со стороны производителей хоста и съемных устройств, а также разработчиков материнской платы прошивка, прошивка устройства, ядро ОС и драйверы устройства.

Все это означает, что существует огромная площадь потенциальных ошибок и проблем, которые могут помешать этой горячей замене работать так, как мы этого хотим. Я бы порекомендовал использовать отладочное ядро и пытаться взломать отладчик, когда он зависает - если вы можете, то, вероятно, это не проблема аппаратного или микропрограммного обеспечения. Инструкции по выполнению этого, возможно, немного выходят за рамки вопроса или моего ответа здесь, но в Интернете доступны ресурсы, которые делают это немного легче.

Теперь, если вам нужно средство, с помощью которого вы можете вручную извлечь устройство до его извлечения, вы можете попробовать следующее:

После определения адреса устройства в системе в выводе команды lspci , где DDDD:BB:DD.F - это домен: шина: устройство.Назначение периферийного устройства молнии:

05:00.0 PCI bridge: Intel Corporation DSL3510 Thunderbolt Port [Cactus Ridge] (rev 03)
06:00.0 PCI bridge: Intel Corporation DSL3510 Thunderbolt Port [Cactus Ridge] (rev 03)
06:03.0 PCI bridge: Intel Corporation DSL3510 Thunderbolt Port [Cactus Ridge] (rev 03)
06:04.0 PCI bridge: Intel Corporation DSL3510 Thunderbolt Port [Cactus Ridge] (rev 03)
06:05.0 PCI bridge: Intel Corporation DSL3510 Thunderbolt Port [Cactus Ridge] (rev 03)
06:06.0 PCI bridge: Intel Corporation DSL3510 Thunderbolt Port [Cactus Ridge] (rev 03)
07:00.0 System peripheral: Intel Corporation DSL3510 Thunderbolt Port [Cactus Ridge] (rev 03)
08:00.0 PCI bridge: Intel Corporation DSL3510 Thunderbolt Controller [Cactus Ridge]
09:00.0 PCI bridge: Intel Corporation DSL3510 Thunderbolt Controller [Cactus Ridge]

Вы можете выполнить следующее:

echo "1" | sudo tee /sys/bus/pci/devices/DDDD\:BB\:DD.F/remove > /dev/null

Который должен запускать процедуры выгрузки в ядре и драйвере (и, возможно, даже в прошивке устройства), после чего вы сможете извлечь его более безопасно. (Очевидно, что grep в подоболочке может заменить DDDD:BB:DD.F для простоты использования в будущем).

После повторного подключения устройства может потребоваться выполнить повторное сканирование вручную:

echo "1" | sudo tee /sys/bus/pci/rescan > /dev/null

(Или это может не понадобиться.)

Я давно не пользовался Linux, так как сейчас я почти исключительно на FreeBSD и OS X, поэтому, пожалуйста, прости меня, если я не в чём-то здесь.

2

кажется, что если вы выполните команду lspci -vt, вы получите древовидную диаграмму, которая значительно упростит обнаружение контроллера thunderbolt.

вот мой вывод

amias@rome:~$ lspci -vt

-[0000:00]-+-00.0  Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller
       +-01.0-[02-03]----00.0  NVIDIA Corporation GK107GLM [Quadro K1100M]
       +-02.0  Intel Corporation 4th Gen Core Processor Integrated Graphics Controller
       +-03.0  Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller
       +-04.0  Intel Corporation Device 0c03
       +-14.0  Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI
       +-16.0  Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1
       +-1a.0  Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2
       +-1b.0  Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller
       +-1c.0-[04]--
       +-1c.2-[06]----00.0  Intel Corporation Wireless 7260
       +-1c.3-[07]----00.0  Realtek Semiconductor Co., Ltd. RTS5249 PCI Express Card Reader
       +-1c.4-[08-40]----00.0-[09-40]--+-00.0-[0a]----00.0  Intel Corporation Device 157d
       |                               \-01.0-[0b-40]----00.0-[0c-40]--+-00.0-[0d]----00.0  Fresco Logic FL1100 USB 3.0 Host Controller
       |                                                               +-01.0-[0e]----00.0  Intel Corporation I210 Gigabit Network Connection
       |                                                               +-02.0-[0f]----00.0  Fresco Logic FL1100 USB 3.0 Host Controller
       |                                                               +-03.0-[10]----00.0  LSI Corporation FW643 [TrueFire] PCIe 1394b Controller
       |                                                               +-04.0-[11]--
       |                                                               \-05.0-[12-40]--
       +-1d.0  Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1
       +-1f.0  Intel Corporation HM87 Express LPC Controller
       +-1f.2  Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode]
       +-1f.3  Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller
       \-1f.6  Intel Corporation 8 Series Chipset Family Thermal Management Controller

это позволило мне найти 1с.4, который, кажется, мой контроллер молнии.

Затем я воспользовался предложением Махмуда, чтобы поразить узел удаления, это, казалось, действительно отключило мой док молнии, однако, когда я снова вставил его, заблокирован сильно. Это говорит о том, что другие драйверы не очень довольны «горячей» заменой, или мне нужно было бы перезагрузить устройство Thunderbolt.

В любом случае, это было хуже, чем просто вытащить его.

Я думаю, сейчас мне просто нужно убедиться, что все сохранено перед расстыковкой. Буду рад дальнейшим предложениям, если они есть.

1

Вы можете попробовать приостановить работу вашей системы в ОЗУ, а затем вынуть кабель. Это единственный способ отключить док-станцию Lenovo Thunderbolt 3 без перезагрузки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .