Linux und Thunderbolt: insmod gibt immer "Funktion nicht implementiert" zurück

752
wazoox

Ich habe einen Linux-Rechner (Kernel 4.9.84 auf Debian-Stretch) mit einer Thunderbold-Karte, die vom Thunderbolt-Treiber unterstützt wird:

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

Das Thunderbolt-Modul wird jedoch nicht geladen und kann nicht geladen werden:

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

Keine Nachricht in dmesgoder sonst. Wenn ich dies insmodauf einem beliebigen Rechner laufen lasse, laufen Slackware, Debian, Ubuntu, mit verschiedenen Kerneln von 4.4 bis 4.9, alle Antworten sind genau gleich: "Funktion nicht implementiert". Auf einer VM mit einem 4.14-Kernel modprobe thunderboltscheint das jedoch gut zu funktionieren. Ich verstehe nicht, was passiert?

0
https://kernelnewbies.org/Linux_4.13#Thunderbolt. Sie könnten dann einen neueren Kernel auf dem Host ausprobieren (z. B. gibt es heute unter Debian Stretch-Backports, die linux-image-4.16.0-0.bpo.2-amd64 bereitstellen). A.B vor 6 Jahren 1
@AB ja, ich habe 4.13 installiert. Ich kann nichts höher als 4.13 laufen, weil ein sehr ärgerlicher Fehler vorliegt, der die Maschine sogar am Booten hindert. Donnerkeil wurde geladen. Nun frage ich mich, wie ich die angeschlossene Festplatte sehen kann ... wazoox vor 6 Jahren 0

1 Antwort auf die Frage

0
wazoox

Weitere Informationen habe ich in der Dokumentation zum Kernel gefunden: Thunderbolt erfordert, dass Sie Ihre Geräte manuell autorisieren. In aktuellen Distributionen existiert dafür jedoch kein Dienstprogramm. Sie können entweder versuchen, das tbtadmDienstprogramm selbst zu kompilieren : https://github.com/intel/thunderbolt-software-user-space

Oder gehen Sie den unsicheren Weg, wie in der Kernel-Dokumentation beschrieben :

Benutzer, die einfach jedes Gerät ohne manuelle Arbeit anschließen möchten, können folgende Zeile in /etc/udev/rules.d/99-local.rules einfügen:

ACTION=="add", SUBSYSTEM=="thunderbolt", ATTR=="0", ATTR="1" 

Dadurch werden alle Geräte automatisch autorisiert, wenn sie angezeigt werden. Beachten Sie jedoch, dass dadurch die Sicherheitsstufen umgangen werden und das System für DMA-Angriffe anfällig wird.

Nun sehe ich die Festplatte am Bus wie in der Dokumentation beschrieben:

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

Wenn ich mir die lspci-Ausgabe anschaue, finde ich sie hier:

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

Es ist also ein RAID-Controller, der einen Treiber benötigt (welcher ist für Linux verfügbar? Wer weiß).

Durch die Suche in den Windows-Treiber habe ich festgestellt, dass ein Marvell RAID-Controller verwendet werden muss. Jetzt muss ich herausfinden, welcher Treiber vorhanden ist und ein Linux-Treiber vorhanden ist. Versuchen Sie dann, den Treiber zu patchen, indem Sie die PCI-ID 1c19: 0001 in den unterstützten hinzufügen. Klingt lustig :) Lass es uns mvsaszuerst versuchen ...