ubuntuusers.de

"Rebrandete" Wlan Karte benutzen mit setpci möglich?

Status: Gelöst | Ubuntu-Version: Ubuntu 16.04 (Xenial Xerus)
Antworten |

Patricksworld.cf

Anmeldungsdatum:
19. Juni 2016

Beiträge: 15

Hallo, ich habe folgendes Problem. Auf benutze auf meinem Thinkpad E540 Ubuntu und MacOSX im Dualboot. Leider kann MacOSX nichts mit Intel-wlankarten anfangen. Deswegen habe ich mir eine Atheros 9820 in den Laptop gebaut. Da der Laptop allerdings eine whitelist besitzt, musste diese Karte gerebrandet werden.

Also die Device-ID und Vendor-ID von der Intel-wlankarte wurde auf die Atheros geschrieben.

Diese wird jetzt logischer weise auch als Intel-wlankarte erkannt. Meine Frage ist.

Wie bekomme ich die jetzt wieder unter linux zum laufen? Meine Idee war mit z.B:

sudo setpci-s 03:00.0 DEVICE_ID=168c:002a

die DEVICE-ID und VENDOR_ID dem System "zurück zu geben".

Allerdings ändert sich nichts bei:

lspci -x

Hat jemand eine Idee was ich falsch mache bei setpci oder eine alternative Idee das Ding zum laufen zu bringen?

Vielen Dank

mfg Patrick

EDIT: Ich weiß leider nicht, wohin ich die Frage am besten plazieren sollte im Forum. Ich hoffe hier war das richtig.

Patricksworld.cf

(Themenstarter)

Anmeldungsdatum:
19. Juni 2016

Beiträge: 15

Ok. Ich bemerke gerade das die Variante mit setpci, selsbt wenn sie funktionieren würde, nicht zielführend ist, da ja dann mein Bios wieder blockieren würde.

Also wäre die Frage ob die Karte trotz Intel Device_ID den Ath9k kernel treiber nutzen kann.

Ich hoffe mein Problem ist verständlich?

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Hallo,

  • Intel Systemmodul sperren (Blacklisting) → Kernelmodule

  • versuchen die Geräte-ID ath9k zuzuweisen

echo 'install ath9k /sbin/modprobe --ignore-install ath9k; /bin/echo "8086 [gewünschte Intel Product-ID]" > /sys/bus/pci/drivers/ath9k/new_id' | sudo tee /etc/modprobe.d/ath9k_options.conf
sudo modprobe -v ath9k

Patricksworld.cf

(Themenstarter)

Anmeldungsdatum:
19. Juni 2016

Beiträge: 15

hallo, vorab schoneinmal vielen lieben Dank für deine Hilfe.

Das hat leider so nicht funktioniert. Aber müsste ich nicht eigentlich den iwlwifi blacklisten?

Ich habe jetzt folgendes ins Terminal reingschmissen

echo 'install ath9k /sbin/modprobe --ignore-install ath9k; /bin/echo "
8086 08b2" > /sys/bus/pci/drivers/ath9k/new_id' | sudo tee /etc/modprobe.d/ath9k_options.conf

und nach Eingabe von

sudo modprobe -v ath9k

erhalte ich folgendes:

insmod /lib/modules/4.4.0-38-generic/kernel/drivers/net/wireless/ath/ath.ko 
insmod /lib/modules/4.4.0-38-generic/kernel/drivers/net/wireless/ath/ath9k/ath9k_hw.ko 
insmod /lib/modules/4.4.0-38-generic/kernel/drivers/net/wireless/ath/ath9k/ath9k_common.ko 
install /sbin/modprobe --ignore-install ath9k; /bin/echo "8086 08b2" > /sys/bus/pci/drivers/ath9k/new_id 
insmod /lib/modules/4.4.0-38-generic/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko 

MFG Patrick

Patricksworld.cf

(Themenstarter)

Anmeldungsdatum:
19. Juni 2016

Beiträge: 15

Ok. Mit iwlwifi in der Blacklist, sieht das ganze langsam etwas besser aus.

Allerdings habe ich jetzt noch das Problem das Kernelmodul manuell zu laden, bzw zu installieren?

