# (gelöst) Laptop Lenovo Wlan bekomme ich nicht zum laufen.

## Schattenschlag

Hallöchen hoffe es kann mir einer helfen... 

Erstmals Daten vom Laptop: LENOVO V15-ADA Iron Grey, AMD Ryzen 5 3500U, 4x 2.10GHz, 8GB DDR4, 512GB M.2 SSD, AMD Radeon Vega 8 IGP

Nun versuche ich das WLan zu aktiviern aber leider ohne erfolg. Entweder hab ich den falschen Treiber oder mir fehlt noch was wichtiges ... 

Über die Live/Install Cd von Gentoo läuft die Wlan Karte ... habe jetzt dort versucht die Treiber zu schauen was geladen wird ... hab das was ich gefunden habe in den Kernel config eingestellt aber ohne erfolg.

Das installierte System will einfach nicht die Wlan Karte erkennen ...

lspci sagt

```
02:00:0 Network controller: Realtek Semiconductor Co., Ltd. RTL8822CE 802.11ac PCIe Wireless Network Adapter
```

wenn ich den Befehl : ip addr eintippe kommt nur das raus

```
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 brd 127.255.255.255 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host 

       valid_lft forever preferred_lft forever

2: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000

    link/sit 0.0.0.0 brd 0.0.0.0
```

Eingestellt im Kernel :

```

Networking support -> wireless -> cfg80211 wireless extensions compatibility

Device Drivers -> Generic Driver Options -> Firmware loader -> rtlwifi/rtl8822befw.bin

Device Drivers -> Network device support -> Wireless Lan -> Realtek 802.11ac wireless chips support -> Realtek 8822BE PCI wireless network adapter

Device Drivers -> Network device support -> Wireless Lan -> Realtek 802.11ac wireless chips support -> Realtek 8822CE PCI wireless network adapter

Device Drivers -> HID support -> Special HID drivers -> Lenovo

Device Drivers -> x86 Platform Specific Device Drivers -> Lenovo IdeaPad Laptop Extras
```

So nun weiß ich nicht mehr was ich noch aktivieren muss damit die doofe Wlan Karte mal erkannt wird.

danke im voraus für eure hilfe schon mal  :Smile: 

schattiLast edited by Schattenschlag on Tue Oct 19, 2021 8:58 pm; edited 1 time in total

----------

## mike155

 *Quote:*   

> Über die Live/Install Cd von Gentoo läuft die Wlan Karte 

 

Das ist doch schon mal gut! Es klingt so, als ob man Deine WLAN-Karte zum Laufen bekommen könnte.   :Smile: 

Welcher Treiber wird angezeigt, wenn Du unter der Live/Install CD bootest und folgenden Befehl aufrufst?

```
lspci -k
```

Ist dieser Treiber auch in Deinem eigenen Kernel aktiviert? Und wird er auch angezeigt, wenn Du "lspci -k" unter Deinem eigenen Kernel aufrufst?

Ist Dein Treiber fest in den Kernel compiliert? Oder arbeitest Du mit Modules?

Bitte poste alles aus "dmesg" unter Deinem eigenen Kernel, was mit Deinem WLAN-Treiber zu tun hat. Meistens sieht man dann, was los ist. 

Du kannst auch die Ausgabe von dmesg unter Deinem eigenen Kernel mit der Ausgabe von dmesg unter der Live/Install CD vergleichen. Dann sieht man Unterschiede recht schnell:

```
dmesg -t > a    # Ausgabe erzeugen unter Live CD

dmesg -t > b    # Ausgabe erzeugen unter Deinem eigenen Kernel

diff a b        # Vergleichen
```

Der Parameter "-t" bei dmesg ist wichtig, um die Zeitstempel wegzubekommen.

----------

## Schattenschlag

Alles klar, werd ich dann morgen machen ... bin jetzt schon zu kaputt .... poste dann alles morgen

----------

## ChrisJumper

mike155, das ist interessant. Ich hätte es jetzt nicht mit dmesg und diff gemacht. Obwohl dies ein bemerkenswert logischer Ansatz ist.

Sondern halt mit lsmod, weil die eingebundenen Kernel auch der Live-CD da gelistet werden. Welcher aus der Liste dann natürlich der Kernel-Treiber ist, ist immer ein wenig schwierig heraus zu finden. Bei dmesg wird bestimmt angezeigt welches modul geladen wurde und welche Treiberversion...

Muss ich mir merken, vielen Dank für den Hinweis!

Chris

----------

## mike155

lsmod ist auch gut! Bei einem neuen System mache ich am Anfang ein lsmod von der Live-CD und aktiviere die notwendigen Module dann in meinem Kernel. Bei meinem eignen Kernel hilft lsmod aber nicht, weil ich alle Treiber fest in den Kernel compiliere - lsmod zeigt dann nichts an.

Hier im konkreten Fall finde ich "lspci -k" etwas zielgerichteter, weil es direkt die zu den Devices geladenen Module anzeigt. "lspci -k" funktioniert übrigens auch, wenn man die Module fest in den Kernel compiliert.

