kernel module neu konfigurieren

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Benutzeravatar
patdexx
Beiträge: 9
Registriert: 03.04.2017 09:26:22

kernel module neu konfigurieren

Beitrag von patdexx » 03.04.2017 10:26:05

Hallo,

ich möchte ein Kernelmodul mit einer von debian abweichenden Konfiguration bauen.
Speziell geht es um den ath9k Treiber, welchen ich um Debugfs erweitern möchte.

Folgendes habe ich bisher getan:

-Pakete installiert:

Code: Alles auswählen

apt-get install linux-source, linux-headers-$(uname -r), build-essential,	libncurses5-dev, libncurses5, libssl-dev	
-Kernel Quellen entpackt:

Code: Alles auswählen

 tar xvf /usr/src/linux-source-4.9.tar.xz 
-Kernel Konfiguration in die Quellen kopiert:

Code: Alles auswählen

cp /boot/config-4.9.0-2-amd64  ./.config
-Symvers verlinken:

Code: Alles auswählen

ln -s /usr/src/linux-headers-4.9.0-2-amd64/Module.symvers Module.symvers 
-Kernel Quellen patchen: https://patchwork.ozlabs.org/patch/727404/
-Konfig angepasst (ATH9K_HTC_DEBUGFS=y):

Code: Alles auswählen

make menuconfig
-von der neuen Konfiguration betroffene Module neu gebaut:

Code: Alles auswählen

make modules_prepare
make M=net/mac80211
make M=drivers/net/wireless/ath/ath9k
-neue Kernel Module installieren:

Code: Alles auswählen

cp <path>/*.ko to lib/modules/<kernel>/updates/<path>
depmod -a
Nun zu eigentlichen Problem:
Nach dem start werden nicht alle notwendigen Module geladen:

Code: Alles auswählen

user@debian-stretch:~$ sudo lsmod | grep ath
ath9k_common           32768  0
ath9k_hw              462848  1 ath9k_common
ath                    32768  2 ath9k_hw,ath9k_common
cfg80211              589824  3 mac80211,ath,ath9k_common

Code: Alles auswählen

[  100.395702] usb 1-1: new high-speed USB device number 2 using ehci-pci
[  100.559115] usb 1-1: New USB device found, idVendor=0cf3, idProduct=9271
[  100.559119] usb 1-1: New USB device strings: Mfr=16, Product=32, SerialNumber=48
[  100.559121] usb 1-1: Product: USB2.0 WLAN
[  100.559122] usb 1-1: Manufacturer: ATHEROS
[  100.559124] usb 1-1: SerialNumber: 12345
[  100.916401] ath9k_htc: disagrees about version of symbol ieee80211_start_tx_ba_cb_irqsafe
[  100.916404] ath9k_htc: Unknown symbol ieee80211_start_tx_ba_cb_irqsafe (err -22)
[  100.916493] ath9k_htc: disagrees about version of symbol ieee80211_start_tx_ba_session
[  100.916494] ath9k_htc: Unknown symbol ieee80211_start_tx_ba_session (err -22)
[  100.916555] ath9k_htc: disagrees about version of symbol ieee80211_get_buffered_bc
[  100.916556] ath9k_htc: Unknown symbol ieee80211_get_buffered_bc (err -22)
[  100.916558] ath9k_htc: disagrees about version of symbol ieee80211_find_sta
[  100.916559] ath9k_htc: Unknown symbol ieee80211_find_sta (err -22)
[  100.916613] ath9k_htc: disagrees about version of symbol ieee80211_stop_tx_ba_cb_irqsafe
[  100.916614] ath9k_htc: Unknown symbol ieee80211_stop_tx_ba_cb_irqsafe (err -22)
[  100.916671] ath9k_htc: disagrees about version of symbol ieee80211_alloc_hw_nm
[  100.916672] ath9k_htc: Unknown symbol ieee80211_alloc_hw_nm (err -22)
[  100.916723] ath9k_htc: disagrees about version of symbol ieee80211_iterate_active_interfaces_atomic
[  100.916724] ath9k_htc: Unknown symbol ieee80211_iterate_active_interfaces_atomic (err -22)
[  100.916741] ath9k_htc: disagrees about version of symbol ieee80211_beacon_get_tim
[  100.916742] ath9k_htc: Unknown symbol ieee80211_beacon_get_tim (err -22)
[  100.916753] ath9k_htc: disagrees about version of symbol ieee80211_csa_is_complete
[  100.916754] ath9k_htc: Unknown symbol ieee80211_csa_is_complete (err -22)
[  100.916768] ath9k_htc: disagrees about version of symbol ieee80211_csa_finish
[  100.916769] ath9k_htc: Unknown symbol ieee80211_csa_finish (err -22)
[  100.916772] ath9k_htc: disagrees about version of symbol ieee80211_rx_napi
[  100.916773] ath9k_htc: Unknown symbol ieee80211_rx_napi (err -22)
Zwinge ich das System funktioniert alles bestens:

Code: Alles auswählen

modprobe -f ath9k_htc

Code: Alles auswählen

[  638.722059] ath9k_htc: module_layout: kernel tainted.
[  638.722061] Disabling lock debugging due to kernel taint
[  638.723722] usb 1-1: ath9k_htc: Firmware ath9k_htc/htc_9271-1.4.0.fw requested
[  638.723926] usbcore: registered new interface driver ath9k_htc
[  638.727211] usb 1-1: firmware: direct-loading firmware ath9k_htc/htc_9271-1.4.0.fw
[  639.084646] usb 1-1: ath9k_htc: Transferred FW: ath9k_htc/htc_9271-1.4.0.fw, size: 51008
[  639.348191] ath9k_htc 1-1:1.0: ath9k_htc: HTC initialized with 33 credits
[  639.968993] ath9k_htc 1-1:1.0: ath9k_htc: FW Version: 1.4
[  639.968996] ath9k_htc 1-1:1.0: FW RMW support: On
[  639.968998] ath: EEPROM regdomain: 0x809c
[  639.968999] ath: EEPROM indicates we should expect a country code
[  639.969000] ath: doing EEPROM country->regdmn map search
[  639.969001] ath: country maps to regdmn code: 0x52
[  639.969002] ath: Country alpha2 being used: CN
[  639.969003] ath: Regpair used: 0x52
[  640.009623] ieee80211 phy0: Atheros AR9271 Rev:1
[  640.027955] ath9k_htc 1-1:1.0 wlx18d6c70bfdd7: renamed from wlan0
[  640.051149] IPv6: ADDRCONF(NETDEV_UP): wlx18d6c70bfdd7: link is not ready

Weiß mein System noch nicht, dass sich mac80211.ko geändert hat und somit ath9k_htc Funktionen benötigt, welche eigentlich nicht da sein sollten, aber sind?
Ich hoffe mich verständlich ausgedrückt und alle notwendigen Informationen gepostet zu haben.
Mein Ziel ist, dass auch ath9k_htc ohne Fehlermeldung automatisch geladen wird.

Antworten