sudo modprobe -v ath9kinsmod /lib/modules/4.4.0-38-generic/kernel/drivers/net/wireless/ath/ath.ko 
insmod /lib/modules/4.4.0-38-generic/kernel/drivers/net/wireless/ath/ath9k/ath9k_hw.ko 
insmod /lib/modules/4.4.0-38-generic/kernel/drivers/net/wireless/ath/ath9k/ath9k_common.ko 
install /sbin/modprobe --ignore-install iwlwifi; /bin/echo "8086 08b2" > /sys/bus/pci/drivers/ath9k/new_id 
sh: 1: cannot create /sys/bus/pci/drivers/ath9k/new_id: Directory nonexistent
modprobe: ERROR: ../libkmod/libkmod-module.c:977 command_do() Error running install command for ath9k
modprobe: ERROR: could not insert 'ath9k': Unknown symbol in module, or unknown parameter (see dmesg)

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Lösche zunächst die Konfiguration

1
sudo rm /etc/modprobe.d/ath9k_options.conf

..., lade ath9k und schaue zur Sicherheit wo die Systemkonfiguration abgelegt wird. /sys/bus/pci/drivers/ath9k/new_id sollte korrekt sein.

1
sudo modprobe -v ath9k

Du hast da anscheinend auch noch einen Fehler eingebaut

install /sbin/modprobe --ignore-install iwlwifi; /bin/echo "8086 08b2" > /sys/bus/pci/drivers/ath9k/new_id 

Die korrekte Zeile sollte so aussehen:

1
echo 'install ath9k /sbin/modprobe --ignore-install ath9k; /bin/echo "8086 08b2" > /sys/bus/pci/drivers/ath9k/new_id' | sudo tee /etc/modprobe.d/ath9k_options.conf

(das ist eine lange zusammenhängende Befehlszeile - am besten kopieren und einfügen)

Dann erneut:

1
2
sudo modprobe -rfv ath9k
sudo modprobe -v ath9k

Wenn das funktioniert, automatisieren wir das noch über eine udev-Regel.

Patricksworld.cf

(Themenstarter)

Anmeldungsdatum:
19. Juni 2016

Beiträge: 15

Aktuell sieht das ganze so aus:

sudo modprobe -v ath9k
insmod /lib/modules/4.4.0-38-generic/kernel/drivers/net/wireless/ath/ath.ko 
insmod /lib/modules/4.4.0-38-generic/kernel/drivers/net/wireless/ath/ath9k/ath9k_hw.ko 
insmod /lib/modules/4.4.0-38-generic/kernel/drivers/net/wireless/ath/ath9k/ath9k_common.ko 
insmod /lib/modules/4.4.0-38-generic/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko 
echo 'install ath9k /sbin/modprobe --ignore-install ath9k; /bin/echo "8086 08b2" > /sys/bus/pci/drivers/ath9k/new_id' | sudo tee /etc/modprobe.d/ath9k_options.conf
install ath9k /sbin/modprobe --ignore-install ath9k; /bin/echo "8086 08b2" > /sys/bus/pci/drivers/ath9k/new_id
sudo modprobe -rfv ath9k
rmmod ath9k
rmmod ath9k_common
rmmod ath9k_hw
rmmod ath
sudo modprobe -v ath9k
insmod /lib/modules/4.4.0-38-generic/kernel/drivers/net/wireless/ath/ath.ko 
insmod /lib/modules/4.4.0-38-generic/kernel/drivers/net/wireless/ath/ath9k/ath9k_hw.ko 
insmod /lib/modules/4.4.0-38-generic/kernel/drivers/net/wireless/ath/ath9k/ath9k_common.ko 
install /sbin/modprobe --ignore-install ath9k; /bin/echo "8086 08b2" > /sys/bus/pci/drivers/ath9k/new_id 
insmod /lib/modules/4.4.0-38-generic/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko 

Das Wlan läuft aber trotzdem nicht.

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Kontrolle der Hardware:

1
lspci -nnk

Patricksworld.cf

(Themenstarter)

Anmeldungsdatum:
19. Juni 2016

Beiträge: 15

03:00.0 Network controller [0280]: Intel Corporation Wireless 7260 [8086:08b2] (rev 01)
	Subsystem: Intel Corporation Wireless-N 7260 [8086:4262]
	Kernel driver in use: iwlwifi
	Kernel modules: iwlwifi

Denke mal darum gehts? Es wird immernoch der iwlwifi geladen.

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Sperrlisten und Konfigurationsdateien kontrollieren:

