[Hardware] DELL XPS 13 9360 + Thunderbolt3 + Sisyphus

Konstantin Lepikhov lakostis на unsafe.ru
Пт Окт 6 00:17:46 MSK 2017


Привет!

Страница с описанием характеристик ноутбука:
http://www.dell.com/en-us/shop/dell-laptops/new-xps-13-touch/spd/xps-13-9360-laptop/dncwtr753h
(я проверял версию с touchscreen и fingerprint sensor).

Поскольку доступа на альтовую вики я так и не дождался, пишу сюда как смог
завести данный ноутбук на Сизифе. Данная статья может быть полезна тем,
кто планирует купить подобный ноутбук и/или собирается подружить ALTLinux
с техникой от Apple и протоколом Thunderbolt3.

Кроме ноутбука присутствовали след. предметы:

- стыковочная станция от Belkin с поддержкой протокола Thunderbolt3
  https://www.apple.com/shop/product/HKQ12VC/A/belkin-thunderbolt-3-express-dock-hd
- несколько мониторов, мышь и клавиатура, которые были подключены к
  стыковочной станции посредством USB и переходников HDMI->USB-C.

Исходная статья о настройке была найдена на вики ArchLinux:
https://wiki.archlinux.org/index.php/Dell_XPS_13_(9360)

Что ставил:
http://nightly.altlinux.org/sisyphus/tested/regular-gnome3-latest-x86_64.iso

Сразу после установки рекомендуется обновить BIOS и прошивку для wifi
карты до версии 4.4.1:

- скачать
  https://github.com/kvalo/ath10k-firmware/tree/master/QCA6174
- скопировать папку QCA6174 в /lib/firmware/ath10k, заменив все файлы.
- создать симлинк на прошивку:

# cd hw3.0
# ln -s 4.4.1/firmware-6.bin_WLAN.RM.4.4.1-00058-QCARMSWP-1 firmware-6.bin

Также рекомендуется отключить Thunderbolt Security в BIOS (потом его можно
включить), иначе будет работать только монитор.

На ядре std-un завелось все, кроме работы со стыковочной станцией - при
втыкании монитора он определялся и wayland его видел, но потом соеднение
отваливалось и все сводилось к постоянному мерцанию на экране. Также, при
отключении дока происходил взрыв в районе сетевой карты внутри дока (там
используется что-то от intel с драйвером igb). По backtrace было видно,
что в модуле просто не предусмотрена нормальная работа с pci hotplug:

<4>[   96.234354] R10: 0000000000000040 R11: ffff9b394f85d6f8 R12:
ffff9b3c2d9552a0
<4>[   96.234375] R13: ffff9b3c2d955000 R14: ffff9b3c229f39c0 R15:
0000000000000060
<4>[   96.234398] FS:  0000000000000000(0000) GS:ffff9b3c3e480000(0000)
knlGS:0000000000000000
<4>[   96.234422] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
<4>[   96.234441] CR2: 00007f5d353032c8 CR3: 0000000461df7000 CR4:
00000000003406e0
<4>[   96.234463] Call Trace:
<4>[   96.234474]  pci_disable_msix+0xf1/0x120
<4>[   96.234491]  igb_reset_interrupt_capability+0x50/0x60 [igb]
<4>[   96.234512]  igb_remove+0xb3/0x170 [igb]
<4>[   96.234526]  pci_device_remove+0x34/0xb0
<4>[   96.234540]  device_release_driver_internal+0x150/0x210
<4>[   96.234557]  device_release_driver+0xd/0x10
<4>[   96.234575]  pci_stop_bus_device+0x85/0x90
<4>[   96.234589]  pci_stop_bus_device+0x2c/0x90
<4>[   96.234603]  pci_stop_bus_device+0x2c/0x90
<4>[   96.234617]  pci_stop_and_remove_bus_device+0xd/0x20

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

Естественно, я решил это по-своему - а именно, собрал свой wks-lks с
нужными патчами. Что поменял:

- Модуль thunderbolt был активно пропатчен из бранча intel и dell
  https://github.com/dell/thunderbolt-dkms + добавлены все исправления из
  ядра 4.14+
- Модуль igb в ядре был отключен и собран отдельно с сайта intel за
  версией 5.3.5.12, там работа с msix и hotplug переписана.

http://www.unsafe.ru/lakostis/RPMS/ALTLinux/testing/kernel-4.12/

В результате thunderbolt3 завелся сразу, мониторы перестали мигать, модуль
igb перестал падать и как плюшка появилась возможность прошить thunderbolt
модуль в самом ноутбуке, поскольку текущая версия была староватой и
возможно имела ошибки в работе.  Рекомендуемая версия - v21, ее можно
вытащить из официальных дров от Intel, которые доступны на сайте Dell
(видимо, чтобы враги не догадались):

https://downloads.dell.com/FOLDER04442852M/1/Intel_TBT3_FW_UPDATE_NVM21_MHTHF_A02_4.21.03.001.exe

(ссылка может устареть, могу выложить прошивку по запросу)

далее извлекаем содержимое .exe через 7z x и берем файл 0x075B_secure.bin
(обязательно _secure, иначе ничего прошиваться не будет).

Ну а далее как советуют в инструкции:

(стыковочная станция должна быть подключена и модуль thunderbolt
загружен!)

# dd if=0x075B_secure.bin of=/sys/bus/thunderbolt/devices/0-0/nvm_non_active0/nvmem
# echo 1 > /sys/bus/thunderbolt/devices/0-0/nvm_authenticate

после этого модуль начнет прошиваться и перезагрузиться. Убедиться что все
прошло хорошо можно проверив версию после прошивки:

# cat /sys/bus/thunderbolt/devices/0-0/nvm_version
21

После этого все работает как надо, включая подключение 3+ мониторов и все
это успешно рулится через wayland и настройки gnome3. Также автоматически
подстраивается scale после отключения дока или подключения мониторов.

В целом в нотубуке работает все, за исключением fingerprint sensor, но его
поддержка и не была обещана. Для управления настройками nvme диска собрал в
сизиф пакет nvme. Что-либо кроме gnome3 не проверял.

Спасибо за внимание!

-- 
WBR et al.


Подробная информация о списке рассылки Hardware