Из-за возможности атак DMA со стороны подключённых устройств Thunderbolt в Linux и других платформах на протяжении многих лет создавались средства защиты и различные уровни безопасности для Thunderbolt, чтобы лучше защищать системы с этим высокоскоростным интерфейсом, предоставляющим доступ к PCIe. В грядущем ядре Linux 6.13 логика ядра будет усовершенствована для более эффективного обнаружения и проверки встроенных контроллеров Thunderbolt.
Эстер Шиманович из Google подготовила патч для обнаружения и проверки встроенных чипов Thunderbolt. Эстер объясняет, что патч был добавлен в ветку «thunderbolt» подсистемы PCI перед окном слияния Linux 6.13:
Некоторые компьютеры с процессорами, в которых отсутствуют функции Thunderbolt, используют дискретные чипы Thunderbolt для добавления функций Thunderbolt. Эти чипы Thunderbolt расположены внутри корпуса между корневым портом с маркировкой ExternalFacingPort и портом USB-C.
Эти устройства Thunderbolt PCIe должны быть помечены как фиксированные и доверенные, поскольку они встроены в компьютер. В противном случае политики безопасности, основанные на этих флагах, могут привести к непредвиденным результатам, например к невозможности перечисления портов USB-C.
Обнаружьте вышеупомянутый сценарий с помощью процесса устранения.
1) Интегрированные контроллеры хоста Thunderbolt уже поддерживают Thunderbolt, поэтому всё, что находится за пределами их внешнего корневого порта, является съёмным и ненадёжным.
Обнаруживайте их, используя следующие свойства:
- Большинство встроенных хост-контроллеров имеют свойство ACPI «usb4-host-interface».
- Встроенные корневые порты Thunderbolt PCIe до Alder Lake не имеют свойства usb4-host-interface ACPI. Вместо этого идентифицируйте их по идентификаторам PCI.
2) Если корневой порт не имеет встроенных возможностей Thunderbolt, но имеет свойство ACPI «ExternalFacingPort», это означает, что производитель решил использовать отдельный хост-контроллер Thunderbolt, встроенный в компьютер.
Этот хост-контроллер можно идентифицировать по тому, что он расположен непосредственно под внешним корневым портом, в котором отсутствует встроенный Thunderbolt. Пометьте его как доверенный и исправный.
Все, что ниже по потоку, является ненадежным и удаляемым.
Таким образом, это изменение, ожидаемое в Linux 6.13, должно решить проблему, из-за которой порты USB-C/Thunderbolt иногда не распознаются в Linux.
Окно слияния Linux 6.13 откроется в конце этого месяца, а стабильное ядро Linux 6.13 дебютирует в феврале.