1
grep iwl /etc/modprobe.d/* 

Vorab manueller Test

1
2
3
4
5
sudo modprobe -rfv iwlwifi
sudo modprobe -rfv iwlmvm
sudo modprobe -rfv ath9k
sudo modprobe -v ath9k
iwconfig

Patricksworld.cf

(Themenstarter)

Anmeldungsdatum:
19. Juni 2016

Beiträge: 15

erstes ergibt:

 grep iwl /etc/modprobe.d/* 
/etc/modprobe.d/iwlwifi.conf:# /etc/modprobe.d/iwlwifi.conf
/etc/modprobe.d/iwlwifi.conf:# iwlwifi will dyamically load either iwldvm or iwlmvm depending on the
/etc/modprobe.d/iwlwifi.conf:# microcode file installed on the system.  When removing iwlwifi, first
/etc/modprobe.d/iwlwifi.conf:# remove the iwl?vm module and then iwlwifi.
/etc/modprobe.d/iwlwifi.conf:remove iwlwifi \
/etc/modprobe.d/iwlwifi.conf:(/sbin/lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs /sbin/rmmod) \

Und der Rest:

sudo modprobe -rfv iwlwifi
remove (/sbin/lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs /sbin/rmmod) && /sbin/modprobe -r mac80211
rmmod: ERROR: missing module name.
modprobe: FATAL: Error running remove command for iwlwifi
patrick@patrick-ThinkPad-Edge-E540:~$ sudo modprobe -rfv iwlmvm
patrick@patrick-ThinkPad-Edge-E540:~$ sudo modprobe -rfv ath9k
rmmod ath9k
rmmod ath9k_common
rmmod ath9k_hw
rmmod ath
patrick@patrick-ThinkPad-Edge-E540:~$ sudo modprobe -v ath9k
insmod /lib/modules/4.4.0-38-generic/kernel/drivers/net/wireless/ath/ath.ko 
insmod /lib/modules/4.4.0-38-generic/kernel/drivers/net/wireless/ath/ath9k/ath9k_hw.ko 
insmod /lib/modules/4.4.0-38-generic/kernel/drivers/net/wireless/ath/ath9k/ath9k_common.ko 
install /sbin/modprobe --ignore-install ath9k; /bin/echo "8086 08b2" > /sys/bus/pci/drivers/ath9k/new_id 
insmod /lib/modules/4.4.0-38-generic/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko 
patrick@patrick-ThinkPad-Edge-E540:~$ iwconfig
enp2s0    no wireless extensions.

wlx74da386e3eb0  IEEE 802.11bgn  ESSID:"Wlan Patrick"  
          Mode:Managed  Frequency:2.437 GHz  Access Point: F0:79:59:D1:FA:F4   
          Bit Rate=7.2 Mb/s   Tx-Power=20 dBm   
          Retry short limit:7   RTS thr=2347 B   Fragment thr:off
          Power Management:off
          Link Quality=70/70  Signal level=-26 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:2939   Missed beacon:0

lo        no wireless extensions.

Sorry das ich so ein Noob bin.

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Geht doch, die Intel-Module sind nur noch nicht gesperrt.

1
echo -e "blacklist iwldvm\nblacklist iwlmvm\nblacklist iwlwifi" | sudo tee /etc/modprobe.d/blacklist_iwlwifi.conf

Dann noch die udev-Regel:

1
echo -e '# UDEV-Rule for Atheros WLAN-Card with spoofed Intel-ID 8086:08b2\nSUBSYSTEM=="pci", ATTR{idVendor}=="8086", ATTR{idProduct}=="08b2", RUN+="/sbin/modprobe ath9k"' | sudo tee /etc/udev/rules.d/10-wlan_stick.rules

(das ist wieder eine lange zusammenhängende Befehlszeile)

Bei Neustart sollte nun alles automatisch funktionieren.

Patricksworld.cf

(Themenstarter)

Anmeldungsdatum:
19. Juni 2016

Beiträge: 15

Also die Intelmodule werden schoneinmal nicht mehr geladen. Aber leider auch keine ath9k

hier mal die ausgabe von lsmod:

lsmod
Module                  Size  Used by
acpi_call              16384  0
msr                    16384  0
pci_stub               16384  1
vboxpci                24576  0
vboxnetadp             28672  0
vboxnetflt             28672  0
uvcvideo               90112  0
videobuf2_vmalloc      16384  1 uvcvideo
videobuf2_memops       16384  1 videobuf2_vmalloc
videobuf2_v4l2         28672  1 uvcvideo
videobuf2_core         36864  2 uvcvideo,videobuf2_v4l2
v4l2_common            16384  1 videobuf2_v4l2
videodev              176128  4 uvcvideo,v4l2_common,videobuf2_core,videobuf2_v4l2
media                  24576  2 uvcvideo,videodev
vboxdrv               454656  3 vboxnetadp,vboxnetflt,vboxpci
binfmt_misc            20480  1
nls_iso8859_1          16384  1
intel_rapl             20480  0
x86_pkg_temp_thermal    16384  0
intel_powerclamp       16384  0
coretemp               16384  0
crct10dif_pclmul       16384  0
crc32_pclmul           16384  0
aesni_intel           167936  0
aes_x86_64             20480  1 aesni_intel
lrw                    16384  1 aesni_intel
gf128mul               16384  1 lrw
glue_helper            16384  1 aesni_intel
ablk_helper            16384  1 aesni_intel
cryptd                 20480  2 aesni_intel,ablk_helper
snd_hda_codec_hdmi     53248  1
snd_hda_codec_conexant    24576  1
snd_hda_codec_generic    77824  1 snd_hda_codec_conexant
joydev                 20480  0
input_leds             16384  0
serio_raw              16384  0
snd_hda_intel          36864  5
thinkpad_acpi          90112  1
snd_hda_codec         135168  4 snd_hda_codec_hdmi,snd_hda_codec_conexant,snd_hda_codec_generic,snd_hda_intel
mei_me                 36864  0
snd_hda_core           73728  5 snd_hda_codec_hdmi,snd_hda_codec_conexant,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel
snd_seq_midi           16384  0
nvram                  16384  1 thinkpad_acpi
snd_hwdep              16384  1 snd_hda_codec
mei                    98304  1 mei_me
ie31200_edac           16384  0
snd_pcm               106496  4 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel,snd_hda_core
snd_seq_midi_event     16384  1 snd_seq_midi
lpc_ich                24576  0
edac_core              53248  1 ie31200_edac
shpchp                 36864  0
snd_rawmidi            32768  1 snd_seq_midi
snd_seq                69632  2 snd_seq_midi_event,snd_seq_midi
snd_seq_device         16384  3 snd_seq,snd_rawmidi,snd_seq_midi
snd_timer              32768  2 snd_pcm,snd_seq
snd                    81920  22 snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_hda_codec_conexant,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel,thinkpad_acpi,snd_seq_device
soundcore              16384  1 snd
mac_hid                16384  0
kvm_intel             172032  0
kvm                   540672  1 kvm_intel
irqbypass              16384  1 kvm
parport_pc             32768  0
ppdev                  20480  0
lp                     20480  0
parport                49152  3 lp,ppdev,parport_pc
autofs4                40960  2
i915                 1208320  7
r8169                  81920  0
mii                    16384  1 r8169
psmouse               126976  0
i2c_algo_bit           16384  1 i915
ahci                   36864  2
drm_kms_helper        147456  1 i915
libahci                32768  1 ahci
syscopyarea            16384  1 drm_kms_helper
sysfillrect            16384  1 drm_kms_helper
sysimgblt              16384  1 drm_kms_helper
fb_sys_fops            16384  1 drm_kms_helper
drm                   364544  8 i915,drm_kms_helper
wmi                    20480  0
video                  40960  2 i915,thinkpad_acpi
fjes                   28672  0

Patricksworld.cf

(Themenstarter)

Anmeldungsdatum:
19. Juni 2016

Beiträge: 15

Und nur damit ich nicht ungewollt zur Verwirrung beitrage. Ich habe aktuell noch einen Wlan usbstick drangehängt, damit ich die ausgaben posten kann.

Bei der Ausgabe von der iwconfig sieht man nur den Stick. Nicht die PCI Karte.

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Ok, dann machen wir das einfacher.

1
2
sudo rm /etc/udev/rules.d/10-wlan_stick.rules
echo ath9k | sudo tee -a /etc/modules

Möglicherweise funktioniert es aber trotzdem nicht. Fehler im Syslog?

1
tail -n 250 | egrep -i 'ath|firm|error'
Antworten |