Linux dan thunderbolt: insmod selalu mengembalikan "fungsi tidak diterapkan"

0

Saya memiliki mesin Linux (menjalankan kernel 4.9.84 pada Debian stretch) dengan kartu thunderbold, didukung oleh driver 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

Namun, modul thunderbolt tidak memuat, dan tidak dapat dimuat:

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

Tidak ada pesan dmesgatau yang lain. Anehnya, jika saya menjalankan ini insmodpada mesin apa saja, menjalankan Slackware, Debian, Ubuntu, dengan kernel yang berbeda mulai dari 4,4 hingga 4,9, semua balasan persis sama: "Fungsi tidak diterapkan". Pada VM dengan kernel 4,14, modprobe thunderbolttampaknya bekerja dengan baik. Saya tidak mengerti, apa yang terjadi?

wazoox
sumber
1
kernelnewbies.org/Linux_4.13#Thunderbolt . Anda dapat mencoba kernel yang lebih baru di host kemudian (mis. Hari ini di Debian, ada stretch-backports yang menyediakan linux-image-4.16.0-0.bpo.2-amd64)
AB
@ AB ya, saya sudah menginstal 4.13. Saya tidak dapat menjalankan apa pun yang lebih tinggi dari 4,13 karena bug yang sangat mengganggu dengan aacraid yang bahkan akan mencegah mesin ini untuk boot. Thunderbolt dimuat OK. Sekarang saya bertanya-tanya bagaimana cara melihat hard drive yang terhubung ...
wazoox

Jawaban:

1

Saya telah menemukan beberapa rincian lebih lanjut dengan membaca dokumentasi kernel: Thunderbolt mengharuskan Anda mengotorisasi perangkat secara manual. Namun tidak ada utilitas dalam distribusi saat ini untuk itu. Anda dapat mencoba mengkompilasi sendiri tbtadmutilitas yang ditemukan di sini: https://github.com/intel/thunderbolt-software-user-space

Atau lanjutkan dengan cara yang tidak aman seperti yang dijelaskan dalam dokumentasi kernel :

Para pengguna yang hanya ingin menghubungkan perangkat apa pun tanpa jenis pekerjaan manual, dapat menambahkan baris berikut ke /etc/udev/rules.d/99-local.rules:

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

Ini akan mengesahkan semua perangkat secara otomatis ketika mereka muncul. Namun, perlu diingat bahwa ini melewati tingkat keamanan dan membuat sistem rentan terhadap serangan DMA.

Sekarang saya melihat hard drive di bus seperti yang dijelaskan dalam dokumentasi:

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

Melihat output lspci saya menemukannya di sini:

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

Jadi ini semacam pengontrol RAID, yang harus memerlukan driver (yang mana? Apakah tersedia untuk Linux? Siapa yang tahu).

Dengan menggali driver Windows, saya memutuskan bahwa itu harus menggunakan kontroler Marvell RAID. Sekarang saya perlu menemukan yang mana, dan jika ada driver Linux, maka coba tambal driver dengan menambahkan PCI id 1c19: 0001 di yang didukung. Kedengarannya menyenangkan :) Ayo coba mvsasdulu ...

wazoox
sumber