У меня есть машина с Linux (на ядре 4.9.84 на Debian stretch) с картой thunderbold, поддерживаемой драйвером thunderbolt:

# lspci -s 09:00.0 -k
09:00.0 System peripheral: Intel Corporation DSL5320 Thunderbolt 2 NHI [Falcon Ridge 2C 2013]
        Kernel modules: thunderbolt

Однако модуль Thunderbolt не загружается и не может быть загружен:

# modprobe thunderbolt 
modprobe: ERROR: could not insert 'thunderbolt': Function not implemented

Нет сообщений в dmesg или еще. Как ни странно, если я запускаю этот insmod на любой машине под управлением Slackware, Debian, Ubuntu с разными ядрами в диапазоне от 4.4 до 4.9, все ответы совпадают: "Функция не реализована". Однако на виртуальной машине с ядром 4.14 modprobe thunderbolt работает нормально. Я не понимаю, что происходит?

1 ответ1

1

Более подробную информацию я нашел, прочитав документацию по ядру: Thunderbolt требует, чтобы вы вручную авторизировали свои устройства. Однако никакой полезности в существующих дистрибутивах для этого не существует. Вы также можете попробовать самостоятельно скомпилировать утилиту tbtadm находится здесь: https://github.com/intel/thunderbolt-software-user-space

Или пройдите небезопасный путь, как описано в документации к ядру:

Те пользователи, которые просто хотят подключить любое устройство без какой-либо ручной работы, могут добавить следующую строку в /etc/udev/rules.d/99-local.rules:

ACTION=="add", SUBSYSTEM=="thunderbolt", ATTR{authorized}=="0", ATTR{authorized}="1"

Это автоматически авторизует все устройства при их появлении. Однако имейте в виду, что это обходит уровни безопасности и делает систему уязвимой для атак DMA.

Теперь я вижу жесткий диск в автобусе, как описано в документации:

# cat /sys/bus/thunderbolt/devices/0-1/*_name
8big Rack Thunderbolt 2
LaCie

Глядя на вывод lspci, я нахожу его здесь:

0c:00.0 RAID bus controller: Device 1c19:0001 (rev b3)

Так что это какой-то RAID-контроллер, для которого требуется драйвер (какой? Это доступно для Linux? Кто знает).

Покопавшись в драйвере Windows, я определил, что он должен использовать RAID-контроллер Marvell. Теперь мне нужно найти, какой из них, и если драйвер Linux существует, попробуйте исправить драйвер, добавив идентификатор PCI 1c19:0001 в поддерживаемые. Звучит весело :) Давайте сначала попробуем mvsas ...

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