Вопрос или проблема
У меня есть Dell XPS 13 9340 с последней BIOS версии 1.70, работающий на полностью обновленном Ubuntu 24.04 Desktop. Всё работает отлично… за исключением того, что мой концентратор Anker 556 не работает. Имейте в виду, что Anker 556 не является Thunderbolt, это просто концентратор, который поддерживает USB4. Но я подключаю его к порту Thunderbolt4…
Основываясь на документации ядра, я применил следующее правило udev:
ACTION=="add", SUBSYSTEM=="thunderbolt", ATTRS{iommu_dma_protection}=="1", ATTR{authorized}=="0", ATTR{authorized}="1"
Когда я подключаю концентратор Anker 556, я вижу, как система загружает контроллер Thunderbolt:
[ 1.051480] kernel: ACPI: type bus thunderbolt registered
[ 1.053748] kernel: xhci_hcd 0000:00:14.0: контроллер xHCI
[ 1.053756] kernel: xhci_hcd 0000:00:14.0: новый USB-шина зарегистрирована, назначен номер шины 1
[ 1.055227] kernel: xhci_hcd 0000:00:14.0: параметры hcc 0x20007fc1 версия hci 0x120 особенности 0x0000000200009810
[ 1.055558] kernel: xhci_hcd 0000:00:14.0: контроллер xHCI
[ 1.055561] kernel: xhci_hcd 0000:00:14.0: новый USB-шина зарегистрирована, назначен номер шины 2
[ 1.055564] kernel: xhci_hcd 0000:00:14.0: контроллер поддерживает USB 3.2 Enhanced SuperSpeed
[ 1.055815] kernel: usb usb1: Найдено новое USB устройство, idVendor=1d6b, idProduct=0002, bcdDevice= 6.08
[ 1.055819] kernel: usb usb1: Новые строки USB устройств: Mfr=3, Product=2, SerialNumber=1
[ 1.055820] kernel: usb usb1: Продукт: контроллер xHCI
[ 1.055821] kernel: usb usb1: Производитель: Linux 6.8.0-1008-oem xhci-hcd
[ 1.055822] kernel: usb usb1: Серийный номер: 0000:00:14.0
Он отлично видит Anker 556:
[ 1.807165] kernel: usb 1-1.5: новое USB устройство полной скорости номер 4 использует xhci_hcd
[ 1.910660] kernel: usb 1-1.5: не работает на максимальной скорости; подключите к высокоскоростному концентратору
[ 1.917804] kernel: usb 1-1.5: найдено новое USB устройство, idVendor=291a, idProduct=83a8, bcdDevice=10.02
[ 1.917809] kernel: usb 1-1.5: новые строки USB устройств: Mfr=1, Product=2, SerialNumber=3
[ 1.917811] kernel: usb 1-1.5: Продукт: USB2.0 Billboard N0
[ 1.917812] kernel: usb 1-1.5: Производитель: Anker
[ 1.917813] kernel: usb 1-1.5: Серийный номер: AHCZ340E20200065
Однако, согласно journalctl -u bolt
, у меня есть проблемы:
22 июл 13:44:26 нетбук systemd[1]: Запуск bolt.service - сервис системы Thunderbolt...
22 июл 13:44:26 нетбук boltd[1846]: bolt 0.9.7 запускается.
22 июл 13:44:26 нетбук boltd[1846]: менеджер: инициализация магазина
22 июл 13:44:26 нетбук boltd[1846]: магазин: расположен по адресу: /var/lib/boltd
22 июл 13:44:26 нетбук boltd[1846]: конфигурация: загрузка пользовательской конфигурации
22 июл 13:44:26 нетбук boltd[1846]: конфигурация: пользовательская конфигурация загружена успешно
22 июл 13:44:26 нетбук boltd[1846]: конфигурация: режим авторизации установлен на 'включен'
22 июл 13:44:26 нетбук boltd[1846]: боец: инициализация polkit
22 июл 13:44:26 нетбук boltd[1846]: таймер: включен [pulse: 90s]
22 июл 13:44:26 нетбук boltd[1846]: udev: инициализация udev
22 июл 13:44:26 нетбук boltd[1846]: магазин: загрузка доменов
22 июл 13:44:26 нетбук boltd[1846]: магазин: загрузка устройств
22 июл 13:44:26 нетбук boltd[1846]: питание: состояние расположено по адресу: /run/boltd/power
22 июл 13:44:26 нетбук boltd[1846]: питание: принудительная поддержка питания: нет
22 июл 13:44:26 нетбук boltd[1846]: udev: перечисление устройств
22 июл 13:44:26 нетбук boltd[1846]: [aa1b8780-f062-domain0 ] вновь подключен [iommu+user] (/sys/devices/pci0000:00/0000:00:0d.2/domain0/0-0)
22 июл 13:44:26 нетбук boltd[1846]: уровень безопасности установлен на 'пользователь'
22 июл 13:44:26 нетбук boltd[1846]: [aa1b8780-f062-domain0 ] домен: зарегистрирован (bootacl: 0/0)
22 июл 13:44:26 нетбук boltd[1846]: [aa1b8780-f062-domain0 ] bootacl: bootacl не поддерживается, нет синхронизации
22 июл 13:44:26 нетбук boltd[1846]: [aa1b8780-f062-domain0 ] udev: не удалось определить, является ли uid стабильным: неизвестный NHI PCI id '0x7ec2'
22 июл 13:44:26 нетбук boltd[1846]: [aa1b8780-f062-domain0 ] udev: uuid стабильный: нет (для NHI: 0x7ec2)
22 июл 13:44:26 нетбук boltd[1846]: глобальное 'поколение' установлено на '4'
22 июл 13:44:26 нетбук boltd[1846]: [aa1b8780-f062-Gen14 ] устройство добавлено, статус: авторизовано, по адресу /sys/devices/pci0000:00/0000:00:0d.2/domain0/0-0
22 июл 13:44:26 нетбук boltd[1846]: [aa1b8780-f062-Gen14 ] маркировка устройства: Intel Gen14
22 июл 13:44:26 нетбук boltd[1846]: [8d1c8780-0170-domain1 ] вновь подключен [iommu+user] (/sys/devices/pci0000:00/0000:00:0d.3/domain1/1-0)
22 июл 13:44:26 нетбук boltd[1846]: [8d1c8780-0170-domain1 ] домен: зарегистрирован (bootacl: 0/0)
22 июл 13:44:26 нетбук boltd[1846]: [8d1c8780-0170-domain1 ] bootacl: bootacl не поддерживается, нет синхронизации
22 июл 13:44:26 нетбук boltd[1846]: [8d1c8780-0170-domain1 ] udev: не удалось определить, является ли uid стабильным: неизвестный NHI PCI id '0x7ec3'
22 июл 13:44:26 нетбук boltd[1846]: [8d1c8780-0170-domain1 ] udev: uuid стабильный: нет (для NHI: 0x7ec3)
22 июл 13:44:26 нетбук boltd[1846]: [8d1c8780-0170-Gen14 ] устройство добавлено, статус: авторизовано, по адресу /sys/devices/pci0000:00/0000:00:0d.3/domain1/1-0
22 июл 13:44:26 нетбук boltd[1846]: [8d1c8780-0170-Gen14 ] маркировка устройства: Intel Gen14
22 июл 13:44:26 нетбук boltd[1846]: [aa1b8780-f062-domain0 ] dbus: экспортированный домен по адресу /org/freedesktop/bolt/domains/aa1b8780_f062_2d03_ffff_ffffffffffff
22 июл 13:44:26 нетбук boltd[1846]: [8d1c8780-0170-domain1 ] dbus: экспортированный домен по адресу /org/freedesktop/bolt/domains/8d1c8780_0170_8512_ffff_ffffffffffff
22 июл 13:44:26 нетбук boltd[1846]: [aa1b8780-f062-Gen14 ] dbus: экспортированное устройство по адресу /org/freedesktop/bolt/devices/aa1b8780_f062...
22 июл 13:44:26 нетбук boltd[1846]: [8d1c8780-0170-Gen14
boltctl выглядит нормально:
root@нетбук:~/.cargo/bin# boltctl list --all
Intel Gen14
├─ тип: хост
├─ имя: Gen14
├─ производитель: Intel
├─ uuid: aa1b8780-f062-2d03-ffff-ffffffffffff
├─ поколение: USB4
├─ статус: авторизовано
│ ├─ домен: aa1b8780-f062-2d03-ffff-ffffffffffff
│ └─ authflags: none
├─ авторизовано: Пн 22 Июл 2024 05:43:47 PM UTC
├─ подключено: Пн 22 Июл 2024 05:43:47 PM UTC
└─ сохранено: нет
Intel Gen14
├─ тип: хост
├─ имя: Gen14
├─ производитель: Intel
├─ uuid: 8d1c8780-0170-8512-ffff-ffffffffffff
├─ поколение: USB4
├─ статус: авторизовано
│ ├─ домен: 8d1c8780-0170-8512-ffff-ffffffffffff
│ └─ authflags: none
├─ авторизовано: Пн 22 Июл 2024 05:43:47 PM UTC
├─ подключено: Пн 22 Июл 2024 05:43:47 PM UTC
└─ сохранено: нет
Он на короткое время обеспечивает доставку питания, и статус батареи отображается как зарядка. Но быстро отключается…
Однако, если я использую инструменты Thunderbolt от Intel, я получаю следующее:
root@нетбук:~/.cargo/bin# ./tblist
Домен 0 Маршрут 0: 8087:7eb2 Intel Gen14
Домен 1 Маршрут 0: 8087:7eb2 Intel Gen14
root@нетбук:~/.cargo/bin# ./tbadapters --route 0
1: Полоса 0 CLd
2: Полоса 1 CLd
3: Полоса 0 CLd
4: Полоса 1 CLd
5: DisplayPort IN Отключено
6: DisplayPort IN Отключено
7: Хост Интерфейс (восходящий) Неизвестно
8: PCIe Вниз Отключено
9: PCIe Вниз Отключено
10: Не реализовано
11: Не реализовано
12: USB 3 Вниз Отключено
13: USB 3 Вниз Отключено
Логи udev показывают, что устройство добавляется и удаляется бесконечно:
KERNEL[3191.118840] add /devices/pci0000:00/0000:00:0d.3/domain1/1-0/usb4_port3/1-0:3.1 (thunderbolt)
UDEV [3191.119446] add /devices/pci0000:00/0000:00:0d.3/domain1/1-0/usb4_port3/1-0:3.1 (thunderbolt)
KERNEL[3191.130663] add /devices/pci0000:00/0000:00:0d.3/domain1/1-0/usb4_port3/1-0:3.1/nvm_active0 (nvmem)
KERNEL[3191.130674] add /devices/pci0000:00/0000:00:0d.3/domain1/1-0/usb4_port3/1-0:3.1/nvm_non_active0 (nvmem)
UDEV [3191.131689] add /devices/pci0000:00/0000:00:0d.3/domain1/1-0/usb4_port3/1-0:3.1/nvm_active0 (nvmem)
UDEV [3191.131866] add /devices/pci0000:00/0000:00:0d.3/domain1/1-0/usb4_port3/1-0:3.1/nvm_non_active0 (nvmem)
KERNEL[3191.188396] change /devices/pci0000:00/0000:00:02.0/drm/card1/card1-eDP-1/intel_backlight (backlight)
UDEV [3191.189204] change /devices/pci0000:00/0000:00:02.0/drm/card1/card1-eDP-1/intel_backlight (backlight)
KERNEL[3192.590939] change /devices/pci0000:00/0000:00:02.0/drm/card1/card1-eDP-1/intel_backlight (backlight)
UDEV [3192.591966] change /devices/pci0000:00/0000:00:02.0/drm/card1/card1-eDP-1/intel_backlight (backlight)
KERNEL[3192.769644] change /devices/platform/ACPI0003:00/power_supply/AC (power_supply)
UDEV [3192.770453] change /devices/platform/ACPI0003:00/power_supply/AC (power_supply)
KERNEL[3192.776745] change /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0A:00/power_supply/BAT0 (power_supply)
UDEV [3192.777408] change /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0A:00/power_supply/BAT0 (power_supply)
KERNEL[3193.292329] change /devices/pci0000:00/0000:00:02.0/drm/card1/card1-eDP-1/intel_backlight (backlight)
UDEV [3193.293421] change /devices/pci0000:00/0000:00:02.0/drm/card1/card1-eDP-1/intel_backlight (backlight)
KERNEL[3193.993591] change /devices/pci0000:00/0000:00:02.0/drm/card1/card1-eDP-1/intel_backlight (backlight)
UDEV [3193.995311] change /devices/pci0000:00/0000:00:02.0/drm/card1/card1-eDP-1/intel_backlight (backlight)
KERNEL[3195.610633] remove /devices/pci0000:00/0000:00:0d.3/domain1/1-0/usb4_port3/1-0:3.1/nvm_non_active0 (nvmem)
KERNEL[3195.610664] remove /devices/pci0000:00/0000:00:0d.3/domain1/1-0/usb4_port3/1-0:3.1/nvm_active0 (nvmem)
KERNEL[3195.610674] remove /devices/pci0000:00/0000:00:0d.3/domain1/1-0/usb4_port3/1-0:3.1 (thunderbolt)
UDEV [3195.611486] remove /devices/pci0000:00/0000:00:0d.3/domain1/1-0/usb4_port3/1-0:3.1/nvm_non_active0 (nvmem)
UDEV [3195.611496] remove /devices/pci0000:00/0000:00:0d.3/domain1/1-0/usb4_port3/1-0:3.1/nvm_active0 (nvmem)
UDEV [3195.611948] remove /devices/pci0000:00/0000:00:0d.3/domain1/1-0/usb4_port3/1-0:3.1 (thunderbolt)
KERNEL[3196.265705] change /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0A:00/power_supply/BAT0 (power_supply)
UDEV [3196.266430] change /devices/LNXSYSTM:00/LNXSYSTM:00/PNP0C0A:00/power_supply/BAT0 (power_supply)
KERNEL[3197.090238] add /devices/pci0000:00/0000:00:0d.3/domain1/1-0/usb4_port3/1-0:3.1 (thunderbolt)
UDEV [3197.092196] add /devices/pci0000:00/0000:00:0d.3/domain1/1-0/usb4_port3/1-0:3.1 (thunderbolt)
KERNEL[3197.102952] add /devices/pci0000:00/0000:00:14.0/usb1/1-1 (usb)
KERNEL[3198.413650] add /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0 (usb)
KERNEL[3198.417732] bind /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0 (usb)
KERNEL[3198.813650] add /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.5 (usb)
KERNEL[3198.823452] add /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.5/1-1.5:2.0 (usb)
KERNEL[3198.968676] add /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.6 (usb)
KERNEL[3202.556076] unbind /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0 (usb)
KERNEL[3202.559880] unbind /devices/pci0000:00/0000:00:14.0/usb1/1-1 (usb)
KERNEL[3202.563141] remove /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.5/1-1.5:2.0 (usb)
KERNEL[3202.563416] remove /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.6/1-1.6:1.0 (usb)
Я тщательно проверил BIOS и включил все параметры, относящиеся к Thunderbolt. Однако в этом BIOS НЕТ уровней безопасности Thunderbolt. Я не знаю, почему.
У меня есть XPS 13 9370 2019 года, и как только я подключаю к нему кабель USB4, он регистрирует всё нормально.
Как мне устранить эту проблему?
Редактировать 1: Добавляю немного информации…
Я не могу найти элементы управления безопасностью Thunderbolt в BIOS.
Я также обновил BIOS до версии 1.8.0, но проблема осталась. Однако я поигрался с Dell Command, и похоже, что я совершенно пропустил параметры безопасности Thunderbolt…
$ sudo /opt/dell/dcc/cctk --ThunderboltSecLvl
Опция 'ThunderboltSecLvl' недоступна или не может быть настроена
через этот инструмент.
Редактировать 2:
На основе дополнительных тестов, похоже, что всё работает, когда я загружаюсь в ОС, пока концентратор Anker подключен. Когда я отключаю и снова подключаю, я сталкиваюсь с проблемой.
Редактировать 3:
Я только что установил Windows 11 для теста, и всё работает прекрасно…
Редактировать 4:
Хорошо, больше информации… Всё перестало работать с тех пор, как я сделал Редактирование 2.
Я вынужден был откатить свой ядро на linux-image-6.5.0-1020-oem
Затем я убедился, что использовал boltctl
для повторной авторизации доменов Thunderbolt.
Затем я отключил питание и снова загрузился с подключённым концентратором Anker.
Теперь концентратор Anker распознается как концентратор Thunderbolt 4 и авторизуется. Вы можете подтвердить это в Настройках или с помощью:
# boltctl list
● Anker USB4 Device
├─ тип: периферийное
├─ имя: USB4 Устройство
├─ производитель: Anker
├─ uuid: 3aa70921-50f3-b0aa-ffff-ffffffffffff
├─ поколение: USB4
├─ статус: авторизовано
│ ├─ домен: 2e688780-3101-be55-ffff-ffffffffffff
│ ├─ скорость rx: 20 Gb/s = 2 полосы * 10 Gb/s
│ ├─ скорость tx: 20 Gb/s = 2 полосы * 10 Gb/s
│ └─ authflags: none
├─ авторизовано: Пт 04 Окт 2024 05:18:05 PM UTC
├─ подключено: Пт 04 Окт 2024 05:18:05 PM UTC
└─ сохранено: нет
ОДНАКО! Я всё равно не могу подключить концентратор Anker в горячем состоянии. Если я вытяну USB-C и снова подключу, я возвращаюсь к началу, и он не работает совсем.
Некоторые новые модели Dell могут по умолчанию скрывать определенные настройки. Выполните сброс BIOS к заводским настройкам, затем снова проверьте параметры безопасности Thunderbolt в разделе Безопасность или Настройка системы.
Теперь проверьте наличие параметров безопасности Thunderbolt. Если они по-прежнему не видны, выполните сброс CMOS. Это может решить проблемы, когда настройки BIOS не отображаются должным образом.
В BIOS установите безопасность Thunderbolt на “Нет безопасности” и убедитесь, что поддержка Thunderbolt Pre-boot включена.
Отключите любые конкретные параметры, связанные с Thunderbolt, и дайте концентратору USB4 работать в родном режиме USB.
Отключите IOMMU: добавьте intel_iommu=off
в вашу конфигурацию GRUB.
Повторное обнаружение в Linux:
- Выполните:
sudo modprobe -r thunderbolt && sudo modprobe thunderbolt
- Проверьте
boltctl
, чтобы подтвердить, поддается ли устройство повторному обнаружению и правильно авторизовано.
У меня есть чуть более старая модель Dell, и я проходил через нечто подобное.
Дайте знать, если проблема не решена, эта норка не такая уж и глубокая.
Удачи!
Ответ или решение
Для решения проблемы, связанной с подключением хаба Anker 556 к вашему ноутбуку Dell XPS 13 9340 под управлением Ubuntu 24.04, стоит выполнить несколько шагов. Поскольку вы уже затронули различные аспекты, включая настройки BIOS и логи, приведенные в вашей просьбе, давайте структурируем решение по этапам.
1. Проверка настроек BIOS
Некоторые настройки в BIOS могут быть скрыты по умолчанию. Чтобы убедиться, что у вас есть доступ к параметрам безопасности Thunderbolt:
-
Сброс BIOS до заводских настроек: Запустите BIOS и выполните сброс всех настроек к значениям по умолчанию. Это может восстановить доступ к параметрам, которые могли быть скрыты.
-
Проверка на наличие параметров Thunderbolt: В BIOS в разделе безопасности или конфигурации системы найдите опции, относящиеся к Thunderbolt. Убедитесь, что:
- Установлено значение "No Security" для уровня безопасности Thunderbolt.
- "Thunderbolt Pre-boot Support" включен.
2. Дополнительные настройки в BIOS
- Отключите IOMMU: Если BIOS не предлагает явных настроек для Thunderbolt, добавьте параметр
intel_iommu=off
в конфигурацию GRUB. Это может помочь в случаях, когда устройства не обнаруживаются должным образом.
3. Компьютерные настройки и драйверы
-
Перезагрузите драйвера Thunderbolt: В терминале выполните команды:
sudo modprobe -r thunderbolt sudo modprobe thunderbolt
Это перезагрузит модуль и, возможно, позволит устройству снова обнаружиться.
-
Проверьте статус устройства: Используйте команду
boltctl
для проверки, отображается ли хаб и имеет ли статус "authorized".
4. Работы с hotplug
Вы упомянули, что устройство работает, когда оно подключается в момент загрузки. Однако при дополнительном подключении в работающей системе возникают проблемы. Это может говорить о несовместимости с функцией hotplug.
- Рекомендации по hotplug:
- После подключения хаба перезапустите службу
bolt
:sudo systemctl restart bolt
- Запустите команду
boltctl
снова, чтобы убедиться, что устройство авторизовано.
- После подключения хаба перезапустите службу
5. Совместимость kernel и дополнительные драйвера
Вы упомянули, что после downgrade ядер linux-image-6.5.0-1020-oem
, хаб был распознан, однако hotplug не работает. Иногда это может сигнализировать о несовместимости версии ядра и драйверов.
- Дальнейшие проверки: Если проблема с hotplug все еще не решена, рекомендуется рассмотреть возможность обновления до более новой версии ядра, которая может более эффективно поддерживать работу Thunderbolt и USB4.
6. Тестирование на других системах
Как вы уже заметили, устройство работает под управлением Windows 11. Это может быть полезным для диагностики. Это указывает на то, что хаб исправен, и проблема более вероятно связана с программным обеспечением или совместимостью на Ubuntu.
Заключение
Если после выполнения всех вышеупомянутых шагов проблема останется, необходимо дополнительно исследовать совместимость хаба Anker с вашей моделью Dell. Возможно, стоит обратиться к сообществу пользователей Ubuntu или Dell для поиска более специализированных решений данной проблемы. Удачи в вашей работе!