"dmesg -t" führe ich immer aus, wenn ich einen neuen Kernel kompiliere und das erste Mal boote. Beim erstmaligen Kompilieren einer neuen Kernel-Version lege ich eine "Soll"-Datei an:

```
cd /root

dmesg -t > dmesg-5.14
```

Nach jedem Neu-Kompilieren des Kernels (neue Version, geänderte Config) führe ich dann aus:

```
cd /root

dmesg -t > a

diff dmesg-5.14 a
```

Dadurch sehe ich Änderungen (z.B. in Folge einer versehentlich geänderten geänderte Config) sofort. Bei dem Diff wird zwar immer recht viel ausgegeben - aber nach kurzer Zeit weiß man, welche Änderungen man ignorieren kann - und welche Änderungen auf Probleme hinweisen.

Diese Diffs haben mich schon häufiger gerettet. Gelegentlich ändere ich meine Kernel-Config, um Probleme hier im Forum nachzustellen. Ich habe zwar auch eine Soll ".config" und vergleiche auch die Kernel ".config"-Dateien - aber der Diff-Test von dmesg ist mir sympathischer, weil ich hier wirklich das End-Resultat vergleichen kann.

----------

## pietinger

@mike155 hat diesen Trick mit dem Parameter "-t" bereits schon einmal gepostet. Ich fand (und finde immer noch) das damals so klasse, dass ich es sofort in meine Installationsanleitung rüber kopiert habe, damit dieser Tip niemals verloren geht ( https://forums.gentoo.org/viewtopic-p-8517155.html#8517155 ).

(P.S.: Ja, ich bin auch ein Fan von einem monolithischen Kernel)

----------

## firefly

neben dem passenden kernel treiber ist es oft erforderlich die passende firmware datei installiert zu haben.

Denn die meisten WLAN-Geräte haben die Firmware nicht fest auf dem Gerät sondern werden jedesmal vom Treiber in das Gerät geladen.

Und dein WLAN-Gerät ist so ein fall, wie es auch aus der kernel config ersichtlich ist muss auf dem system folgende firmware datei vorhanden sein:

rtlwifi/rtl8822befw.bin

Wobei du die CE variante hast eventuell heißt die richtige firmware datei dann rtlwifi/rtl8822cefw.bin

Unter umständen liefert der treiber in der dmesg ausgabe einen hinweis was für eine firmware er erwartet.

eventuell wird sie mit installiert wenn man das paket linux-firmware installiert.

----------

## Schattenschlag

@mike155 So hab das mit diff gemacht nur öhm ja weis ich jetzt nicht genau wie ich das ganze deuten soll ?

https://pastebin.com/38AkkAmM

bei lspci -k taucht die Wlan Karte auf 

```
02:00:0 Network controller: Realtek Semiconductor Co., Ltd. RTL8822CE 802.11ac PCIe Wireless Network Adapter

          Subsystem Lenovo RTL8822CE 802.11ac PCIe Wireless Network Adapter
```

@firefly hmm habe unter /lib/firmware/rtlwifi  nur den einen gefunden

----------

## mike155

Ich nehme an, dass "<" die Live CD ist und ">" Dein eigener Kernel.

Dann sieht man folgenden Unterschied: bei der Live-CD findet man mit "grep rtw" 

```
< rtw_8822ce 0000:02:00.0: enabling device (0000 -> 0003)

< Loading firmware: rtw88/rtw8822c_fw.bin

< Loading firmware: rtw88/rtw8822c_wow_fw.bin

< rtw_8822ce 0000:02:00.0: Firmware version 9.9.10, H2C version 15

< rtw_8822ce 0000:02:00.0: Firmware version 9.9.4, H2C version 15

< rtw_8822ce 0000:02:00.0 wlp2s0: renamed from wlan0
```

Und bei Deinem eigenen Kernel:

```
> rtw_8822ce 0000:02:00.0: enabling device (0000 -> 0003)

> Loading firmware: rtw88/rtw8822c_fw.bin

> rtw_8822ce 0000:02:00.0: Direct firmware load for rtw88/rtw8822c_fw.bin failed with error -2

> rtw_8822ce 0000:02:00.0: failed to request firmware

> Loading firmware: rtw88/rtw8822c_wow_fw.bin

> rtw_8822ce 0000:02:00.0: failed to load firmware

> rtw_8822ce 0000:02:00.0: Direct firmware load for rtw88/rtw8822c_wow_fw.bin failed with error -2

> rtw_8822ce 0000:02:00.0: failed to setup chip efuse info

> rtw_8822ce 0000:02:00.0: failed to request firmware

> rtw_8822ce 0000:02:00.0: failed to setup chip information

> rtw_8822ce: probe of 0000:02:00.0 failed with error -22
```

Also, die Firmware wird nicht geladen und deshalb funktioniert das Device nicht. Du musst also nicht weiter bei irgendwelchen Netzwerk-Konfigurationsdateien suchen, sondern die Kernel-Config reparieren (falls Du ohne Modules arbeitest) bzw. die Module-Parameter anpassen (falls Du mit Modules arbeitest). Erst wenn die Ausgabe von dmesg bei Deinem Kernel so aussieht wie die oben gezeigte Ausgabe von der Live CD, wird Dein WLAN-Adapter ordnungsgemäß funktionieren.

Das Paket "sys-kernel/linux-firmware" ist installiert, oder?

Bitte poste Deine Kernel-Config über wgetpaste.

----------

## Schattenschlag

@mike155 Ok .. also linux-firmware ist installiert .

Ok einen Fehler hab ich gerade entdeckt, ich hab nur in dem rtlwifi Ordner geguckt ich hätte in den rtl88 gucken sollen --> < Loading firmware: rtw88/rtw8822c_fw.bin  < Loading firmware: rtw88/rtw8822c_wow_fw.bin 

ich back mal den Kernel neu und sag dann Bescheid und Poste die config

Kernel config -> https://dpaste.com/6Q7TRS9Z7

----------

## mike155

Hat sich denn die Ausgabe von "dmesg -t | grep rtw" geändert, nachdem Du 

```
CONFIG_FW_LOADER=y

CONFIG_EXTRA_FIRMWARE="rtw88/rtw8822b_fw.bin rtw88/rtw8822c_fw.bin rtw88/rtw8822c_wow_fw.bin"

CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"
```

gesetzt hast? Oder werden immer noch Fehler beim Laden der Firmware angezeigt?

----------

## Schattenschlag

Danke mal für die Hilfe ... 

Ok die Wlan Karte wird geladen und erkannt.

Ich hatte die ganze Zeit im falschen Ordner geguckt, rtlwifi hätte aber im rtl88 firmware Ordner gucken sollen ... gruml

```
wlp2s0: <BROADCAST, MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000

link/ether cc:6b:1e:96:f9:d7: brd ff:ff:ff:ff:ff:ff

inet6 fe80::ce6b:1eff:fe96:f9d7/64 scope link

valid_lft forever preferred_lft forever
```

Im Moment stellt man keine Verbindung her 

```
ping: www.google.de: Temporärer Fehler bei der Namensauflösung
```

Denk das mit rsn wpa, wpa-psk, ccmp tkip oder so was nicht stimmt hmm

----------

## mike155

Deine Diff-Ausgabe von dmesg zeigt, dass noch weitere Treiber fehlen. Beispielsweise sieht man bei der LiveCD:

```
< snd_hda_intel 0000:03:00.1: enabling device (0000 -> 0002)

< snd_hda_intel 0000:03:00.6: enabling device (0000 -> 0002)

< snd_hda_codec_realtek hdaudioC1D0: autoconfig for ALC236: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:speaker

< snd_hda_codec_realtek hdaudioC1D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)

< snd_hda_codec_realtek hdaudioC1D0:    hp_outs=1 (0x21/0x0/0x0/0x0/0x0)

< snd_hda_codec_realtek hdaudioC1D0:    mono: mono_out=0x0

< snd_hda_codec_realtek hdaudioC1D0:    inputs:

< snd_hda_codec_realtek hdaudioC1D0:      Mic=0x19

< snd_hda_codec_realtek hdaudioC1D0:      Internal Mic=0x12
```

und bei Deinem Kernel:

```
> snd_hda_intel 0000:03:00.1: enabling device (0000 -> 0002)

> snd_hda_intel 0000:03:00.6: enabling device (0000 -> 0002)
```

Sound wird also noch nicht funktionieren. Grund ist, dass in Deinem Kernel der Realtek CODEC noch nicht aktiviert ist:

```
# CONFIG_SND_HDA_CODEC_REALTEK is not set
```

Also, es wird am besten sein, dem Vorschlag von @ChrisJumper zu folgen: Von der LiveCD booten und "lsmod" ausführen. Die dann ausgegebenen Module solltest Du in Deinem Kernel aktivieren. Gib unter der Live-CD auch mal "lspci -k" ein. Du wirst sehen, dass für fast jedes PCI Device auch ein Kernel-Modul angezeigt wird. Wenn Du Deinen eigenen Kernel bootest und "lspci -k" ausführst, solltest Du diese Treiber auch sehen. Wenn nicht, fehlen noch Optionen in Deiner Kernel-Config.

Hinweis: "lsmod" gibt wesentlich mehr Module aus, als "lspci -k". Die von "lspci -k" unter der Live-CD ausgegebenen Treiber solltest Du auf jeden Fall in Deinem eigenen Kernel aktivieren. PCI Devices ohne Treiber sind schlecht, weil dann diese PCI Devices möglicherweise nicht richtig initialisiert sind. Einzelne von "lsmod" ausgegebenen Treiber kannst Du auch weglassen, wenn Du sie nicht möchtest oder nicht brauchst.

----------

## Schattenschlag

Ach so ja, hab mir den rest noch nicht angeguckt wollte vorher die Wlan Karte zum laufen bringen. Ist weit einfacher mit einer stabilen Internet verbinung den rest dann zu machen.

Aber danke für den Hinweis  :Smile:  und danke nochmal für die nette hilfe ... (jetzt muss ich nur noch rausfinden was genau aktivieren muss damit sich die wlan karte richtig verbinden mit dem router)

mfg

schatti

----------

